Skip to content

Commit 5f2f3db

Browse files
committed
wasi: add all _SC_* sysconf constants from wasi-libc
Add the complete set of _SC_* constants from wasi-libc's musl-based unistd.h. (backport <rust-lang#5023>) (cherry picked from commit 2aa834e)
1 parent 50cc5db commit 5f2f3db

2 files changed

Lines changed: 282 additions & 0 deletions

File tree

libc-test/semver/wasi.txt

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,148 @@
11
FD_ISSET
22
FD_SET
33
FD_ZERO
4+
_SC_2_CHAR_TERM
5+
_SC_2_C_BIND
6+
_SC_2_C_DEV
7+
_SC_2_FORT_DEV
8+
_SC_2_FORT_RUN
9+
_SC_2_LOCALEDEF
10+
_SC_2_PBS
11+
_SC_2_PBS_ACCOUNTING
12+
_SC_2_PBS_CHECKPOINT
13+
_SC_2_PBS_LOCATE
14+
_SC_2_PBS_MESSAGE
15+
_SC_2_PBS_TRACK
16+
_SC_2_SW_DEV
17+
_SC_2_UPE
18+
_SC_2_VERSION
19+
_SC_ADVISORY_INFO
20+
_SC_AIO_LISTIO_MAX
21+
_SC_AIO_MAX
22+
_SC_AIO_PRIO_DELTA_MAX
23+
_SC_ARG_MAX
24+
_SC_ASYNCHRONOUS_IO
25+
_SC_ATEXIT_MAX
26+
_SC_AVPHYS_PAGES
27+
_SC_BARRIERS
28+
_SC_BC_BASE_MAX
29+
_SC_BC_DIM_MAX
30+
_SC_BC_SCALE_MAX
31+
_SC_BC_STRING_MAX
32+
_SC_CHILD_MAX
33+
_SC_CLK_TCK
34+
_SC_CLOCK_SELECTION
35+
_SC_COLL_WEIGHTS_MAX
36+
_SC_CPUTIME
37+
_SC_DELAYTIMER_MAX
38+
_SC_EXPR_NEST_MAX
39+
_SC_FSYNC
40+
_SC_GETGR_R_SIZE_MAX
41+
_SC_GETPW_R_SIZE_MAX
42+
_SC_HOST_NAME_MAX
43+
_SC_IOV_MAX
44+
_SC_IPV6
45+
_SC_JOB_CONTROL
46+
_SC_LINE_MAX
47+
_SC_LOGIN_NAME_MAX
48+
_SC_MAPPED_FILES
49+
_SC_MEMLOCK
50+
_SC_MEMLOCK_RANGE
51+
_SC_MEMORY_PROTECTION
52+
_SC_MESSAGE_PASSING
53+
_SC_MINSIGSTKSZ
54+
_SC_MONOTONIC_CLOCK
55+
_SC_MQ_OPEN_MAX
56+
_SC_MQ_PRIO_MAX
57+
_SC_NGROUPS_MAX
58+
_SC_NPROCESSORS_CONF
59+
_SC_NPROCESSORS_ONLN
60+
_SC_NZERO
61+
_SC_OPEN_MAX
62+
_SC_PAGESIZE
63+
_SC_PAGE_SIZE
64+
_SC_PASS_MAX
65+
_SC_PHYS_PAGES
66+
_SC_PRIORITIZED_IO
67+
_SC_PRIORITY_SCHEDULING
68+
_SC_RAW_SOCKETS
69+
_SC_READER_WRITER_LOCKS
70+
_SC_REALTIME_SIGNALS
71+
_SC_REGEXP
72+
_SC_RE_DUP_MAX
73+
_SC_RTSIG_MAX
74+
_SC_SAVED_IDS
75+
_SC_SEMAPHORES
76+
_SC_SEM_NSEMS_MAX
77+
_SC_SEM_VALUE_MAX
78+
_SC_SHARED_MEMORY_OBJECTS
79+
_SC_SHELL
80+
_SC_SIGQUEUE_MAX
81+
_SC_SIGSTKSZ
82+
_SC_SPAWN
83+
_SC_SPIN_LOCKS
84+
_SC_SPORADIC_SERVER
85+
_SC_SS_REPL_MAX
86+
_SC_STREAMS
87+
_SC_STREAM_MAX
88+
_SC_SYMLOOP_MAX
89+
_SC_SYNCHRONIZED_IO
90+
_SC_THREADS
91+
_SC_THREAD_ATTR_STACKADDR
92+
_SC_THREAD_ATTR_STACKSIZE
93+
_SC_THREAD_CPUTIME
94+
_SC_THREAD_DESTRUCTOR_ITERATIONS
95+
_SC_THREAD_KEYS_MAX
96+
_SC_THREAD_PRIORITY_SCHEDULING
97+
_SC_THREAD_PRIO_INHERIT
98+
_SC_THREAD_PRIO_PROTECT
99+
_SC_THREAD_PROCESS_SHARED
100+
_SC_THREAD_ROBUST_PRIO_INHERIT
101+
_SC_THREAD_ROBUST_PRIO_PROTECT
102+
_SC_THREAD_SAFE_FUNCTIONS
103+
_SC_THREAD_SPORADIC_SERVER
104+
_SC_THREAD_STACK_MIN
105+
_SC_THREAD_THREADS_MAX
106+
_SC_TIMEOUTS
107+
_SC_TIMERS
108+
_SC_TIMER_MAX
109+
_SC_TRACE
110+
_SC_TRACE_EVENT_FILTER
111+
_SC_TRACE_EVENT_NAME_MAX
112+
_SC_TRACE_INHERIT
113+
_SC_TRACE_LOG
114+
_SC_TRACE_NAME_MAX
115+
_SC_TRACE_SYS_MAX
116+
_SC_TRACE_USER_EVENT_MAX
117+
_SC_TTY_NAME_MAX
118+
_SC_TYPED_MEMORY_OBJECTS
119+
_SC_TZNAME_MAX
120+
_SC_UIO_MAXIOV
121+
_SC_V6_ILP32_OFF32
122+
_SC_V6_ILP32_OFFBIG
123+
_SC_V6_LP64_OFF64
124+
_SC_V6_LPBIG_OFFBIG
125+
_SC_V7_ILP32_OFF32
126+
_SC_V7_ILP32_OFFBIG
127+
_SC_V7_LP64_OFF64
128+
_SC_V7_LPBIG_OFFBIG
129+
_SC_VERSION
130+
_SC_XBS5_ILP32_OFF32
131+
_SC_XBS5_ILP32_OFFBIG
132+
_SC_XBS5_LP64_OFF64
133+
_SC_XBS5_LPBIG_OFFBIG
134+
_SC_XOPEN_CRYPT
135+
_SC_XOPEN_ENH_I18N
136+
_SC_XOPEN_LEGACY
137+
_SC_XOPEN_REALTIME
138+
_SC_XOPEN_REALTIME_THREADS
139+
_SC_XOPEN_SHM
140+
_SC_XOPEN_STREAMS
141+
_SC_XOPEN_UNIX
142+
_SC_XOPEN_VERSION
143+
_SC_XOPEN_XCU_VERSION
144+
_SC_XOPEN_XPG2
145+
_SC_XOPEN_XPG3
146+
_SC_XOPEN_XPG4
4147
fd_set
5148
select

