2023-08-16 15:38:59 +08:00
|
|
|
/*
|
|
|
|
* 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
|
2023-10-25 20:31:25 +08:00
|
|
|
#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
|
2023-08-16 15:38:59 +08:00
|
|
|
|
|
|
|
#define FUTEX_PRIVATE 128
|
|
|
|
|
|
|
|
#define FUTEX_CLOCK_REALTIME 256
|
|
|
|
|
2024-03-28 23:42:56 +08:00
|
|
|
#define FUTEX_WAITERS 0x80000000
|
|
|
|
#define FUTEX_OWNER_DIED 0x40000000
|
|
|
|
#define FUTEX_TID_MASK 0x3fffffff
|
2024-02-23 17:49:15 +08:00
|
|
|
|
|
|
|
struct robust_list
|
|
|
|
{
|
|
|
|
struct robust_list *next;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct robust_list_head
|
|
|
|
{
|
|
|
|
struct robust_list list;
|
|
|
|
long futex_offset;
|
|
|
|
struct robust_list *list_op_pending;
|
|
|
|
};
|
|
|
|
|
2023-08-16 15:38:59 +08:00
|
|
|
/* for pmutex op */
|
|
|
|
#define PMUTEX_INIT 0
|
|
|
|
#define PMUTEX_LOCK 1
|
|
|
|
#define PMUTEX_UNLOCK 2
|
|
|
|
#define PMUTEX_DESTROY 3
|
|
|
|
|
|
|
|
/* for sys/mman.h */
|
|
|
|
|
2023-10-25 20:31:25 +08:00
|
|
|
#define MAP_SHARED 0x01
|
|
|
|
#define MAP_PRIVATE 0x02
|
2023-08-16 15:38:59 +08:00
|
|
|
#define MAP_SHARED_VALIDATE 0x03
|
2023-10-25 20:31:25 +08:00
|
|
|
#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
|
2023-08-16 15:38:59 +08:00
|
|
|
#define MAP_FIXED_NOREPLACE 0x100000
|
2023-10-25 20:31:25 +08:00
|
|
|
#define MAP_FILE 0
|
|
|
|
#define MAP_UNINITIALIZED 0x4000000
|
2023-08-16 15:38:59 +08:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
2023-10-25 20:31:25 +08:00
|
|
|
#define MS_ASYNC 1
|
|
|
|
#define MS_INVALIDATE 2
|
|
|
|
#define MS_SYNC 4
|
2023-08-16 15:38:59 +08:00
|
|
|
|
2023-10-25 20:31:25 +08:00
|
|
|
#define MCL_CURRENT 1
|
|
|
|
#define MCL_FUTURE 2
|
|
|
|
#define MCL_ONFAULT 4
|
2023-08-16 15:38:59 +08:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
2023-10-25 20:31:25 +08:00
|
|
|
#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
|
|
|
|
|
2023-08-16 15:38:59 +08:00
|
|
|
#endif /* __LIBC_MUSL_H__ */
|