#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/time.h>#include "bus_pci.h"#include "console.h"#include "cpu.h"#include "device.h"#include "devices.h"#include "emul.h"#include "machine.h"#include "memory.h"#include "misc.h"#include "net.h"#include "thirdparty/crimereg.h"#include "thirdparty/sgi_macereg.h"Go to the source code of this file.
Classes | |
| struct | macepci_data |
| struct | crime_data |
| struct | mace_data |
| struct | sgi_ust_data |
Macros | |
| #define | CRIME_TICKSHIFT 14 |
| #define | DEV_CRIME_LENGTH 0x280 |
| #define | DEV_MACE_LENGTH 0x100 |
Functions | |
| void | mips_pc_to_pointers (struct cpu *) |
| void | mips32_pc_to_pointers (struct cpu *) |
| void | crime_interrupt_reassert (struct crime_data *d) |
| void | crime_interrupt_assert (struct interrupt *interrupt) |
| void | crime_interrupt_deassert (struct interrupt *interrupt) |
| void | crime_update_crime_time (struct crime_data *d) |
| DEVICE_TICK (crime) | |
| DEVICE_ACCESS (crime) | |
| void | dev_crime_init (struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path, int use_fb) |
| void | mace_interrupt_reassert (struct mace_data *d) |
| void | mace_interrupt_assert (struct interrupt *interrupt) |
| void | mace_interrupt_deassert (struct interrupt *interrupt) |
| DEVICE_ACCESS (mace) | |
| DEVINIT (mace) | |
| DEVICE_ACCESS (macepci) | |
| struct pci_data * | dev_macepci_init (struct machine *machine, struct memory *mem, uint64_t baseaddr, char *irq_path) |
| DEVICE_ACCESS (sgi_ust) | |
| void | dev_sgi_ust_init (struct memory *mem, uint64_t baseaddr) |
| #define CRIME_TICKSHIFT 14 |
Definition at line 68 of file dev_sgi_ip32.cc.
| #define DEV_CRIME_LENGTH 0x280 |
Definition at line 75 of file dev_sgi_ip32.cc.
| #define DEV_MACE_LENGTH 0x100 |
Definition at line 447 of file dev_sgi_ip32.cc.
| void crime_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 124 of file dev_sgi_ip32.cc.
References CRIME_HARDINT, crime_interrupt_reassert(), interrupt::extra, interrupt::line, and crime_data::reg.
Referenced by dev_crime_init().
| void crime_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 131 of file dev_sgi_ip32.cc.
References CRIME_HARDINT, crime_interrupt_reassert(), interrupt::extra, interrupt::line, and crime_data::reg.
Referenced by dev_crime_init().
| void crime_interrupt_reassert | ( | struct crime_data * | d | ) |
Definition at line 92 of file dev_sgi_ip32.cc.
References CRIME_HARDINT, CRIME_INTMASK, CRIME_INTSTAT, CRIME_SOFTINT, INTERRUPT_ASSERT, INTERRUPT_DEASSERT, crime_data::irq, crime_data::prev_asserted, and crime_data::reg.
Referenced by crime_interrupt_assert(), crime_interrupt_deassert(), DEVICE_ACCESS(), and DEVICE_TICK().
| void crime_update_crime_time | ( | struct crime_data * | d | ) |
Definition at line 140 of file dev_sgi_ip32.cc.
References CRIME_TIME, fatal(), crime_data::last_microseconds, and crime_data::reg.
Referenced by DEVICE_ACCESS(), and DEVICE_TICK().
| void dev_crime_init | ( | struct machine * | machine, |
| struct memory * | mem, | ||
| uint64_t | baseaddr, | ||
| char * | irq_path, | ||
| int | use_fb | ||
| ) |
Definition at line 404 of file dev_sgi_ip32.cc.
References CHECK_ALLOCATION, crime_interrupt_assert(), crime_interrupt_deassert(), CRIME_TICKSHIFT, DEV_CRIME_LENGTH, device_add(), DM_DEFAULT, interrupt::extra, interrupt::interrupt_assert, INTERRUPT_CONNECT, interrupt::interrupt_deassert, interrupt_handler_register(), crime_data::irq, interrupt::line, machine_add_tickfunction(), memory_device_register(), interrupt::name, and crime_data::use_fb.
Referenced by MACHINE_SETUP().
| struct pci_data* dev_macepci_init | ( | struct machine * | machine, |
| struct memory * | mem, | ||
| uint64_t | baseaddr, | ||
| char * | irq_path | ||
| ) |
Definition at line 789 of file dev_sgi_ip32.cc.
References bus_pci_init(), CHECK_ALLOCATION, dev_macepci_access(), DEV_MACEPCI_LENGTH, DM_DEFAULT, memory_device_register(), and macepci_data::pci_data.
Referenced by MACHINE_SETUP().
| void dev_sgi_ust_init | ( | struct memory * | mem, |
| uint64_t | baseaddr | ||
| ) |
Definition at line 864 of file dev_sgi_ip32.cc.
References CHECK_ALLOCATION, dev_sgi_ust_access(), DEV_SGI_UST_LENGTH, DM_DEFAULT, and memory_device_register().
Referenced by MACHINE_SETUP().
| DEVICE_ACCESS | ( | crime | ) |
Definition at line 187 of file dev_sgi_ip32.cc.
References cpu::cd, machine::cpus, CRIME_CONTROL, CRIME_CONTROL_DOG_ENABLE, CRIME_CONTROL_ENDIANESS, CRIME_CONTROL_HARD_RESET, CRIME_DOG, CRIME_HARDINT, crime_interrupt_reassert(), CRIME_INTMASK, CRIME_INTSTAT, CRIME_MEM_BANK_CTRL0, CRIME_REV, CRIME_SOFTINT, CRIME_TIME, crime_update_crime_time(), data, debug, fatal(), mips_cpu::gpr, cpu::is_32bit, cpu::machine, MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), cpu::mips, mips32_pc_to_pointers(), MIPS_GPR_RA, mips_pc_to_pointers(), machine::ncpus, cpu::pc, machine::physical_ram_in_mb, crime_data::reg, cpu::running, and crime_data::use_fb.
| DEVICE_ACCESS | ( | mace | ) |
Definition at line 529 of file dev_sgi_ip32.cc.
References data, debug, fatal(), mace_interrupt_reassert(), MACE_ISA_FLASH_NIC_REG, MACE_ISA_INT_MASK, MACE_ISA_INT_STATUS, MACE_ISA_LED_GREEN, MACE_ISA_LED_RED, MACE_ISA_PWD_CLEAR, MACE_ISA_RINGBASE, MEM_READ, MEM_WRITE, and mace_data::reg.
| DEVICE_ACCESS | ( | macepci | ) |
Definition at line 697 of file dev_sgi_ip32.cc.
References bus_pci_data_access(), bus_pci_decompose_1(), bus_pci_setaddr(), data, fatal(), MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), and macepci_data::pci_data.
| DEVICE_ACCESS | ( | sgi_ust | ) |
Definition at line 825 of file dev_sgi_ip32.cc.
References data, debug, MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), and sgi_ust_data::reg.
| DEVICE_TICK | ( | crime | ) |
Definition at line 178 of file dev_sgi_ip32.cc.
References crime_interrupt_reassert(), and crime_update_crime_time().
| DEVINIT | ( | mace | ) |
Definition at line 640 of file dev_sgi_ip32.cc.
References devinit::addr, CHECK_ALLOCATION, CRIME_INT_PERIPH_MISC, CRIME_INT_PERIPH_SERIAL, DEV_MACE_LENGTH, DM_DEFAULT, interrupt::extra, interrupt::interrupt_assert, INTERRUPT_CONNECT, interrupt::interrupt_deassert, interrupt_handler_register(), devinit::interrupt_path, mace_data::irq_misc, mace_data::irq_periph, interrupt::line, mace_interrupt_assert(), mace_interrupt_deassert(), devinit::machine, machine::memory, memory_device_register(), devinit::name, interrupt::name, and devinit::return_ptr.
| void mace_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 503 of file dev_sgi_ip32.cc.
References interrupt::extra, interrupt::line, mace_interrupt_reassert(), MACE_ISA_INT_STATUS, and mace_data::reg.
Referenced by DEVINIT().
| void mace_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 515 of file dev_sgi_ip32.cc.
References interrupt::extra, interrupt::line, mace_interrupt_reassert(), MACE_ISA_INT_STATUS, and mace_data::reg.
Referenced by DEVINIT().
| void mace_interrupt_reassert | ( | struct mace_data * | d | ) |
Definition at line 457 of file dev_sgi_ip32.cc.
References INTERRUPT_ASSERT, INTERRUPT_DEASSERT, mace_data::irq_misc, mace_data::irq_periph, MACE_ISA_INT_MASK, MACE_ISA_INT_STATUS, mace_data::prev_assert_misc, mace_data::prev_assert_periph, and mace_data::reg.
Referenced by DEVICE_ACCESS(), mace_interrupt_assert(), and mace_interrupt_deassert().
| void mips32_pc_to_pointers | ( | struct cpu * | ) |
Referenced by DEVICE_ACCESS().
| void mips_pc_to_pointers | ( | struct cpu * | ) |
Referenced by DEVICE_ACCESS().
1.8.17