src/wasi/mod.rs

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,149 @@ pub const ENOTCAPABLE: c_int = 76;
400400
pub const EOPNOTSUPP: c_int = ENOTSUP;
401401
pub const EWOULDBLOCK: c_int = EAGAIN;
402402

403+
pub const _SC_ARG_MAX: c_int = 0;
404+
pub const _SC_CHILD_MAX: c_int = 1;
405+
pub const _SC_CLK_TCK: c_int = 2;
406+
pub const _SC_NGROUPS_MAX: c_int = 3;
407+
pub const _SC_OPEN_MAX: c_int = 4;
408+
pub const _SC_STREAM_MAX: c_int = 5;
409+
pub const _SC_TZNAME_MAX: c_int = 6;
410+
pub const _SC_JOB_CONTROL: c_int = 7;
411+
pub const _SC_SAVED_IDS: c_int = 8;
412+
pub const _SC_REALTIME_SIGNALS: c_int = 9;
413+
pub const _SC_PRIORITY_SCHEDULING: c_int = 10;
414+
pub const _SC_TIMERS: c_int = 11;
415+
pub const _SC_ASYNCHRONOUS_IO: c_int = 12;
416+
pub const _SC_PRIORITIZED_IO: c_int = 13;
417+
pub const _SC_SYNCHRONIZED_IO: c_int = 14;
418+
pub const _SC_FSYNC: c_int = 15;
419+
pub const _SC_MAPPED_FILES: c_int = 16;
420+
pub const _SC_MEMLOCK: c_int = 17;
421+
pub const _SC_MEMLOCK_RANGE: c_int = 18;
422+
pub const _SC_MEMORY_PROTECTION: c_int = 19;
423+
pub const _SC_MESSAGE_PASSING: c_int = 20;
424+
pub const _SC_SEMAPHORES: c_int = 21;
425+
pub const _SC_SHARED_MEMORY_OBJECTS: c_int = 22;
426+
pub const _SC_AIO_LISTIO_MAX: c_int = 23;
427+
pub const _SC_AIO_MAX: c_int = 24;
428+
pub const _SC_AIO_PRIO_DELTA_MAX: c_int = 25;
429+
pub const _SC_DELAYTIMER_MAX: c_int = 26;
430+
pub const _SC_MQ_OPEN_MAX: c_int = 27;
431+
pub const _SC_MQ_PRIO_MAX: c_int = 28;
432+
pub const _SC_VERSION: c_int = 29;
403433
pub const _SC_PAGESIZE: c_int = 30;
404434
pub const _SC_PAGE_SIZE: c_int = _SC_PAGESIZE;
435+
pub const _SC_RTSIG_MAX: c_int = 31;
436+
pub const _SC_SEM_NSEMS_MAX: c_int = 32;
437+
pub const _SC_SEM_VALUE_MAX: c_int = 33;
438+
pub const _SC_SIGQUEUE_MAX: c_int = 34;
439+
pub const _SC_TIMER_MAX: c_int = 35;
440+
pub const _SC_BC_BASE_MAX: c_int = 36;
441+
pub const _SC_BC_DIM_MAX: c_int = 37;
442+
pub const _SC_BC_SCALE_MAX: c_int = 38;
443+
pub const _SC_BC_STRING_MAX: c_int = 39;
444+
pub const _SC_COLL_WEIGHTS_MAX: c_int = 40;
445+
pub const _SC_EXPR_NEST_MAX: c_int = 42;
446+
pub const _SC_LINE_MAX: c_int = 43;
447+
pub const _SC_RE_DUP_MAX: c_int = 44;
448+
pub const _SC_2_VERSION: c_int = 46;
449+
pub const _SC_2_C_BIND: c_int = 47;
450+
pub const _SC_2_C_DEV: c_int = 48;
451+
pub const _SC_2_FORT_DEV: c_int = 49;
452+
pub const _SC_2_FORT_RUN: c_int = 50;
453+
pub const _SC_2_SW_DEV: c_int = 51;
454+
pub const _SC_2_LOCALEDEF: c_int = 52;
455+
pub const _SC_UIO_MAXIOV: c_int = 60;
405456
pub const _SC_IOV_MAX: c_int = 60;
457+
pub const _SC_THREADS: c_int = 67;
458+
pub const _SC_THREAD_SAFE_FUNCTIONS: c_int = 68;
459+
pub const _SC_GETGR_R_SIZE_MAX: c_int = 69;
460+
pub const _SC_GETPW_R_SIZE_MAX: c_int = 70;
461+
pub const _SC_LOGIN_NAME_MAX: c_int = 71;
462+
pub const _SC_TTY_NAME_MAX: c_int = 72;
463+
pub const _SC_THREAD_DESTRUCTOR_ITERATIONS: c_int = 73;
464+
pub const _SC_THREAD_KEYS_MAX: c_int = 74;
465+
pub const _SC_THREAD_STACK_MIN: c_int = 75;
466+
pub const _SC_THREAD_THREADS_MAX: c_int = 76;
467+
pub const _SC_THREAD_ATTR_STACKADDR: c_int = 77;
468+
pub const _SC_THREAD_ATTR_STACKSIZE: c_int = 78;
469+
pub const _SC_THREAD_PRIORITY_SCHEDULING: c_int = 79;
470+
pub const _SC_THREAD_PRIO_INHERIT: c_int = 80;
471+
pub const _SC_THREAD_PRIO_PROTECT: c_int = 81;
472+
pub const _SC_THREAD_PROCESS_SHARED: c_int = 82;
473+
pub const _SC_NPROCESSORS_CONF: c_int = 83;
474+
pub const _SC_NPROCESSORS_ONLN: c_int = 84;
475+
pub const _SC_PHYS_PAGES: c_int = 85;
476+
pub const _SC_AVPHYS_PAGES: c_int = 86;
477+
pub const _SC_ATEXIT_MAX: c_int = 87;
478+
pub const _SC_PASS_MAX: c_int = 88;
479+
pub const _SC_XOPEN_VERSION: c_int = 89;
480+
pub const _SC_XOPEN_XCU_VERSION: c_int = 90;
481+
pub const _SC_XOPEN_UNIX: c_int = 91;
482+
pub const _SC_XOPEN_CRYPT: c_int = 92;
483+
pub const _SC_XOPEN_ENH_I18N: c_int = 93;
484+
pub const _SC_XOPEN_SHM: c_int = 94;
485+
pub const _SC_2_CHAR_TERM: c_int = 95;
486+
pub const _SC_2_UPE: c_int = 97;
487+
pub const _SC_XOPEN_XPG2: c_int = 98;
488+
pub const _SC_XOPEN_XPG3: c_int = 99;
489+
pub const _SC_XOPEN_XPG4: c_int = 100;
490+
pub const _SC_NZERO: c_int = 109;
491+
pub const _SC_XBS5_ILP32_OFF32: c_int = 125;
492+
pub const _SC_XBS5_ILP32_OFFBIG: c_int = 126;
493+
pub const _SC_XBS5_LP64_OFF64: c_int = 127;
494+
pub const _SC_XBS5_LPBIG_OFFBIG: c_int = 128;
495+
pub const _SC_XOPEN_LEGACY: c_int = 129;
496+
pub const _SC_XOPEN_REALTIME: c_int = 130;
497+
pub const _SC_XOPEN_REALTIME_THREADS: c_int = 131;
498+
pub const _SC_ADVISORY_INFO: c_int = 132;
499+
pub const _SC_BARRIERS: c_int = 133;
500+
pub const _SC_CLOCK_SELECTION: c_int = 137;
501+
pub const _SC_CPUTIME: c_int = 138;
502+
pub const _SC_THREAD_CPUTIME: c_int = 139;
503+
pub const _SC_MONOTONIC_CLOCK: c_int = 149;
504+
pub const _SC_READER_WRITER_LOCKS: c_int = 153;
505+
pub const _SC_SPIN_LOCKS: c_int = 154;
506+
pub const _SC_REGEXP: c_int = 155;
507+
pub const _SC_SHELL: c_int = 157;
508+
pub const _SC_SPAWN: c_int = 159;
509+
pub const _SC_SPORADIC_SERVER: c_int = 160;
510+
pub const _SC_THREAD_SPORADIC_SERVER: c_int = 161;
511+
pub const _SC_TIMEOUTS: c_int = 164;
512+
pub const _SC_TYPED_MEMORY_OBJECTS: c_int = 165;
513+
pub const _SC_2_PBS: c_int = 168;
514+
pub const _SC_2_PBS_ACCOUNTING: c_int = 169;
515+
pub const _SC_2_PBS_LOCATE: c_int = 170;
516+
pub const _SC_2_PBS_MESSAGE: c_int = 171;
517+
pub const _SC_2_PBS_TRACK: c_int = 172;
406518
pub const _SC_SYMLOOP_MAX: c_int = 173;
519+
pub const _SC_STREAMS: c_int = 174;
520+
pub const _SC_2_PBS_CHECKPOINT: c_int = 175;
521+
pub const _SC_V6_ILP32_OFF32: c_int = 176;
522+
pub const _SC_V6_ILP32_OFFBIG: c_int = 177;
523+
pub const _SC_V6_LP64_OFF64: c_int = 178;
524+
pub const _SC_V6_LPBIG_OFFBIG: c_int = 179;
525+
pub const _SC_HOST_NAME_MAX: c_int = 180;
526+
pub const _SC_TRACE: c_int = 181;
527+
pub const _SC_TRACE_EVENT_FILTER: c_int = 182;
528+
pub const _SC_TRACE_INHERIT: c_int = 183;
529+
pub const _SC_TRACE_LOG: c_int = 184;
530+
pub const _SC_IPV6: c_int = 235;
531+
pub const _SC_RAW_SOCKETS: c_int = 236;
532+
pub const _SC_V7_ILP32_OFF32: c_int = 237;
533+
pub const _SC_V7_ILP32_OFFBIG: c_int = 238;
534+
pub const _SC_V7_LP64_OFF64: c_int = 239;
535+
pub const _SC_V7_LPBIG_OFFBIG: c_int = 240;
536+
pub const _SC_SS_REPL_MAX: c_int = 241;
537+
pub const _SC_TRACE_EVENT_NAME_MAX: c_int = 242;
538+
pub const _SC_TRACE_NAME_MAX: c_int = 243;
539+
pub const _SC_TRACE_SYS_MAX: c_int = 244;
540+
pub const _SC_TRACE_USER_EVENT_MAX: c_int = 245;
541+
pub const _SC_XOPEN_STREAMS: c_int = 246;
542+
pub const _SC_THREAD_ROBUST_PRIO_INHERIT: c_int = 247;
543+
pub const _SC_THREAD_ROBUST_PRIO_PROTECT: c_int = 248;
544+
pub const _SC_MINSIGSTKSZ: c_int = 249;
545+
pub const _SC_SIGSTKSZ: c_int = 250;
407546

408547
// FIXME(msrv): `addr_of!(EXTERN_STATIC)` is now safe; remove `unsafe` when MSRV >= 1.82
409548
#[allow(unused_unsafe)]

0 commit comments

Comments
 (0)