xref: /aosp_15_r20/external/llvm-libc/include/llvm-libc-macros/linux/unistd-macros.h (revision 71db0c75aadcf003ffe3238005f61d7618a3fead)
1*71db0c75SAndroid Build Coastguard Worker //===-- Definition of macros from unistd.h --------------------------------===//
2*71db0c75SAndroid Build Coastguard Worker //
3*71db0c75SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*71db0c75SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information.
5*71db0c75SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*71db0c75SAndroid Build Coastguard Worker //
7*71db0c75SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
8*71db0c75SAndroid Build Coastguard Worker 
9*71db0c75SAndroid Build Coastguard Worker #ifndef LLVM_LIBC_MACROS_LINUX_UNISTD_MACROS_H
10*71db0c75SAndroid Build Coastguard Worker #define LLVM_LIBC_MACROS_LINUX_UNISTD_MACROS_H
11*71db0c75SAndroid Build Coastguard Worker 
12*71db0c75SAndroid Build Coastguard Worker // Values for mode argument to the access(...) function.
13*71db0c75SAndroid Build Coastguard Worker #define F_OK 0
14*71db0c75SAndroid Build Coastguard Worker #define X_OK 1
15*71db0c75SAndroid Build Coastguard Worker #define W_OK 2
16*71db0c75SAndroid Build Coastguard Worker #define R_OK 4
17*71db0c75SAndroid Build Coastguard Worker 
18*71db0c75SAndroid Build Coastguard Worker #define _SC_PAGESIZE 1
19*71db0c75SAndroid Build Coastguard Worker #define _SC_PAGE_SIZE _SC_PAGESIZE
20*71db0c75SAndroid Build Coastguard Worker 
21*71db0c75SAndroid Build Coastguard Worker #define _PC_FILESIZEBITS 0
22*71db0c75SAndroid Build Coastguard Worker #define _PC_LINK_MAX 1
23*71db0c75SAndroid Build Coastguard Worker #define _PC_MAX_CANON 2
24*71db0c75SAndroid Build Coastguard Worker #define _PC_MAX_INPUT 3
25*71db0c75SAndroid Build Coastguard Worker #define _PC_NAME_MAX 4
26*71db0c75SAndroid Build Coastguard Worker #define _PC_PATH_MAX 5
27*71db0c75SAndroid Build Coastguard Worker #define _PC_PIPE_BUF 6
28*71db0c75SAndroid Build Coastguard Worker #define _PC_2_SYMLINKS 7
29*71db0c75SAndroid Build Coastguard Worker #define _PC_ALLOC_SIZE_MIN 8
30*71db0c75SAndroid Build Coastguard Worker #define _PC_REC_INCR_XFER_SIZE 9
31*71db0c75SAndroid Build Coastguard Worker #define _PC_REC_MAX_XFER_SIZE 10
32*71db0c75SAndroid Build Coastguard Worker #define _PC_REC_MIN_XFER_SIZE 11
33*71db0c75SAndroid Build Coastguard Worker #define _PC_REC_XFER_ALIGN 12
34*71db0c75SAndroid Build Coastguard Worker #define _PC_SYMLINK_MAX 13
35*71db0c75SAndroid Build Coastguard Worker #define _PC_CHOWN_RESTRICTED 14
36*71db0c75SAndroid Build Coastguard Worker #define _PC_NO_TRUNC 15
37*71db0c75SAndroid Build Coastguard Worker #define _PC_VDISABLE 16
38*71db0c75SAndroid Build Coastguard Worker #define _PC_ASYNC_IO 17
39*71db0c75SAndroid Build Coastguard Worker #define _PC_PRIO_IO 18
40*71db0c75SAndroid Build Coastguard Worker #define _PC_SYNC_IO 19
41*71db0c75SAndroid Build Coastguard Worker 
42*71db0c75SAndroid Build Coastguard Worker // TODO: Move these limit macros to a separate file
43*71db0c75SAndroid Build Coastguard Worker #define _POSIX_CHOWN_RESTRICTED 1
44*71db0c75SAndroid Build Coastguard Worker #define _POSIX_PIPE_BUF 512
45*71db0c75SAndroid Build Coastguard Worker #define _POSIX_NO_TRUNC 1
46*71db0c75SAndroid Build Coastguard Worker #define _POSIX_VDISABLE '\0'
47*71db0c75SAndroid Build Coastguard Worker 
48*71db0c75SAndroid Build Coastguard Worker // Macro to set up the call to the __llvm_libc_syscall function
49*71db0c75SAndroid Build Coastguard Worker // This is to prevent the call from having fewer than 6 arguments, since six
50*71db0c75SAndroid Build Coastguard Worker // arguments are always passed to the syscall. Unnecessary arguments are
51*71db0c75SAndroid Build Coastguard Worker // ignored.
52*71db0c75SAndroid Build Coastguard Worker #define __syscall_helper(sysno, arg1, arg2, arg3, arg4, arg5, arg6, ...)       \
53*71db0c75SAndroid Build Coastguard Worker   __llvm_libc_syscall((long)(sysno), (long)(arg1), (long)(arg2), (long)(arg3), \
54*71db0c75SAndroid Build Coastguard Worker                       (long)(arg4), (long)(arg5), (long)(arg6))
55*71db0c75SAndroid Build Coastguard Worker #define syscall(...) __syscall_helper(__VA_ARGS__, 0, 1, 2, 3, 4, 5, 6)
56*71db0c75SAndroid Build Coastguard Worker 
57*71db0c75SAndroid Build Coastguard Worker #endif // LLVM_LIBC_MACROS_LINUX_UNISTD_MACROS_H
58