platformSystem.h 2.2 KB

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