grub2: bring back build of aros-side grub2 tools
[AROS.git] / rom / hidds / hidd / hiddclass_intern.h
blobf080e3f9d9f3c2aa72e1c626af1ae197b145b69b
1 #ifndef HIDD_CLASS_INTERN_H
2 #define HIDD_CLASS_INTERN_H
4 /* Include files */
6 #ifndef EXEC_LIBRARIES_H
7 # include <exec/libraries.h>
8 #endif
9 #ifndef EXEC_SEMAPHORES_H
10 # include <exec/semaphores.h>
11 #endif
12 #ifndef OOP_OOP_H
13 # include <oop/oop.h>
14 #endif
15 #ifndef HIDD_HIDD_H
16 # include <hidd/hidd.h>
17 #endif
18 #ifndef DOS_DOS_H
19 # include <dos/dos.h>
20 #endif
23 struct HIDDData
25 UWORD hd_Type;
26 UWORD hd_SubType;
27 ULONG hd_Producer;
28 ULONG hd_Product;
29 STRPTR hd_Name;
30 STRPTR hd_HWName;
31 STRPTR hd_ProducerName;
32 BOOL hd_Active;
33 UWORD hd_Locking;
34 ULONG hd_Status;
35 ULONG hd_ErrorCode;
38 struct DriverNode
40 struct MinNode node;
41 OOP_Object *driverObject; /* Driver object */
44 struct HWData
46 const char *name;
47 struct MinList drivers;
48 struct SignalSemaphore driver_lock;
51 /* Static Data for the hiddclass. */
52 struct class_static_data
54 OOP_AttrBase hiddAttrBase; // keep lower case so it does not clash with define.
55 OOP_AttrBase hwAttrBase;
56 OOP_MethodID hwMethodBase;
58 OOP_Class *hiddclass;
59 OOP_Class *hwclass;
60 OOP_Class *rootclass;
62 OOP_Object *hwroot;
63 APTR MemPool;
65 struct Library *cs_OOPBase;
66 struct Library *cs_UtilityBase;
70 /* Library base */
72 struct IntHIDDClassBase
74 struct Library hd_LibNode;
76 struct class_static_data hd_csd;
80 #define CSD(cl) (&((struct IntHIDDClassBase *)cl->UserData)->hd_csd)
82 #undef HiddAttrBase
83 #undef HWAttrBase
84 #undef HWBase
85 #define HiddAttrBase (CSD(cl)->hiddAttrBase)
86 #define HWAttrBase (CSD(cl)->hwAttrBase)
87 #define HWBase (CSD(cl)->hwMethodBase)
89 #endif /* HIDD_CLASS_INTERN_H */