Updated PCI IDs to latest snapshot.
[tangerine.git] / workbench / libs / desktop / initstruct.h
blobd3bfc2f47bf00853c11443a1fedeb6663f58d89d
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Defines and macros to create and fill an inittable Lang: english
6 */
7 #ifndef _INITSTRUCT_H_
8 # define _INITSTRUCT_H_
9 # ifndef EXEC_TYPES_H
10 # include <exec/types.h>
11 # endif
13 typedef BYTE type_B;
14 typedef WORD type_W;
15 typedef LONG type_L;
17 # define S_DEF(i,l) union \
18 { \
19 struct _##i { l } _l; \
20 char _s[(sizeof(struct _##i)+AROS_LONGALIGN-1)&~(AROS_LONGALIGN-1)]; \
21 } _##i
24 # define CODE_B 0x20
25 # define CODE_W 0x10
26 # define CODE_L 0x00
28 # define S_CPY(i,n,t) S_DEF(i,UBYTE _cmd; type_##t _data[(n)];)
29 # define S_REP(i,n,t) S_DEF(i,UBYTE _cmd; type_##t _data;)
30 # define S_CPYO(i,n,t) S_DEF(i,UBYTE _cmd; UBYTE _ofst; type_##t _data[(n)];)
31 # define S_CPYO24(i,n,t) S_DEF(i,ULONG _cmd; type_##t _data[(n)];)
32 # define S_END(i) UBYTE _##i
33 # define I_CPY(n,t) CODE_##t|((n)-1)
34 # define I_REP(n,t) 0x40|CODE_##t|((n)-1)
35 # define I_CPYO(n,t,o) 0x80|CODE_##t|((n)-1), (o)
36 # if AROS_BIG_ENDIAN
37 # define I_CPYO24(n,t,o) (0xc0|CODE_##t|((n)-1))<<24|(o)
38 # else
39 # define I_CPYO24(n,t,o) 0xc0|CODE_##t|((n)-1)|(o)<<8
40 # endif
41 # define I_END() 0
43 #endif