#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cpu.h"
#include "device.h"
#include "machine.h"
#include "memory.h"
#include "misc.h"
#include "thirdparty/ee_timerreg.h"
#include "thirdparty/ps2_dmacreg.h"
Go to the source code of this file.
Classes | |
struct | ps2_data |
Macros | |
#define | TICK_STEPS_SHIFT 14 |
#define | DEV_PS2_GIF_FAKE_BASE 0x50000000 |
#define | N_PS2_DMA_CHANNELS 10 |
#define | N_PS2_TIMERS 4 |
#define | DEV_PS2_LENGTH 0x10000 |
Functions | |
void | ps2_intr_interrupt_assert (struct interrupt *interrupt) |
void | ps2_intr_interrupt_deassert (struct interrupt *interrupt) |
void | ps2_dmac_interrupt_assert (struct interrupt *interrupt) |
void | ps2_dmac_interrupt_deassert (struct interrupt *interrupt) |
void | ps2_sbus_interrupt_assert (struct interrupt *interrupt) |
void | ps2_sbus_interrupt_deassert (struct interrupt *interrupt) |
DEVICE_TICK (ps2) | |
DEVICE_ACCESS (ps2) | |
DEVINIT (ps2) | |
#define DEV_PS2_GIF_FAKE_BASE 0x50000000 |
Definition at line 57 of file dev_ps2_stuff.cc.
#define DEV_PS2_LENGTH 0x10000 |
Definition at line 83 of file dev_ps2_stuff.cc.
#define N_PS2_DMA_CHANNELS 10 |
Definition at line 59 of file dev_ps2_stuff.cc.
#define N_PS2_TIMERS 4 |
Definition at line 60 of file dev_ps2_stuff.cc.
#define TICK_STEPS_SHIFT 14 |
Definition at line 54 of file dev_ps2_stuff.cc.
DEVICE_ACCESS | ( | ps2 | ) |
Definition at line 167 of file dev_ps2_stuff.cc.
References CACHE_NONE, CHECK_ALLOCATION, D2_CHCR_REG, D2_MADR_REG, D2_QWC_REG, D2_TADR_REG, D_CHCR_STR, data, debug, DMA_CH_GIF, ps2_data::dma_channel2_irq, ps2_data::dmac_irq, ps2_data::dmac_reg, DMAC_REGSIZE, fatal(), ps2_data::imask, INTERRUPT_ASSERT, INTERRUPT_DEASSERT, ps2_data::intr, ps2_data::intr_irq, cpu::mem, MEM_READ, MEM_WRITE, memory_readmax64(), cpu::memory_rw, memory_writemax64(), ps2_data::other_memory_base, PHYSICAL, ps2_data::sbus_irq, ps2_data::sbus_smflg, ps2_data::timer_comp, ps2_data::timer_count, ps2_data::timer_hold, ps2_data::timer_mode, TIMER_OFS, and TIMER_REGSIZE.
DEVICE_TICK | ( | ps2 | ) |
Definition at line 136 of file dev_ps2_stuff.cc.
References INTERRUPT_ASSERT, N_PS2_TIMERS, T_MODE_CMPE, T_MODE_CUE, T_MODE_OVFE, T_MODE_OVFF, T_MODE_ZRET, ps2_data::timer_count, ps2_data::timer_irq, and ps2_data::timer_mode.
DEVINIT | ( | ps2 | ) |
Definition at line 390 of file dev_ps2_stuff.cc.
References devinit::addr, CHECK_ALLOCATION, DEV_PS2_GIF_FAKE_BASE, DEV_PS2_LENGTH, DM_DEFAULT, DMA_CH_GIF, ps2_data::dma_channel2_irq, ps2_data::dmac_irq, interrupt::extra, interrupt::interrupt_assert, INTERRUPT_CONNECT, interrupt::interrupt_deassert, interrupt_handler_register(), devinit::interrupt_path, ps2_data::intr_irq, interrupt::line, devinit::machine, machine_add_tickfunction(), machine::memory, memory_device_register(), N_PS2_TIMERS, interrupt::name, ps2_data::other_memory_base, ps2_dmac_interrupt_assert(), ps2_dmac_interrupt_deassert(), ps2_intr_interrupt_assert(), ps2_intr_interrupt_deassert(), ps2_sbus_interrupt_assert(), ps2_sbus_interrupt_deassert(), ps2_data::sbus_irq, TICK_STEPS_SHIFT, and ps2_data::timer_irq.
void ps2_dmac_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 100 of file dev_ps2_stuff.cc.
References ps2_data::dmac_irq, ps2_data::dmac_reg, interrupt::extra, INTERRUPT_ASSERT, and interrupt::line.
Referenced by DEVINIT().
void ps2_dmac_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 108 of file dev_ps2_stuff.cc.
References ps2_data::dmac_irq, ps2_data::dmac_reg, interrupt::extra, INTERRUPT_DEASSERT, and interrupt::line.
Referenced by DEVINIT().
void ps2_intr_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 86 of file dev_ps2_stuff.cc.
References interrupt::extra, ps2_data::imask, INTERRUPT_ASSERT, ps2_data::intr, ps2_data::intr_irq, and interrupt::line.
Referenced by DEVINIT().
void ps2_intr_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 93 of file dev_ps2_stuff.cc.
References interrupt::extra, ps2_data::imask, INTERRUPT_DEASSERT, ps2_data::intr, ps2_data::intr_irq, and interrupt::line.
Referenced by DEVINIT().
void ps2_sbus_interrupt_assert | ( | struct interrupt * | interrupt | ) |
Definition at line 116 of file dev_ps2_stuff.cc.
References interrupt::extra, INTERRUPT_ASSERT, interrupt::line, ps2_data::sbus_irq, and ps2_data::sbus_smflg.
Referenced by DEVINIT().
void ps2_sbus_interrupt_deassert | ( | struct interrupt * | interrupt | ) |
Definition at line 125 of file dev_ps2_stuff.cc.
References interrupt::extra, INTERRUPT_DEASSERT, interrupt::line, ps2_data::sbus_irq, and ps2_data::sbus_smflg.
Referenced by DEVINIT().