TaggedOpenLibrary constants off by one fix.
[AROS.git] / compiler / include / exec / libraries.h
blob9cda159fbcf52a4a20658c3b5c3f536d84710e18
1 #ifndef EXEC_LIBRARIES_H
2 #define EXEC_LIBRARIES_H
4 /*
5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Amiga header file exec/libraries.h
9 Lang: english
12 #ifndef EXEC_NODES_H
13 # include <exec/nodes.h>
14 #endif
16 /* Library constants */
17 /* LIB_VECTSIZE is in aros/machine.h */
18 #define LIB_RESERVED 4 /* Exec reserves the first 4 vectors */
19 #define LIB_BASE (-LIB_VECTSIZE)
20 #define LIB_USERDEF (LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE))
21 #define LIB_NONSTD (LIB_USERDEF)
23 /* Standard vectors */
24 #define LIB_OPEN (LIB_BASE*1)
25 #define LIB_CLOSE (LIB_BASE*2)
26 #define LIB_EXPUNGE (LIB_BASE*3)
27 #define LIB_EXTFUNC (LIB_BASE*4) /* for future expansion */
30 /* Library structure. Also used by Devices and some Resources. */
31 struct Library {
32 struct Node lib_Node;
33 UBYTE lib_Flags;
34 UBYTE lib_pad;
35 UWORD lib_NegSize; /* number of bytes before library */
36 UWORD lib_PosSize; /* number of bytes after library */
37 UWORD lib_Version; /* major */
38 UWORD lib_Revision; /* minor */
39 #ifdef AROS_NEED_LONG_ALIGN
40 UWORD lib_pad1; /* make sure it is longword aligned */
41 #endif
42 APTR lib_IdString; /* ASCII identification */
43 ULONG lib_Sum; /* the checksum */
44 UWORD lib_OpenCnt; /* How many people use us right now ? */
45 #ifdef AROS_NEED_LONG_ALIGN
46 UWORD lib_pad2; /* make sure it is longword aligned */
47 #endif
50 /* lib_Flags bits (all others are reserved by the system) */
51 #define LIBF_SUMMING (1<<0) /* lib is currently beeing checksummed */
52 #define LIBF_CHANGED (1<<1) /* lib has changed */
53 #define LIBF_SUMUSED (1<<2) /* sum should be checked */
54 #define LIBF_DELEXP (1<<3) /* delayed expunge */
56 #ifdef AROS_LIB_OBSOLETE
57 /* Temporary Compatibility */
58 #define lh_Node lib_Node
59 #define lh_Flags lib_Flags
60 #define lh_pad lib_pad
61 #define lh_NegSize lib_NegSize
62 #define lh_PosSize lib_PosSize
63 #define lh_Version lib_Version
64 #define lh_Revision lib_Revision
65 #define lh_IdString lib_IdString
66 #define lh_Sum lib_Sum
67 #define lh_OpenCnt lib_OpenCnt
68 #endif
70 /* ID numbers for Exec/TaggedOpenLibrary
72 #define TAGGEDOPEN_GRAPHICS 1
73 #define TAGGEDOPEN_LAYERS 2
74 #define TAGGEDOPEN_INTUITION 3
75 #define TAGGEDOPEN_DOS 4
76 #define TAGGEDOPEN_ICON 5
77 #define TAGGEDOPEN_EXPANSION 6
78 #define TAGGEDOPEN_UTILITY 7
79 #define TAGGEDOPEN_KEYMAP 8
80 #define TAGGEDOPEN_GADTOOLS 9
81 #define TAGGEDOPEN_WORKBENCH 10
84 #endif /* EXEC_LIBRARIES_H */