stubs.c 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  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_pipe2
  29. #endif
  30. #ifndef __UCLIBC_HAS_SOCKET__
  31. # undef __NR_accept
  32. # undef __NR_accept4
  33. # undef __NR_bind
  34. # undef __NR_connect
  35. # undef __NR_getpeername
  36. # undef __NR_getsockname
  37. # undef __NR_getsockopt
  38. # undef __NR_listen
  39. # undef __NR_recv
  40. # undef __NR_recvfrom
  41. # undef __NR_recvmsg
  42. # undef __NR_send
  43. # undef __NR_sendmsg
  44. # undef __NR_sendto
  45. # undef __NR_setsockopt
  46. # undef __NR_shutdown
  47. # undef __NR_socket
  48. # undef __NR_socketcall
  49. # undef __NR_socketpair
  50. #endif
  51. #if !defined __NR_accept && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  52. make_stub(accept)
  53. #endif
  54. #if !defined __NR_accept4 && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  55. make_stub(accept4)
  56. #endif
  57. #ifndef __NR_bdflush
  58. make_stub(bdflush)
  59. #endif
  60. #if !defined __NR_bind && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  61. make_stub(bind)
  62. #endif
  63. #ifndef __NR_capget
  64. make_stub(capget)
  65. #endif
  66. #ifndef __NR_capset
  67. make_stub(capset)
  68. #endif
  69. #if !defined __NR_connect && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  70. make_stub(connect)
  71. #endif
  72. #ifndef __NR_create_module
  73. make_stub(create_module)
  74. #endif
  75. #ifndef __NR_delete_module
  76. make_stub(delete_module)
  77. #endif
  78. #ifndef __NR_epoll_create
  79. make_stub(epoll_create)
  80. #endif
  81. #ifndef __NR_epoll_ctl
  82. make_stub(epoll_ctl)
  83. #endif
  84. #ifndef __NR_epoll_wait
  85. make_stub(epoll_wait)
  86. #endif
  87. #ifndef __NR_fdatasync
  88. make_stub(fdatasync)
  89. #endif
  90. #ifndef __NR_flistxattr
  91. make_stub(flistxattr)
  92. #endif
  93. #ifndef __NR_fork
  94. make_stub(fork)
  95. #endif
  96. #ifndef __NR_fgetxattr
  97. make_stub(fgetxattr)
  98. #endif
  99. #ifndef __NR_fremovexattr
  100. make_stub(fremovexattr)
  101. #endif
  102. #ifndef __NR_fsetxattr
  103. make_stub(fsetxattr)
  104. #endif
  105. #ifndef __NR_get_kernel_syms
  106. make_stub(get_kernel_syms)
  107. #endif
  108. #if !defined __NR_getpeername && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  109. make_stub(getpeername)
  110. #endif
  111. #if !defined(__NR_getpgrp) && (defined(__NR_getpgid) && (defined(__NR_getpid) || defined(__NR_getxpid)))
  112. make_stub(getpgrp)
  113. #endif
  114. #if !defined __NR_getsockname && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  115. make_stub(getsockname)
  116. #endif
  117. #if !defined __NR_getsockopt && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  118. make_stub(getsockopt)
  119. #endif
  120. #ifndef __NR_getxattr
  121. make_stub(getxattr)
  122. #endif
  123. #ifndef __NR_init_module
  124. make_stub(init_module)
  125. #endif
  126. #ifndef __NR_lgetxattr
  127. make_stub(lgetxattr)
  128. #endif
  129. #if !defined __NR_listen && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  130. make_stub(listen)
  131. #endif
  132. #ifndef __NR_listxattr
  133. make_stub(listxattr)
  134. #endif
  135. #ifndef __NR_llistxattr
  136. make_stub(llistxattr)
  137. #endif
  138. #ifndef __NR_lremovexattr
  139. make_stub(lremovexattr)
  140. #endif
  141. #ifndef __NR_lsetxattr
  142. make_stub(lsetxattr)
  143. #endif
  144. #ifndef __NR_pipe2
  145. make_stub(pipe2)
  146. #endif
  147. #ifndef __NR_pivot_root
  148. make_stub(pivot_root)
  149. #endif
  150. #ifndef __NR_query_module
  151. make_stub(query_module)
  152. #endif
  153. #if !defined __NR_recv && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  154. make_stub(recv)
  155. #endif
  156. #if !defined __NR_recvfrom && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  157. make_stub(recvfrom)
  158. #endif
  159. #if !defined __NR_recvmsg && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  160. make_stub(recvmsg)
  161. #endif
  162. #ifndef __NR_removexattr
  163. make_stub(removexattr)
  164. #endif
  165. #ifndef __NR_sched_getaffinity
  166. make_stub(sched_getaffinity)
  167. #endif
  168. #ifndef __NR_sched_setaffinity
  169. make_stub(sched_setaffinity)
  170. #endif
  171. #if !defined __NR_send && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  172. make_stub(send)
  173. #endif
  174. #if !defined __NR_sendmsg && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  175. make_stub(sendmsg)
  176. #endif
  177. #if !defined __NR_sendto && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  178. make_stub(sendto)
  179. #endif
  180. #if !defined __NR_setsockopt && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  181. make_stub(setsockopt)
  182. #endif
  183. #ifndef __NR_setxattr
  184. make_stub(setxattr)
  185. #endif
  186. #if !defined __NR_shutdown && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  187. make_stub(shutdown)
  188. #endif
  189. #if !defined(__NR_signalfd4) && !defined(__NR_signalfd)
  190. make_stub(signalfd)
  191. #endif
  192. #if !defined __NR_socket && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  193. make_stub(socket)
  194. #endif
  195. #if !defined __NR_socketcall && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  196. make_stub(socketcall)
  197. #endif
  198. #if !defined __NR_socketpair && !defined __NR_socketcall && !defined __UCLIBC_HAS_SOCKET__
  199. make_stub(socketpair)
  200. #endif
  201. #ifndef __NR_rt_sigtimedwait
  202. make_stub(sigtimedwait)
  203. make_stub(sigwaitinfo)
  204. #endif
  205. #ifndef __NR_splice
  206. make_stub(splice)
  207. #endif
  208. #ifndef __NR_sync_file_range
  209. make_stub(sync_file_range)
  210. #endif
  211. #if !defined(__NR_umount) && !defined(__NR_umount2)
  212. make_stub(umount)
  213. #endif
  214. #ifndef __NR_umount2
  215. make_stub(umount2)
  216. #endif
  217. #ifndef __NR_utimensat
  218. make_stub(futimens)
  219. make_stub(utimensat)
  220. # ifndef __NR_lutimes
  221. make_stub(lutimes)
  222. # endif
  223. #endif
  224. #ifndef __NR_vmsplice
  225. make_stub(vmsplice)
  226. #endif
  227. #endif