98e75f2d |
1 | /* |
2 | ** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY |
3 | ** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT |
4 | ** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX |
5 | ** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE |
6 | ** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). |
7 | ** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER |
8 | ** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A |
9 | ** FULL TEXT OF THE NON-WARRANTY PROVISIONS. |
10 | ** |
11 | ** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO |
12 | ** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN |
13 | ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, |
14 | ** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR |
15 | ** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF |
16 | ** THE UNITED STATES. |
17 | ** |
18 | ** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED |
19 | ** |
20 | ** $Header: /cvsroot/glide/glide3x/h5/glide3/src/glidesys.h,v 1.3.4.3 2003/07/24 03:51:08 anholt Exp $ |
21 | ** $Log: |
22 | ** 3 3dfx 1.0.1.0.1.0 10/11/00 Brent Forced check in to enforce |
23 | ** branching. |
24 | ** 2 3dfx 1.0.1.0 06/20/00 Joseph Kain Changes to support the |
25 | ** Napalm Glide open source release. Changes include cleaned up offensive |
26 | ** comments and new legal headers. |
27 | ** 1 3dfx 1.0 09/11/99 StarTeam VTS Administrator |
28 | ** $ |
29 | ** |
30 | ** 4 11/05/98 11:18a Russp |
31 | ** Fix GLIDE_NUM_TMU error check (change "&&" to "||") |
32 | ** |
33 | ** 3 7/24/98 1:41p Hohn |
34 | ** |
35 | ** 2 6/15/98 10:50a Peter |
36 | ** made csim compile time option |
37 | * |
38 | * 1 1/16/98 4:29p Atai |
39 | * create glide 3 src |
40 | * |
41 | * 10 12/09/97 12:20p Peter |
42 | * mac glide port |
43 | * |
44 | * 9 11/04/97 4:00p Dow |
45 | * Banshee Mods |
46 | * |
47 | * 8 8/18/97 3:52p Peter |
48 | * pre-hw arrival fixes/cleanup |
49 | * |
50 | * 7 6/02/97 4:09p Peter |
51 | * Compile w/ gcc for Dural |
52 | * |
53 | * 6 5/27/97 1:16p Peter |
54 | * Basic cvg, w/o cmd fifo stuff. |
55 | * |
56 | * 5 5/21/97 6:05a Peter |
57 | */ |
58 | #ifndef __GLIDESYS_H__ |
59 | #define __GLIDESYS_H__ |
60 | |
61 | /* |
62 | n** ----------------------------------------------------------------------- |
63 | ** COMPILER/ENVIRONMENT CONFIGURATION |
64 | ** ----------------------------------------------------------------------- |
65 | */ |
66 | |
67 | /* Endianness is stored in bits [30:31] */ |
68 | #define GLIDE_ENDIAN_SHIFT 30 |
69 | #define GLIDE_ENDIAN_LITTLE (0x1 << GLIDE_ENDIAN_SHIFT) |
70 | #define GLIDE_ENDIAN_BIG (0x2 << GLIDE_ENDIAN_SHIFT) |
71 | |
72 | /* OS is stored in bits [0:6] */ |
73 | #define GLIDE_OS_SHIFT 0 |
74 | #define GLIDE_OS_UNIX 0x1 |
75 | #define GLIDE_OS_DOS32 0x2 |
76 | #define GLIDE_OS_WIN32 0x4 |
77 | #define GLIDE_OS_MACOS 0x8 |
78 | #define GLIDE_OS_OS2 0x10 |
79 | #define GLIDE_OS_OTHER 0x40 /* For Proprietary Arcade HW */ |
80 | |
81 | /* Sim vs. Hardware is stored in bits [7:8] */ |
82 | #define GLIDE_SST_SHIFT 7 |
83 | #define GLIDE_SST_SIM (0x1 << GLIDE_SST_SHIFT) |
84 | #define GLIDE_SST_HW (0x2 << GLIDE_SST_SHIFT) |
85 | |
86 | /* Hardware Type is stored in bits [9:13] */ |
87 | #define GLIDE_HW_SHIFT 9 |
88 | #define GLIDE_HW_SST1 (0x1 << GLIDE_HW_SHIFT) |
89 | #define GLIDE_HW_SST96 (0x2 << GLIDE_HW_SHIFT) |
90 | #define GLIDE_HW_H3 (0x4 << GLIDE_HW_SHIFT) |
91 | #define GLIDE_HW_SST2 (0x8 << GLIDE_HW_SHIFT) |
92 | #define GLIDE_HW_CVG (0x10 << GLIDE_HW_SHIFT) |
93 | |
94 | /* |
95 | ** Make sure we handle all instances of WIN32 |
96 | */ |
97 | #ifndef __WIN32__ |
98 | # if defined (_WIN32) || defined (WIN32) || defined(__NT__) |
99 | # define __WIN32__ |
100 | # endif |
101 | #endif |
102 | |
103 | /* We need two checks on the OS: one for endian, the other for OS */ |
104 | /* Check for endianness */ |
105 | #if defined(__IRIX__) || defined(__sparc__) || defined(MACOS) |
106 | # define GLIDE_ENDIAN GLIDE_ENDIAN_BIG |
107 | #else |
108 | # define GLIDE_ENDIAN GLIDE_ENDIAN_LITTLE |
109 | #endif |
110 | |
111 | /* Check for OS */ |
112 | #if defined(__IRIX__) || defined(__sparc__) || defined(__linux__) || \ |
113 | defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) |
114 | # define GLIDE_OS GLIDE_OS_UNIX |
115 | #elif defined(__DOS__) |
116 | # define GLIDE_OS GLIDE_OS_DOS32 |
117 | #elif defined(__WIN32__) |
118 | # define GLIDE_OS GLIDE_OS_WIN32 |
119 | #elif defined(macintosh) || defined(__APPLE__) |
120 | # define GLIDE_OS GLIDE_OS_MACOS |
121 | #else |
122 | #error "Unknown OS" |
123 | #endif |
124 | |
125 | /* Check for Simulator vs. Hardware */ |
126 | #if HAL_CSIM || HWC_CSIM |
127 | # define GLIDE_SST GLIDE_SST_SIM |
128 | #else |
129 | # define GLIDE_SST GLIDE_SST_HW |
130 | #endif |
131 | |
132 | /* Check for type of hardware */ |
133 | #ifdef SST96 |
134 | # define GLIDE_HW GLIDE_HW_SST96 |
135 | #elif defined(H3) |
136 | # define GLIDE_HW GLIDE_HW_H3 |
137 | #elif defined(SST2) |
138 | # define GLIDE_HW GLIDE_HW_SST2 |
139 | #elif defined(CVG) |
140 | # define GLIDE_HW GLIDE_HW_CVG |
141 | #else /* Default to SST1 */ |
142 | # define GLIDE_HW GLIDE_HW_SST1 |
143 | #endif |
144 | |
145 | |
146 | #define GLIDE_PLATFORM (GLIDE_ENDIAN | GLIDE_OS | GLIDE_SST | GLIDE_HW) |
147 | |
148 | /* |
149 | ** Control the number of TMUs |
150 | */ |
151 | #ifndef GLIDE_NUM_TMU |
152 | # define GLIDE_NUM_TMU 2 |
153 | #endif |
154 | |
155 | |
156 | #if ((GLIDE_NUM_TMU < 0) || (GLIDE_NUM_TMU > 3)) |
157 | # error "GLIDE_NUM_TMU set to an invalid value" |
158 | #endif |
159 | |
160 | #endif /* __GLIDESYS_H__ */ |