56 |
return(dev->handler(cpu,dev,offset,op_size,op_type,data)); |
return(dev->handler(cpu,dev,offset,op_size,op_type,data)); |
57 |
} |
} |
58 |
|
|
|
|
|
|
/* Map a memory zone from a file */ |
|
|
u_char *memzone_map_file(int fd,size_t len); |
|
|
|
|
|
/* Create a file to serve as a memory zone */ |
|
|
int memzone_create_file(char *filename,size_t len,u_char **ptr); |
|
|
|
|
59 |
/* Get device by ID */ |
/* Get device by ID */ |
60 |
struct vdevice *dev_get_by_id(vm_instance_t *vm,u_int dev_id); |
struct vdevice *dev_get_by_id(vm_instance_t *vm,u_int dev_id); |
61 |
|
|
88 |
void *dev_access(cpu_mips_t *cpu,u_int dev_id,m_uint32_t offset, |
void *dev_access(cpu_mips_t *cpu,u_int dev_id,m_uint32_t offset, |
89 |
u_int op_size,u_int op_type,m_uint64_t *data); |
u_int op_size,u_int op_type,m_uint64_t *data); |
90 |
|
|
91 |
|
/* Synchronize memory for a memory-mapped (mmap) device */ |
92 |
|
int dev_sync(struct vdevice *dev); |
93 |
|
|
94 |
/* Remap a device at specified physical address */ |
/* Remap a device at specified physical address */ |
95 |
struct vdevice *dev_remap(char *name,struct vdevice *orig, |
struct vdevice *dev_remap(char *name,struct vdevice *orig, |
96 |
m_uint64_t paddr,m_uint32_t len); |
m_uint64_t paddr,m_uint32_t len); |
99 |
struct vdevice *dev_create_ram(vm_instance_t *vm,char *name,char *filename, |
struct vdevice *dev_create_ram(vm_instance_t *vm,char *name,char *filename, |
100 |
m_uint64_t paddr,m_uint32_t len); |
m_uint64_t paddr,m_uint32_t len); |
101 |
|
|
102 |
|
/* Create a ghosted RAM device */ |
103 |
|
struct vdevice * |
104 |
|
dev_create_ghost_ram(vm_instance_t *vm,char *name,char *filename, |
105 |
|
m_uint64_t paddr,m_uint32_t len); |
106 |
|
|
107 |
/* Create a memory alias */ |
/* Create a memory alias */ |
108 |
struct vdevice *dev_create_ram_alias(vm_instance_t *vm,char *name,char *orig, |
struct vdevice *dev_create_ram_alias(vm_instance_t *vm,char *name,char *orig, |
109 |
m_uint64_t paddr,m_uint32_t len); |
m_uint64_t paddr,m_uint32_t len); |
116 |
m_uint64_t paddr,m_uint32_t len); |
m_uint64_t paddr,m_uint32_t len); |
117 |
|
|
118 |
/* Initialize a RAM zone */ |
/* Initialize a RAM zone */ |
119 |
int dev_ram_init(vm_instance_t *vm,char *name,int use_mmap, |
int dev_ram_init(vm_instance_t *vm,char *name,int use_mmap,int delete_file, |
120 |
m_uint64_t paddr,m_uint32_t len); |
char *alternate_name,m_uint64_t paddr,m_uint32_t len); |
121 |
|
|
122 |
|
/* Initialize a ghosted RAM zone */ |
123 |
|
int dev_ram_ghost_init(vm_instance_t *vm,char *name,char *filename, |
124 |
|
m_uint64_t paddr,m_uint32_t len); |
125 |
|
|
126 |
/* Initialize a ROM zone */ |
/* Initialize a ROM zone */ |
127 |
int dev_rom_init(vm_instance_t *vm,char *name,m_uint64_t paddr,m_uint32_t len); |
int dev_rom_init(vm_instance_t *vm,char *name,m_uint64_t paddr,m_uint32_t len); |
131 |
m_uint64_t paddr,m_uint32_t len, |
m_uint64_t paddr,m_uint32_t len, |
132 |
u_int *conf_reg); |
u_int *conf_reg); |
133 |
|
|
|
/* Compute NVRAM checksum */ |
|
|
m_uint16_t nvram_cksum(vm_instance_t *vm,m_uint64_t addr,size_t count); |
|
|
|
|
134 |
/* Create a 8 Mb bootflash */ |
/* Create a 8 Mb bootflash */ |
135 |
int dev_bootflash_init(vm_instance_t *vm,char *name, |
int dev_bootflash_init(vm_instance_t *vm,char *name, |
136 |
m_uint64_t paddr,m_uint32_t len); |
m_uint64_t paddr,m_uint32_t len); |
137 |
|
|
138 |
/* Create a PLX9060 device */ |
/* Create a Flash device */ |
139 |
vm_obj_t *dev_plx9060_init(vm_instance_t *vm,char *name, |
vm_obj_t *dev_flash_init(vm_instance_t *vm,char *name, |
140 |
struct pci_bus *pci_bus,int pci_device, |
m_uint64_t paddr,m_uint32_t len); |
141 |
struct vdevice *dev); |
|
142 |
|
/* Copy data directly to a flash device */ |
143 |
/* Create a new GT64010 controller */ |
int dev_flash_copy_data(vm_obj_t *obj,m_uint32_t offset, |
144 |
int dev_gt64010_init(vm_instance_t *vm,char *name, |
u_char *ptr,ssize_t len); |
|
m_uint64_t paddr,m_uint32_t len,u_int irq); |
|
|
|
|
|
/* Create a new GT64120 controller */ |
|
|
int dev_gt64120_init(vm_instance_t *vm,char *name, |
|
|
m_uint64_t paddr,m_uint32_t len,u_int irq); |
|
145 |
|
|
146 |
/* dev_dec21050_init() */ |
/* dev_dec21050_init() */ |
147 |
int dev_dec21050_init(struct pci_bus *pci_bus,int pci_device, |
int dev_dec21050_init(struct pci_bus *pci_bus,int pci_device, |
163 |
int dev_pericom_init(struct pci_bus *pci_bus,int pci_device, |
int dev_pericom_init(struct pci_bus *pci_bus,int pci_device, |
164 |
struct pci_bus *sec_bus); |
struct pci_bus *sec_bus); |
165 |
|
|
166 |
|
/* dev_ti2050b_init() */ |
167 |
|
int dev_ti2050b_init(struct pci_bus *pci_bus,int pci_device, |
168 |
|
struct pci_bus *sec_bus); |
169 |
|
|
170 |
/* Create an AP1011 Sturgeon HyperTransport-PCI Bridge */ |
/* Create an AP1011 Sturgeon HyperTransport-PCI Bridge */ |
171 |
int dev_ap1011_init(struct pci_bus *pci_bus,int pci_device, |
int dev_ap1011_init(struct pci_bus *pci_bus,int pci_device, |
172 |
struct pci_bus *sec_bus); |
struct pci_bus *sec_bus); |
189 |
/* Initialize a PCMCIA disk */ |
/* Initialize a PCMCIA disk */ |
190 |
vm_obj_t *dev_pcmcia_disk_init(vm_instance_t *vm,char *name, |
vm_obj_t *dev_pcmcia_disk_init(vm_instance_t *vm,char *name, |
191 |
m_uint64_t paddr,m_uint32_t len, |
m_uint64_t paddr,m_uint32_t len, |
192 |
u_int disk_size); |
u_int disk_size,int mode); |
193 |
|
|
194 |
/* Create SB-1 system control devices */ |
/* Create SB-1 system control devices */ |
195 |
int dev_sb1_init(vm_instance_t *vm); |
int dev_sb1_init(vm_instance_t *vm); |