32 #include "avrmalloc.h" 54 static uint8_t sram_read (VDevice *dev,
int addr);
55 static void sram_write (VDevice *dev,
int addr, uint8_t val);
56 static void sram_reset (VDevice *dev);
59 sram_new (
int base,
int size)
64 sram_construct (sram, base, size);
71 sram_construct (SRAM *sram,
int base,
int size)
76 sram->stor = storage_new (base, size);
77 vdev_construct ((VDevice *)sram, sram_read, sram_write, sram_reset,
82 sram_destroy (
void *sram)
84 SRAM *_sram = (SRAM *)sram;
95 sram_get_size (SRAM *sram)
97 return storage_get_size (sram->stor);
101 sram_get_base (SRAM *sram)
103 return storage_get_base (sram->stor);
107 sram_read (VDevice *dev,
int addr)
109 SRAM *sram = (SRAM *)dev;
111 return storage_readb (sram->stor, addr);
115 sram_write (VDevice *dev,
int addr, uint8_t val)
117 SRAM *sram = (SRAM *)dev;
121 storage_writeb (sram->stor, addr, val);
125 sram_reset (VDevice *dev)
#define avr_new(type, count)
Macro for allocating memory.
void vdev_def_AddAddr(VDevice *dev, int addr, char *name, int related_addr, void *data)
Default AddAddr method.
void vdev_destroy(void *dev)
Destructor for a VDevice.
void class_unref(AvrClass *klass)
Decrements the reference count for the klass object.
void vdev_construct(VDevice *dev, VDevFP_Read rd, VDevFP_Write wr, VDevFP_Reset reset, VDevFP_AddAddr add_addr)
Constructor for a VDevice.
#define avr_error(fmt, args...)
Print an error message to stderr and terminate program.
void display_sram(int addr, int len, uint8_t *vals)
Update a block of sram addresses in the display.
void class_overload_destroy(AvrClass *klass, AvrClassFP_Destroy destroy)
Overload the default destroy method.