Age | Commit message (Collapse) | Author | Lines |
|
|
|
this type should never be used anyway, but some old junk uses it..
|
|
patch by Jeremy Huntwork
|
|
|
|
this is a nonstandard junk header anyway, so just do what apps expect..
|
|
based on patch by sh4rm4. these functions are deprecated; futimens and
utimensat should be used instead in new programs.
|
|
|
|
patch by Arvid Picciani (aep)
|
|
patches by sh4rm4, presumably needed to make gdb or some similar junk
happy...
|
|
the changes to syscall_ret are mostly no-ops in the generated code,
just cleanup of type issues and removal of some implementation-defined
behavior. the one exception is the change in the comparison value,
which is fixed so that 0xf...f000 (which in principle could be a valid
return value for mmap, although probably never in reality) is not
treated as an error return.
|
|
casting to int would not be correct because high bits could be lost.
mapping the high bits down onto low bits would be costlier in the
common case where the result is just used in a conditional. changing
the type of the bit array elements to int would permute the order of
the bit array on 64-bit big endian systems, so that's not an option
either.
|
|
|
|
|
|
this is a case of poorly written man pages not matching the actual
implementation, and why i hate implementing nonstandard interfaces
with no actual documentation of how they're intended to work.
|
|
at the same time, make struct statfs match the traditional definition
and make it more useful, especially the fsid_t stuff.
|
|
|
|
|
|
|
|
1 is too small if int is 32-bit but unsigned long is 64-bit. be
explicit and use 1UL.
|
|
|
|
|
|
|
|
|
|
|
|
this is explicitly allowed by POSIX
|
|
|
|
some of these definitions were just plain wrong, others based on
outdated ancient "non-64" versions of the kernel interface.
as much as possible has now been moved out of bits/*
these changes break abi (the old abi for these functions was wrong),
but since they were not working anyway it can hardly matter.
|
|
RLIM_* is in the reserved namespace for this header
|
|
trash in the upper 32 bits was making the kernel sleep forever in
select on 64-bit systems.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with this patch, the syscallN() functions are no longer needed; a
variadic syscall() macro allows syscalls with anywhere from 0 to 6
arguments to be made with a single macro name. also, manually casting
each non-integer argument with (long) is no longer necessary; the
casts are hidden in the macros.
some source files which depended on being able to define the old macro
SYSCALL_RETURNS_ERRNO have been modified to directly use __syscall()
instead of syscall(). references to SYSCALL_SIGSET_SIZE and SYSCALL_LL
have also been changed.
x86_64 has not been tested, and may need a follow-up commit to fix any
minor bugs/oversights.
|
|
|
|
this commit shuffles around the location of syscall definitions so
that we can make a syscall() library function with both SYS_* and
__NR_* style syscall names available to user applications, provides
the syscall() library function, and optimizes the code that performs
the actual inline syscalls in the library itself.
previously on i386 when built as PIC (shared library), syscalls were
incurring bus lock (lock prefix) overhead at entry and exit, due to
the way the ebx register was being loaded (xchg instruction with a
memory operand). now the xchg takes place between two registers.
further cleanup to arch/$(ARCH)/syscall.h is planned.
|
|
this commit is part of an effort to make more of busybox work
out-of-the-box.
|
|
|
|
also remove some legacy nonsense that crept in.
|
|
|
|
|
|
|
|
|
|
|
|
this is a nonstandard header used only by backwards programs, but for
some reason it's extremely popular. the recent namespace cleanup fixes
broke it, because PATH_MAX and NAME_MAX will not be defined unless an
approriate feature test macro has been defined. moreover, it's too
late to just #define _GNU_SOURCE in param.h, since limits.h may have
already been included.
let's just hard-code standard values and be done with it.
|