platform_queue.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // #ifndef __PLATFROM_QUEUE_H
  2. // #define __PLATFROM_QUEUE_H
  3. // #include "stdio.h"
  4. // #define MAX_QSIZE (60u) /* 最大队列长度 */
  5. // typedef unsigned long long uint64_t;
  6. // typedef struct
  7. // {
  8. // struct
  9. // {
  10. // uint8_t ide;
  11. // uint8_t rtr;
  12. // uint8_t dlc;
  13. // } reg;
  14. // union
  15. // {
  16. // uint32_t r;
  17. // struct
  18. // {
  19. // uint8_t sa : 8;
  20. // uint8_t ps : 8;
  21. // uint8_t pf : 8;
  22. // uint8_t dp : 1;
  23. // uint8_t r : 1;
  24. // uint8_t p : 3;
  25. // } b;
  26. // } id;
  27. // union
  28. // {
  29. // uint8_t u8_buf[8];
  30. // uint16_t u16_buf[4];
  31. // uint32_t u32_buf[2];
  32. // uint64_t u64_buf;
  33. // } data;
  34. // } pdu_tag, *p_pdu_tag;
  35. // typedef struct
  36. // {
  37. // uint16_t head;
  38. // uint16_t tail;
  39. // uint16_t count;
  40. // pdu_tag can_message[MAX_QSIZE];
  41. // } can_queue_tag, *p_can_queue_tag;
  42. // typedef enum
  43. // {
  44. // DATEQUEUE = 0,
  45. // TASKQUEUE = 1,
  46. // } queuemode_e;
  47. // typedef struct
  48. // {
  49. // #define QUEUE_BUFFER_SUM 2
  50. // #define DATA_BUFF_NUM 5
  51. // uint8_t full[QUEUE_BUFFER_SUM];
  52. // uint8_t length[QUEUE_BUFFER_SUM];
  53. // uint8_t ret, lock, idle, mode;
  54. // pdu_tag *head[QUEUE_BUFFER_SUM];
  55. // pdu_tag *tail[QUEUE_BUFFER_SUM];
  56. // pdu_tag buff[QUEUE_BUFFER_SUM][DATA_BUFF_NUM];
  57. // } t_queue;
  58. // void queue_mode(t_queue *this, uint8_t mode);
  59. // void push_queue(t_queue *this, pdu_tag **head, pdu_tag **tail, pdu_tag (*buff)[DATA_BUFF_NUM], uint8_t len, pdu_tag *data, uint8_t data_len);
  60. // void pull_queue(t_queue *this, pdu_tag **head, pdu_tag **tail, pdu_tag (*buff)[DATA_BUFF_NUM], uint8_t len, pdu_tag *data);
  61. // #define queue_update(this) length_queue(&this, this.head, this.tail, sizeof((this).buff[0]))
  62. // #define empty_queue(this) queue_empty(&this, this.head, this.tail, this.buff)
  63. // #define empty_one_queue(this, lock) queue_empty_one(&this, this.head, this.tail, this.buff, (lock))
  64. // #define en_queue(this, data, data_len) push_queue(&this, this.head, this.tail, this.buff, sizeof((this).buff[0]), (data), (data_len))
  65. // #define de_queue(this, data) pull_queue(&this, this.head, this.tail, this.buff, sizeof((this).buff[0]), (data))
  66. // #define mode_queue(this, mode) queue_mode(&this, (mode));
  67. // extern t_queue can_tx;
  68. // extern t_queue can_rx;
  69. // void can_queue_init(void);
  70. // #endif