#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "console.h"
#include "cpu.h"
#include "device.h"
#include "diskimage.h"
#include "interrupt.h"
#include "machine.h"
#include "memory.h"
#include "misc.h"
#include "thirdparty/osiopreg.h"
Go to the source code of this file.
Classes | |
struct | osiop_data |
Macros | |
#define | DEV_OSIOP_LENGTH OSIOP_NREGS |
#define | OSIOP_CHIP_REVISION 2 |
#define | MAX_SCRIPTS_PER_CHUNK 256 /* 256 may be a reasonable value? */ |
#define | OSIOP_TICK_SHIFT 17 |
Functions | |
uint32_t | osiop_get_next_scripts_word (struct cpu *cpu, struct osiop_data *d) |
int | osiop_execute_scripts_instr (struct cpu *cpu, struct osiop_data *d) |
void | osiop_execute_scripts (struct cpu *cpu, struct osiop_data *d) |
DEVICE_TICK (osiop) | |
DEVICE_ACCESS (osiop) | |
DEVINIT (osiop) | |
Variables | |
const int | osiop_debug = 0 |
#define DEV_OSIOP_LENGTH OSIOP_NREGS |
Definition at line 68 of file dev_osiop.cc.
Referenced by DEVINIT().
#define MAX_SCRIPTS_PER_CHUNK 256 /* 256 may be a reasonable value? */ |
Definition at line 71 of file dev_osiop.cc.
Referenced by osiop_execute_scripts().
#define OSIOP_CHIP_REVISION 2 |
Definition at line 69 of file dev_osiop.cc.
#define OSIOP_TICK_SHIFT 17 |
Definition at line 73 of file dev_osiop.cc.
Referenced by DEVINIT().
DEVICE_ACCESS | ( | osiop | ) |
Definition at line 815 of file dev_osiop.cc.
References cpu::byte_order, data, EMUL_BIG_ENDIAN, if(), MEM_WRITE, memory_readmax64(), OSIOP_ADDER, OSIOP_DBC, OSIOP_DNAD, OSIOP_DSA, OSIOP_DSP, OSIOP_DSPS, OSIOP_SCNTL0, OSIOP_SCNTL1, OSIOP_SCRATCH, OSIOP_SIEN, OSIOP_TEMP, and osiop_data::reg.
DEVICE_TICK | ( | osiop | ) |
Definition at line 804 of file dev_osiop.cc.
References osiop_execute_scripts(), and osiop_data::scripts_running.
DEVINIT | ( | osiop | ) |
Definition at line 1034 of file dev_osiop.cc.
References devinit::addr, CHECK_ALLOCATION, DEV_OSIOP_LENGTH, DM_DEFAULT, INTERRUPT_CONNECT, devinit::interrupt_path, osiop_data::irq, devinit::machine, machine_add_tickfunction(), machine::memory, memory_device_register(), OSIOP_CTEST1, OSIOP_CTEST1_FMT, OSIOP_SCID, OSIOP_SCID_VALUE, OSIOP_TICK_SHIFT, and osiop_data::reg.
void osiop_execute_scripts | ( | struct cpu * | cpu, |
struct osiop_data * | d | ||
) |
Definition at line 788 of file dev_osiop.cc.
References debug, MAX_SCRIPTS_PER_CHUNK, osiop_debug, osiop_execute_scripts_instr(), and osiop_data::scripts_running.
Referenced by DEVICE_TICK().
int osiop_execute_scripts_instr | ( | struct cpu * | cpu, |
struct osiop_data * | d | ||
) |
Definition at line 285 of file dev_osiop.cc.
References addr, debug, fatal(), OSIOP_DBC, OSIOP_DCMD, osiop_debug, OSIOP_DNAD, OSIOP_DSA, OSIOP_DSP, OSIOP_DSPS, osiop_get_next_scripts_word(), OSIOP_TEMP, and osiop_data::reg.
Referenced by osiop_execute_scripts().
uint32_t osiop_get_next_scripts_word | ( | struct cpu * | cpu, |
struct osiop_data * | d | ||
) |
Definition at line 255 of file dev_osiop.cc.
References fatal(), if(), instr, OSIOP_DSP, and osiop_data::reg.
Referenced by osiop_execute_scripts_instr().
const int osiop_debug = 0 |
Definition at line 62 of file dev_osiop.cc.
Referenced by osiop_execute_scripts(), and osiop_execute_scripts_instr().