aos_fstack.h 767 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef LIBAOS_FSTACK_H
  2. #define LIBAOS_FSTACK_H
  3. #include "aos_define.h"
  4. AOS_CPP_START
  5. typedef void (*aos_func1_pt)(void*);
  6. typedef void (*aos_func2_pt)();
  7. typedef int (*aos_func3_pt)(void*);
  8. typedef int (*aos_func4_pt)();
  9. typedef union aos_func_u {
  10. aos_func1_pt func1;
  11. aos_func2_pt func2;
  12. aos_func3_pt func3;
  13. aos_func4_pt func4;
  14. } aos_func_u;
  15. typedef struct aos_fstack_item_t {
  16. void *data;
  17. aos_func_u func;
  18. int order;
  19. } aos_fstack_item_t;
  20. aos_array_header_t *aos_fstack_create(aos_pool_t *p, int size);
  21. aos_fstack_item_t *aos_fstack_pop(aos_array_header_t *fstack);
  22. void aos_fstack_destory(aos_array_header_t *fstack);
  23. void aos_fstack_push(aos_array_header_t *fstack, void *data, aos_func_u func, int order);
  24. AOS_CPP_END
  25. #endif