1 tony 1.1 // ===================================================================
2 // Title: Device USB 2.8
3 // Filename: Device28_USB.mof
4 // Version: 2.8
5 // Release: Preliminary
6 // Date: 05/29/2003
7 // ===================================================================
8 // Copyright 2000-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description: The Device Model extends the management concepts that
45 // are related to LogicalDevices. This file defines
46 // the modeling constructs to manage USB devices.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 - None
53 //
54 // Change Log for v2.7 - None
55 // ==================================================================
56
57 #pragma locale ("en_US")
58
59
60 // ===================================================================
61 // USBDevice
62 // ===================================================================
63 [Version ("2.6.0"), Description (
64 tony 1.1 "The management characterisitics of a USB Device.") ]
65 class CIM_USBDevice : CIM_LogicalDevice {
66
67 [Description (
68 "Indicates the latest USB Version supported by the USB "
69 "Device. The property is expressed as a Binary-Coded "
70 "Decimal (BCD) where a decimal point is implied between the "
71 "2nd and 3rd digits. For example, a value of 0x201 "
72 "indicates that version 2.01 is supported.") ]
73 uint16 USBVersion;
74
75 [Description (
76 "Indicates the USB class code.") ]
77 uint8 ClassCode;
78
79 [Description (
80 "Indicates the USB subclass code.") ]
81 uint8 SubclassCode;
82
83 [Description (
84 "Indicates the USB protocol code.") ]
85 tony 1.1 uint8 ProtocolCode;
86
87 [Description (
88 "Number of device configurations that are defined for the "
89 "Device.") ]
90 uint8 NumberOfConfigs;
91
92 [Description (
93 "Indicates the configuration currently selected for the "
94 "Device. If this value is zero, the Device is "
95 "unconfigured."),
96 ModelCorrespondence {"CIM_USBDevice.CurrentAlternateSettings"} ]
97 uint8 CurrentConfigValue;
98
99 [Description (
100 "An array of USB 'alternate settings' for each interface in "
101 "the currently selected configuration (indicated by the "
102 "CurrentConfigValue property). This array has one entry for "
103 "each interface in the configuration. If the property, "
104 "CurrentConfigValue, is zero (indicating the Device is not "
105 "configured), the array is undefined. To understand how to "
106 tony 1.1 "parse this octet string, refer to the USB Specification."),
107 ModelCorrespondence {"CIM_USBDevice.CurrentConfigValue"} ]
108 uint8 CurrentAlternateSettings[];
109
110 [Description (
111 "This method returns the USBDevice Descriptor as specified "
112 "by the input parameters. Each parameter is briefly "
113 "described here with more detail in its Qualifier list. "
114 "RequestType is an input parameter that defines whether the "
115 "request is for standard, class or vendor-specific "
116 "information, as well as specifying the recipient. "
117 "RequestValue is also an input parameter and defines the USB "
118 "Descriptor Type and Index. RequestIndex is an input "
119 "parameter which describes the language used to return a "
120 "string Descriptor. RequestLength is both an input and "
121 "output parameter. It specifies the length of the "
122 "Descriptor that should be returned (on input) and what is "
123 "actually returned in the Buffer parameter (on output). "
124 "Buffer is an output parameter, containing the Descriptor "
125 "data. The GetDescriptor method returns an integer value of "
126 "0 if the USB Descriptor is successfully returned, 1 if the "
127 tony 1.1 "request is not supported and any other number to indicate "
128 "an error.\n"
129 "In a subclass, the set of possible return codes could be "
130 "specified, using a ValueMap qualifier on the method. The "
131 "strings to which the ValueMap contents are 'translated' may "
132 "also be specified in the subclass as a Values array "
133 "qualifier.") ]
134 uint32 GetDescriptor(
135 [IN, Description (
136 "RequestType is bit-mapped and identifies the "
137 "type of Descriptor request and the recipient. The type of "
138 "request may be 'standard', 'class' or 'vendor-specific'. "
139 "The recipient may be 'device', 'interface', 'endpoint' "
140 "or 'other'. Refer to the USB Specification for the "
141 "appropriate values for each bit.") ]
142 uint8 RequestType,
143 [IN, Description (
144 "RequestValue contains the Descriptor Type in "
145 "the high byte and the Descriptor Index (for example, index"
146 " or offset into the Descriptor array) in the low byte. "
147 "Refer to the USB Specification for more information.") ]
148 tony 1.1 uint16 RequestValue,
149 [IN, Description (
150 "RequestIndex defines the 2 byte Language ID "
151 "code used by the USBDevice when returning string "
152 "Descriptor data. The parameter is typically 0 for "
153 "non-string Descriptors. Refer to the USB Specification "
154 "for more information.") ]
155 uint16 RequestIndex,
156 [IN, OUT, Description (
157 "On input, RequestLength is the length "
158 "(in octets) of the Descriptor that should be returned. "
159 "If this value is less than the actual length of the "
160 "Descriptor, only the requested length will be returned. "
161 "If it is more than the actual length, the actual length "
162 "is returned. On output, this parameter is the length, "
163 "in octets, of the Buffer being returned. If the requested "
164 "Descriptor does not exist, the contents of this parameter "
165 "are undefined.") ]
166 uint16 RequestLength,
167 [IN (false), OUT, Description (
168 "Buffer returns the requested Descriptor information. "
169 tony 1.1 "If the Descriptor does not exist, "
170 "the contents of the Buffer are undefined.") ]
171 uint8 Buffer[]);
172 };
173
174
175 // ===================================================================
176 // USBHub
177 // ===================================================================
178 [Version ("2.6.0"), Description (
179 "USB Hub Device.") ]
180 class CIM_USBHub : CIM_USBDevice {
181
182 [Description (
183 "Indicates whether power to the Hub Ports is individually or "
184 "gang-switched. If this value is FALSE, power is switched "
185 "individually for each Port. If this value is TRUE, power "
186 "is switched to all Ports on the Hub at once.") ]
187 boolean GangSwitched;
188
189 [Description (
190 tony 1.1 "Number of downstream Ports on the Hub, including those "
191 "embedded in the Hub's silicon. Individual USBPorts are "
192 "associated with the Hub using the USBPortOnHub "
193 "association.") ]
194 uint8 NumberOfPorts;
195 };
196
197
198 // ===================================================================
199 // USBPort
200 // ===================================================================
201 [Version ("2.6.0"), Description (
202 "A Port on a USBHub.") ]
203 class CIM_USBPort : CIM_LogicalPort {
204
205 [Override ("Speed"), Description (
206 "USB Port Speed in bits per second. This speed is "
207 "determined and set by the attached Device. The 'attached "
208 "Device' is indicated using the USBConnection association. "
209 "At this time, only several Port speeds are valid. These "
210 "are: 1.5Mbps and 12Mbps. The value 0 can also be specified "
211 tony 1.1 "to indicate that the current speed is 'unknown' or 1 to "
212 "indicate that the speed is 'other' than 1.5 or 12Mbps."),
213 ValueMap {"0", "1", "1500000", "12000000"} ]
214 uint64 Speed;
215
216 [Override ("StatusInfo"), Description (
217 "Indicates whether the Port is currently enabled."),
218 ValueMap {"2", "3", "4"},
219 Values {"Unknown", "Enabled", "Disabled"} ]
220 uint16 StatusInfo;
221
222 [Override ("Availability"), Description (
223 "Indicates whether the Port is currently Powered."),
224 ValueMap {"2", "3", "7"},
225 Values {"Unknown", "Running/Full Power", "Power Off"} ]
226 uint16 Availability;
227
228 [Description (
229 "The USB Port's power capability. The current specification "
230 "defines that 1 or 5 loads can be supported (values 2 or 3 "
231 "would be specified, respectively)."),
232 tony 1.1 ValueMap {"0", "1", "2", "3"},
233 Values {"Unknown", "Other", "1 Unit Load", "5 Unit Loads"} ]
234 uint16 Power;
235
236 [Description (
237 "Indicates whether the Port is currently Suspended.") ]
238 boolean Suspended;
239
240 [Description (
241 "Indicates whether the Port is disabled due to an "
242 "overcurrent event.") ]
243 boolean Overcurrent;
244 };
245
246
247 // ===================================================================
248 // USBPortOnHub
249 // ===================================================================
250 [Association, Version ("2.6.0"), Description (
251 "USBPortOnHub associates a USBPort or connection point with the "
252 "USBHub that includes it.") ]
253 tony 1.1 class CIM_USBPortOnHub : CIM_PortOnDevice {
254
255 [Override ("Antecedent"), Min (1), Max (1), Description (
256 "The Hub that includes the USBPort.") ]
257 CIM_USBHub REF Antecedent;
258
259 [Override ("Dependent"), Min (1), Description (
260 "The Port on the USBHub.") ]
261 CIM_USBPort REF Dependent;
262 };
263
264
265 // ===================================================================
266 // USBControllerHasHub
267 // ===================================================================
268 [Association, Version ("2.6.0"), Description (
269 "USBControllerHasHub defines the Hub(s) that are downstream of "
270 "the USBController.") ]
271 class CIM_USBControllerHasHub : CIM_ControlledBy {
272
273 [Override ("Antecedent"), Min (1), Max (1), Description (
274 tony 1.1 "The USBController.") ]
275 CIM_USBController REF Antecedent;
276
277 [Override ("Dependent"), Min (1), Description (
278 "The USBHub that is associated with the Controller.") ]
279 CIM_USBHub REF Dependent;
280 };
281
282
283 // ===================================================================
284 // USBConnection
285 // ===================================================================
286 [Association, Version ("2.6.0"), Description (
287 "USBConnection associates a Device with the USBPort to which it "
288 "is connected.") ]
289 class CIM_USBConnection: CIM_DeviceConnection {
290
291 [Override ("Antecedent"), Max (1), Description (
292 "The USBPort.") ]
293 CIM_USBPort REF Antecedent;
294
295 tony 1.1 [Override ("Dependent"), Max (1), Description (
296 "The USBDevice that is connected to the Port.") ]
297 CIM_USBDevice REF Dependent;
298 };
299
300
301 // ===================================================================
302 // end of file
303 // ===================================================================
|