Root/
Source at commit 1446 created 12 years 11 months ago. By jrcs, Fix multiboot | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1998-2008 Apple Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * The contents of this file constitute Original Code as defined in and␊ |
7 | * are subject to the Apple Public Source License Version 1.1 (the␊ |
8 | * "License"). You may not use this file except in compliance with the␊ |
9 | * License. Please obtain a copy of the License at␊ |
10 | * http://www.apple.com/publicsource and read it before using this file.␊ |
11 | * ␊ |
12 | * This Original Code and all software distributed under the License are␊ |
13 | * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
14 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
15 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
16 | * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the␊ |
17 | * License for the specific language governing rights and limitations␊ |
18 | * under the License.␊ |
19 | * ␊ |
20 | * @APPLE_LICENSE_HEADER_END@␊ |
21 | */␊ |
22 | ␊ |
23 | /*!␊ |
24 | @header ATADeviceNub.h␊ |
25 | @abstract A concrete implementation of IOATADevice.␊ |
26 | */␊ |
27 | ␊ |
28 | #ifndef _ATADEVICENUB_H␊ |
29 | #define _ATADEVICENUB_H␊ |
30 | ␊ |
31 | #include <IOKit/IOTypes.h>␊ |
32 | #include "IOATATypes.h"␊ |
33 | #include "IOATADevice.h"␊ |
34 | #include "IOATAController.h"␊ |
35 | ␊ |
36 | #include "IOATABusCommand.h"␊ |
37 | ␊ |
38 | ␊ |
39 | /*!␊ |
40 | @class ATADeviceNub␊ |
41 | @abstract ATADeviceNub is a concrete implementation of IOATADevice.␊ |
42 | @discussion clients of IOATA (disk drivers) should use the interface presented␊ |
43 | by IOATADevice. Concrete nubs are private to the IOATA family and ␊ |
44 | specific subclasses of IOATADevice are instantiated by controller ␊ |
45 | drivers to provide the abstract interface to clients.␊ |
46 | ␊ |
47 | */␊ |
48 | class ATADeviceNub : public IOATADevice␊ |
49 | {␊ |
50 | OSDeclareDefaultStructors(ATADeviceNub);␊ |
51 | ␊ |
52 | public:␊ |
53 | ␊ |
54 | ␉/*!@function ataDeviceNub␊ |
55 | ␉@abstract static creator function - used by IOATAControllers to create nubs.␊ |
56 | ␉*/␊ |
57 | ␉static ATADeviceNub* ataDeviceNub( IOATAController* provider, ataUnitID unit, ataDeviceType devType);␊ |
58 | ␊ |
59 | ␉/*!@function attach␊ |
60 | ␉@abstract override of IOService method.␊ |
61 | ␉*/␊ |
62 | virtual bool attach(IOService* provider );␊ |
63 | ␊ |
64 | ␊ |
65 | ␉// overrides from IOATADevice to provide actual client interface␊ |
66 | ␉␊ |
67 | ␊ |
68 | ␉/*!@function executeCommand␊ |
69 | ␉@abstract Submit IO requests ␊ |
70 | ␉*/␊ |
71 | virtual IOReturn executeCommand(IOATACommand* command);␊ |
72 | ␊ |
73 | ␉// create and destroy IOATACommands␊ |
74 | ␉/*!@function allocCommand␊ |
75 | ␉@abstract create command objects for clients.␊ |
76 | ␉*/␊ |
77 | ␉virtual IOATACommand*␉allocCommand( void );␊ |
78 | ␉␊ |
79 | ␉/*!@function freeCommand␊ |
80 | ␉@abstract Clients use this method to dispose of command objects.␊ |
81 | ␉*/␊ |
82 | ␉virtual void freeCommand( IOATACommand* inCommand); ␊ |
83 | ␉␊ |
84 | ␉␊ |
85 | protected:␊ |
86 | ␉␊ |
87 | /*!@function init␊ |
88 | ␉@abstract used after creating the nub.␊ |
89 | ␉*/␊ |
90 | virtual bool init(IOATAController* provider, ataUnitID unit, ataDeviceType devType);␊ |
91 | ␉␊ |
92 | ␉/*!@function publishProperties␊ |
93 | ␉@abstract publish the nub's properties in the device tree.␊ |
94 | ␉*/␊ |
95 | ␉virtual void publishProperties( void );␊ |
96 | ␉␊ |
97 | ␉/*!@function publishBusProperties␊ |
98 | ␉@abstract puts info about this device's bus capability in the device tree.␊ |
99 | ␉*/␊ |
100 | ␉virtual void publishBusProperties(void);␊ |
101 | ␉␊ |
102 | ␉/*!@function publishVendorProperties␊ |
103 | ␉@abstract will be deprecated.␊ |
104 | ␉*/␊ |
105 | ␉virtual void publishVendorProperties( void );␊ |
106 | ␊ |
107 | ␉/*!@function getDeviceID␊ |
108 | ␉@abstract get the unit id of this drive (0 or 1)␊ |
109 | ␉*/␊ |
110 | ␉virtual IOReturn getDeviceID(void);␊ |
111 | ␊ |
112 | ␉/*!@function MyATACallback␊ |
113 | ␉@abstract to be deprecated.␊ |
114 | ␉*/␊ |
115 | ␉static void MyATACallback(IOATACommand* command );␊ |
116 | ␉␊ |
117 | ␉/*!@function processCallback␊ |
118 | ␉@abstract to be deprecated.␊ |
119 | ␉*/␊ |
120 | ␉void processCallback(IOATACommand* command );␊ |
121 | ␉␊ |
122 | ␉/*!@function swapBytes16␊ |
123 | ␉@abstract to be deprecated.␊ |
124 | ␉*/␊ |
125 | ␉void swapBytes16( UInt8* dataBuffer, IOByteCount length);␊ |
126 | ␊ |
127 | UInt8* buffer;␊ |
128 | ␉␊ |
129 | protected:␊ |
130 | /*! @struct ExpansionData␊ |
131 | @discussion This structure will be used to expand the capablilties of the ATADeviceNub in the future.␊ |
132 | */␊ |
133 | struct ExpansionData { };␊ |
134 | ␊ |
135 | /*! @var reserved␊ |
136 | Reserved for future use. (Internal use only) */␊ |
137 | ExpansionData *reserved;␊ |
138 | ␊ |
139 | private:␊ |
140 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 0);␊ |
141 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 1);␊ |
142 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 2);␊ |
143 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 3);␊ |
144 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 4);␊ |
145 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 5);␊ |
146 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 6);␊ |
147 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 7);␊ |
148 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 8);␊ |
149 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 9);␊ |
150 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 10);␊ |
151 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 11);␊ |
152 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 12);␊ |
153 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 13);␊ |
154 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 14);␊ |
155 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 15);␊ |
156 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 16);␊ |
157 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 17);␊ |
158 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 18);␊ |
159 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 19);␊ |
160 | OSMetaClassDeclareReservedUnused(ATADeviceNub, 20);␊ |
161 | ␊ |
162 | };␊ |
163 | ␊ |
164 | #endif /* !_IOATABUSNUB_H */␊ |
165 |