PHP 7.4.33
Preview: psx_syscall.h Size: 2.77 KB
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/proc/thread-self/root/usr/include/sys/psx_syscall.h

/*
 * Copyright (c) 2019 Andrew G. Morgan <[email protected]>
 *
 * 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 */

Directory Contents

Dirs: 0 × Files: 86

Name Size Perms Modified Actions
3.22 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.23 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
86 B lrw-r--r-- 2025-06-09 20:25:39
Edit Download
7.06 KB lrw-r--r-- 2024-01-10 14:34:46
Edit Download
20.20 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
3.49 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
921 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1023 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
4.31 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
19 B lrw-r--r-- 2025-06-09 20:25:24
Edit Download
1.37 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.26 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
19 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.63 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.16 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
6.08 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.57 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
3.75 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
4.97 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.70 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.43 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.08 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.17 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
5.42 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
5.48 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.31 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
10.90 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
3.07 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
922 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.10 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.66 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.49 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.03 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
4.87 KB lrw-r--r-- 2025-06-09 20:25:38
Edit Download
1.91 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.77 KB lrw-r--r-- 2024-01-10 14:34:46
Edit Download
5.85 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
19.08 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
5.05 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.41 KB lrw-r--r-- 2025-06-09 20:25:24
Edit Download
1.15 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.59 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.78 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
3.56 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
276 B lrw-r--r-- 2023-10-14 13:06:47
Edit Download
21.64 KB lrw-r--r-- 2023-10-14 13:06:47
Edit Download
4.04 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.99 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.76 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.83 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
20 B lrw-r--r-- 2025-06-09 20:25:24
Edit Download
1.56 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
9.96 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
141 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
29 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
15.86 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.04 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.75 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.55 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.30 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.96 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.48 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
7.52 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.05 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
74 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
6.50 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
1.34 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
1.83 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.56 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
2.15 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
2.44 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
3.48 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
5.58 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
5.70 KB lrw-r--r-- 2025-06-09 20:25:24
Edit Download
6.13 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.42 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
20 B lrw-r--r-- 2025-06-09 20:25:25
Edit Download
5.08 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.42 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
161 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.83 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
1.17 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
22 B lrw-r--r-- 2025-06-09 20:25:26
Edit Download
2.40 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download
5.47 KB lrw-r--r-- 2025-06-09 20:25:25
Edit Download
4.17 KB lrw-r--r-- 2025-06-09 20:25:26
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).