stubs.c 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. /*
  2. * system call not available stub
  3. *
  4. * Copyright (C) 2009 Analog Devices Inc.
  5. *
  6. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  7. */
  8. #include <errno.h>
  9. #include <sys/syscall.h>
  10. #ifdef __UCLIBC_HAS_STUBS__
  11. static int enosys_stub(void)
  12. {
  13. __set_errno(ENOSYS);
  14. return -1;
  15. }
  16. #define make_stub(stub) \
  17. link_warning(stub, #stub ": this function is not implemented") \
  18. strong_alias(enosys_stub, stub)
  19. #ifndef __ARCH_USE_MMU__
  20. # undef __NR_fork
  21. #endif
  22. #ifndef __UCLIBC_HAS_LFS__
  23. # undef __NR_fadvise64
  24. # undef __NR_fadvise64_64
  25. # undef __NR_sync_file_range
  26. #endif
  27. #ifndef __UCLIBC_LINUX_SPECIFIC__
  28. # undef __NR_accept4
  29. # undef __NR_arch_prctl
  30. # undef __NR_capget
  31. # undef __NR_capset
  32. # undef __NR_fstatfs
  33. # undef __NR_inotify_init
  34. # undef __NR_inotify_add_watch
  35. # undef __NR_inotify_rm_watch
  36. # undef __NR_ioperm
  37. # undef __NR_iopl
  38. # undef __NR_madvise
  39. # undef __NR_modify_ldt
  40. # undef __NR_personality
  41. # undef __NR_pipe2
  42. # undef __NR_ppoll
  43. # undef __NR_prctl
  44. # undef __NR_readahead
  45. # undef __NR_reboot
  46. # undef __NR_remap_file_pages
  47. # undef __NR_sched_getaffinity
  48. # undef __NR_sched_setaffinity
  49. # undef __NR_sendfile
  50. # undef __NR_setfsgid
  51. # undef __NR_setfsuid
  52. # undef __NR_setresuid
  53. # undef __NR_signalfd
  54. # undef __NR_splice
  55. # undef __NR_swapoff
  56. # undef __NR_swapon
  57. # undef __NR_sync_file_range
  58. # undef __NR_sysctl
  59. # undef __NR_sysinfo
  60. # undef __NR_tee
  61. # undef __NR_vhangup
  62. # undef __NR_vmsplice
  63. #endif
  64. #ifndef __UCLIBC_HAS_SOCKET__
  65. # undef __NR_accept
  66. # undef __NR_accept4
  67. # undef __NR_bind
  68. # undef __NR_connect
  69. # undef __NR_getpeername
  70. # undef __NR_getsockname
  71. # undef __NR_getsockopt
  72. # undef __NR_listen
  73. # undef __NR_recv
  74. # undef __NR_recvfrom
  75. # undef __NR_recvmsg
  76. # undef __NR_send
  77. # undef __NR_sendmsg
  78. # undef __NR_sendto
  79. # undef __NR_setsockopt
  80. # undef __NR_shutdown
  81. # undef __NR_socket
  82. # undef __NR_socketcall
  83. # undef __NR_socketpair
  84. #endif
  85. #if !defined __NR_accept && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  86. make_stub(accept)
  87. #endif
  88. #if !defined __NR_accept4 && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__ && defined __UCLIBC_LINUX_SPECIFIC__
  89. make_stub(accept4)
  90. #endif
  91. #ifndef __NR_bdflush
  92. make_stub(bdflush)
  93. #endif
  94. #if !defined __NR_bind && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  95. make_stub(bind)
  96. #endif
  97. #ifndef __NR_capget
  98. make_stub(capget)
  99. #endif
  100. #ifndef __NR_capset
  101. make_stub(capset)
  102. #endif
  103. #if !defined __NR_connect && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  104. make_stub(connect)
  105. #endif
  106. #ifndef __NR_create_module
  107. make_stub(create_module)
  108. #endif
  109. #ifndef __NR_delete_module
  110. make_stub(delete_module)
  111. #endif
  112. #ifndef __NR_epoll_create
  113. make_stub(epoll_create)
  114. #endif
  115. #ifndef __NR_epoll_ctl
  116. make_stub(epoll_ctl)
  117. #endif
  118. #ifndef __NR_epoll_wait
  119. make_stub(epoll_wait)
  120. #endif
  121. #ifndef __NR_fdatasync
  122. make_stub(fdatasync)
  123. #endif
  124. #ifndef __NR_flistxattr
  125. make_stub(flistxattr)
  126. #endif
  127. #ifndef __NR_fork
  128. make_stub(fork)
  129. #endif
  130. #ifndef __NR_fgetxattr
  131. make_stub(fgetxattr)
  132. #endif
  133. #ifndef __NR_fremovexattr
  134. make_stub(fremovexattr)
  135. #endif
  136. #ifndef __NR_fsetxattr
  137. make_stub(fsetxattr)
  138. #endif
  139. #ifndef __NR_get_kernel_syms
  140. make_stub(get_kernel_syms)
  141. #endif
  142. #if !defined __NR_getpeername && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  143. make_stub(getpeername)
  144. #endif
  145. #if !defined(__NR_getpgrp) && (defined(__NR_getpgid) && (defined(__NR_getpid) || defined(__NR_getxpid)))
  146. make_stub(getpgrp)
  147. #endif
  148. #if !defined __NR_getsockname && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  149. make_stub(getsockname)
  150. #endif
  151. #if !defined __NR_getsockopt && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  152. make_stub(getsockopt)
  153. #endif
  154. #ifndef __NR_getxattr
  155. make_stub(getxattr)
  156. #endif
  157. #ifndef __NR_init_module
  158. make_stub(init_module)
  159. #endif
  160. #ifndef __NR_lgetxattr
  161. make_stub(lgetxattr)
  162. #endif
  163. #if !defined __NR_listen && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  164. make_stub(listen)
  165. #endif
  166. #ifndef __NR_listxattr
  167. make_stub(listxattr)
  168. #endif
  169. #ifndef __NR_llistxattr
  170. make_stub(llistxattr)
  171. #endif
  172. #ifndef __NR_lremovexattr
  173. make_stub(lremovexattr)
  174. #endif
  175. #ifndef __NR_lsetxattr
  176. make_stub(lsetxattr)
  177. #endif
  178. #ifndef __NR_pipe2
  179. make_stub(pipe2)
  180. #endif
  181. #ifndef __NR_pivot_root
  182. make_stub(pivot_root)
  183. #endif
  184. #ifndef __NR_query_module
  185. make_stub(query_module)
  186. #endif
  187. #if !defined __NR_recv && !defined __NR_socketcall && && !defined __NR_recvfrom && defined __UCLIBC_HAS_SOCKET__
  188. make_stub(recv)
  189. #endif
  190. #if !defined __NR_recvfrom && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  191. make_stub(recvfrom)
  192. #endif
  193. #if !defined __NR_recvmsg && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  194. make_stub(recvmsg)
  195. #endif
  196. #ifndef __NR_removexattr
  197. make_stub(removexattr)
  198. #endif
  199. #ifndef __NR_sched_getaffinity
  200. make_stub(sched_getaffinity)
  201. #endif
  202. #ifndef __NR_sched_setaffinity
  203. make_stub(sched_setaffinity)
  204. #endif
  205. #if !defined __NR_send && !defined __NR_socketcall && !defined __NR_sendto && defined __UCLIBC_HAS_SOCKET__
  206. make_stub(send)
  207. #endif
  208. #if !defined __NR_sendmsg && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  209. make_stub(sendmsg)
  210. #endif
  211. #if !defined __NR_sendto && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  212. make_stub(sendto)
  213. #endif
  214. #if !defined __NR_setsockopt && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  215. make_stub(setsockopt)
  216. #endif
  217. #ifndef __NR_setxattr
  218. make_stub(setxattr)
  219. #endif
  220. #if !defined __NR_shutdown && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  221. make_stub(shutdown)
  222. #endif
  223. #if !defined(__NR_signalfd4) && !defined(__NR_signalfd)
  224. make_stub(signalfd)
  225. #endif
  226. #if !defined __NR_socket && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  227. make_stub(socket)
  228. #endif
  229. #if !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  230. make_stub(socketcall)
  231. #endif
  232. #if !defined __NR_socketpair && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  233. make_stub(socketpair)
  234. #endif
  235. #ifndef __NR_rt_sigtimedwait
  236. make_stub(sigtimedwait)
  237. make_stub(sigwaitinfo)
  238. #endif
  239. #ifndef __NR_splice
  240. make_stub(splice)
  241. #endif
  242. #ifndef __NR_sync_file_range
  243. make_stub(sync_file_range)
  244. #endif
  245. #if !defined(__NR_umount) && !defined(__NR_umount2)
  246. make_stub(umount)
  247. #endif
  248. #ifndef __NR_umount2
  249. make_stub(umount2)
  250. #endif
  251. #ifndef __NR_utimensat
  252. make_stub(futimens)
  253. make_stub(utimensat)
  254. # ifndef __NR_lutimes
  255. make_stub(lutimes)
  256. # endif
  257. #endif
  258. #ifndef __NR_vmsplice
  259. make_stub(vmsplice)
  260. #endif
  261. #endif