remove LFS64 programming interfaces (macro-only) from _GNU_SOURCE
[musl] / compat / time32 / ftime32.c
1 #include "time32.h"
2 #include <sys/timeb.h>
3 #include <errno.h>
4 #include <stdint.h>
5
6 struct timeb32 {
7         int32_t time;
8         unsigned short millitm;
9         short timezone, dstflag;
10 };
11
12 int __ftime32(struct timeb32 *tp)
13 {
14         struct timeb tb;
15         if (ftime(&tb) < 0) return -1;
16         if (tb.time < INT32_MIN || tb.time > INT32_MAX) {
17                 errno = EOVERFLOW;
18                 return -1;
19         }
20         tp->time = tb.time;
21         tp->millitm = tb.millitm;
22         tp->timezone = tb.timezone;
23         tp->dstflag = tb.dstflag;
24         return 0;
25 }