gx_system_rtos_bind.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /**************************************************************************/
  2. /* */
  3. /* Copyright (c) Microsoft Corporation. All rights reserved. */
  4. /* */
  5. /* This software is licensed under the Microsoft Software License */
  6. /* Terms for Microsoft Azure RTOS. Full text of the license can be */
  7. /* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */
  8. /* and in the root directory of this software. */
  9. /* */
  10. /**************************************************************************/
  11. /**************************************************************************/
  12. /**************************************************************************/
  13. /** */
  14. /** GUIX Component */
  15. /** */
  16. /** System Management (System) */
  17. /** */
  18. /**************************************************************************/
  19. #define GX_SOURCE_CODE
  20. /* Include necessary system files. */
  21. /**************************************************************************/
  22. /* */
  23. /* FUNCTION RELEASE */
  24. /* */
  25. /* _gx_system_rtos_bind PORTABLE C */
  26. /* 6.0 */
  27. /* AUTHOR */
  28. /* */
  29. /* Kenneth Maxwell, Microsoft Corporation */
  30. /* */
  31. /* DESCRIPTION */
  32. /* */
  33. /* This file contains a small set of functions that bind GUIX to the */
  34. /* underlying RTOS. This is by default the ThreadX RTOS, but can be */
  35. /* modified to support other operating systems. Refer to the GUIX */
  36. /* User Guide for more information. */
  37. /* */
  38. /* INPUT */
  39. /* */
  40. /* Refer to GUIX User Guide */
  41. /* */
  42. /* OUTPUT */
  43. /* */
  44. /* Refer to GUIX User Guide */
  45. /* */
  46. /* CALLS */
  47. /* */
  48. /* Refer to GUIX User Guide */
  49. /* */
  50. /* CALLED BY */
  51. /* */
  52. /* GUIX system serives */
  53. /* */
  54. /* RELEASE HISTORY */
  55. /* */
  56. /* DATE NAME DESCRIPTION */
  57. /* */
  58. /* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
  59. /* */
  60. /**************************************************************************/
  61. #ifdef GX_DISABLE_THREADX_BINDING
  62. /* If you are porting GUIX to another RTOS, the function shells below serve as prototypes to
  63. demonstrate what each RTOS specific service should look like. The user will need to complete
  64. each of these functions using syntax and services available within the chosen RTOS
  65. */
  66. /* types used by GUIX, normally provided by ThreadX API, but replaced here */
  67. VOID gx_generic_rtos_initialize(VOID);
  68. UINT gx_generic_thread_start(VOID (*thread_entry)(ULONG));
  69. UINT gx_generic_event_post(GX_EVENT *event_ptr);
  70. UINT gx_generic_event_fold(GX_EVENT *event_ptr);
  71. VOID gx_generic_event_purge(GX_WIDGET *widget);
  72. UINT gx_generic_event_pop(GX_EVENT *put_event, GX_BOOL wait);
  73. VOID gx_generic_timer_start(VOID);
  74. VOID gx_generic_timer_stop(VOID);
  75. VOID gx_generic_system_mutex_lock(VOID);
  76. VOID gx_generic_system_mutex_unlock(VOID);
  77. ULONG gx_generic_system_time_get(VOID);
  78. VOID *gx_generic_thread_identify(VOID);
  79. VOID gx_generic_time_delay(INT ticks);
  80. #define GX_RTOS_BINDING_INITIALIZE gx_generic_rtos_initialize()
  81. #define GX_SYSTEM_THREAD_START gx_generic_thread_start
  82. #define GX_EVENT_PUSH gx_generic_event_post
  83. #define GX_EVENT_POP gx_generic_event_pop
  84. #define GX_EVENT_FOLD gx_generic_event_fold
  85. #define GX_EVENT_PURGE gx_generic_event_purge
  86. #define GX_TIMER_START gx_generic_timer_start()
  87. #define GX_TIMER_STOP gx_generic_timer_stop()
  88. #define GX_SYSTEM_MUTEX_LOCK gx_generic_system_mutex_lock()
  89. #define GX_SYSTEM_MUTEX_UNLOCK gx_generic_system_mutex_unlock()
  90. #define GX_SYSTEM_TIME_GET gx_generic_system_time_get()
  91. #define GX_CURRENT_THREAD gx_generic_thread_identify()
  92. #define GX_GENERIC_TIME_DELAY(a) gx_generic_time_delay(a)
  93. #endif