stubs.c 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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 __NR_accept4
  28. make_stub(accept4)
  29. #endif
  30. #ifndef __NR_bdflush
  31. make_stub(bdflush)
  32. #endif
  33. #ifndef __NR_capget
  34. make_stub(capget)
  35. #endif
  36. #ifndef __NR_capset
  37. make_stub(capset)
  38. #endif
  39. #ifndef __NR_create_module
  40. make_stub(create_module)
  41. #endif
  42. #ifndef __NR_delete_module
  43. make_stub(delete_module)
  44. #endif
  45. #ifndef __NR_epoll_create
  46. make_stub(epoll_create)
  47. #endif
  48. #ifndef __NR_epoll_ctl
  49. make_stub(epoll_ctl)
  50. #endif
  51. #ifndef __NR_epoll_wait
  52. make_stub(epoll_wait)
  53. #endif
  54. #ifndef __NR_fdatasync
  55. make_stub(fdatasync)
  56. #endif
  57. #ifndef __NR_flistxattr
  58. make_stub(flistxattr)
  59. #endif
  60. #ifndef __NR_fork
  61. make_stub(fork)
  62. #endif
  63. #ifndef __NR_fgetxattr
  64. make_stub(fgetxattr)
  65. #endif
  66. #ifndef __NR_fremovexattr
  67. make_stub(fremovexattr)
  68. #endif
  69. #ifndef __NR_fsetxattr
  70. make_stub(fsetxattr)
  71. #endif
  72. #ifndef __NR_get_kernel_syms
  73. make_stub(get_kernel_syms)
  74. #endif
  75. #if !defined(__NR_getpgrp) && (defined(__NR_getpgid) && (defined(__NR_getpid) || defined(__NR_getxpid)))
  76. make_stub(getpgrp)
  77. #endif
  78. #ifndef __NR_getxattr
  79. make_stub(getxattr)
  80. #endif
  81. #ifndef __NR_init_module
  82. make_stub(init_module)
  83. #endif
  84. #ifndef __NR_lgetxattr
  85. make_stub(lgetxattr)
  86. #endif
  87. #ifndef __NR_listxattr
  88. make_stub(listxattr)
  89. #endif
  90. #ifndef __NR_llistxattr
  91. make_stub(llistxattr)
  92. #endif
  93. #ifndef __NR_lremovexattr
  94. make_stub(lremovexattr)
  95. #endif
  96. #ifndef __NR_lsetxattr
  97. make_stub(lsetxattr)
  98. #endif
  99. #ifndef __NR_pivot_root
  100. make_stub(pivot_root)
  101. #endif
  102. #ifndef __NR_query_module
  103. make_stub(query_module)
  104. #endif
  105. #ifndef __NR_removexattr
  106. make_stub(removexattr)
  107. #endif
  108. #ifndef __NR_sched_getaffinity
  109. make_stub(sched_getaffinity)
  110. #endif
  111. #ifndef __NR_sched_setaffinity
  112. make_stub(sched_setaffinity)
  113. #endif
  114. #ifndef __NR_setxattr
  115. make_stub(setxattr)
  116. #endif
  117. #if !defined(__NR_signalfd4) && !defined(__NR_signalfd)
  118. make_stub(signalfd)
  119. #endif
  120. #ifndef __NR_rt_sigtimedwait
  121. make_stub(sigtimedwait)
  122. make_stub(sigwaitinfo)
  123. #endif
  124. #ifndef __NR_splice
  125. make_stub(splice)
  126. #endif
  127. #ifndef __NR_sync_file_range
  128. make_stub(sync_file_range)
  129. #endif
  130. #if !defined(__NR_umount) && !defined(__NR_umount2)
  131. make_stub(umount)
  132. #endif
  133. #ifndef __NR_umount2
  134. make_stub(umount2)
  135. #endif
  136. #ifndef __NR_utimensat
  137. make_stub(futimens)
  138. make_stub(utimensat)
  139. # ifndef __NR_lutimes
  140. make_stub(lutimes)
  141. # endif
  142. #endif
  143. #ifndef __NR_vmsplice
  144. make_stub(vmsplice)
  145. #endif
  146. #endif