#ifndef STORM_QUEUE_H #define STORM_QUEUE_H #include "system/types.h" #include "storm/array/pointer_to_void.h" DECLARE_STRUCT(CSBasePriorityQueue); DECLARE_STRUCT(CSBasePriority); struct CSBasePriorityQueue { TSGrowableArray_pointer_to_void b_base; uint32_t m_linkOffset; }; struct CSBasePriority { CSBasePriorityQueue* m_queue; uint32_t m_index; }; #define STORM_TS_TIMER_PRIORITY(T) \ typedef struct TSTimerPriority_##T TSTimerPriority_##T; \ struct TSTimerPriority_##T { \ void** v_table; \ CSBasePriority b_base; \ T m_val; \ } #define STORM_TS_PRIORITY_QUEUE(T) \ typedef struct TSPriorityQueue_##T TSPriorityQueue_##T; \ struct TSPriorityQueue_##T { \ CSBasePriority b_base; \ } #endif