48 uint64_t idata = 0, odata = 0;
53 switch (relative_addr) {
57 debug(
"[ sgi_ip20: write to address 0x%x, " 58 "data=0x%02x ]\n", (
int)relative_addr, (
int)idata);
70 odata = random() & 0xff;
72 debug(
"[ sgi_ip20: read from address 0x%x: 0x%x ]\n",
73 (
int)relative_addr, (
int)odata);
79 debug(
"[ sgi_ip20: unimplemented write to address " 80 "0x%x, data=0x%02x ]\n", (
int)relative_addr,
83 debug(
"[ sgi_ip20: unimplemented read from address " 84 "0x%x ]\n", (
int)relative_addr);
uint64_t memory_readmax64(struct cpu *cpu, unsigned char *buf, int len)
struct sgi_ip20_data * dev_sgi_ip20_init(struct cpu *cpu, struct memory *mem, uint64_t baseaddr)
#define CHECK_ALLOCATION(ptr)
int dev_sgi_ip20_access(struct cpu *cpu, struct memory *mem, uint64_t relative_addr, unsigned char *data, size_t len, int writeflag, void *)
void memory_writemax64(struct cpu *cpu, unsigned char *buf, int len, uint64_t data)
void memory_device_register(struct memory *mem, const char *, uint64_t baseaddr, uint64_t len, int(*f)(struct cpu *, struct memory *, uint64_t, unsigned char *, size_t, int, void *), void *extra, int flags, unsigned char *dyntrans_data)
#define DEV_SGI_IP20_LENGTH