New attempt to get the svn revision into the AboutAROS requester.
[cake.git] / rom / hidd / include / hidd.h
blob4888088e20e0cbc1e6c81bb54d540b3b570d40fe
1 #ifndef HIDD_HIDD_H
2 #define HIDD_HIDD_H
4 /*
5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Main HIDD Include File
9 Lang: english
12 #ifndef EXEC_TYPES_H
13 # include <exec/types.h>
14 #endif
15 #ifndef UTILITY_TAGITEM_H
16 # include <utility/tagitem.h>
17 #endif
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
34 typedef APTR HIDD;
35 #endif
38 Attributes for the root HIDD class "hiddclass".
39 See the HIDD documentation for information on their use.
41 enum {
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 */
52 num_Hidd_Attrs
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 */
86 enum {
87 HIDDE_NotInList, /* HIDD wasn't in a list */
90 enum {
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 */
106 typedef struct hmIO
108 STACKED ULONG MethodID;
109 STACKED struct IORequest *hmi_ioRequest;
110 } hmIO;
112 #if 0
113 /* Used for HIDDM_LoadConfigPlugin */
114 typedef struct hmPlugin
116 STACKED ULONG MethodID;
117 STACKED IPTR hmp_PluginData;
118 } hmPlugin;
119 #endif
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;
127 } hmLock;
129 /* Used for HIDDM_AddHidd, HIDDM_RemoveHidd */
130 typedef struct hmAdd
132 STACKED ULONG MethodID;
133 STACKED APTR *hma_Class;
134 } hmAdd;
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 */
142 } hmFind;
144 #endif /* HIDD_HIDD_H */