dreamcast_sysasicvar.h Source File
Back to the index.
src
include
thirdparty
dreamcast_sysasicvar.h
Go to the documentation of this file.
1
/* GXemul: $Id: dreamcast_sysasicvar.h,v 1.2 2006-10-28 01:37:54 debug Exp $ */
2
/* $NetBSD: sysasicvar.h,v 1.5 2005/12/24 23:24:00 perry Exp $ */
3
4
/*
5
* Extended with useful macros and also some more event definitions
6
* described in KOS comments by Dan Potter (kos/kernel/arch/dreamcast
7
* /hardware/asic.c).
8
*/
9
10
#ifndef _DREAMCAST_SYSASICVAR_H_
11
#define _DREAMCAST_SYSASICVAR_H_
12
13
/*-
14
* Copyright (c) 2001 The NetBSD Foundation, Inc.
15
* All rights reserved.
16
*
17
* This code is derived from software contributed to The NetBSD Foundation
18
* by
19
*
20
* Redistribution and use in source and binary forms, with or without
21
* modification, are permitted provided that the following conditions
22
* are met:
23
* 1. Redistributions of source code must retain the above copyright
24
* notice, this list of conditions and the following disclaimer.
25
* 2. Redistributions in binary form must reproduce the above copyright
26
* notice, this list of conditions and the following disclaimer in the
27
* documentation and/or other materials provided with the distribution.
28
* 3. All advertising materials mentioning features or use of this software
29
* must display the following acknowledgement:
30
* This product includes software developed by the NetBSD
31
* Foundation, Inc. and its contributors.
32
* 4. Neither the name of The NetBSD Foundation nor the names of its
33
* contributors may be used to endorse or promote products derived
34
* from this software without specific prior written permission.
35
*
36
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
37
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
38
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
40
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
41
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
42
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
43
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
44
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
45
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
46
* POSSIBILITY OF SUCH DAMAGE.
47
*/
48
49
#define SYSASIC_BASE 0x5f6900
50
#define SYSASIC_SIZE 0x100
51
52
#define SYSASIC_EVENT_RENDERDONE 2
/* Render Completed */
53
#define SYSASIC_EVENT_PVR_SCANINT1 3
/* Scanline interrupt 1 */
54
#define SYSASIC_EVENT_PVR_SCANINT2 4
/* Scanline interrupt 2 */
55
#define SYSASIC_EVENT_VBLINT 5
/* VBlank interrupt */
56
#define SYSASIC_EVENT_OPAQUEDONE 7
/* Opaque list complete */
57
#define SYSASIC_EVENT_OPAQUEMODDONE 8
/* Opaque modifiers complete */
58
#define SYSASIC_EVENT_TRANSDONE 9
/* Transparent list complete */
59
#define SYSASIC_EVENT_TRANSMODDONE 10
/* Trans. modifiers complete */
60
#define SYSASIC_EVENT_MAPLE_DMADONE 12
/* Maple DMA complete */
61
#define SYSASIC_EVENT_MAPLE_ERROR 13
/* Maple error */
62
#define SYSASIC_EVENT_GDROM_DMA 14
/* GD-ROM DMA Complete */
63
#define SYSASIC_EVENT_SPU_DMA 15
/* SPU DMA Complete */
64
#define SYSASIC_EVENT_SPU_IRQ 17
/* SPU Interrupt */
65
#define SYSASIC_EVENT_PVR_DMA 19
/* PVR DMA Complete */
66
#define SYSASIC_EVENT_PVR_PTDONE 21
/* Punch-through complete */
67
#define SYSASIC_EVENT_GDROM 32
/* GD-ROM Command status */
68
#define SYSASIC_EVENT_AICA 33
/* AICA (?) */
69
#define SYSASIC_EVENT_8BIT 34
/* Modem/Lan adapter */
70
#define SYSASIC_EVENT_EXT 35
/* PCI/BBA IRQ */
71
#define SYSASIC_EVENT_PRIMOUTOFMEM 66
/* Out of primitive mem */
72
#define SYSASIC_EVENT_MATOUTOFMEM 67
/* Out of matrix mem */
73
74
#define SYSASIC_EVENT_TO_ADDR(e) (SYSASIC_BASE + 4*((e)>>5))
75
#define SYSASIC_EVENT_TO_BITMASK(e) (1 << ((e) & 31))
76
77
#define SYSASIC_TRIGGER_EVENT(e) { \
78
uint8_t buf[8]; \
79
uint64_t tmp1 = SYSASIC_EVENT_TO_ADDR(e); \
80
uint64_t tmp2 = SYSASIC_EVENT_TO_BITMASK(e); \
81
tmp2 |= 0x100000000ULL;
/* Internal GXemul hack */
\
82
memory_writemax64(cpu, buf, 8, tmp2); \
83
cpu->memory_rw(cpu, cpu->mem, tmp1, buf, 8, \
84
MEM_WRITE, PHYSICAL); \
85
}
86
87
88
#if 0
89
const
char
*__pure sysasic_intr_string(
int
/*ipl*/
)
__attribute__
((
const
));
90
void
*sysasic_intr_establish(
int
/*event*/
,
int
/*ipl*/
,
91
int
(*ih_fun)(
void
*),
void
*);
92
void
sysasic_intr_disestablish(
void
*);
93
void
sysasic_intr_enable(
void
*,
int
/*on*/
);
94
#endif
95
96
#endif
/* !_DREAMCAST_SYSASICVAR_H_ */
__attribute__
#define __attribute__(x)
Definition:
dp83932reg.h:15
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17