5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
8 Desc: Main HIDD Include File
13 # include <exec/types.h>
15 #ifndef UTILITY_TAGITEM_H
16 # include <utility/tagitem.h>
19 /* ---------------------------------------------------------------------
20 Main HIDD Class Interface
21 --------------------------------------------------------------------- */
23 /* The name of the topmost HIDD class */
24 #define CLID_Hidd "hiddclass"
25 #define IID_Hidd "I_Hidd"
27 /* Meta class for the HIDDs */
29 /* Just set it to the mimetaclass for now */
30 #define CLID_HiddMeta "simetaclass"
32 #ifndef __typedef_HIDD
33 # define __typedef_HIDD
38 Attributes for the root HIDD class "hiddclass".
39 See the HIDD documentation for information on their use.
42 aoHidd_Type
= 0, /* [..G] (UWORD) Major type of HIDD */
43 aoHidd_SubType
, /* [..G] (UWORD) Sub-type of HIDD */
44 aoHidd_Producer
, /* [..G] (ULONG) Product Developer */
45 aoHidd_Name
, /* [..G] (STRPTR) Name of HIDD */
46 aoHidd_HardwareName
, /* [..G] (STRPTR) Hardware description */
47 aoHidd_Active
, /* [ISG] (BOOL) Current active status */
48 aoHidd_Status
, /* [..G] (ULONG) Status change */
49 aoHidd_ErrorCode
, /* [..G] (ULONG) Error code */
50 aoHidd_Locking
, /* [..G] (UBYTE) Type of locking supported */
55 #define aHidd_Type (HiddAttrBase + aoHidd_Type )
56 #define aHidd_SubType (HiddAttrBase + aoHidd_SubType )
57 #define aHidd_Producer (HiddAttrBase + aoHidd_Producer )
58 #define aHidd_Name (HiddAttrBase + aoHidd_Name )
59 #define aHidd_HardwareName (HiddAttrBase + aoHidd_HardwareName)
60 #define aHidd_Active (HiddAttrBase + aoHidd_Active )
61 #define aHidd_Status (HiddAttrBase + aoHidd_Status )
62 #define aHidd_ErrorCode (HiddAttrBase + aoHidd_ErrorCode )
63 #define aHidd_Locking (HiddAttrBase + aoHidd_Locking )
66 /* Values for the HIDD_Type Tag */
67 #define vHidd_Type_Any -1 /* match any type */
69 #define vHidd_Type_Root 0 /* hiddclass */
70 #define vHidd_Type_Config 1 /* configuration plugins */
71 #define vHidd_Type_Timer 2 /* clocks and alarms */
73 /* Values for the aHidd_Subtype Tag */
74 #define vHidd_Subtype_Any -1 /* match any subtype */
75 #define vHidd_Subtype_Root 0 /* main class of a type */
77 /* Values for the aHidd_Locking tag */
78 #define vHidd_LockShared 0
79 #define vHidd_LockExclusive 1
80 #define vHidd_Try 0x80 /* Flag */
82 /* Values for aHidd_Status tag */
83 #define vHidd_StatusUnknown -1
85 /* Error codes defined for the HIDD */
87 HIDDE_NotInList
, /* HIDD wasn't in a list */
91 moHidd_Class_Get
, /* Get a value from a Class */
92 moHidd_Class_MGet
, /* Get a number of values from a Class */
93 moHidd_BeginIO
, /* Send a device like command */
94 moHidd_AbortIO
, /* Abort a device like command */
96 moHidd_LoadConfigPlugin
, /* HIDDT_Config M ( hmPlugin *) */
97 moHidd_Lock
, /* Lock a HIDD */
98 moHidd_Unlock
, /* UnLock a HIDD */
99 moHidd_AddHIDD
, /* Add a subclass HIDD */
100 moHidd_RemoveHIDD
, /* Remove a subclass HIDD */
101 moHidd_FindHIDD
/* Find a suitable HIDD */
105 /* Used for HIDDM_BeginIO, HIDDM_AbortIO */
108 STACKED ULONG MethodID
;
109 STACKED
struct IORequest
*hmi_ioRequest
;
113 /* Used for HIDDM_LoadConfigPlugin */
114 typedef struct hmPlugin
116 STACKED ULONG MethodID
;
117 STACKED IPTR hmp_PluginData
;
121 /* Combined structure for HIDDM_Lock, HIDDM_Unlock */
122 typedef struct hmLock
124 STACKED ULONG MethodID
;
125 STACKED ULONG hml_LockMode
;
126 STACKED IPTR hml_LockData
;
129 /* Used for HIDDM_AddHidd, HIDDM_RemoveHidd */
132 STACKED ULONG MethodID
;
133 STACKED APTR
*hma_Class
;
136 /* Used for HIDDM_FindHIDD */
137 typedef struct hmFind
139 STACKED ULONG MethodID
;
140 STACKED UWORD hmf_Type
; /* Use vHidd_Type_Any to match all */
141 STACKED UWORD hmf_Subtype
; /* Use vHidd_Subtype_Any to match all */
144 #endif /* HIDD_HIDD_H */