/
usr
/
include
/
sys
/
/usr/include/sys
mkdir
upload
Name
Size
Mode
Actions
acct.h
3296
0644
edit
dl
rm
auxv.h
1259
0644
edit
dl
rm
bitypes.h
86
0644
edit
dl
rm
capability.h
7233
0644
edit
dl
rm
cdefs.h
20682
0644
edit
dl
rm
debugreg.h
3575
0644
edit
dl
rm
dir.h
921
0644
edit
dl
rm
elf.h
1023
0644
edit
dl
rm
epoll.h
4410
0644
edit
dl
rm
errno.h
19
0644
edit
dl
rm
eventfd.h
1399
0644
edit
dl
rm
fanotify.h
1291
0644
edit
dl
rm
fcntl.h
19
0644
edit
dl
rm
file.h
1674
0644
edit
dl
rm
fsuid.h
1187
0644
edit
dl
rm
gmon.h
6230
0644
edit
dl
rm
gmon_out.h
2635
0644
edit
dl
rm
inotify.h
3837
0644
edit
dl
rm
io.h
5085
0644
edit
dl
rm
ioctl.h
1739
0644
edit
dl
rm
ipc.h
1461
0644
edit
dl
rm
kd.h
1111
0644
edit
dl
rm
klog.h
1203
0644
edit
dl
rm
mman.h
5551
0644
edit
dl
rm
mount.h
5611
0644
edit
dl
rm
msg.h
2365
0644
edit
dl
rm
mtio.h
11162
0644
edit
dl
rm
param.h
3148
0644
edit
dl
rm
pci.h
922
0644
edit
dl
rm
perm.h
1126
0644
edit
dl
rm
personality.h
2722
0644
edit
dl
rm
poll.h
2549
0644
edit
dl
rm
prctl.h
1058
0644
edit
dl
rm
procfs.h
4985
0644
edit
dl
rm
profil.h
1958
0644
edit
dl
rm
psx_syscall.h
2833
0644
edit
dl
rm
ptrace.h
5988
0644
edit
dl
rm
queue.h
19539
0644
edit
dl
rm
quota.h
5172
0644
edit
dl
rm
random.h
1443
0644
edit
dl
rm
raw.h
1181
0644
edit
dl
rm
reboot.h
1632
0644
edit
dl
rm
reg.h
1826
0644
edit
dl
rm
resource.h
3645
0644
edit
dl
rm
sdt-config.h
276
0644
edit
dl
rm
sdt.h
22157
0644
edit
dl
rm
select.h
4140
0644
edit
dl
rm
sem.h
2036
0644
edit
dl
rm
sendfile.h
1805
0644
edit
dl
rm
shm.h
1873
0644
edit
dl
rm
signal.h
20
0644
edit
dl
rm
signalfd.h
1599
0644
edit
dl
rm
socket.h
10203
0644
edit
dl
rm
socketvar.h
141
0644
edit
dl
rm
soundcard.h
29
0644
edit
dl
rm
stat.h
16236
0644
edit
dl
rm
statfs.h
2093
0644
edit
dl
rm
statvfs.h
2819
0644
edit
dl
rm
swap.h
1592
0644
edit
dl
rm
syscall.h
1335
0644
edit
dl
rm
sysctl.h
2004
0644
edit
dl
rm
sysinfo.h
1517
0644
edit
dl
rm
syslog.h
7702
0644
edit
dl
rm
sysmacros.h
2102
0644
edit
dl
rm
termios.h
74
0644
edit
dl
rm
time.h
6656
0644
edit
dl
rm
timeb.h
1376
0644
edit
dl
rm
timerfd.h
1873
0644
edit
dl
rm
times.h
1596
0644
edit
dl
rm
timex.h
2205
0644
edit
dl
rm
ttychars.h
2499
0644
edit
dl
rm
ttydefaults.h
3568
0644
edit
dl
rm
types.h
5712
0644
edit
dl
rm
ucontext.h
5841
0644
edit
dl
rm
uio.h
6279
0644
edit
dl
rm
un.h
1452
0644
edit
dl
rm
unistd.h
20
0644
edit
dl
rm
user.h
5207
0644
edit
dl
rm
utsname.h
2480
0644
edit
dl
rm
vfs.h
161
0644
edit
dl
rm
vlimit.h
1879
0644
edit
dl
rm
vm86.h
1198
0644
edit
dl
rm
vt.h
22
0644
edit
dl
rm
vtimes.h
2462
0644
edit
dl
rm
wait.h
5604
0644
edit
dl
rm
xattr.h
4274
0644
edit
dl
rm
Edit:
/usr/include/sys/psx_syscall.h
(2833B)
/* * Copyright (c) 2019 Andrew G. Morgan <morgan@kernel.org> * * This header, and the -lpsx library, provide a number of things to * support POSIX semantics for syscalls associated with the pthread * library. Linking this code is tricky and is done as follows: * * ld ... -lpsx -lpthread --wrap=pthread_create * or, gcc ... -lpsx -lpthread -Wl,-wrap,pthread_create * * glibc provides a subset of this functionality natively through the * nptl:setxid mechanism and could implement psx_syscall() directly * using that style of functionality but, as of 2019-11-30, the setxid * mechanism is limited to 9 specific set*() syscalls that do not * support the syscall6 API (needed for prctl functions and the ambient * capabilities set for example). */ #ifndef _SYS_PSX_SYSCALL_H #define _SYS_PSX_SYSCALL_H #ifdef __cplusplus extern "C" { #endif #include <pthread.h> /* * psx_syscall performs the specified syscall on all psx registered * threads. The mechanism by which this occurs is much less efficient * than a standard system call on Linux, so it should only be used * when POSIX semantics are required to change process relevant * security state. * * Glibc has native support for POSIX semantics on setgroups() and the * 8 set*[gu]id() functions. So, there is no need to use psx_syscall() * for these calls. This call exists for all the other system calls * that need to maintain parity on all pthreads of a program. * * Some macrology is used to allow the caller to provide only as many * arguments as needed, thus psx_syscall() cannot be used as a * function pointer. For those situations, we define psx_syscall3() * and psx_syscall6(). */ #define psx_syscall(syscall_nr, ...) \ __psx_syscall(syscall_nr, __VA_ARGS__, (long int) 6, (long int) 5, \ (long int) 4, (long int) 3, (long int) 2, \ (long int) 1, (long int) 0) long int __psx_syscall(long int syscall_nr, ...); long int psx_syscall3(long int syscall_nr, long int arg1, long int arg2, long int arg3); long int psx_syscall6(long int syscall_nr, long int arg1, long int arg2, long int arg3, long int arg4, long int arg5, long int arg6); /* * This function should be used by systems to obtain pointers to the * two syscall functions provided by the PSX library. A linkage trick * is to define this function as weak in a library that can optionally * use libpsx and then, should the caller link -lpsx, that library can * implicitly use these POSIX semantics syscalls. See libcap for an * example of this useage. */ void psx_load_syscalls(long int (**syscall_fn)(long int, long int, long int, long int), long int (**syscall6_fn)(long int, long int, long int, long int, long int, long int, long int)); #ifdef __cplusplus } #endif #endif /* _SYS_PSX_SYSCALL_H */
Save
cmd:
run