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__) || \ |
2d262872 |
113 | defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ |
114 | defined(__FreeBSD_kernel__) || defined(__GNU__) |
98e75f2d |
115 | # define GLIDE_OS GLIDE_OS_UNIX |
116 | #elif defined(__DOS__) |
117 | # define GLIDE_OS GLIDE_OS_DOS32 |
118 | #elif defined(__WIN32__) |
119 | # define GLIDE_OS GLIDE_OS_WIN32 |
120 | #elif defined(macintosh) || defined(__APPLE__) |
121 | # define GLIDE_OS GLIDE_OS_MACOS |
122 | #else |
123 | #error "Unknown OS" |
124 | #endif |
125 | |
126 | /* Check for Simulator vs. Hardware */ |
127 | #if HAL_CSIM || HWC_CSIM |
128 | # define GLIDE_SST GLIDE_SST_SIM |
129 | #else |
130 | # define GLIDE_SST GLIDE_SST_HW |
131 | #endif |
132 | |
133 | /* Check for type of hardware */ |
134 | #ifdef SST96 |
135 | # define GLIDE_HW GLIDE_HW_SST96 |
136 | #elif defined(H3) |
137 | # define GLIDE_HW GLIDE_HW_H3 |
138 | #elif defined(SST2) |
139 | # define GLIDE_HW GLIDE_HW_SST2 |
140 | #elif defined(CVG) |
141 | # define GLIDE_HW GLIDE_HW_CVG |
142 | #else /* Default to SST1 */ |
143 | # define GLIDE_HW GLIDE_HW_SST1 |
144 | #endif |
145 | |
146 | |
147 | #define GLIDE_PLATFORM (GLIDE_ENDIAN | GLIDE_OS | GLIDE_SST | GLIDE_HW) |
148 | |
149 | /* |
150 | ** Control the number of TMUs |
151 | */ |
152 | #ifndef GLIDE_NUM_TMU |
153 | # define GLIDE_NUM_TMU 2 |
154 | #endif |
155 | |
156 | |
157 | #if ((GLIDE_NUM_TMU < 0) || (GLIDE_NUM_TMU > 3)) |
158 | # error "GLIDE_NUM_TMU set to an invalid value" |
159 | #endif |
160 | |
161 | #endif /* __GLIDESYS_H__ */ |