選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

54 行
1.7 KiB

  1. /*
  2. * Lua RTOS, mutex api implementation over FreeRTOS
  3. *
  4. * Copyright (C) 2015 - 2017
  5. * IBEROXARXA SERVICIOS INTEGRALES, S.L. & CSS IBÉRICA, S.L.
  6. *
  7. * Author: Jaume Olivé (jolive@iberoxarxa.com / jolive@whitecatboard.org)
  8. *
  9. * All rights reserved.
  10. *
  11. * Permission to use, copy, modify, and distribute this software
  12. * and its documentation for any purpose and without fee is hereby
  13. * granted, provided that the above copyright notice appear in all
  14. * copies and that both that the copyright notice and this
  15. * permission notice and warranty disclaimer appear in supporting
  16. * documentation, and that the name of the author not be used in
  17. * advertising or publicity pertaining to distribution of the
  18. * software without specific, written prior permission.
  19. *
  20. * The author disclaim all warranties with regard to this
  21. * software, including all implied warranties of merchantability
  22. * and fitness. In no event shall the author be liable for any
  23. * special, indirect or consequential damages or any damages
  24. * whatsoever resulting from loss of use, data or profits, whether
  25. * in an action of contract, negligence or other tortious action,
  26. * arising out of or in connection with the use or performance of
  27. * this software.
  28. *
  29. * Modified by: LoBo (loboris@gmail.com / https://github.com/loboris)
  30. *
  31. */
  32. #ifndef MUTEX_H_H
  33. #define MUTEX_H_H
  34. #include "freertos/FreeRTOS.h"
  35. #include "freertos/semphr.h"
  36. #define MUTEX_INITIALIZER {.sem = 0}
  37. struct mtx {
  38. SemaphoreHandle_t sem;
  39. };
  40. void mtx_init(struct mtx *mutex, const char *name, const char *type, int opts);
  41. void mtx_lock(struct mtx *mutex);
  42. int mtx_trylock(struct mtx *mutex);
  43. void mtx_unlock(struct mtx *mutex);
  44. void mtx_destroy(struct mtx *mutex);
  45. #endif /* MUTEX_H_H */