2 ** $VER: identify.i 13.0 (11.09.2001)
4 ** identify.library definitions
6 ** (C) Copyright 1996-2000 Richard Koerber
7 ** All Rights Reserved.
10 #ifndef LIBRARIES_IDENTIFY_H
11 #define LIBRARIES_IDENTIFY_H
14 #include <exec/types.h>
17 #ifndef EXEC_LIBRARIES_H
18 #include <exec/libraries.h>
21 #ifndef UTILITY_TAGITEM_H
22 #include <utility/tagitem.h>
25 #define _IDTAGS (0xCD450000ul)
27 /* ------------------------------------------------------------------------ *
28 ** Generic library informations
30 #define IDENTIFYVERSION (13)
32 #define IDENTIFYBUFLEN (50) /* default buffer length */
34 /* ------------------------------------------------------------------------ *
37 #define IDTAG_ConfigDev (_IDTAGS+0x00) /* (struct ConfigDev *) ConfigDev */
38 /* structure to be evaluated */
39 #define IDTAG_ManufID (_IDTAGS+0x01) /* UWORD manufacturer ID if no */
40 /* ConfigDev is available */
41 #define IDTAG_ProdID (_IDTAGS+0x02) /* UBYTE product ID if no */
42 /* ConfigDev is available */
43 #define IDTAG_StrLength (_IDTAGS+0x03) /* UWORD of maximum buffer length, */
44 /* including termination. Default */
46 #define IDTAG_ManufStr (_IDTAGS+0x04) /* STRPTR of manufacturer name */
48 #define IDTAG_ProdStr (_IDTAGS+0x05) /* STRPTR of product name */
50 #define IDTAG_ClassStr (_IDTAGS+0x06) /* STRPTR of product class */
52 #define IDTAG_DeadStr (_IDTAGS+0x07) /* STRPTR deadend or recoverable alert? */
53 #define IDTAG_SubsysStr (_IDTAGS+0x08) /* STRPTR alert subsystem */
54 #define IDTAG_GeneralStr (_IDTAGS+0x09) /* STRPTR alert general cause */
55 #define IDTAG_SpecStr (_IDTAGS+0x0A) /* STRPTR alert specific cause */
56 #define IDTAG_FuncNameStr (_IDTAGS+0x0B) /* STRPTR function name */
57 #define IDTAG_Expansion (_IDTAGS+0x0C) /* (struct ConfigDev **) for a */
58 /* complete expansion check. Init */
59 /* the variable with NULL. */
60 #define IDTAG_Secondary (_IDTAGS+0x0D) /* BOOL warn for secondary expansion */
61 /* boards (defaults to FALSE) */
62 #define IDTAG_ClassID (_IDTAGS+0x0E) /* ULONG * class ID of the provided */
63 /* expansion board (see below) [V8] */
64 #define IDTAG_Localize (_IDTAGS+0x0F) /* BOOL return localized strings */
65 /* (defaults to TRUE) [V8] */
66 #define IDTAG_NULL4NA (_IDTAGS+0x10) /* BOOL return NULL for not available */
67 /* else return a string (defaults to */
70 /* ------------------------------------------------------------------------ *
71 ** Hardware description types
73 #define IDHW_SYSTEM (0) /* System (Amiga,DraCo,...) [V2] */
74 #define IDHW_CPU (1) /* CPU (68000,68010,...,68060) */
75 #define IDHW_FPU (2) /* FPU (---,68881,68882,68040,68060) */
76 #define IDHW_MMU (3) /* MMU (---,68852,68030,68040,68060) */
77 #define IDHW_OSVER (4) /* OS Version (V*.*) */
78 #define IDHW_EXECVER (5) /* Exec Version (V*.*) */
79 #define IDHW_WBVER (6) /* Workbench Version (---,V*.*) */
80 #define IDHW_ROMSIZE (7) /* OS ROM Size (*KB, *MB) */
81 #define IDHW_CHIPSET (8) /* Chipset (OCS,ECS,AGA,DraCo) */
82 #define IDHW_GFXSYS (9) /* Graphic OS (AmigaOS, CyberGraphX, ...) */
83 #define IDHW_CHIPRAM (10) /* All Chip RAM (*KB, *MB, *GB) */
84 #define IDHW_FASTRAM (11) /* All Fast RAM (*KB, *MB, *GB) */
85 #define IDHW_RAM (12) /* All Total RAM (*KB, *MB, *GB) */
86 #define IDHW_SETPATCHVER (13) /* SetPatch Version (---,V*.*) [V4] */
87 #define IDHW_AUDIOSYS (14) /* Audio OS (AmigaOS, AHI, ...) [V5] */
88 #define IDHW_OSNR (15) /* AmigaOS (2.04, 3.1, ...) */
89 #define IDHW_VMMCHIPRAM (16) /* VMM Chip RAM (*KB, *MB, *GB) */
90 #define IDHW_VMMFASTRAM (17) /* VMM Fast RAM (*KB, *MB, *GB) */
91 #define IDHW_VMMRAM (18) /* VMM Total RAM (*KB, *MB, *GB) */
92 #define IDHW_PLNCHIPRAM (19) /* Plain Chip RAM (*KB, *MB, *GB) */
93 #define IDHW_PLNFASTRAM (20) /* Plain Fast RAM (*KB, *MB, *GB) */
94 #define IDHW_PLNRAM (21) /* Plain Total RAM (*KB, *MB, *GB) */
95 #define IDHW_VBR (22) /* Vector Base Register [V6] */
96 #define IDHW_LASTALERT (23) /* Last Alert code */
97 #define IDHW_VBLANKFREQ (24) /* VBlank Frequency */
98 #define IDHW_POWERFREQ (25) /* Power Frequency */
99 #define IDHW_ECLOCK (26) /* EClock */
100 #define IDHW_SLOWRAM (27) /* Plain Slow RAM (*KB, *MB, *GB) */
101 #define IDHW_GARY (28) /* Gary (---,Normal,...) */
102 #define IDHW_RAMSEY (29) /* RAMSEY (---,D,F) */
103 #define IDHW_BATTCLOCK (30) /* Battery Backed Up Clock (---,Found) */
104 #define IDHW_CHUNKYPLANAR (31) /* Chunky To Planar Hardware (---,Found) [V7] */
105 #define IDHW_POWERPC (32) /* PowerPC present? (---,Found) */
106 #define IDHW_PPCCLOCK (33) /* PowerPC clock (unit MHz) */
107 #define IDHW_CPUREV (34) /* CPU revision [V8] */
108 #define IDHW_CPUCLOCK (35) /* CPU clock (unit MHz) */
109 #define IDHW_FPUCLOCK (36) /* FPU clock (unit MHz) */
110 #define IDHW_RAMACCESS (37) /* Main board RAM access time (unit ns) */
111 #define IDHW_RAMWIDTH (38) /* Main board RAM width (bit) */
112 #define IDHW_RAMCAS (39) /* Main board RAM CAS mode */
113 #define IDHW_RAMBANDWIDTH (40) /* Main board RAM bandwidth */
114 #define IDHW_TCPIP (41) /* TCP/IP stack [V9] */
115 #define IDHW_PPCOS (42) /* PowerPC OS */
116 #define IDHW_AGNUS (43) /* Agnus chip revision */
117 #define IDHW_AGNUSMODE (44) /* Agnus chip mode */
118 #define IDHW_DENISE (45) /* Denise chip version [V10] */
119 #define IDHW_DENISEREV (46) /* Denise chip revision */
120 #define IDHW_BOINGBAG (47) /* BoingBag number [V12] */
121 #define IDHW_EMULATED (48) /* Emulated Amiga [V13] */
122 #define IDHW_XLVERSION (49) /* AmigaXL version */
123 #define IDHW_HOSTOS (50) /* when emulated: Host OS (see autodocs!) */
124 #define IDHW_HOSTVERS (51) /* when emulated: Host Version (see autodocs!) */
125 #define IDHW_HOSTMACHINE (52) /* when emulated: Host Machine (see autodocs!) */
126 #define IDHW_HOSTCPU (53) /* when emulated: Host CPU (see autodocs!) */
127 #define IDHW_HOSTSPEED (54) /* when emulated: Host CPU speed (unit MHz, see autodocs!) */
128 #define IDHW_LASTALERTTASK (55) /* Last Alert task */
129 #define IDHW_NUMBEROF (56) /* Number of types, PRIVATE! */
131 /* ------------------------------------------------------------------------ *
132 ** IDHW_SYSTEM numerical result codes
134 #define IDSYS_AMIGA1000 (0) /* Amiga 1000 */
135 #define IDSYS_AMIGAOCS (1) /* OCS Amiga 500/2000 */
136 #define IDSYS_AMIGAECS (2) /* ECS Amiga 500/2000 */
137 #define IDSYS_AMIGA500 (3) /* Amiga 500 */
138 #define IDSYS_AMIGA2000 (4) /* Amiga 2000 */
139 #define IDSYS_AMIGA3000 (5) /* Amiga 3000 */
140 #define IDSYS_CDTV (6) /* CDTV */
141 #define IDSYS_AMIGA600 (7) /* Amiga 600 */
142 #define IDSYS_CD32 (8) /* CD32 */
143 #define IDSYS_AMIGA1200 (9) /* Amiga 1200 */
144 #define IDSYS_AMIGA4000 (10) /* Amiga 4000 */
145 #define IDSYS_DRACO (11) /* DraCo */
146 #define IDSYS_UAE (12) /* Ubiquitous Amiga Emulator */
147 #define IDSYS_AMIGA4000T (13) /* Amiga 4000 Tower */
148 #define IDSYS_AMIGAXL (14) /* AmigaXL */
150 /* AROS extensions */
151 #define IDSYS_AROS (100) /* AROS */
153 /* ------------------------------------------------------------------------ *
154 ** IDHW_CPU numerical result codes
156 #define IDCPU_68000 (0) /* 68000 */
157 #define IDCPU_68010 (1) /* 68010 */
158 #define IDCPU_68020 (2) /* 68020 */
159 #define IDCPU_68030 (3) /* 68030 */
160 #define IDCPU_68EC030 (4) /* 68EC030 (without MMU) */
161 #define IDCPU_68040 (5) /* 68040 */
162 #define IDCPU_68LC040 (6) /* 68LC040 (without FPU) */
163 #define IDCPU_68060 (7) /* 68060 */
164 #define IDCPU_68LC060 (8) /* 68LC060 (without FPU) */
166 /* AROS extensions */
167 #define IDCPU_unknown (100) /* unknown */
168 #define IDCPU_i386 (101) /* i386 */
169 #define IDCPU_x86_64 (102) /* x86_64 */
170 #define IDCPU_ppc (103) /* ppc */
171 #define IDCPU_arm (104) /* arm */
173 /* ------------------------------------------------------------------------ *
174 ** IDHW_FPU numerical result codes
176 #define IDFPU_NONE (0) /* no FPU */
177 #define IDFPU_68881 (1) /* 68881 */
178 #define IDFPU_68882 (2) /* 68882 */
179 #define IDFPU_68040 (3) /* 68040 */
180 #define IDFPU_68060 (4) /* 68060 */
182 /* ------------------------------------------------------------------------ *
183 ** IDHW_MMU numerical result codes
185 #define IDMMU_NONE (0) /* no MMU */
186 #define IDMMU_68851 (1) /* 68851 */
187 #define IDMMU_68030 (2) /* 68030 */
188 #define IDMMU_68040 (3) /* 68040 */
189 #define IDMMU_68060 (4) /* 68060 */
191 /* ------------------------------------------------------------------------ *
192 ** IDHW_OSNR numerical result codes
194 #define IDOS_UNKNOWN (0) /* <V36 or >V40 */
195 #define IDOS_2_0 (1) /* OS2.0 (V36) */
196 #define IDOS_2_04 (2) /* OS2.04 (V37) */
197 #define IDOS_2_1 (3) /* OS2.1 (V38) */
198 #define IDOS_3_0 (4) /* OS3.0 (V39) */
199 #define IDOS_3_1 (5) /* OS3.1 (V40) */
200 #define IDOS_3_5 (6) /* OS3.5 (V44) */
201 #define IDOS_3_9 (7) /* OS3.9 (V45) */
203 /* ------------------------------------------------------------------------ *
204 ** IDHW_CHIPSET numerical result codes
206 #define IDCS_OCS (0) /* OCS */
207 #define IDCS_ECS (1) /* ECS */
208 #define IDCS_AGA (2) /* AGA */
209 #define IDCS_ALTAIS (3) /* DraCo Altais */
210 #define IDCS_NECS (4) /* Nearly ECS (no HR-Agnus or HR-Denise) */
212 /* ------------------------------------------------------------------------ *
213 ** IDHW_GFXSYS numerical result codes
215 #define IDGOS_AMIGAOS (0) /* Plain AmigaOS */
216 #define IDGOS_EGS (1) /* EGS */
217 #define IDGOS_RETINA (2) /* Retina */
218 #define IDGOS_GRAFFITI (3) /* Graffiti */
219 #define IDGOS_TIGA (4) /* TIGA */
220 #define IDGOS_PROBENCH (5) /* Merlin ProBench */
221 #define IDGOS_PICASSO (6) /* Picasso */
222 #define IDGOS_CGX (7) /* CyberGraphX */
223 #define IDGOS_CGX3 (8) /* CyberGraphX 3D */
224 #define IDGOS_PICASSO96 (9) /* Picasso96 */
225 #define IDGOS_CGX4 (10) /* CyberGraphX V4 */
227 /* ------------------------------------------------------------------------ *
228 ** IDHW_AUDIOSYS numerical result codes
230 #define IDAOS_AMIGAOS (0) /* Plain AmigaOS */
231 #define IDAOS_MAESTIX (1) /* MaestroPro driver */
232 #define IDAOS_TOCCATA (2) /* Toccata driver */
233 #define IDAOS_PRELUDE (3) /* Prelude driver */
234 #define IDAOS_AHI (4) /* AHI */
235 #define IDAOS_MACROAUDIO (5) /* MacroAudio */
237 /* ------------------------------------------------------------------------ *
238 ** IDHW_GARY numerical result codes
240 #define IDGRY_NONE (0) /* No Gary available */
241 #define IDGRY_NORMAL (1) /* Normal Gary */
242 #define IDGRY_ENHANCED (2) /* Enhanced Gary */
244 /* ------------------------------------------------------------------------ *
245 ** IDHW_RAMSEY numerical result codes
247 #define IDRSY_NONE (0) /* No RamSey available */
248 #define IDRSY_REVD (1) /* RamSey Revision D */
249 #define IDRSY_REVF (2) /* RamSey Revision F */
251 /* ------------------------------------------------------------------------ *
252 ** IDHW_POWERPC numerical result codes
254 #define IDPPC_NONE (0) /* No PowerPC implemented */
255 #define IDPPC_OTHER (1) /* Another PowerPC */
256 #define IDPPC_602 (2) /* 602 */
257 #define IDPPC_603 (3) /* 603 */
258 #define IDPPC_603E (4) /* 603e */
259 #define IDPPC_603P (5) /* 603p */
260 #define IDPPC_604 (6) /* 604 */
261 #define IDPPC_604E (7) /* 604e */
262 #define IDPPC_620 (8) /* 620 */
264 /* ------------------------------------------------------------------------ *
265 ** IDHW_RAMCAS numerical result codes
267 #define IDCAS_NONE (0) /* Not available */
268 #define IDCAS_NORMAL (1) /* Normal access */
269 #define IDCAS_DOUBLE (2) /* Double access */
271 /* ------------------------------------------------------------------------ *
272 ** IDHW_TCPIP numerical result codes
274 #define IDTCP_NONE (0) /* Not available */
275 #define IDTCP_AMITCP (1) /* AmiTCP */
276 #define IDTCP_MIAMI (2) /* Miami */
277 #define IDTCP_TERMITE (3) /* TermiteTCP */
278 #define IDTCP_GENESIS (4) /* GENESiS */
279 #define IDTCP_MIAMIDX (5) /* MiamiDx */
281 /* ------------------------------------------------------------------------ *
282 ** IDHW_PPCOS numerical result codes
284 #define IDPOS_NONE (0) /* None */
285 #define IDPOS_POWERUP (1) /* PowerUP (Phase 5) */
286 #define IDPOS_WARPOS (2) /* WarpOS (Haage&Partner) */
288 /* ------------------------------------------------------------------------ *
289 ** IDHW_AGNUS numerical result codes
291 #define IDAG_NONE (0) /* None */
292 #define IDAG_UNKNOWN (1) /* Unknown Agnus */
293 #define IDAG_8361 (2) /* Agnus 8361 */
294 #define IDAG_8367 (3) /* Agnus 8367 */
295 #define IDAG_8370 (4) /* Agnus 8370 */
296 #define IDAG_8371 (5) /* Agnus 8371 */
297 #define IDAG_8372_R4 (6) /* Agnus 8372 Rev. 1-4 */
298 #define IDAG_8372_R5 (7) /* Agnus 8372 Rev. 5 */
299 #define IDAG_8374_R2 (8) /* Alice 8374 Rev. 1-2 */
300 #define IDAG_8374_R3 (9) /* Alice 8374 Rev. 3-4 */
302 /* ------------------------------------------------------------------------ *
303 ** IDHW_DENISE numerical result codes
305 #define IDDN_NONE (0) /* None */
306 #define IDDN_UNKNOWN (1) /* Unknown Denise (new model?! :-) */
307 #define IDDN_8362 (2) /* Denise 8362 */
308 #define IDDN_8373 (3) /* Denise 8373 */
309 #define IDDN_8364 (4) /* Lisa 8364 */
311 /* ------------------------------------------------------------------------ *
312 ** IDHW_AGNUSMODE numerical result codes
314 #define IDAM_NONE (0) /* None */
315 #define IDAM_NTSC (1) /* NTSC Agnus */
316 #define IDAM_PAL (2) /* PAL Agnus */
318 /* ------------------------------------------------------------------------ *
319 ** IDTAG_ClassID numerical result codes
321 #define IDCID_UNKNOWN (0) /* unknown functionality */
322 #define IDCID_MISC (1) /* miscellaneous expansion */
323 #define IDCID_TURBO (2) /* accelerator */
324 #define IDCID_TURBORAM (3) /* accelerator RAM */
325 #define IDCID_TURBOHD (4) /* accelerator + some HD controller */
326 #define IDCID_TURBOIDE (5) /* accelerator + AT-IDE controller */
327 #define IDCID_TURBOSCSIHD (6) /* accelerator + SCSI host adapter */
328 #define IDCID_NET (7) /* some network */
329 #define IDCID_ARCNET (8) /* ArcNet */
330 #define IDCID_ETHERNET (9) /* Ethernet */
331 #define IDCID_AUDIO (10) /* audio */
332 #define IDCID_VIDEO (11) /* video (video digitizer etc) */
333 #define IDCID_MULTIMEDIA (12) /* multimedia (audio, video, etc) */
334 #define IDCID_DSP (13) /* multi purpose DSP */
335 #define IDCID_BUSBRIDGE (14) /* ISA bus bridge */
336 #define IDCID_BRIDGE (15) /* PC bridge */
337 #define IDCID_EMULATOR (16) /* some Emulator hardware */
338 #define IDCID_MACEMU (17) /* Macintosh emulator hardware */
339 #define IDCID_ATARIEMU (18) /* Atari emulator hardware */
340 #define IDCID_GFX (19) /* graphics (register) */
341 #define IDCID_GFXRAM (20) /* graphics (video RAM) */
342 #define IDCID_HD (21) /* some HD controller */
343 #define IDCID_HDRAM (22) /* some HD controller + RAM */
344 #define IDCID_IDEHD (23) /* IDE controller */
345 #define IDCID_IDEHDRAM (24) /* IDE controller + RAM */
346 #define IDCID_SCSIHD (25) /* SCSI host adapter */
347 #define IDCID_RAMSCSIHD (26) /* SCSI host adapter + RAM */
348 #define IDCID_CDROM (27) /* CD-ROM interface */
349 #define IDCID_MODEM (28) /* internal modem */
350 #define IDCID_ISDN (29) /* internal ISDN terminal adapter */
351 #define IDCID_MULTIIO (30) /* multi I/O (serial + parallel) */
352 #define IDCID_SERIAL (31) /* multi serial (no parallel) */
353 #define IDCID_PARALLEL (32) /* multi parallel (no serial) */
354 #define IDCID_SCANIF (33) /* scanner interface */
355 #define IDCID_TABLET (34) /* drawing tablet interface */
356 #define IDCID_RAM (35) /* plain RAM expansion */
357 #define IDCID_FLASHROM (36) /* Flash ROM */
358 #define IDCID_SCSIIDE (37) /* combined SCSI/IDE controller */
359 #define IDCID_RAMFPU (38) /* RAM expansion + FPU */
360 #define IDCID_GUESS (39) /* name was unknown but guessed */
361 #define IDCID_KICKSTART (40) /* KickStart */
362 #define IDCID_RAM32 (41) /* 32bit RAM expansion */
363 #define IDCID_TURBOANDRAM (42) /* accelerator + RAM expansion */
364 #define IDCID_ACCESS (43) /* access control */
365 #define IDCID_INTERFACE (44) /* some interface */
366 #define IDCID_MFMHD (45) /* MFM HD controller */
367 #define IDCID_FLOPPY (46) /* floppy disk controller */
368 /* Be prepared to get other numbers as well. In this case you */
369 /* should assume IDCID_MISC. */
371 /* ------------------------------------------------------------------------ *
374 /* Positive error codes are DOS errors! */
375 #define IDERR_OKAY (0) /* No error */
376 #define IDERR_NOLENGTH (-1) /* Buffer length is 0 ?? */
377 #define IDERR_BADID (-2) /* Missing or bad board ID */
378 #define IDERR_NOMEM (-3) /* Not enough memory */
379 #define IDERR_NOFD (-4) /* No fitting FD file found */
380 #define IDERR_OFFSET (-5) /* Function offset not found */
381 #define IDERR_DONE (-6) /* Done with traversing (not an error) */
382 #define IDERR_SECONDARY (-7) /* Secondary expansion board (not an error) */
384 /* ------------------------------------------------------------------------ *