platformSystem.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #ifndef __platformSystem__
  2. #define __platformSystem__
  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7. #include <stdio.h>
  8. #include <stdint.h>
  9. #include <assert.h>
  10. #include <pthread.h>
  11. #include <unistd.h>
  12. #include "RyanMqttPublic.h"
  13. #include "valloc.h"
  14. #define RyanMqttAssert(EX) assert(EX)
  15. typedef struct
  16. {
  17. pthread_t thread;
  18. pthread_mutex_t mutex;
  19. pthread_cond_t cond;
  20. } platformThread_t;
  21. typedef struct
  22. {
  23. pthread_mutex_t mutex;
  24. } platformMutex_t;
  25. typedef struct
  26. {
  27. pthread_spinlock_t spin;
  28. } platformCritical_t;
  29. extern void *platformMemoryMalloc(size_t size);
  30. extern void platformMemoryFree(void *ptr);
  31. extern void platformPrint(char *str, uint16_t strLen);
  32. extern void platformDelay(uint32_t ms);
  33. extern RyanMqttError_e platformThreadInit(void *userData,
  34. platformThread_t *platformThread,
  35. const char *name,
  36. void (*entry)(void *),
  37. void *const param,
  38. uint32_t stackSize,
  39. uint32_t priority);
  40. extern RyanMqttError_e platformThreadDestroy(void *userData, platformThread_t *platformThread);
  41. extern RyanMqttError_e platformThreadStart(void *userData, platformThread_t *platformThread);
  42. extern RyanMqttError_e platformThreadStop(void *userData, platformThread_t *platformThread);
  43. extern RyanMqttError_e platformMutexInit(void *userData, platformMutex_t *platformMutex);
  44. extern RyanMqttError_e platformMutexDestroy(void *userData, platformMutex_t *platformMutex);
  45. extern RyanMqttError_e platformMutexLock(void *userData, platformMutex_t *platformMutex);
  46. extern RyanMqttError_e platformMutexUnLock(void *userData, platformMutex_t *platformMutex);
  47. extern RyanMqttError_e platformCriticalInit(void *userData, platformCritical_t *platformCritical);
  48. extern RyanMqttError_e platformCriticalDestroy(void *userData, platformCritical_t *platformCritical);
  49. extern RyanMqttError_e platformCriticalEnter(void *userData, platformCritical_t *platformCritical);
  50. extern RyanMqttError_e platformCriticalExit(void *userData, platformCritical_t *platformCritical);
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #endif