Generic Trace Generator (GTG)  0.1
GTGStack.h
Go to the documentation of this file.
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 */