/binutils-2.17/newlib/libc/sys/linux/sysconf.c

https://bitbucket.org/pizzafactory/blackfin-toolchain · C · 383 lines · 324 code · 57 blank · 2 comment · 1 complexity · d37655740e241a1e341fcaa12eae84fb MD5 · raw file

  1. /* libc/sys/linux/sysconf.c - The sysconf function */
  2. /* Copyright 2002, Red Hat Inc. */
  3. #include <unistd.h>
  4. #include <limits.h>
  5. #include <time.h>
  6. #include <errno.h>
  7. #include <sys/types.h>
  8. long int
  9. sysconf (int name)
  10. {
  11. switch (name)
  12. {
  13. case _SC_AIO_LISTIO_MAX:
  14. #ifdef AIO_LISTIO_MAX
  15. return AIO_LISTIO_MAX;
  16. #else
  17. return -1;
  18. #endif
  19. case _SC_AIO_MAX:
  20. #ifdef AIO_MAX
  21. return AIO_MAX;
  22. #else
  23. return -1;
  24. #endif
  25. case _SC_AIO_PRIO_DELTA_MAX:
  26. #ifdef AIO_PRIO_DELTA_MAX
  27. return AIO_PRIO_DELTA_MAX;
  28. #else
  29. return -1;
  30. #endif
  31. case _SC_ARG_MAX:
  32. #ifdef ARG_MAX
  33. return ARG_MAX;
  34. #else
  35. return -1;
  36. #endif
  37. case _SC_CHILD_MAX:
  38. #ifdef CHILD_MAX
  39. return CHILD_MAX;
  40. #else
  41. return -1;
  42. #endif
  43. case _SC_CLK_TCK:
  44. return CLK_TCK;
  45. case _SC_DELAYTIMER_MAX:
  46. #ifdef DELAYTIMER_MAX
  47. return DELAYTIMER_MAX;
  48. #else
  49. return -1;
  50. #endif
  51. case _SC_GETGR_R_SIZE_MAX:
  52. #ifdef _GETGR_R_SIZE_MAX
  53. return _GETGR_R_SIZE_MAX;
  54. #else
  55. return -1;
  56. #endif
  57. case _SC_GETPW_R_SIZE_MAX:
  58. #ifdef _GETPW_R_SIZE_MAX
  59. return _GETPW_R_SIZE_MAX;
  60. #else
  61. return -1;
  62. #endif
  63. case _SC_LOGIN_NAME_MAX:
  64. #ifdef LOGIN_NAME_MAX
  65. return LOGIN_NAME_MAX;
  66. #else
  67. return -1;
  68. #endif
  69. case _SC_MQ_OPEN_MAX:
  70. #ifdef MQ_OPEN_MAX
  71. return MQ_OPEN_MAX;
  72. #else
  73. return -1;
  74. #endif
  75. case _SC_MQ_PRIO_MAX:
  76. #ifdef MQ_PRIO_MAX
  77. return MQ_PRIO_MAX;
  78. #else
  79. return -1;
  80. #endif
  81. case _SC_NGROUPS_MAX:
  82. #ifdef NGROUPS_MAX
  83. return NGROUPS_MAX;
  84. #else
  85. return -1;
  86. #endif
  87. case _SC_OPEN_MAX:
  88. #ifdef OPEN_MAX
  89. return OPEN_MAX;
  90. #else
  91. return -1;
  92. #endif
  93. case _SC_PAGESIZE:
  94. #ifdef PAGESIZE
  95. return PAGESIZE;
  96. #else
  97. return -1;
  98. #endif
  99. case _SC_RTSIG_MAX:
  100. #ifdef RTSIG_MAX
  101. return RTSIG_MAX;
  102. #else
  103. return -1;
  104. #endif
  105. case _SC_SEM_NSEMS_MAX:
  106. #ifdef SEM_NSEMS_MAX
  107. return SEM_NSEMS_MAX;
  108. #else
  109. return -1;
  110. #endif
  111. case _SC_SEM_VALUE_MAX:
  112. #ifdef SEM_VALUE_MAX
  113. return SEM_VALUE_MAX;
  114. #else
  115. return -1;
  116. #endif
  117. case _SC_SIGQUEUE_MAX:
  118. #ifdef SIGQUEUE_MAX
  119. return SIGQUEUE_MAX;
  120. #else
  121. return -1;
  122. #endif
  123. case _SC_STREAM_MAX:
  124. #ifdef STREAM_MAX
  125. return STREAM_MAX;
  126. #else
  127. return -1;
  128. #endif
  129. case _SC_THREAD_DESTRUCTOR_ITERATIONS:
  130. #ifdef PTHREAD_DESTRUCTOR_ITERATIONS
  131. return PTHREAD_DESTRUCTOR_ITERATIONS;
  132. #else
  133. return -1;
  134. #endif
  135. case _SC_THREAD_KEYS_MAX:
  136. #ifdef PTHREAD_KEYS_MAX
  137. return PTHREAD_KEYS_MAX;
  138. #else
  139. return -1;
  140. #endif
  141. case _SC_THREAD_STACK_MIN:
  142. #ifdef PTHREAD_STACK_MIN
  143. return PTHREAD_STACK_MIN;
  144. #else
  145. return -1;
  146. #endif
  147. case _SC_THREAD_THREADS_MAX:
  148. #ifdef PTHREAD_THREADS_MAX
  149. return PTHREAD_THREADS_MAX;
  150. #else
  151. return -1;
  152. #endif
  153. case _SC_TIMER_MAX:
  154. #ifdef TIMER_MAX
  155. return TIMER_MAX;
  156. #else
  157. return -1;
  158. #endif
  159. case _SC_TTY_NAME_MAX:
  160. #ifdef TTY_NAME_MAX
  161. return TTY_NAME_MAX;
  162. #else
  163. return -1;
  164. #endif
  165. case _SC_TZNAME_MAX:
  166. #ifdef TZNAME_MAX
  167. return TZNAME_MAX;
  168. #else
  169. return -1;
  170. #endif
  171. case _SC_ASYNCHRONOUS_IO:
  172. #ifdef _POSIX_ASYNCHRONOUS_IO
  173. return 1;
  174. #else
  175. return -1;
  176. #endif
  177. case _SC_FSYNC:
  178. #ifdef _POSIX_FSYNC
  179. return 1;
  180. #else
  181. return -1;
  182. #endif
  183. case _SC_JOB_CONTROL:
  184. #ifdef _POSIX_JOB_CONTROL
  185. return 1;
  186. #else
  187. return -1;
  188. #endif
  189. case _SC_MAPPED_FILES:
  190. #ifdef _POSIX_MAPPED_FILES
  191. return 1;
  192. #else
  193. return -1;
  194. #endif
  195. case _SC_MEMLOCK:
  196. #ifdef _POSIX_MEMLOCK
  197. return 1;
  198. #else
  199. return -1;
  200. #endif
  201. case _SC_MEMLOCK_RANGE:
  202. #ifdef _POSIX_MEMLOCK_RANGE
  203. return _POSIX_MEMLOCK_RANGE;
  204. #else
  205. return -1;
  206. #endif
  207. case _SC_MEMORY_PROTECTION:
  208. #ifdef _POSIX_MEMORY_PROTECTION
  209. return 1;
  210. #else
  211. return -1;
  212. #endif
  213. case _SC_MESSAGE_PASSING:
  214. #ifdef _POSIX_MESSAGE_PASSING
  215. return 1;
  216. #else
  217. return -1;
  218. #endif
  219. case _SC_PRIORITIZED_IO:
  220. #ifdef _POSIX_PRIORITIZED_IO
  221. return 1;
  222. #else
  223. return -1;
  224. #endif
  225. case _SC_PRIORITY_SCHEDULING:
  226. #ifdef _POSIX_PRIORITY_SCHEDULING
  227. return 1;
  228. #else
  229. return -1;
  230. #endif
  231. case _SC_REALTIME_SIGNALS:
  232. #ifdef _POSIX_REALTIME_SIGNALS
  233. return 1;
  234. #else
  235. return -1;
  236. #endif
  237. case _SC_SAVED_IDS:
  238. #ifdef _POSIX_SAVED_IDS
  239. return 1;
  240. #else
  241. return -1;
  242. #endif
  243. case _SC_SEMAPHORES:
  244. #ifdef _POSIX_SEMAPHORES
  245. return 1;
  246. #else
  247. return -1;
  248. #endif
  249. case _SC_SHARED_MEMORY_OBJECTS:
  250. #ifdef _POSIX_SHARED_MEMORY_OBJECTS
  251. return 1;
  252. #else
  253. return -1;
  254. #endif
  255. case _SC_SYNCHRONIZED_IO:
  256. #ifdef _POSIX_SYNCHRONIZED_IO
  257. return 1;
  258. #else
  259. return -1;
  260. #endif
  261. case _SC_TIMERS:
  262. #ifdef _POSIX_TIMERS
  263. return 1;
  264. #else
  265. return -1;
  266. #endif
  267. case _SC_THREADS:
  268. #ifdef _POSIX_THREADS
  269. return 1;
  270. #else
  271. return -1;
  272. #endif
  273. case _SC_THREAD_ATTR_STACKADDR:
  274. #ifdef _POSIX_THREAD_ATTR_STACKADDR
  275. return 1;
  276. #else
  277. return -1;
  278. #endif
  279. case _SC_THREAD_ATTR_STACKSIZE:
  280. #ifdef _POSIX_THREAD_ATTR_STACKSIZE
  281. return 1;
  282. #else
  283. return -1;
  284. #endif
  285. case _SC_THREAD_PRIORITY_SCHEDULING:
  286. #ifdef _POSIX_THREAD_PRIORITY_SCHEDULING
  287. return 1;
  288. #else
  289. return -1;
  290. #endif
  291. case _SC_THREAD_PRIO_INHERIT:
  292. #ifdef _POSIX_THREAD_PRIO_INHERIT
  293. return 1;
  294. #else
  295. return -1;
  296. #endif
  297. case _SC_THREAD_PRIO_PROTECT:
  298. #ifdef _POSIX_THREAD_PRIO_PROTECT
  299. return 1;
  300. #else
  301. return -1;
  302. #endif
  303. case _SC_THREAD_PROCESS_SHARED:
  304. #ifdef _POSIX_THREAD_PROCESS_SHARED
  305. return 1;
  306. #else
  307. return -1;
  308. #endif
  309. case _SC_THREAD_SAFE_FUNCTIONS:
  310. #ifdef _POSIX_THREAD_SAFE_FUNCTIONS
  311. return 1;
  312. #else
  313. return -1;
  314. #endif
  315. case _SC_VERSION:
  316. #ifdef _POSIX_VERSION
  317. return _POSIX_VERSION;
  318. #else
  319. return -1;
  320. #endif
  321. default:
  322. errno = EINVAL;
  323. return -1;
  324. }
  325. return -1; /* can't get here */
  326. }