Generic Trace Generator (GTG)  0.1
GTGStack.h
Go to the documentation of this file.
1 #ifndef GTG_STACK_H
2 #define GTG_STACK_H
3 
4 #include "GTGList.h"
5 
6 typedef struct gtg_list gtg_stack;
8 
9 #define GTG_STACK_INIT(ptr) GTG_LIST_INIT(ptr)
10 
11 #define GTG_STACK(ptr) GTG_LIST(ptr)
12 
13 #define gtg_stack_entry(ptr, type, member) gtg_list_entry(ptr, type, member)
14 
15 static inline void gtg_stack_push(gtg_stack_t lnew, gtg_stack_t p_stack)
16 {
17  gtg_list_add_tail(lnew, p_stack);
18 }
19 
20 static inline void gtg_stack_pop(gtg_stack_t p_stack)
21 {
22  gtg_list_del(p_stack->prev);
23 }
24 
25 static inline gtg_stack_t gtg_stack_top(gtg_stack_t p_stack)
26 {
27  return p_stack->prev;
28 }
29 
30 static inline int gtg_stack_empty(gtg_stack_t p_stack)
31 {
32  return p_stack->prev == p_stack;
33 }
34 
35 #endif /* GTG_STACK_H */
Definition: GTGList.h:4
struct gtg_list * prev
Definition: GTGList.h:5
static void gtg_list_del(gtg_list_t entry)
delete an entry from its list and reinitialize it.
Definition: GTGList.h:99
static void gtg_stack_push(gtg_stack_t lnew, gtg_stack_t p_stack)
Definition: GTGStack.h:15
gtg_stack * gtg_stack_t
Definition: GTGStack.h:7
static int gtg_stack_empty(gtg_stack_t p_stack)
Definition: GTGStack.h:30
static gtg_stack_t gtg_stack_top(gtg_stack_t p_stack)
Definition: GTGStack.h:25
static void gtg_stack_pop(gtg_stack_t p_stack)
Definition: GTGStack.h:20
static void gtg_list_add_tail(gtg_list_t lnew, gtg_list_t head)
Insert a new entry before the specified head (ie. at the tail of the list).
Definition: GTGList.h:76