#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "console.h"
#include "cpu.h"
#include "devices.h"
#include "machine.h"
#include "memory.h"
#include "misc.h"
#include "thirdparty/crmfbreg.h"
#include "thirdparty/sgi_gl.h"
Go to the source code of this file.
Classes | |
struct | sgi_re_data |
Functions | |
void | horrible_getputpixel (bool put, struct cpu *cpu, struct sgi_re_data *d, int x, int y, uint32_t *color, int mode) |
DEVICE_ACCESS (sgi_re) | |
void | dev_sgi_re_init (struct machine *machine, struct memory *mem, uint64_t baseaddr) |
void | draw_primitive (struct cpu *cpu, struct sgi_re_data *d) |
DEVICE_ACCESS (sgi_de) | |
void | dev_sgi_de_init (struct memory *mem, uint64_t baseaddr, struct sgi_re_data *d) |
void | do_mte_transfer (struct cpu *cpu, struct sgi_re_data *d) |
DEVICE_ACCESS (sgi_mte) | |
void | dev_sgi_mte_init (struct memory *mem, uint64_t baseaddr, struct sgi_re_data *d) |
DEVICE_ACCESS (sgi_de_status) | |
void | dev_sgi_de_status_init (struct memory *mem, uint64_t baseaddr, struct sgi_re_data *d) |
void dev_sgi_de_init | ( | struct memory * | mem, |
uint64_t | baseaddr, | ||
struct sgi_re_data * | d | ||
) |
Definition at line 921 of file dev_sgi_re.cc.
References dev_sgi_de_access(), DEV_SGI_DE_LENGTH, DM_DEFAULT, and memory_device_register().
Referenced by dev_sgi_re_init().
void dev_sgi_de_status_init | ( | struct memory * | mem, |
uint64_t | baseaddr, | ||
struct sgi_re_data * | d | ||
) |
Definition at line 1334 of file dev_sgi_re.cc.
References DEV_SGI_DE_STATUS_LENGTH, DM_DEFAULT, and memory_device_register().
Referenced by dev_sgi_re_init().
void dev_sgi_mte_init | ( | struct memory * | mem, |
uint64_t | baseaddr, | ||
struct sgi_re_data * | d | ||
) |
Definition at line 1275 of file dev_sgi_re.cc.
References DEV_SGI_MTE_LENGTH, DM_DEFAULT, and memory_device_register().
Referenced by dev_sgi_re_init().
Definition at line 380 of file dev_sgi_re.cc.
References CHECK_ALLOCATION, dev_sgi_de_init(), dev_sgi_de_status_init(), dev_sgi_mte_init(), dev_sgi_re_access(), DEV_SGI_RE_LENGTH, DM_DEFAULT, and memory_device_register().
Referenced by MACHINE_SETUP().
DEVICE_ACCESS | ( | sgi_de | ) |
Definition at line 659 of file dev_sgi_re.cc.
References CRIME_DE_BG, CRIME_DE_CLIPMODE, CRIME_DE_DRAWMODE, CRIME_DE_FG, CRIME_DE_FLUSH, CRIME_DE_MODE_DST, CRIME_DE_MODE_SRC, CRIME_DE_NULL, CRIME_DE_PLANEMASK, CRIME_DE_PRIMITIVE, CRIME_DE_ROP, CRIME_DE_SCISSOR, CRIME_DE_SCRMASK0, CRIME_DE_SCRMASK1, CRIME_DE_SCRMASK2, CRIME_DE_SCRMASK3, CRIME_DE_SCRMASK4, CRIME_DE_START, CRIME_DE_STIPPLE_MODE, CRIME_DE_STIPPLE_PAT, CRIME_DE_WINOFFSET_DST, CRIME_DE_WINOFFSET_SRC, CRIME_DE_X_VERTEX_0, CRIME_DE_X_VERTEX_1, CRIME_DE_XFER_ADDR_DST, CRIME_DE_XFER_ADDR_SRC, CRIME_DE_XFER_STEP_X, CRIME_DE_XFER_STEP_Y, CRIME_DE_XFER_STRD_DST, CRIME_DE_XFER_STRD_SRC, data, sgi_re_data::de_reg, debug, draw_primitive(), fatal(), MEM_READ, MEM_WRITE, memory_readmax64(), and memory_writemax64().
DEVICE_ACCESS | ( | sgi_de_status | ) |
Definition at line 1288 of file dev_sgi_re.cc.
References CRIME_DE_IDLE, CRIME_DE_MTE_IDLE, CRIME_DE_PIXPIPE_IDLE, CRIME_DE_SETUP_IDLE, CRIME_DE_STATUS, data, debug, MEM_READ, MEM_WRITE, memory_readmax64(), and memory_writemax64().
DEVICE_ACCESS | ( | sgi_mte | ) |
Definition at line 1139 of file dev_sgi_re.cc.
References CRIME_DE_START, CRIME_MTE_BG, CRIME_MTE_BYTEMASK, CRIME_MTE_DST0, CRIME_MTE_DST1, CRIME_MTE_DST_Y_STEP, CRIME_MTE_FLUSH, CRIME_MTE_MODE, CRIME_MTE_NULL, CRIME_MTE_SRC0, CRIME_MTE_SRC1, CRIME_MTE_SRC_Y_STEP, CRIME_MTE_STIPPLEMASK, data, debug, do_mte_transfer(), fatal(), MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), and sgi_re_data::mte_reg.
DEVICE_ACCESS | ( | sgi_re | ) |
Definition at line 216 of file dev_sgi_re.cc.
References CRIME_RE_LINEAR_A, CRIME_RE_LINEAR_B, CRIME_RE_TEX, CRIME_RE_TLB_A, CRIME_RE_TLB_B, CRIME_RE_TLB_C, data, debug, fatal(), MEM_READ, MEM_WRITE, memory_readmax64(), memory_writemax64(), sgi_re_data::re_linear_a, sgi_re_data::re_linear_b, sgi_re_data::re_tex, sgi_re_data::re_tlb_a, sgi_re_data::re_tlb_b, and sgi_re_data::re_tlb_c.
void do_mte_transfer | ( | struct cpu * | cpu, |
struct sgi_re_data * | d | ||
) |
Definition at line 938 of file dev_sgi_re.cc.
References CRIME_MTE_BG, CRIME_MTE_BYTEMASK, CRIME_MTE_DST0, CRIME_MTE_DST1, CRIME_MTE_DST_Y_STEP, CRIME_MTE_MODE, CRIME_MTE_SRC0, CRIME_MTE_SRC1, CRIME_MTE_SRC_Y_STEP, DE_MODE_TYPE_RGBA, debug, fatal(), horrible_getputpixel(), cpu::mem, MEM_WRITE, cpu::memory_rw, MTE_DEPTH_SHIFT, MTE_DST_TLB_SHIFT, MTE_MODE_COPY, MTE_MODE_DEPTH_MASK, MTE_MODE_DST_BUF_MASK, MTE_MODE_SRC_BUF_MASK, MTE_MODE_STIPPLE, sgi_re_data::mte_reg, MTE_SRC_TLB_SHIFT, MTE_TLB_A, MTE_TLB_B, MTE_TLB_C, MTE_TLB_LIN_A, MTE_TLB_LIN_B, NO_EXCEPTIONS, PHYSICAL, sgi_re_data::re_linear_a, and sgi_re_data::re_linear_b.
Referenced by DEVICE_ACCESS().
void draw_primitive | ( | struct cpu * | cpu, |
struct sgi_re_data * | d | ||
) |
Definition at line 403 of file dev_sgi_re.cc.
References CRIME_DE_BG, CRIME_DE_DRAWMODE, CRIME_DE_FG, CRIME_DE_MODE_DST, CRIME_DE_MODE_SRC, CRIME_DE_PRIMITIVE, CRIME_DE_ROP, CRIME_DE_STIPPLE_MODE, CRIME_DE_STIPPLE_PAT, CRIME_DE_X_VERTEX_0, CRIME_DE_X_VERTEX_1, CRIME_DE_XFER_ADDR_DST, CRIME_DE_XFER_ADDR_SRC, CRIME_DE_XFER_STEP_X, CRIME_DE_XFER_STEP_Y, CRIME_DE_XFER_STRD_DST, CRIME_DE_XFER_STRD_SRC, DE_DRAWMODE_BYTEMASK, DE_DRAWMODE_LINE_STIP, DE_DRAWMODE_OPAQUE_STIP, DE_DRAWMODE_PLANEMASK, DE_DRAWMODE_POLY_STIP, DE_DRAWMODE_ROP, DE_DRAWMODE_XFER_EN, DE_PRIM_LINE, DE_PRIM_LINE_SKIP_END, DE_PRIM_RECTANGLE, DE_PRIM_RL, DE_PRIM_TB, sgi_re_data::de_reg, DE_STIP_MAXIDX_SHIFT, DE_STIP_STRTIDX_SHIFT, debug, fatal(), horrible_getputpixel(), op, OPENGL_LOGIC_OP_COPY, OPENGL_LOGIC_OP_COPY_INVERTED, and OPENGL_LOGIC_OP_XOR.
Referenced by DEVICE_ACCESS().
void horrible_getputpixel | ( | bool | put, |
struct cpu * | cpu, | ||
struct sgi_re_data * | d, | ||
int | x, | ||
int | y, | ||
uint32_t * | color, | ||
int | mode | ||
) |
Definition at line 90 of file dev_sgi_re.cc.
References DE_MODE_TYPE_ABGR, DE_MODE_TYPE_CI, DE_MODE_TYPE_MASK, DE_MODE_TYPE_RGB, DE_MODE_TYPE_RGBA, fatal(), cpu::mem, MEM_READ, MEM_WRITE, cpu::memory_rw, NO_EXCEPTIONS, PHYSICAL, sgi_re_data::re_linear_a, sgi_re_data::re_tlb_a, sgi_re_data::re_tlb_b, and sgi_re_data::re_tlb_c.
Referenced by do_mte_transfer(), and draw_primitive().