usr
/
include
/
sys
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
acct.h
3.22 KB
Rename
Delete
auxv.h
1.23 KB
Rename
Delete
bitypes.h
86 bytes
Rename
Delete
capability.h
7.06 KB
Rename
Delete
cdefs.h
20.20 KB
Rename
Delete
debugreg.h
3.49 KB
Rename
Delete
dir.h
921 bytes
Rename
Delete
elf.h
1023 bytes
Rename
Delete
epoll.h
4.31 KB
Rename
Delete
errno.h
19 bytes
Rename
Delete
eventfd.h
1.37 KB
Rename
Delete
fanotify.h
1.26 KB
Rename
Delete
fcntl.h
19 bytes
Rename
Delete
file.h
1.63 KB
Rename
Delete
fsuid.h
1.16 KB
Rename
Delete
gmon.h
6.08 KB
Rename
Delete
gmon_out.h
2.57 KB
Rename
Delete
inotify.h
3.75 KB
Rename
Delete
io.h
4.97 KB
Rename
Delete
ioctl.h
1.70 KB
Rename
Delete
ipc.h
1.43 KB
Rename
Delete
kd.h
1.08 KB
Rename
Delete
klog.h
1.17 KB
Rename
Delete
mman.h
5.42 KB
Rename
Delete
mount.h
5.48 KB
Rename
Delete
msg.h
2.31 KB
Rename
Delete
mtio.h
10.90 KB
Rename
Delete
param.h
3.07 KB
Rename
Delete
pci.h
922 bytes
Rename
Delete
perm.h
1.10 KB
Rename
Delete
personality.h
2.66 KB
Rename
Delete
poll.h
2.49 KB
Rename
Delete
prctl.h
1.03 KB
Rename
Delete
procfs.h
4.87 KB
Rename
Delete
profil.h
1.91 KB
Rename
Delete
psx_syscall.h
2.77 KB
Rename
Delete
ptrace.h
5.85 KB
Rename
Delete
queue.h
19.08 KB
Rename
Delete
quota.h
5.05 KB
Rename
Delete
random.h
1.41 KB
Rename
Delete
raw.h
1.15 KB
Rename
Delete
reboot.h
1.59 KB
Rename
Delete
reg.h
1.78 KB
Rename
Delete
resource.h
3.56 KB
Rename
Delete
sdt-config.h
276 bytes
Rename
Delete
sdt.h
21.64 KB
Rename
Delete
select.h
4.04 KB
Rename
Delete
sem.h
1.99 KB
Rename
Delete
sendfile.h
1.76 KB
Rename
Delete
shm.h
1.83 KB
Rename
Delete
signal.h
20 bytes
Rename
Delete
signalfd.h
1.56 KB
Rename
Delete
socket.h
9.96 KB
Rename
Delete
socketvar.h
141 bytes
Rename
Delete
soundcard.h
29 bytes
Rename
Delete
stat.h
15.86 KB
Rename
Delete
statfs.h
2.04 KB
Rename
Delete
statvfs.h
2.75 KB
Rename
Delete
swap.h
1.55 KB
Rename
Delete
syscall.h
1.30 KB
Rename
Delete
sysctl.h
1.96 KB
Rename
Delete
sysinfo.h
1.48 KB
Rename
Delete
syslog.h
7.52 KB
Rename
Delete
sysmacros.h
2.05 KB
Rename
Delete
termios.h
74 bytes
Rename
Delete
time.h
6.50 KB
Rename
Delete
timeb.h
1.34 KB
Rename
Delete
timerfd.h
1.83 KB
Rename
Delete
times.h
1.56 KB
Rename
Delete
timex.h
2.15 KB
Rename
Delete
ttychars.h
2.44 KB
Rename
Delete
ttydefaults.h
3.48 KB
Rename
Delete
types.h
5.58 KB
Rename
Delete
ucontext.h
5.70 KB
Rename
Delete
uio.h
6.13 KB
Rename
Delete
un.h
1.42 KB
Rename
Delete
unistd.h
20 bytes
Rename
Delete
user.h
5.08 KB
Rename
Delete
utsname.h
2.42 KB
Rename
Delete
vfs.h
161 bytes
Rename
Delete
vlimit.h
1.83 KB
Rename
Delete
vm86.h
1.17 KB
Rename
Delete
vt.h
22 bytes
Rename
Delete
vtimes.h
2.40 KB
Rename
Delete
wait.h
5.47 KB
Rename
Delete
xattr.h
4.17 KB
Rename
Delete
/* * 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