14 #define N_(name, pos) { _POSIX_##name, #name, _SC_##name, pos, false }
15 #define NP(name) N_ (name, true)
16 #define N(name) N_ (name, false)
17 #define N2(name) { _POSIX2_##name, #name, _SC_2_##name, false, true }
29 N (MEMORY_PROTECTION),
33 N (PRIORITY_SCHEDULING),
35 N (READER_WRITER_LOCKS),
40 N (SHARED_MEMORY_OBJECTS),
46 N (THREAD_ATTR_STACKADDR),
47 N (THREAD_ATTR_STACKSIZE),
49 N (THREAD_PRIO_INHERIT),
50 N (THREAD_PRIO_PROTECT),
51 N (THREAD_PRIORITY_SCHEDULING),
52 N (THREAD_PROCESS_SHARED),
53 N (THREAD_SAFE_FUNCTIONS),
54 N (THREAD_SPORADIC_SERVER),
59 N (TRACE_EVENT_FILTER),
62 N (TYPED_MEMORY_OBJECTS),
67 #define nposix_options (sizeof (posix_options) / sizeof (posix_options[0]))
74 for (int i = 0; i < nposix_options; ++i)
76 long int scret = sysconf (posix_options[i]._SC_val);
80 printf ("sysconf(_SC_%s%s) returned zero\n",
81 posix_options[i].posix2 ? "2_" : "", posix_options[i].name);
84 if (posix_options[i]._P_val != 0 && posix_options[i]._P_val != scret)
86 printf ("sysconf(_SC_%s%s) = %ld does not match _POSIX%s_%s = %ld\n",
87 posix_options[i].posix2 ? "2_" : "", posix_options[i].name,
89 posix_options[i].posix2 ? "2" : "", posix_options[i].name,
90 posix_options[i]._P_val);
93 else if (posix_options[i].positive && scret < 0)
95 printf ("sysconf(_SC_%s%s) must be > 0\n",
96 posix_options[i].posix2 ? "2_" : "", posix_options[i].name);
100 #define STDVER 200809L
101 if (scret > 0 && scret != STDVER && !posix_options[i].positive)
103 printf ("sysconf(_SC_%s%s) must be %ldL\n",
104 posix_options[i].posix2 ? "2_" : "", posix_options[i].name,
113 #define TEST_FUNCTION do_test ()
114 #include "../test-skeleton.c"