mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Implement POSIX pthread, signal, sys/resource, unistd for Linux.
This commit is contained in:
@@ -513,6 +513,45 @@ when ODIN_OS == .Darwin {
|
|||||||
sched_priority: c.int, /* [PSX] process or thread execution scheduling priority */
|
sched_priority: c.int, /* [PSX] process or thread execution scheduling priority */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else when ODIN_OS == .Linux {
|
||||||
|
|
||||||
|
PTHREAD_CANCEL_DEFERRED :: 0
|
||||||
|
PTHREAD_CANCEL_ASYNCHRONOUS :: 1
|
||||||
|
|
||||||
|
PTHREAD_CANCEL_ENABLE :: 0
|
||||||
|
PTHREAD_CANCEL_DISABLE :: 1
|
||||||
|
|
||||||
|
PTHREAD_CANCELED :: rawptr(uintptr(-1))
|
||||||
|
|
||||||
|
PTHREAD_CREATE_JOINABLE :: 0
|
||||||
|
PTHREAD_CREATE_DETACHED :: 1
|
||||||
|
|
||||||
|
PTHREAD_INHERIT_SCHED :: 0
|
||||||
|
PTHREAD_EXPLICIT_SCHED :: 1
|
||||||
|
|
||||||
|
PTHREAD_PRIO_NONE :: 0
|
||||||
|
PTHREAD_PRIO_INHERIT :: 1
|
||||||
|
PTHREAD_PRIO_PROTECT :: 2
|
||||||
|
|
||||||
|
PTHREAD_PROCESS_PRIVATE :: 0
|
||||||
|
PTHREAD_PROCESS_SHARED :: 1
|
||||||
|
|
||||||
|
PTHREAD_SCOPE_SYSTEM :: 0
|
||||||
|
PTHREAD_SCOPE_PROCESS :: 1
|
||||||
|
|
||||||
|
pthread_t :: distinct c.ulong
|
||||||
|
|
||||||
|
pthread_attr_t :: struct #raw_union {
|
||||||
|
__size: [56]c.char,
|
||||||
|
__align: c.long,
|
||||||
|
}
|
||||||
|
|
||||||
|
pthread_key_t :: distinct c.uint
|
||||||
|
|
||||||
|
sched_param :: struct {
|
||||||
|
sched_priority: c.int, /* [PSX] process or thread execution scheduling priority */
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#panic("posix is unimplemented for the current target")
|
#panic("posix is unimplemented for the current target")
|
||||||
}
|
}
|
||||||
|
|||||||
+148
-3
@@ -220,6 +220,16 @@ foreign lib {
|
|||||||
const struct timespec *restrict);
|
const struct timespec *restrict);
|
||||||
int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
|
int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
when ODIN_OS == .Linux {
|
||||||
|
/* Return number of available real-time signal with highest priority. */
|
||||||
|
@(private)
|
||||||
|
__libc_current_sigrtmin :: proc() -> result ---
|
||||||
|
|
||||||
|
/* Return number of available real-time signal with lowest priority. */
|
||||||
|
@(private)
|
||||||
|
__libc_current_sigrtmax :: proc() -> result ---
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sigval :: struct #raw_union {
|
sigval :: struct #raw_union {
|
||||||
@@ -480,7 +490,7 @@ when ODIN_OS == .Darwin {
|
|||||||
uid_t :: distinct c.uint32_t
|
uid_t :: distinct c.uint32_t
|
||||||
sigset_t :: distinct c.uint32_t
|
sigset_t :: distinct c.uint32_t
|
||||||
|
|
||||||
// MOTE: unimplemented on darwin.
|
// NOTE: unimplemented on darwin.
|
||||||
//
|
//
|
||||||
// SIGRTMIN ::
|
// SIGRTMIN ::
|
||||||
// SIGRTMAX ::
|
// SIGRTMAX ::
|
||||||
@@ -625,7 +635,7 @@ when ODIN_OS == .Darwin {
|
|||||||
__bits: [4]c.uint32_t,
|
__bits: [4]c.uint32_t,
|
||||||
}
|
}
|
||||||
|
|
||||||
// MOTE: unimplemented on darwin.
|
// NOTE: unimplemented on FreeBSD.
|
||||||
//
|
//
|
||||||
// SIGRTMIN :: 65
|
// SIGRTMIN :: 65
|
||||||
// SIGRTMAX :: 126
|
// SIGRTMAX :: 126
|
||||||
@@ -794,7 +804,7 @@ when ODIN_OS == .Darwin {
|
|||||||
__bits: [4]c.uint32_t,
|
__bits: [4]c.uint32_t,
|
||||||
}
|
}
|
||||||
|
|
||||||
// MOTE: unimplemented on darwin.
|
// NOTE: unimplemented on NetBSD.
|
||||||
//
|
//
|
||||||
// SIGRTMIN :: 33
|
// SIGRTMIN :: 33
|
||||||
// SIGRTMAX :: 63
|
// SIGRTMAX :: 63
|
||||||
@@ -1126,6 +1136,141 @@ when ODIN_OS == .Darwin {
|
|||||||
SI_ASYNCIO :: -4 // NOTE: not implemented
|
SI_ASYNCIO :: -4 // NOTE: not implemented
|
||||||
SI_MESGQ :: -5 // NOTE: not implemented
|
SI_MESGQ :: -5 // NOTE: not implemented
|
||||||
|
|
||||||
|
} else when ODIN_OS == .Linux {
|
||||||
|
|
||||||
|
// Request that signal be held
|
||||||
|
SIG_HOLD :: rawptr(uintptr(2))
|
||||||
|
|
||||||
|
uid_t :: distinct c.uint32_t
|
||||||
|
sigset_t :: struct {
|
||||||
|
[1024/(8 * size_of(c.ulong))]val
|
||||||
|
}
|
||||||
|
|
||||||
|
SIGRTMIN :: __libc_current_sigrtmin()
|
||||||
|
SIGRTMAX :: __libc_current_sigrtmax()
|
||||||
|
|
||||||
|
SIGHUP :: 1
|
||||||
|
SIGQUIT :: 3
|
||||||
|
SIGTRAP :: 5
|
||||||
|
SIGBUS :: 7
|
||||||
|
SIGKILL :: 9
|
||||||
|
SIGUSR1 :: 10
|
||||||
|
SIGUSR2 :: 12
|
||||||
|
SIGPIPE :: 13
|
||||||
|
SIGALRM :: 14
|
||||||
|
SIGCHLD :: 17
|
||||||
|
SIGCONT :: 18
|
||||||
|
SIGSTOP :: 19
|
||||||
|
SIGTSTP :: 20
|
||||||
|
SIGTTIN :: 21
|
||||||
|
SIGTTOU :: 22
|
||||||
|
SIGURG :: 23
|
||||||
|
SIGXCPU :: 24
|
||||||
|
SIGXFSZ :: 25
|
||||||
|
SIGVTALRM :: 26
|
||||||
|
SIGPROF :: 27
|
||||||
|
SIGPOLL :: 29
|
||||||
|
SIGSYS :: 31
|
||||||
|
|
||||||
|
sigaction :: struct {
|
||||||
|
sa_handler: proc "c" (Signal),
|
||||||
|
sa_flags: SA_Flags,
|
||||||
|
sa_mask: sigset_t,
|
||||||
|
}
|
||||||
|
|
||||||
|
SIG_BLOCK :: 0
|
||||||
|
SIG_UNBLOCK :: 1
|
||||||
|
SIG_SETMASK :: 2
|
||||||
|
|
||||||
|
SA_NOCLDSTOP :: 1
|
||||||
|
SA_NOCLDWAIT :: 2
|
||||||
|
SA_SIGINFO :: 4
|
||||||
|
SA_ONSTACK :: 0x08000000
|
||||||
|
SA_RESTART :: 0x10000000
|
||||||
|
SA_NODEFER :: 0x40000000
|
||||||
|
SA_RESETHAND :: 0x80000000
|
||||||
|
|
||||||
|
SS_ONSTACK :: 1
|
||||||
|
SS_DISABLE :: 2
|
||||||
|
|
||||||
|
MINSIGSTKSZ :: 2048
|
||||||
|
SIGSTKSZ :: 8192
|
||||||
|
|
||||||
|
stack_t :: struct {
|
||||||
|
ss_sp: rawptr, /* [PSX] stack base or pointer */
|
||||||
|
ss_flags: SS_Flags, /* [PSX] flags */
|
||||||
|
ss_size: c.size_t, /* [PSX] stack size */
|
||||||
|
}
|
||||||
|
|
||||||
|
// WARNING: This implementaion might be completely wrong and need to be reviewed and corrected.
|
||||||
|
siginfo_t :: struct {
|
||||||
|
si_signo: Signal, /* [PSX] signal number */
|
||||||
|
si_code: struct #raw_union { /* [PSX] specific more detailed codes per signal */
|
||||||
|
ill: ILL_Code,
|
||||||
|
fpe: FPE_Code,
|
||||||
|
segv: SEGV_Code,
|
||||||
|
bus: BUS_Code,
|
||||||
|
trap: TRAP_Code,
|
||||||
|
chld: CLD_Code,
|
||||||
|
poll: POLL_Code,
|
||||||
|
any: Any_Code,
|
||||||
|
},
|
||||||
|
si_errno: Errno, /* [PSX] errno value associated with this signal */
|
||||||
|
si_pid: pid_t, /* [PSX] sending process ID */
|
||||||
|
si_uid: uid_t, /* [PSX] real user ID of sending process */
|
||||||
|
si_addr: rawptr, /* [PSX] address of faulting instruction */
|
||||||
|
si_status: c.int, /* [PSX] exit value or signal */
|
||||||
|
si_band: c.long, /* [PSX] band event for SIGPOLL */
|
||||||
|
si_value: sigval, /* [PSX] signal value */
|
||||||
|
}
|
||||||
|
|
||||||
|
ILL_ILLOPC :: 1
|
||||||
|
ILL_ILLOPN :: 2
|
||||||
|
ILL_ILLADR :: 3
|
||||||
|
ILL_ILLTRP :: 4
|
||||||
|
ILL_PRVOPC :: 5
|
||||||
|
ILL_PRVREG :: 6
|
||||||
|
ILL_COPROC :: 7
|
||||||
|
ILL_BADSTK :: 8
|
||||||
|
|
||||||
|
FPE_INTDIV :: 1
|
||||||
|
FPE_INTOVF :: 2
|
||||||
|
FPE_FLTDIV :: 3
|
||||||
|
FPE_FLTOVF :: 4
|
||||||
|
FPE_FLTUND :: 5
|
||||||
|
FPE_FLTRES :: 6
|
||||||
|
FPE_FLTINV :: 7
|
||||||
|
FPE_FLTSUB :: 8
|
||||||
|
|
||||||
|
SEGV_MAPERR :: 1
|
||||||
|
SEGV_ACCERR :: 2
|
||||||
|
|
||||||
|
BUS_ADRALN :: 1
|
||||||
|
BUS_ADRERR :: 2
|
||||||
|
BUS_OBJERR :: 3
|
||||||
|
|
||||||
|
TRAP_BRKPT :: 1
|
||||||
|
TRAP_TRACE :: 2
|
||||||
|
|
||||||
|
CLD_EXITED :: 1
|
||||||
|
CLD_KILLED :: 2
|
||||||
|
CLD_DUMPED :: 3
|
||||||
|
CLD_TRAPPED :: 4
|
||||||
|
CLD_STOPPED :: 5
|
||||||
|
CLD_CONTINUED :: 6
|
||||||
|
|
||||||
|
POLL_IN :: 1
|
||||||
|
POLL_OUT :: 2
|
||||||
|
POLL_MSG :: 3
|
||||||
|
POLL_ERR :: 4
|
||||||
|
POLL_PRI :: 5
|
||||||
|
POLL_HUP :: 6
|
||||||
|
|
||||||
|
SI_USER :: 0
|
||||||
|
SI_QUEUE :: -1
|
||||||
|
SI_TIMER :: -2
|
||||||
|
SI_MESGQ :: -3
|
||||||
|
SI_ASYNCIO :: -4
|
||||||
} else {
|
} else {
|
||||||
#panic("posix is unimplemented for the current target")
|
#panic("posix is unimplemented for the current target")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ when ODIN_OS == .NetBSD {
|
|||||||
@(private) LGETRUSAGE :: "getrusage"
|
@(private) LGETRUSAGE :: "getrusage"
|
||||||
}
|
}
|
||||||
|
|
||||||
when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS == .OpenBSD {
|
when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS == .OpenBSD || ODIN_OS == .Linux {
|
||||||
|
|
||||||
PRIO_PROCESS :: 0
|
PRIO_PROCESS :: 0
|
||||||
PRIO_PGRP :: 1
|
PRIO_PGRP :: 1
|
||||||
@@ -103,7 +103,7 @@ when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS
|
|||||||
|
|
||||||
rlim_t :: distinct c.uint64_t
|
rlim_t :: distinct c.uint64_t
|
||||||
|
|
||||||
RLIM_INFINITY :: (rlim_t(1) << 63) - 1
|
RLIM_INFINITY :: max(rlim_t) - 1 when ODIN_OS == .Linux else (rlim_t(1) << 63) - 1
|
||||||
RLIM_SAVED_MAX :: RLIM_INFINITY
|
RLIM_SAVED_MAX :: RLIM_INFINITY
|
||||||
RLIM_SAVED_CUR :: RLIM_INFINITY
|
RLIM_SAVED_CUR :: RLIM_INFINITY
|
||||||
|
|
||||||
@@ -143,9 +143,13 @@ when ODIN_OS == .Darwin || ODIN_OS == .FreeBSD || ODIN_OS == .NetBSD || ODIN_OS
|
|||||||
RLIMIT_CPU :: 0
|
RLIMIT_CPU :: 0
|
||||||
RLIMIT_DATA :: 2
|
RLIMIT_DATA :: 2
|
||||||
RLIMIT_FSIZE :: 1
|
RLIMIT_FSIZE :: 1
|
||||||
RLIMIT_NOFILE :: 8
|
RLIMIT_NOFILE :: 7 when ODIN_OS == .Linux else 8
|
||||||
RLIMIT_STACK :: 3
|
RLIMIT_STACK :: 3
|
||||||
RLIMIT_AS :: 5 when ODIN_OS == .Darwin || ODIN_OS == .OpenBSD else 10
|
when ODIN_OS == .Linux {
|
||||||
|
RLIMIT_AS :: 9
|
||||||
|
} else {
|
||||||
|
RLIMIT_AS :: 5 when ODIN_OS == .Darwin || ODIN_OS == .OpenBSD else 10
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#panic("posix is unimplemented for the current target")
|
#panic("posix is unimplemented for the current target")
|
||||||
|
|||||||
+243
-57
@@ -1181,20 +1181,20 @@ when ODIN_OS == .Darwin {
|
|||||||
F_TLOCK :: 2
|
F_TLOCK :: 2
|
||||||
F_ULOCK :: 0
|
F_ULOCK :: 0
|
||||||
|
|
||||||
_CS_PATH :: 1
|
_CS_PATH :: 1
|
||||||
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
||||||
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
||||||
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
||||||
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
||||||
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
||||||
|
|
||||||
_PC_LINK_MAX :: 1
|
_PC_LINK_MAX :: 1
|
||||||
_PC_MAX_CANON :: 2
|
_PC_MAX_CANON :: 2
|
||||||
@@ -1362,20 +1362,20 @@ when ODIN_OS == .Darwin {
|
|||||||
F_TLOCK :: 2
|
F_TLOCK :: 2
|
||||||
F_ULOCK :: 0
|
F_ULOCK :: 0
|
||||||
|
|
||||||
_CS_PATH :: 1
|
_CS_PATH :: 1
|
||||||
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
||||||
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
||||||
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
||||||
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
||||||
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
||||||
|
|
||||||
_PC_LINK_MAX :: 1
|
_PC_LINK_MAX :: 1
|
||||||
_PC_MAX_CANON :: 2
|
_PC_MAX_CANON :: 2
|
||||||
@@ -1543,20 +1543,20 @@ when ODIN_OS == .Darwin {
|
|||||||
F_TLOCK :: 2
|
F_TLOCK :: 2
|
||||||
F_ULOCK :: 0
|
F_ULOCK :: 0
|
||||||
|
|
||||||
_CS_PATH :: 1
|
_CS_PATH :: 1
|
||||||
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
||||||
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
||||||
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
||||||
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
||||||
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
||||||
|
|
||||||
_PC_LINK_MAX :: 1
|
_PC_LINK_MAX :: 1
|
||||||
_PC_MAX_CANON :: 2
|
_PC_MAX_CANON :: 2
|
||||||
@@ -1655,7 +1655,6 @@ when ODIN_OS == .Darwin {
|
|||||||
_SC_TTY_NAME_MAX :: 68
|
_SC_TTY_NAME_MAX :: 68
|
||||||
_SC_HOST_NAME_MAX :: 69
|
_SC_HOST_NAME_MAX :: 69
|
||||||
|
|
||||||
_SC_PASS_MAX :: 70
|
|
||||||
_SC_REGEXP :: 71
|
_SC_REGEXP :: 71
|
||||||
_SC_SHELL :: 72
|
_SC_SHELL :: 72
|
||||||
_SC_SYMLOOP_MAX :: 73
|
_SC_SYMLOOP_MAX :: 73
|
||||||
@@ -1729,20 +1728,20 @@ when ODIN_OS == .Darwin {
|
|||||||
F_TLOCK :: 2
|
F_TLOCK :: 2
|
||||||
F_ULOCK :: 0
|
F_ULOCK :: 0
|
||||||
|
|
||||||
_CS_PATH :: 1
|
_CS_PATH :: 1
|
||||||
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 2
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 3
|
||||||
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 4
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 5
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 6
|
||||||
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 7
|
||||||
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 8
|
||||||
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 9
|
||||||
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
_CS_POSIX_V6_LP64_OFF64_LIBS :: 10
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 11
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 12
|
||||||
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 13
|
||||||
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 14
|
||||||
|
|
||||||
_PC_LINK_MAX :: 1
|
_PC_LINK_MAX :: 1
|
||||||
_PC_MAX_CANON :: 2
|
_PC_MAX_CANON :: 2
|
||||||
@@ -1911,6 +1910,193 @@ when ODIN_OS == .Darwin {
|
|||||||
|
|
||||||
_POSIX_VDISABLE :: '\377'
|
_POSIX_VDISABLE :: '\377'
|
||||||
|
|
||||||
|
} else when ODIN_OS == .Linux {
|
||||||
|
|
||||||
|
_F_OK :: 0
|
||||||
|
X_OK :: 1
|
||||||
|
W_OK :: 2
|
||||||
|
R_OK :: 4
|
||||||
|
|
||||||
|
F_LOCK :: 1
|
||||||
|
F_TEST :: 3
|
||||||
|
F_TLOCK :: 2
|
||||||
|
F_ULOCK :: 0
|
||||||
|
|
||||||
|
_CS_PATH :: 1
|
||||||
|
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS :: 2
|
||||||
|
|
||||||
|
_CS_POSIX_V6_ILP32_OFF32_CFLAGS :: 1116
|
||||||
|
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS :: 1117
|
||||||
|
_CS_POSIX_V6_ILP32_OFF32_LIBS :: 1118
|
||||||
|
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS :: 1120
|
||||||
|
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS :: 1121
|
||||||
|
_CS_POSIX_V6_ILP32_OFFBIG_LIBS :: 1122
|
||||||
|
_CS_POSIX_V6_LP64_OFF64_CFLAGS :: 1124
|
||||||
|
_CS_POSIX_V6_LP64_OFF64_LDFLAGS :: 1125
|
||||||
|
_CS_POSIX_V6_LP64_OFF64_LIBS :: 1126
|
||||||
|
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS :: 1128
|
||||||
|
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS :: 1129
|
||||||
|
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS :: 1130
|
||||||
|
|
||||||
|
_PC_LINK_MAX :: 1
|
||||||
|
_PC_MAX_CANON :: 2
|
||||||
|
_PC_MAX_INPUT :: 3
|
||||||
|
_PC_NAME_MAX :: 4
|
||||||
|
_PC_PATH_MAX :: 5
|
||||||
|
_PC_PIPE_BUF :: 6
|
||||||
|
_PC_CHOWN_RESTRICTED :: 7
|
||||||
|
_PC_NO_TRUNC :: 8
|
||||||
|
_PC_VDISABLE :: 9
|
||||||
|
_PC_SYNC_IO :: 10
|
||||||
|
_PC_ASYNC_IO :: 11
|
||||||
|
_PC_PRIO_IO :: 12
|
||||||
|
_PC_FILESIZEBITS :: 14
|
||||||
|
_PC_REC_INCR_XFER_SIZE :: 15
|
||||||
|
_PC_REC_MAX_XFER_SIZE :: 16
|
||||||
|
_PC_REC_MIN_XFER_SIZE :: 17
|
||||||
|
_PC_REC_XFER_ALIGN :: 18
|
||||||
|
_PC_ALLOC_SIZE_MIN :: 19
|
||||||
|
_PC_SYMLINK_MAX :: 20
|
||||||
|
_PC_2_SYMLINK :: 21
|
||||||
|
|
||||||
|
_SC_ARG_MAX :: 1
|
||||||
|
_SC_CHILD_MAX :: 2
|
||||||
|
_SC_CLK_TCK :: 3
|
||||||
|
_SC_NGROUPS_MAX :: 4
|
||||||
|
_SC_OPEN_MAX :: 5
|
||||||
|
_SC_STREAM_MAX :: 6
|
||||||
|
_SC_TZNAME_MAX :: 7
|
||||||
|
_SC_JOB_CONTROL :: 8
|
||||||
|
_SC_SAVED_IDS :: 9
|
||||||
|
_SC_REALTIME_SIGNALS :: 10
|
||||||
|
_SC_PRIORITY_SCHEDULING :: 11
|
||||||
|
_SC_TIMERS :: 12
|
||||||
|
_SC_ASYNCHRONOUS_IO :: 13
|
||||||
|
_SC_PRIORITIZED_IO :: 14
|
||||||
|
_SC_SYNCHRONIZED_IO :: 15
|
||||||
|
_SC_FSYNC :: 16
|
||||||
|
_SC_MAPPED_FILES :: 17
|
||||||
|
_SC_MEMLOCK :: 18
|
||||||
|
_SC_MEMLOCK_RANGE :: 19
|
||||||
|
_SC_MEMORY_PROTECTION :: 20
|
||||||
|
_SC_MESSAGE_PASSING :: 21
|
||||||
|
_SC_SEMAPHORES :: 22
|
||||||
|
_SC_SHARED_MEMORY_OBJECTS :: 23
|
||||||
|
_SC_AIO_LISTIO_MAX :: 24
|
||||||
|
_SC_AIO_MAX :: 25
|
||||||
|
_SC_AIO_PRIO_DELTA_MAX :: 26
|
||||||
|
_SC_DELAYTIMER_MAX :: 27
|
||||||
|
_SC_MQ_OPEN_MAX :: 28
|
||||||
|
_SC_MQ_PRIO_MAX :: 29
|
||||||
|
_SC_VERSION :: 30
|
||||||
|
_SC_PAGESIZE :: 31
|
||||||
|
_SC_PAGE_SIZE :: _SC_PAGESIZE
|
||||||
|
_SC_RTSIG_MAX :: 32
|
||||||
|
_SC_SEM_NSEMS_MAX :: 33
|
||||||
|
_SC_SEM_VALUE_MAX :: 34
|
||||||
|
_SC_SIGQUEUE_MAX :: 35
|
||||||
|
_SC_TIMER_MAX :: 36
|
||||||
|
_SC_BC_BASE_MAX :: 37
|
||||||
|
_SC_BC_DIM_MAX :: 38
|
||||||
|
_SC_BC_SCALE_MAX :: 39
|
||||||
|
_SC_BC_STRING_MAX :: 40
|
||||||
|
_SC_COLL_WEIGHTS_MAX :: 41
|
||||||
|
_SC_EXPR_NEST_MAX :: 43
|
||||||
|
_SC_LINE_MAX :: 44
|
||||||
|
_SC_RE_DUP_MAX :: 45
|
||||||
|
_SC_2_VERSION :: 47
|
||||||
|
_SC_2_C_BIND :: 48
|
||||||
|
_SC_2_C_DEV :: 49
|
||||||
|
_SC_2_FORT_DEV :: 50
|
||||||
|
_SC_2_FORT_RUN :: 51
|
||||||
|
_SC_2_SW_DEV :: 52
|
||||||
|
_SC_2_LOCALEDEF :: 53
|
||||||
|
|
||||||
|
_SC_IOV_MAX :: 62
|
||||||
|
_SC_THREADS :: 69
|
||||||
|
_SC_THREAD_SAFE_FUNCTIONS :: 70
|
||||||
|
_SC_GETGR_R_SIZE_MAX :: 71
|
||||||
|
_SC_GETPW_R_SIZE_MAX :: 72
|
||||||
|
_SC_LOGIN_NAME_MAX :: 73
|
||||||
|
_SC_TTY_NAME_MAX :: 74
|
||||||
|
_SC_THREAD_DESTRUCTOR_ITERATIONS :: 75
|
||||||
|
_SC_THREAD_KEYS_MAX :: 76
|
||||||
|
_SC_THREAD_STACK_MIN :: 77
|
||||||
|
_SC_THREAD_THREADS_MAX :: 78
|
||||||
|
_SC_THREAD_ATTR_STACKADDR :: 79
|
||||||
|
_SC_THREAD_ATTR_STACKSIZE :: 80
|
||||||
|
_SC_THREAD_PRIORITY_SCHEDULING :: 81
|
||||||
|
_SC_THREAD_PRIO_INHERIT :: 82
|
||||||
|
_SC_THREAD_PRIO_PROTECT :: 83
|
||||||
|
_SC_THREAD_PROCESS_SHARED :: 84
|
||||||
|
_SC_NPROCESSORS_CONF :: 85
|
||||||
|
_SC_NPROCESSORS_ONLN :: 86
|
||||||
|
_SC_PHYS_PAGES :: 87
|
||||||
|
_SC_AVPHYS_PAGES :: 88
|
||||||
|
_SC_ATEXIT_MAX :: 89
|
||||||
|
_SC_PASS_MAX :: 90
|
||||||
|
_SC_XOPEN_VERSION :: 91
|
||||||
|
_SC_XOPEN_UNIX :: 92
|
||||||
|
_SC_XOPEN_CRYPT :: 93
|
||||||
|
_SC_XOPEN_ENH_I18N :: 94
|
||||||
|
_SC_XOPEN_SHM :: 95
|
||||||
|
_SC_2_CHAR_TERM :: 96
|
||||||
|
_SC_2_UPE :: 97
|
||||||
|
|
||||||
|
_SC_XOPEN_LEGACY :: 129
|
||||||
|
_SC_XOPEN_REALTIME :: 130
|
||||||
|
_SC_XOPEN_REALTIME_THREADS :: 131
|
||||||
|
_SC_ADVISORY_INFO :: 132
|
||||||
|
_SC_BARRIERS :: 133
|
||||||
|
_SC_CLOCK_SELECTION :: 137
|
||||||
|
_SC_CPUTIME :: 138
|
||||||
|
_SC_THREAD_CPUTIME :: 139
|
||||||
|
_SC_MONOTONIC_CLOCK :: 149
|
||||||
|
_SC_READER_WRITER_LOCKS :: 153
|
||||||
|
_SC_SPIN_LOCKS :: 154
|
||||||
|
_SC_REGEXP :: 155
|
||||||
|
_SC_SHELL :: 157
|
||||||
|
_SC_SPAWN :: 159
|
||||||
|
_SC_SPORADIC_SERVER :: 160
|
||||||
|
_SC_THREAD_SPORADIC_SERVER :: 161
|
||||||
|
_SC_TIMEOUTS :: 164
|
||||||
|
_SC_TYPED_MEMORY_OBJECTS :: 165
|
||||||
|
_SC_2_PBS :: 168
|
||||||
|
_SC_2_PBS_ACCOUNTING :: 169
|
||||||
|
_SC_2_PBS_MESSAGE :: 171
|
||||||
|
_SC_2_PBS_TRACK :: 172
|
||||||
|
_SC_SYMLOOP_MAX :: 173
|
||||||
|
_SC_2_PBS_CHECKPOINT :: 174
|
||||||
|
_SC_V6_ILP32_OFF32 :: 175
|
||||||
|
_SC_V6_ILP32_OFFBIG :: 176
|
||||||
|
_SC_V6_LP64_OFF64 :: 177
|
||||||
|
_SC_V6_LPBIG_OFFBIG :: 178
|
||||||
|
_SC_HOST_NAME_MAX :: 179
|
||||||
|
_SC_TRACE :: 180
|
||||||
|
_SC_TRACE_EVENT_FILTER :: 181
|
||||||
|
_SC_TRACE_INHERIT :: 182
|
||||||
|
_SC_TRACE_LOG :: 183
|
||||||
|
|
||||||
|
_SC_IPV6 :: 234
|
||||||
|
_SC_RAW_SOCKETS :: 235
|
||||||
|
_SC_V7_ILP32_OFF32 :: 236
|
||||||
|
_SC_V7_ILP32_OFFBIG :: 237
|
||||||
|
_SC_V7_LP64_OFF64 :: 238
|
||||||
|
_SC_V7_LPBIG_OFFBIG :: 239
|
||||||
|
_SC_SS_REPL_MAX :: 240
|
||||||
|
_SC_TRACE_EVENT_NAME_MAX :: 241
|
||||||
|
_SC_TRACE_NAME_MAX :: 242
|
||||||
|
_SC_TRACE_SYS_MAX :: 243
|
||||||
|
_SC_TRACE_USER_EVENT_MAX :: 244
|
||||||
|
_SC_XOPEN_STREAMS :: 245
|
||||||
|
_SC_THREAD_ROBUST_PRIO_INHERIT :: 246
|
||||||
|
_SC_THREAD_ROBUST_PRIO_PROTECT :: 247
|
||||||
|
|
||||||
|
// NOTE: Not implemented.
|
||||||
|
_SC_XOPEN_UUCP :: 0
|
||||||
|
// NOTE: Not implemented.
|
||||||
|
_POSIX_VDISABLE :: 0
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
#panic("posix is unimplemented for the current target")
|
#panic("posix is unimplemented for the current target")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user