dev_cpc700.cc Source File
Back to the index.
Go to the documentation of this file.
79 uint64_t idata = 0, odata = 0;
80 int bus, dev, func,
reg;
86 switch (relative_addr) {
94 &odata : &idata, len, writeflag);
113 uint64_t idata = 0, odata = 0;
118 switch (relative_addr) {
126 if (!(d->
sr & d->
er))
134 fatal(
"[ cpc700_int: read from CPC_UIC_SRS? ]\n");
161 odata = d->
sr & d->
er;
163 fatal(
"[ cpc700_int: write to CPC_UIC_MSR? ]\n");
168 fatal(
"[ cpc700_int: unimplemented write to "
169 "offset 0x%x: data=0x%x ]\n", (
int)
170 relative_addr, (
int)idata);
172 fatal(
"[ cpc700_int: unimplemented read from "
173 "offset 0x%x ]\n", (
int)relative_addr);
197 for (i=0; i<32; i++) {
200 snprintf(n,
sizeof(n),
"%s.cpc700.%i",
202 memset(&templ, 0,
sizeof(templ));
232 default:
fatal(
"!\n! WARNING: cpc700 for non-implemented machine"
247 snprintf(tmp,
sizeof(tmp),
"ns16550 irq=%s.cpc700.%i addr=0x%llx "
252 snprintf(tmp,
sizeof(tmp),
"ns16550 irq=%s.cpc700.%i addr=0x%llx "
#define INTERRUPT_CONNECT(name, istruct)
#define INTERRUPT_ASSERT(istruct)
void(* interrupt_deassert)(struct interrupt *)
void bus_pci_setaddr(struct cpu *cpu, struct pci_data *pci_data, int bus, int device, int function, int reg)
addr & if(addr >=0x24 &&page !=NULL)
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)
void bus_pci_data_access(struct cpu *cpu, struct pci_data *pci_data, uint64_t *data, int len, int writeflag)
DEVICE_ACCESS(cpc700_pci)
void cpc700_interrupt_deassert(struct interrupt *interrupt)
void bus_pci_decompose_1(uint32_t t, int *bus, int *dev, int *func, int *reg)
struct pci_data * bus_pci_init(struct machine *machine, const char *irq_path, uint64_t pci_actual_io_offset, uint64_t pci_actual_mem_offset, uint64_t pci_portbase, uint64_t pci_membase, const char *pci_irqbase, uint64_t isa_portbase, uint64_t isa_membase, const char *isa_irqbase)
void fatal(const char *fmt,...)
uint64_t memory_readmax64(struct cpu *cpu, unsigned char *buf, int len)
void * device_add(struct machine *machine, const char *name_and_params)
void cpc700_interrupt_assert(struct interrupt *interrupt)
#define INTERRUPT_DEASSERT(istruct)
void(* interrupt_assert)(struct interrupt *)
void interrupt_handler_register(struct interrupt *templ)
#define MEM_PCI_LITTLE_ENDIAN
void memory_writemax64(struct cpu *cpu, unsigned char *buf, int len, uint64_t data)
struct pci_data * pci_data
void bus_pci_add(struct machine *machine, struct pci_data *pci_data, struct memory *mem, int bus, int device, int function, const char *name)
#define CHECK_ALLOCATION(ptr)
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17