Call CloseDevice() before DeleteIORequest(), and don't call
[AROS.git] / rom / hidds / hidd / hiddclass_intern.h
blob4b0d1a9b75c14dbdf909a5eed0bc6c89e5cec0cf
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;
39 /* Static Data for the hiddclass. */
40 struct class_static_data
42 OOP_AttrBase hiddAttrBase; // keep lower case so it does not clash with define.
44 OOP_Class *hiddclass;
46 struct MinList hiddList;
47 struct SignalSemaphore listLock;
49 struct Library *cs_OOPBase;
50 struct Library *cs_UtilityBase;
54 /* Library base */
56 struct IntHIDDClassBase
58 struct Library hd_LibNode;
60 struct class_static_data hd_csd;
64 #define CSD(cl) (&((struct IntHIDDClassBase *)cl->UserData)->hd_csd)
65 #define csd CSD(cl)
67 #undef HiddAttrBase
68 #define HiddAttrBase (csd->hiddAttrBase)
70 #endif /* HIDD_CLASS_INTERN_H */