1 tony 1.1 // ===================================================================
2 // Title: Device USB 2.8
3 // Filename: Device28_USB.mof
4 // Version: 2.8
5 // Status: Final
6 // Date: Jan 26, 2004
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 Decimal "
70 "(BCD) where a decimal point is implied between the 2nd and "
71 "3rd digits. For example, a value of 0x201 indicates that "
72 "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 unconfigured."),
95 ModelCorrespondence { "CIM_USBDevice.CurrentAlternateSettings" }]
96 uint8 CurrentConfigValue;
97
98 [Description (
99 "An array of USB 'alternate settings' for each interface in "
100 "the currently selected configuration (indicated by the "
101 "CurrentConfigValue property). This array has one entry for "
102 "each interface in the configuration. If the property, "
103 "CurrentConfigValue, is zero (indicating the Device is not "
104 "configured), the array is undefined. To understand how to "
105 "parse this octet string, refer to the USB Specification."),
106 tony 1.1 ModelCorrespondence { "CIM_USBDevice.CurrentConfigValue" }]
107 uint8 CurrentAlternateSettings[];
108
109 [Description (
110 "This method returns the USBDevice Descriptor as specified "
111 "by the input parameters. Each parameter is briefly "
112 "described here with more detail in its Qualifier list. "
113 "RequestType is an input parameter that defines whether the "
114 "request is for standard, class or vendor-specific "
115 "information, as well as specifying the recipient. "
116 "RequestValue is also an input parameter and defines the USB "
117 "Descriptor Type and Index. RequestIndex is an input "
118 "parameter which describes the language used to return a "
119 "string Descriptor. RequestLength is both an input and "
120 "output parameter. It specifies the length of the Descriptor "
121 "that should be returned (on input) and what is actually "
122 "returned in the Buffer parameter (on output). Buffer is an "
123 "output parameter, containing the Descriptor data. The "
124 "GetDescriptor method returns an integer value of 0 if the "
125 "USB Descriptor is successfully returned, 1 if the request "
126 "is not supported and any other number to indicate an error. "
127 tony 1.1 "\nIn a subclass, the set of possible return codes could be "
128 "specified, using a ValueMap qualifier on the method. The "
129 "strings to which the ValueMap contents are 'translated' may "
130 "also be specified in the subclass as a Values array "
131 "qualifier.")]
132 uint32 GetDescriptor(
133 [IN, Description (
134 "RequestType is bit-mapped and identifies the type of "
135 "Descriptor request and the recipient. The type of "
136 "request may be 'standard', 'class' or 'vendor-specific'. "
137 "The recipient may be 'device', 'interface', 'endpoint' "
138 "or 'other'. Refer to the USB Specification for the "
139 "appropriate values for each bit.")]
140 uint8 RequestType,
141 [IN, Description (
142 "RequestValue contains the Descriptor Type in the high "
143 "byte and the Descriptor Index (for example, index or "
144 "offset into the Descriptor array) in the low byte. Refer "
145 "to the USB Specification for more information.")]
146 uint16 RequestValue,
147 [IN, Description (
148 tony 1.1 "RequestIndex defines the 2 byte Language ID code used by "
149 "the USBDevice when returning string Descriptor data. The "
150 "parameter is typically 0 for non-string Descriptors. "
151 "Refer to the USB Specification for more information.")]
152 uint16 RequestIndex,
153 [IN, OUT, Description (
154 "On input, RequestLength is the length (in octets) of the "
155 "Descriptor that should be returned. If this value is "
156 "less than the actual length of the Descriptor, only the "
157 "requested length will be returned. If it is more than "
158 "the actual length, the actual length is returned. On "
159 "output, this parameter is the length, in octets, of the "
160 "Buffer being returned. If the requested Descriptor does "
161 "not exist, the contents of this parameter are undefined.")]
162 uint16 RequestLength,
163 [IN ( false ), OUT, Description (
164 "Buffer returns the requested Descriptor information. If "
165 "the Descriptor does not exist, the contents of the "
166 "Buffer are undefined.")]
167 uint8 Buffer[]);
168 };
169 tony 1.1
170
171 // ===================================================================
172 // USBHub
173 // ===================================================================
174 [Version ( "2.6.0" ), Description (
175 "USB Hub Device.")]
176 class CIM_USBHub : CIM_USBDevice {
177
178 [Description (
179 "Indicates whether power to the Hub Ports is individually or "
180 "gang-switched. If this value is FALSE, power is switched "
181 "individually for each Port. If this value is TRUE, power is "
182 "switched to all Ports on the Hub at once.")]
183 boolean GangSwitched;
184
185 [Description (
186 "Number of downstream Ports on the Hub, including those "
187 "embedded in the Hub's silicon. Individual USBPorts are "
188 "associated with the Hub using the USBPortOnHub association.")]
189 uint8 NumberOfPorts;
190 tony 1.1 };
191
192
193 // ===================================================================
194 // USBPort
195 // ===================================================================
196 [Version ( "2.6.0" ), Description (
197 "A Port on a USBHub.")]
198 class CIM_USBPort : CIM_LogicalPort {
199
200 [Override ( "Speed" ), Description (
201 "USB Port Speed in bits per second. This speed is determined "
202 "and set by the attached Device. The 'attached Device' is "
203 "indicated using the USBConnection association. At this "
204 "time, only several Port speeds are valid. These are: "
205 "1.5Mbps and 12Mbps. The value 0 can also be specified to "
206 "indicate that the current speed is 'unknown' or 1 to "
207 "indicate that the speed is 'other' than 1.5 or 12Mbps."),
208 ValueMap { "0", "1", "1500000", "12000000" }]
209 uint64 Speed;
210
211 tony 1.1 [Override ( "StatusInfo" ), Description (
212 "Indicates whether the Port is currently enabled."),
213 ValueMap { "2", "3", "4" },
214 Values { "Unknown", "Enabled", "Disabled" }]
215 uint16 StatusInfo;
216
217 [Override ( "Availability" ), Description (
218 "Indicates whether the Port is currently Powered."),
219 ValueMap { "2", "3", "7" },
220 Values { "Unknown", "Running/Full Power", "Power Off" }]
221 uint16 Availability;
222
223 [Description (
224 "The USB Port's power capability. The current specification "
225 "defines that 1 or 5 loads can be supported (values 2 or 3 "
226 "would be specified, respectively)."),
227 ValueMap { "0", "1", "2", "3" },
228 Values { "Unknown", "Other", "1 Unit Load", "5 Unit Loads" }]
229 uint16 Power;
230
231 [Description (
232 tony 1.1 "Indicates whether the Port is currently Suspended.")]
233 boolean Suspended;
234
235 [Description (
236 "Indicates whether the Port is disabled due to an "
237 "overcurrent event.")]
238 boolean Overcurrent;
239 };
240
241
242 // ===================================================================
243 // USBPortOnHub
244 // ===================================================================
245 [Association, Version ( "2.6.0" ), Description (
246 "USBPortOnHub associates a USBPort or connection point with the "
247 "USBHub that includes it.")]
248 class CIM_USBPortOnHub : CIM_PortOnDevice {
249
250 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
251 "The Hub that includes the USBPort.")]
252 CIM_USBHub REF Antecedent;
253 tony 1.1
254 [Override ( "Dependent" ), Min ( 1 ), Description (
255 "The Port on the USBHub.")]
256 CIM_USBPort REF Dependent;
257 };
258
259
260 // ===================================================================
261 // USBControllerHasHub
262 // ===================================================================
263 [Association, Version ( "2.6.0" ), Description (
264 "USBControllerHasHub defines the Hub(s) that are downstream of "
265 "the USBController.")]
266 class CIM_USBControllerHasHub : CIM_ControlledBy {
267
268 [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
269 "The USBController.")]
270 CIM_USBController REF Antecedent;
271
272 [Override ( "Dependent" ), Min ( 1 ), Description (
273 "The USBHub that is associated with the Controller.")]
274 tony 1.1 CIM_USBHub REF Dependent;
275 };
276
277
278 // ===================================================================
279 // USBConnection
280 // ===================================================================
281 [Association, Version ( "2.6.0" ), Description (
282 "USBConnection associates a Device with the USBPort to which it "
283 "is connected.")]
284 class CIM_USBConnection : CIM_DeviceConnection {
285
286 [Override ( "Antecedent" ), Max ( 1 ), Description (
287 "The USBPort.")]
288 CIM_USBPort REF Antecedent;
289
290 [Override ( "Dependent" ), Max ( 1 ), Description (
291 "The USBDevice that is connected to the Port.")]
292 CIM_USBDevice REF Dependent;
293 };
294
295 tony 1.1
296 // ===================================================================
297 // end of file
298 // ===================================================================
|