fifo.h 956 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef X_FIFO_H_
  2. #define X_FIFO_H_
  3. #include "stddef.h"
  4. #include "stdbool.h"
  5. #include "stdint.h"
  6. typedef struct GenericNode {
  7. void *data;
  8. size_t data_size;
  9. struct GenericNode *next;
  10. } GenericNode;
  11. typedef struct {
  12. GenericNode *head;
  13. GenericNode *tail;
  14. uint32_t max_size;
  15. uint32_t current_size;
  16. } GenericFixedList;
  17. GenericNode* generic_node_create(const void *data, size_t data_size);
  18. GenericFixedList* generic_list_create(int max_size);
  19. void generic_list_get(GenericFixedList *list,void * data,uint8_t lenth);
  20. bool generic_list_append(GenericFixedList *list, const void *data, size_t data_size);
  21. void generic_list_clean(GenericFixedList *list);
  22. void generic_list_destroy(GenericFixedList *list);
  23. int generic_list_get_count(GenericFixedList *list);
  24. void * generic_list_get_index(GenericFixedList *list,uint8_t index);
  25. #endif