nuttx_thread.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Copyright (C) 2020 XiaoMi Corporation. All rights reserved.
  3. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. */
  5. #include "platform_api_extension.h"
  6. #include "platform_api_vmcore.h"
  7. korp_tid
  8. os_self_thread()
  9. {
  10. return (korp_tid)pthread_self();
  11. }
  12. int
  13. os_mutex_init(korp_mutex *mutex)
  14. {
  15. return pthread_mutex_init(mutex, NULL) == 0 ? BHT_OK : BHT_ERROR;
  16. }
  17. int
  18. os_mutex_destroy(korp_mutex *mutex)
  19. {
  20. int ret;
  21. assert(mutex);
  22. ret = pthread_mutex_destroy(mutex);
  23. return ret == 0 ? BHT_OK : BHT_ERROR;
  24. }
  25. int
  26. os_mutex_lock(korp_mutex *mutex)
  27. {
  28. int ret;
  29. assert(mutex);
  30. ret = pthread_mutex_lock(mutex);
  31. return ret == 0 ? BHT_OK : BHT_ERROR;
  32. }
  33. int
  34. os_mutex_unlock(korp_mutex *mutex)
  35. {
  36. int ret;
  37. assert(mutex);
  38. ret = pthread_mutex_unlock(mutex);
  39. return ret == 0 ? BHT_OK : BHT_ERROR;
  40. }
  41. uint8 *
  42. os_thread_get_stack_boundary()
  43. {
  44. return NULL;
  45. }
  46. int
  47. os_cond_init(korp_cond *cond)
  48. {
  49. assert(cond);
  50. if (pthread_cond_init(cond, NULL) != BHT_OK)
  51. return BHT_ERROR;
  52. return BHT_OK;
  53. }
  54. int
  55. os_cond_destroy(korp_cond *cond)
  56. {
  57. assert(cond);
  58. if (pthread_cond_destroy(cond) != BHT_OK)
  59. return BHT_ERROR;
  60. return BHT_OK;
  61. }