mapp_msg.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //==================================================================
  2. //
  3. // Filename: mapp_msg.h
  4. // Description:
  5. //
  6. //------------------------------------------------------------------
  7. //
  8. // version:
  9. // date: 00:08am, 09.Apr.2012, by Sirius
  10. // Description:
  11. //
  12. //------------------------------------------------------------------
  13. //==================================================================
  14. #ifndef _MAPP_MSG_H_
  15. #define _MAPP_MSG_H_
  16. /*------------------------------------------------------------------------------
  17. * I N C L U D E
  18. *------------------------------------------------------------------------------*/
  19. #include "general.h"
  20. /*------------------------------------------------------------------------------
  21. * D E F I N E
  22. *------------------------------------------------------------------------------*/
  23. #define NO_MSG 0 /*< no message >*/
  24. typedef struct {
  25. U08 id; /*< message id >*/
  26. U16 prm; /*< message parameter >*/
  27. } T_MESSAGE;
  28. /*----------------------
  29. ** message queue struct
  30. -----------------------*/
  31. #define QUEUE_LENGTH 20 /*< total queue length >*/
  32. typedef struct {
  33. U08 nEnque; /*< enqueue index >*/
  34. U08 nDeque; /*< dequeue index >*/
  35. T_MESSAGE Queue[QUEUE_LENGTH]; /*< queue buffer >*/
  36. } T_MSG_QUEUE;
  37. /*----------------------
  38. ** message module type
  39. -----------------------*/
  40. typedef enum {
  41. ArmMsgQueue = 0x00, /*< message queue for VC2 task >*/
  42. AmiMsgQueue = 0x01, /*< message queue for CAR task >*/
  43. AvmMsgQueue = 0x02,
  44. BusMsgQueue = 0x03,
  45. MsgQueueCnt
  46. } T_MSG_MODULE;
  47. /*------------------------------------------------------------------------------
  48. * P R O T O T Y P E
  49. *------------------------------------------------------------------------------*/
  50. void OSQPost(T_MSG_MODULE mod, U08 id, U16 prm);
  51. void OSQNew(T_MSG_MODULE mod, U08 id, U16 prm);
  52. void OSQInquery(T_MSG_MODULE mod, U08 id, U16 prm);
  53. void OSQInsert(T_MSG_MODULE mod, U08 id, U16 prm);
  54. T_MESSAGE *OSQGet(T_MSG_MODULE mod);
  55. void OSQFlush(T_MSG_MODULE mod);
  56. void OSQInit(void);
  57. int OSQIsEmpty(T_MSG_MODULE mod);
  58. /*------------------------------- E O F ----------------------------------------*/
  59. #endif /* _MAPP_MSG_H_ */