bglibs
Data Structures | Macros | Functions
adt gstack: Generic simple stack.

Data Structures

struct  gstack_node
 
struct  gstack
 

Macros

#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 
#define GSTACK_DECL(PREFIX, TYPE)
 
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
 
#define GSTACK_TOP_DEFN(PREFIX, TYPE)
 
#define GSTACK_POP_DEFN(PREFIX, FREE)
 
#define GSTACK_DEFN(PREFIX, TYPE, COPY, FREE)
 

Functions

int gstack_push (struct gstack *d, unsigned datasize, const void *data, adt_copy_fn *fn)
 
void * gstack_top (const struct gstack *s)
 
void gstack_pop (struct gstack *s, adt_free_fn *fn)
 

Detailed Description

A generic stack is a first-in-last-out structure defined here based on three primary operations: push, top, and pop. Pushing an element onto a stack adds it to the head of the list. The top operation fetches the most recently pushed element still on the stack, and popping removes it.

Macro Definition Documentation

◆ GSTACK_DECL [1/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/gstack.h:30

Declare specialized gstack functions.

◆ GSTACK_DECL [2/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [3/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [4/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [5/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [6/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [7/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [8/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [9/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [10/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [11/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [12/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [13/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [14/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [15/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [16/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [17/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [18/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [19/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [20/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [21/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [22/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [23/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [24/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [25/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [26/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [27/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [28/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [29/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [30/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [31/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [32/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [33/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [34/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [35/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [36/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [37/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [38/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [39/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [40/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DECL [41/41]

#define GSTACK_DECL (   PREFIX,
  TYPE 
)
Value:
extern int PREFIX##_push(struct gstack* s, TYPE const* data); \
extern TYPE* PREFIX##_top(struct gstack* s); \
extern void PREFIX##_pop(struct gstack* s);

Declare specialized gstack functions.

◆ GSTACK_DEFN [1/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)
#define GSTACK_PUSH_DEFN(PREFIX, TYPE, COPY)
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/gstack.h:49

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [2/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [3/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [4/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [5/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [6/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [7/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [8/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [9/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [10/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [11/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [12/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [13/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [14/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [15/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [16/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [17/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [18/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [19/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [20/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [21/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [22/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [23/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [24/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [25/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [26/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [27/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [28/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [29/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [30/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [31/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [32/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [33/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [34/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [35/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [36/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [37/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [38/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [39/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [40/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_DEFN [41/41]

#define GSTACK_DEFN (   PREFIX,
  TYPE,
  COPY,
  FREE 
)
Value:
GSTACK_PUSH_DEFN(PREFIX,TYPE,COPY) \
GSTACK_TOP_DEFN(PREFIX,TYPE) \
GSTACK_POP_DEFN(PREFIX,FREE)

Define all the specialized gstack functions. If COPY is NULL, a simple memcpy is used instead. If FREE is NULL, no attempt is made to free the data.

◆ GSTACK_POP_DEFN [1/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}
void adt_free_fn(void *)
Definition: adt_common.h:12

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [2/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [3/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [4/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [5/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [6/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [7/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [8/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [9/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [10/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [11/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [12/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [13/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [14/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [15/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [16/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [17/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [18/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [19/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [20/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [21/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [22/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [23/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [24/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [25/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [26/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [27/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [28/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [29/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [30/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [31/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [32/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [33/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [34/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [35/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [36/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [37/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [38/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [39/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [40/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_POP_DEFN [41/41]

#define GSTACK_POP_DEFN (   PREFIX,
  FREE 
)
Value:
void PREFIX##_pop(struct gstack* s) { \
gstack_pop(s, (adt_free_fn*)(FREE)); \
}

Define a specialized gstack pop function.

◆ GSTACK_PUSH_DEFN [1/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}
int gstack_push(struct gstack *d, unsigned datasize, const void *data, adt_copy_fn *fn)
Definition: gstack_push.c:8
int adt_copy_fn(void *, const void *)
Definition: adt_common.h:16

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [2/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [3/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [4/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [5/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [6/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [7/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [8/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [9/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [10/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [11/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [12/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [13/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [14/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [15/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [16/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [17/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [18/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [19/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [20/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [21/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [22/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [23/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [24/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [25/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [26/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [27/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [28/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [29/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [30/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [31/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [32/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [33/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [34/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [35/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [36/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [37/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [38/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [39/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [40/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_PUSH_DEFN [41/41]

#define GSTACK_PUSH_DEFN (   PREFIX,
  TYPE,
  COPY 
)
Value:
int PREFIX##_push(struct gstack* s, TYPE const* data) { \
return gstack_push(s, sizeof *data, data, (adt_copy_fn*)COPY); \
}

Define a specialized gstack push function.

◆ GSTACK_TOP_DEFN [1/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}
char data[0]
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/gstack.h:25
struct gstack_node * head
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/gstack.h:32

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [2/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [3/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [4/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [5/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [6/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [7/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [8/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [9/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [10/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [11/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [12/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [13/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [14/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [15/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [16/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [17/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [18/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [19/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [20/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [21/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [22/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [23/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [24/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [25/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [26/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [27/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [28/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [29/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [30/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [31/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [32/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [33/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [34/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [35/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [36/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [37/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [38/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [39/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [40/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

◆ GSTACK_TOP_DEFN [41/41]

#define GSTACK_TOP_DEFN (   PREFIX,
  TYPE 
)
Value:
TYPE* PREFIX##_top(struct gstack* s) { \
return (s->head == 0) ? 0 : (TYPE*)s->head->data; \
}

Define a specialized gstack top function.

Function Documentation

◆ gstack_pop()

void gstack_pop ( struct gstack s,
adt_free_fn fn 
)

Remove the first (most recently pushed) element from the queue. If the free function fn is NULL no data freeing is done. Note that this does not return a pointer to the popped item, as once the item has been popped it is also freed.

References gstack::count, gstack_node::data, gstack::head, and gstack_node::next.

◆ gstack_push()

int gstack_push ( struct gstack d,
unsigned  datasize,
const void *  data,
adt_copy_fn fn 
)

Add a new element onto the stack. If the copy function fn is NULL memcpy is used in its place.

References gstack::count, gstack_node::data, gstack::head, and gstack_node::next.

◆ gstack_top()

void * gstack_top ( const struct gstack s)

Return the address of first (most recently pushed) element in the queue.

References gstack_node::data, and gstack::head.