stack.c File Reference

Module for the definition of the stack. More...

Go to the source code of this file.

Functions

Stack * stack_new (StackFP_Pop pop, StackFP_Push push)
void stack_construct (Stack *stack, StackFP_Pop pop, StackFP_Push push)
void stack_destroy (void *stack)
uint32_t stack_pop (Stack *stack, int bytes)
void stack_push (Stack *stack, int bytes, uint32_t val)
HWStack * hwstack_new (int depth)
void hwstack_construct (HWStack *stack, int depth)
void hwstack_destroy (void *stack)
VDevice * sp_create (int addr, char *name, int rel_addr, void *data)
MemStack * memstack_new (Memory *mem, int spl_addr)
void memstack_construct (MemStack *stack, Memory *mem, int spl_addr)
void memstack_destroy (void *stack)

Detailed Description

Module for the definition of the stack.

Defines the classes stack, hw_stack, and mem_stack.

FIXME: Ted, I would really really really love to put in a description of what is the difference between these three classes and how they're used, but I don't understand it myself.

Definition in file stack.c.


Function Documentation

Stack* stack_new ( StackFP_Pop  pop,
StackFP_Push  push 
)

Allocates memory for a new Stack object.

This is a virtual method for higher level stack implementations and as such should not be used directly.

Definition at line 82 of file stack.c.

References avr_new, class_overload_destroy(), stack_construct(), and stack_destroy().

void stack_construct ( Stack *  stack,
StackFP_Pop  pop,
StackFP_Push  push 
)

Constructor for the Stack class.

This is a virtual method for higher level stack implementations and as such should not be used directly.

Definition at line 99 of file stack.c.

References avr_error, and class_construct().

Referenced by hwstack_construct(), memstack_construct(), and stack_new().

void stack_destroy ( void *  stack  ) 

Destructor for the Stack class.

This is a virtual method for higher level stack implementations and as such should not be used directly.

Definition at line 116 of file stack.c.

References class_destroy().

Referenced by hwstack_destroy(), memstack_destroy(), and stack_new().

uint32_t stack_pop ( Stack *  stack,
int  bytes 
)

Pops a byte or a word off the stack and returns it.

Parameters:
stack A pointer to the Stack object from which to pop
bytes Number of bytes to pop off the stack (1 to 4 bytes).
Returns:
The 1 to 4 bytes value popped from the stack.

This method provides access to the derived class's pop() method.

Definition at line 133 of file stack.c.

void stack_push ( Stack *  stack,
int  bytes,
uint32_t  val 
)

Pushes a byte or a word of data onto the stack.

Parameters:
stack A pointer to the Stack object from which to pop.
bytes Size of the value being pushed onto the stack (1 to 4 bytes).
val The value to be pushed.

This method provides access to the derived class's push() method.

Definition at line 146 of file stack.c.

HWStack* hwstack_new ( int  depth  ) 

Allocate a new HWStack object.

This is the stack implementation used by devices which lack SRAM and only have a fixed size hardware stack (e.i., the at90s1200)

Definition at line 163 of file stack.c.

References avr_new, class_overload_destroy(), hwstack_construct(), and hwstack_destroy().

void hwstack_construct ( HWStack *  stack,
int  depth 
)

Constructor for HWStack object.

Definition at line 177 of file stack.c.

References avr_error, avr_new0, and stack_construct().

Referenced by hwstack_new().

void hwstack_destroy ( void *  stack  ) 

Destructor for HWStack object.

Definition at line 191 of file stack.c.

References avr_free(), and stack_destroy().

Referenced by hwstack_new().

VDevice* sp_create ( int  addr,
char *  name,
int  rel_addr,
void *  data 
)

Create the Stack Pointer VDevice.

This should only be used in the DevSuppDefn io reg init structure.

Definition at line 272 of file stack.c.

MemStack* memstack_new ( Memory *  mem,
int  spl_addr 
)

Allocate a new MemStack object.

Definition at line 388 of file stack.c.

References avr_new, class_overload_destroy(), memstack_construct(), and memstack_destroy().

void memstack_construct ( MemStack *  stack,
Memory *  mem,
int  spl_addr 
)

Constructor for MemStack object.

Definition at line 402 of file stack.c.

References avr_error, class_ref(), mem_get_vdevice_by_addr(), and stack_construct().

Referenced by memstack_new().

void memstack_destroy ( void *  stack  ) 

Destructor for MemStack object.

Definition at line 423 of file stack.c.

References class_unref(), and stack_destroy().

Referenced by memstack_new().


Automatically generated by Doxygen 1.6.3 on 1 Jul 2010.