about summary refs log tree commit diff
path: root/src/ipc/semctl.c
Commit message (Collapse)AuthorAgeFilesLines
* fix type of semctl variadic argumentRich Felker2014-01-081-4/+10
| | | | | | | | | | | | | | | | | | per POSIX, the variadic argument has type union semun, which may contain a pointer or int; the type read depends on the command being issued. this allows the userspace part of the implementation to be type-correct without requiring special-casing for different commands. the kernel always expects to receive the argument interpreted as unsigned long (or equivalently, a pointer), and does its own handling of extracting the int portion from the representation, as needed. this change fixes two possible issues: most immediately, reading the argument as a (signed) long and passing it to the syscall would perform incorrect sign-extension of pointers on the upcoming x32 target. the other possible issue is that some archs may use different (user-space) argument-passing convention for unions, preventing va_arg from correctly obtaining the argument when the type long (or even unsigned long or void *) is passed to it.
* fix IPC_64 in msgctl tooRich Felker2012-09-221-4/+0
|
* fix broken semctl on systems that don't use IPC_64 flagRich Felker2012-09-221-2/+6
| | | | | not tested on mips and arm; they may still be broken. x86_64 should be ok now.
* numerous fixes to sysv ipcRich Felker2011-04-131-1/+1
| | | | | | | | | | 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.
* consistency: change all remaining syscalls to use SYS_ rather than __NR_ prefixRich Felker2011-04-061-1/+1
|
* global cleanup to use the new syscall interfaceRich Felker2011-03-201-2/+2
|
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-121-0/+18