/* * Copyright (c) 2006-2023, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2023-07-11 RT-Thread first version */ #ifndef __LIBC_MUSL_H__ #define __LIBC_MUSL_H__ /* from internal/futex.h */ #define FUTEX_WAIT 0 #define FUTEX_WAKE 1 #define FUTEX_FD 2 #define FUTEX_REQUEUE 3 #define FUTEX_CMP_REQUEUE 4 #define FUTEX_WAKE_OP 5 #define FUTEX_LOCK_PI 6 #define FUTEX_UNLOCK_PI 7 #define FUTEX_TRYLOCK_PI 8 #define FUTEX_WAIT_BITSET 9 #define FUTEX_PRIVATE 128 #define FUTEX_CLOCK_REALTIME 256 #define FUTEX_WAITERS 0x80000000 #define FUTEX_OWNER_DIED 0x40000000 #define FUTEX_TID_MASK 0x3fffffff struct robust_list { struct robust_list *next; }; struct robust_list_head { struct robust_list list; long futex_offset; struct robust_list *list_op_pending; }; /* for pmutex op */ #define PMUTEX_INIT 0 #define PMUTEX_LOCK 1 #define PMUTEX_UNLOCK 2 #define PMUTEX_DESTROY 3 /* for sys/mman.h */ #define MAP_SHARED 0x01 #define MAP_PRIVATE 0x02 #define MAP_SHARED_VALIDATE 0x03 #define MAP_TYPE 0x0f #define MAP_FIXED 0x10 #define MAP_ANON 0x20 #define MAP_ANONYMOUS MAP_ANON #define MAP_NORESERVE 0x4000 #define MAP_GROWSDOWN 0x0100 #define MAP_DENYWRITE 0x0800 #define MAP_EXECUTABLE 0x1000 #define MAP_LOCKED 0x2000 #define MAP_POPULATE 0x8000 #define MAP_NONBLOCK 0x10000 #define MAP_STACK 0x20000 #define MAP_HUGETLB 0x40000 #define MAP_SYNC 0x80000 #define MAP_FIXED_NOREPLACE 0x100000 #define MAP_FILE 0 #define MAP_UNINITIALIZED 0x4000000 #define MAP_HUGE_SHIFT 26 #define MAP_HUGE_MASK 0x3f #define MAP_HUGE_16KB (14 << 26) #define MAP_HUGE_64KB (16 << 26) #define MAP_HUGE_512KB (19 << 26) #define MAP_HUGE_1MB (20 << 26) #define MAP_HUGE_2MB (21 << 26) #define MAP_HUGE_8MB (23 << 26) #define MAP_HUGE_16MB (24 << 26) #define MAP_HUGE_32MB (25 << 26) #define MAP_HUGE_256MB (28 << 26) #define MAP_HUGE_512MB (29 << 26) #define MAP_HUGE_1GB (30 << 26) #define MAP_HUGE_2GB (31 << 26) #define MAP_HUGE_16GB (34U << 26) #define PROT_NONE 0 #define PROT_READ 1 #define PROT_WRITE 2 #define PROT_EXEC 4 #define PROT_GROWSDOWN 0x01000000 #define PROT_GROWSUP 0x02000000 #define MS_ASYNC 1 #define MS_INVALIDATE 2 #define MS_SYNC 4 #define MCL_CURRENT 1 #define MCL_FUTURE 2 #define MCL_ONFAULT 4 #define POSIX_MADV_NORMAL 0 #define POSIX_MADV_RANDOM 1 #define POSIX_MADV_SEQUENTIAL 2 #define POSIX_MADV_WILLNEED 3 #define POSIX_MADV_DONTNEED 4 #define CLONE_VM 0x00000100 #define CLONE_FS 0x00000200 #define CLONE_FILES 0x00000400 #define CLONE_SIGHAND 0x00000800 #define CLONE_PTRACE 0x00002000 #define CLONE_VFORK 0x00004000 #define CLONE_PARENT 0x00008000 #define CLONE_THREAD 0x00010000 #define CLONE_NEWNS 0x00020000 #define CLONE_SYSVSEM 0x00040000 #define CLONE_SETTLS 0x00080000 #define CLONE_PARENT_SETTID 0x00100000 #define CLONE_CHILD_CLEARTID 0x00200000 #define CLONE_DETACHED 0x00400000 #define CLONE_UNTRACED 0x00800000 #define CLONE_CHILD_SETTID 0x01000000 #define CLONE_NEWCGROUP 0x02000000 #define CLONE_NEWUTS 0x04000000 #define CLONE_NEWIPC 0x08000000 #define CLONE_NEWUSER 0x10000000 #define CLONE_NEWPID 0x20000000 #define CLONE_NEWNET 0x40000000 #define CLONE_IO 0x80000000 /* arg[] -> flags * stack * new_tid * tls * set_clear_tid_address * quit_func * start_args * */ #define SYS_CLONE_ARGS_NR 7 /* wait.h */ /* options */ #define WNOHANG 1 #define WUNTRACED 2 #define WSTOPPED 2 #define WEXITED 4 #define WCONTINUED 8 #define WNOWAIT 0x1000000 #define __WNOTHREAD 0x20000000 #define __WALL 0x40000000 #define __WCLONE 0x80000000 #endif /* __LIBC_MUSL_H__ */