| 41 | /* RISCV machine */ |
| 42 | |
| 43 | typedef struct RISCVMachine { |
| 44 | VirtMachine common; |
| 45 | PhysMemoryMap *mem_map; |
| 46 | int max_xlen; |
| 47 | RISCVCPUState *cpu_state; |
| 48 | uint64_t ram_size; |
| 49 | /* RTC */ |
| 50 | BOOL rtc_real_time; |
| 51 | uint64_t rtc_start_time; |
| 52 | uint64_t timecmp; |
| 53 | /* PLIC */ |
| 54 | uint32_t plic_pending_irq, plic_served_irq; |
| 55 | IRQSignal plic_irq[32]; /* IRQ 0 is not used */ |
| 56 | /* HTIF */ |
| 57 | uint64_t htif_tohost, htif_fromhost; |
| 58 | |
| 59 | VIRTIODevice *keyboard_dev; |
| 60 | VIRTIODevice *mouse_dev; |
| 61 | |
| 62 | int virtio_count; |
| 63 | } RISCVMachine; |
| 64 | |
| 65 | #define LOW_RAM_SIZE 0x00010000 /* 64KB */ |
| 66 | #define RAM_BASE_ADDR 0x80000000 |
nothing calls this directly
no outgoing calls
no test coverage detected