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