Generic Trace Generator (GTG)
0.1
|
00001 #ifndef GTG_STACK_H 00002 #define GTG_STACK_H 00003 00004 #include "GTGList.h" 00005 00006 typedef struct gtg_list gtg_stack; 00007 typedef gtg_stack* gtg_stack_t; 00008 00009 #define GTG_STACK_INIT(ptr) GTG_LIST_INIT(ptr) 00010 00011 #define GTG_STACK(ptr) GTG_LIST(ptr) 00012 00013 #define gtg_stack_entry(ptr, type, member) gtg_list_entry(ptr, type, member) 00014 00015 static inline void gtg_stack_push(gtg_stack_t lnew, gtg_stack_t p_stack) 00016 { 00017 gtg_list_add_tail(lnew, p_stack); 00018 } 00019 00020 static inline void gtg_stack_pop(gtg_stack_t p_stack) 00021 { 00022 gtg_list_del(p_stack->prev); 00023 } 00024 00025 static inline gtg_stack_t gtg_stack_top(gtg_stack_t p_stack) 00026 { 00027 return p_stack->prev; 00028 } 00029 00030 static inline int gtg_stack_empty(gtg_stack_t p_stack) 00031 { 00032 return p_stack->prev == p_stack; 00033 } 00034 00035 #endif /* GTG_STACK_H */