interface_kernel.c 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. #include <interface_kernel.h>
  2. const struct rt_kservice_interface ikservice =
  3. {
  4. rt_kprintf
  5. };
  6. /*
  7. * thread interface
  8. */
  9. const struct rt_thread_interface ithread =
  10. {
  11. rt_thread_init,
  12. rt_thread_detach,
  13. rt_thread_create,
  14. rt_thread_self,
  15. rt_thread_find,
  16. rt_thread_startup,
  17. rt_thread_delete,
  18. rt_thread_yield,
  19. rt_thread_delay,
  20. rt_thread_control,
  21. rt_thread_suspend,
  22. rt_thread_resume,
  23. rt_thread_timeout
  24. };
  25. #ifdef RT_USING_SEMAPHORE
  26. /*
  27. * semaphore interface
  28. */
  29. const struct rt_sem_interface isem =
  30. {
  31. rt_sem_init,
  32. rt_sem_detach,
  33. rt_sem_create,
  34. rt_sem_delete,
  35. rt_sem_take,
  36. rt_sem_trytake,
  37. rt_sem_release,
  38. rt_sem_control
  39. };
  40. #endif
  41. #ifdef RT_USING_MUTEX
  42. /*
  43. * mutex interface
  44. */
  45. const struct rt_mutex_interface imutex =
  46. {
  47. rt_mutex_init,
  48. rt_mutex_detach,
  49. rt_mutex_create,
  50. rt_mutex_delete,
  51. rt_mutex_take,
  52. rt_mutex_release,
  53. rt_mutex_control
  54. };
  55. #endif
  56. #ifdef RT_USING_EVENT
  57. /*
  58. * event interface
  59. */
  60. const struct rt_event_interface ievent =
  61. {
  62. rt_event_init,
  63. rt_event_detach,
  64. rt_event_create,
  65. rt_event_delete,
  66. rt_event_send,
  67. rt_event_recv,
  68. rt_event_control
  69. };
  70. #endif
  71. #ifdef RT_USING_MAILBOX
  72. /*
  73. * mailbox interface
  74. */
  75. const struct rt_mb_interface imb =
  76. {
  77. rt_mb_init,
  78. rt_mb_detach,
  79. rt_mb_create,
  80. rt_mb_delete,
  81. rt_mb_send,
  82. rt_mb_recv,
  83. rt_mb_control
  84. };
  85. #endif
  86. #ifdef RT_USING_MESSAGEQUEUE
  87. /*
  88. * message queue interface
  89. */
  90. const struct rt_mq_interface imq =
  91. {
  92. rt_mq_init,
  93. rt_mq_detach,
  94. rt_mq_create,
  95. rt_mq_delete,
  96. rt_mq_send,
  97. rt_mq_urgent,
  98. rt_mq_recv,
  99. rt_mq_control
  100. };
  101. #endif
  102. #ifdef RT_USING_MEMPOOL
  103. /*
  104. * memory pool interface
  105. */
  106. const struct rt_mp_interface imp =
  107. {
  108. rt_mp_init,
  109. rt_mp_detach,
  110. rt_mp_create,
  111. rt_mp_delete,
  112. rt_mp_alloc,
  113. rt_mp_free
  114. };
  115. #endif
  116. #ifdef RT_USING_HEAP
  117. /*
  118. * heap memory interface
  119. */
  120. const struct rt_heap_interface iheap =
  121. {
  122. rt_malloc,
  123. rt_free,
  124. rt_realloc,
  125. rt_calloc
  126. };
  127. #endif
  128. #ifdef RT_USING_DEVICE
  129. /*
  130. * device interface
  131. */
  132. const struct rt_device_interface idevice =
  133. {
  134. rt_device_register,
  135. rt_device_unregister,
  136. rt_device_init_all,
  137. rt_device_find,
  138. rt_device_init,
  139. rt_device_open,
  140. rt_device_close,
  141. rt_device_read,
  142. rt_device_write,
  143. rt_device_control,
  144. rt_device_set_rx_indicate,
  145. rt_device_set_tx_complete
  146. };
  147. #endif
  148. /*
  149. * clock & timer interface
  150. */
  151. const struct rt_timer_interface itimer =
  152. {
  153. rt_tick_get,
  154. rt_tick_from_millisecond,
  155. rt_system_timer_init,
  156. rt_system_timer_thread_init,
  157. rt_timer_init,
  158. rt_timer_detach,
  159. rt_timer_create,
  160. rt_timer_delete,
  161. rt_timer_start,
  162. rt_timer_stop,
  163. rt_timer_control
  164. };
  165. /*
  166. * kernel interface
  167. */
  168. const struct rt_shell ishell =
  169. {
  170. (const rt_kservice_interface_t )&ikservice,
  171. (const rt_thread_interface_t )&ithread,
  172. (const rt_sem_interface_t )&isem,
  173. (const rt_mutex_interface_t )&imutex,
  174. (const rt_event_interface_t )&ievent,
  175. (const rt_mb_interface_t )&imb,
  176. (const rt_mq_interface_t )&imq,
  177. (const rt_mp_interface_t )&imp,
  178. (const rt_heap_interface_t )&iheap,
  179. (const rt_device_interface_t )&idevice,
  180. (const rt_timer_interface_t )&itimer,
  181. };