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
6typedef 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
15static 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
20static inline void gtg_stack_pop(gtg_stack_t p_stack)
21{
22 gtg_list_del(p_stack->prev);
23}
24
26{
27 return p_stack->prev;
28}
29
30static 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 */
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
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_pop(gtg_stack_t p_stack)
Definition GTGStack.h:20
static gtg_stack_t gtg_stack_top(gtg_stack_t p_stack)
Definition GTGStack.h:25
static void gtg_stack_push(gtg_stack_t lnew, gtg_stack_t p_stack)
Definition GTGStack.h:15
static int gtg_stack_empty(gtg_stack_t p_stack)
Definition GTGStack.h:30
gtg_stack * gtg_stack_t
Definition GTGStack.h:7
Definition GTGList.h:4
struct gtg_list * prev
Definition GTGList.h:5