summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common/xstatconv.c
AgeCommit message (Collapse)Author
2024-03-01libc: Remove 32bit timespec structures everywhere.Dmitry Chestnykh
With time64 enabled we use statx() system call and the appropriate routines for results conversion. There is no need in `__ts32_struct` anymore. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-26Add time64 support for MIPS32.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-22Introduce time64 support.Dmitry Chestnykh
This patch introduces *time64 syscalls support for uClibc-ng. Currently the redirection of syscalls to their *time64 analogs is fully supported for 32bit ARM (ARMv5, ARMv6, ARMv7). The main changes that take effect when time64 feature is enabled are: - sizeof(time_t) is 8. - There is a possibility os setting date beyond year 2038. - some syscalls are redirected: clock_adjtime -> clock_adjtime64 clock_getres -> clock_getres_time64 clock_gettime -> clock_gettime64 clock_nanosleep -> clock_nanosleep_time64 clock_settime -> clock_settime64 futex -> futex_time64 mq_timedreceive -> mq_timedreceive_time64 mq_timedsend -> mq_timedsend_time64 ppoll -> ppoll_time64 pselect6 -> pselect6_time64 recvmmsg -> recvmmsg_time64 rt_sigtimedwait -> rt_sigtimedwait_time64 sched_rr_get_interval -> sched_rr_get_interval_time64 semtimedop -> semtimedop_time64 timer_gettime -> timer_gettime64 timer_settime -> timer_settime64 timerfd_gettime -> timerfd_gettime64 timerfd_settime -> timerfd_settime64 utimensat -> utimensat_time64. - settimeofday uses clock_settime (like in glibc/musl). - gettimeofday uses clock_gettime (like in glibc/musl). - nanosleep uses clock_nanosleep (like in glibc/musl). - There are some fixes in data structures used by libc and kernel for correct data handling both with and without enabled time64 support. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2016-11-27remove UCLIBC_HAS_LFSWaldemar Brodkorb
2015-03-14Add fix from OpenWrt for MIPS64 N64 ABIWaldemar Brodkorb
https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch When booting in Qemu you get for example failures from mdev -s otherwise.
2012-11-18Replace FSF snail mail address with URLsMike Frysinger
This matches a similar change made to glibc. No functional changes here. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-06-15xstatconv: cleanup includesPeter S. Mazinger
xstatconv.h needs features.h to really "see" config options xstatconv.c does not need sys/syscall.h Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-09-06fstatat: fix up behavior on 32/64 bit hostsMike Frysinger
The fstatat() syscall is a little funky in that it sometimes changes name between 32 and 64 bit hosts, but it should always operate on a 64bit stat structure. So for the fstatat() function, make sure we convert it from a 64bit kstat to a 32bit stat. Along these lines, we need to restore the __xstat32_conv() function. Reported-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-06xstatconv: drop useless hidden codeMike Frysinger
The xstatconv.h header already sets up hidden prototypes for us, so no need to duplicate the code. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-26enable nanosecond stat support for everyoneMike Frysinger
Fill out the stat structure so that the nanosecond resolution support is always available. There is a small code size increase for a few ports (three additional assignments in xstatconv), but otherwise everything should remain the same. While we're here, punt __old_kernel_stat from the few headers that still define it as it is unused in uClibc and causes compile errors after these nanosecond changes. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-05-19Moving libc_hidden_proto's into #ifdef UCLIBC_INTERNAL blockDenis Vlasenko
in string.h and strings.h. This caught unguarded string ops in libc/inet/ethers.c __ether_line_w() function. I will wait for fallout reports for a week or so, then continue converting more libc_hidden_proto's.
2007-01-28need string.h for memset()Mike Frysinger
2007-01-28make sure we clear out the buffer so that random garbage on the stack doesnt ↵Mike Frysinger
screw us up
2006-12-08Take Mike Frysinger's comments into account -- make certain that userEric Andersen
applications stop using _syscall#() and use syscall() instead. Cleanup internal handling of syscall includes to use the correct header file.
2006-01-22Enable _GNU_SOURCE build wide, trying to get consistent interfaces, else IMA ↵Peter S. Mazinger
is a useless attempt
2005-12-09hide __xstatX_convPeter S. Mazinger
2005-07-17whoops, reversed naming of nano sec members ... kernel uses _, user space ↵Mike Frysinger
does not
2005-07-17syntax cleanupsMike Frysinger
2005-07-17rip out previous armeb old-stat abi compat code since arm linux opinion is ↵Mike Frysinger
that the old stat.h abi was for little endian only ... people should use this patch to fix their armeb kernels: http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=863/1
2005-07-16with the help of John Bowler, track down the ugly ABI change between 2.4 / ↵Mike Frysinger
2.6 on big endian arm kernels and work around it best we can at runtime
2005-07-15add support for passing nano seconds (if arch supports it)Mike Frysinger
2003-01-28Patch from Stefan Allius to fix the build whenEric Andersen
large file support is disabled
2003-01-24Finish up fixing stat and setting various system types.Eric Andersen
2003-01-24I thought it would be smaller to inline since these funcs are small.Eric Andersen
Well, not inlining saves 300 bytes, so do that instead. -Erik
2003-01-24Ok, people are probably going to hate me for this... This commit changes theEric Andersen
type of 'struct stat' and 'struct stat64' so they use consistant types. This change is the result of a bug I found while trying to use GNU tar. The problem was caused by our using kernel types within struct stat and trying to directly compare these values with standard types. Trying an 'if (a < b)' when 'a' is an 'unsigned long' and 'b' is an 'int' leads to very different results then when comparing entities of the same type (i.e. time_t values).... Grumble. Nasty stuff, but I'm glad I got this out of the way now. As a result of this fix, uClibc 0.9.17 will not be binary compatible with earlier releases. I have always warned people this can and will happen. -Erik