Annotation of XNU/iokit/Families/IOATAHDDrive/IOATAHDDriveNub.cpp, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1998-2000 Apple Computer, 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:  * Copyright (c) 1999 Apple Computer, Inc.  All rights reserved. 
                     24:  *
                     25:  * IOATAHDDriveNub.cpp
                     26:  *
                     27:  * This subclass implements a relay to a protocol and device-specific
                     28:  * provider.
                     29:  *
                     30:  * HISTORY
                     31:  * Aug 27, 1999        jliu - Created.
                     32:  */
                     33: 
                     34: #include <IOKit/IOLib.h>
                     35: #include <IOKit/storage/ata/IOATAHDDriveNub.h>
                     36: #include <IOKit/storage/ata/IOATAHDDrive.h>
                     37: 
                     38: #define        super   IOHDDriveNub
                     39: OSDefineMetaClassAndStructors( IOATAHDDriveNub, IOHDDriveNub )
                     40: 
                     41: // --------------------------------------------------------------------------
                     42: // attach to provider.
                     43: 
                     44: bool IOATAHDDriveNub::attach(IOService * provider)
                     45: {    
                     46:     if (!super::attach(provider))
                     47:         return false;
                     48: 
                     49:     _provider = OSDynamicCast(IOATAHDDrive, provider);
                     50:     if (_provider == 0) {
                     51:         IOLog("IOATAHDDriveNub: attach; wrong provider type!\n");
                     52:         return false;
                     53:        }
                     54: 
                     55:        return true;
                     56: }
                     57: 
                     58: // --------------------------------------------------------------------------
                     59: // detach from provider.
                     60: 
                     61: void IOATAHDDriveNub::detach(IOService * provider)
                     62: {
                     63:     if (_provider == provider)
                     64:                _provider = 0;
                     65: 
                     66:     super::detach(provider);
                     67: }
                     68: 
                     69: // --------------------------------------------------------------------------
                     70: // 
                     71: 
                     72: IOReturn IOATAHDDriveNub::doAsyncReadWrite(IOMemoryDescriptor * buffer,
                     73:                                            UInt32               block,
                     74:                                            UInt32               nblks,
                     75:                                            gdCompletionFunction action,
                     76:                                            IOService *          target,
                     77:                                            void *               param)
                     78: {
                     79:        return (_provider->doAsyncReadWrite(buffer,
                     80:                                         block,
                     81:                                         nblks,
                     82:                                         action,
                     83:                                         target,
                     84:                                         param));
                     85: }
                     86: 
                     87: IOReturn IOATAHDDriveNub::doSyncReadWrite(IOMemoryDescriptor *buffer,
                     88:                                      UInt32 block,UInt32 nblks)
                     89: {
                     90:         return(kIOReturnUnsupported);  //xxx must be implemented!
                     91: }
                     92: 
                     93: // --------------------------------------------------------------------------
                     94: // 
                     95: 
                     96: IOReturn IOATAHDDriveNub::doEjectMedia()
                     97: {
                     98:     return (_provider->doEjectMedia());
                     99: }
                    100: 
                    101: // --------------------------------------------------------------------------
                    102: // 
                    103: 
                    104: IOReturn IOATAHDDriveNub::doFormatMedia(UInt64 byteCapacity)  
                    105: {
                    106:     return (_provider->doFormatMedia(byteCapacity));
                    107: }
                    108: 
                    109: // --------------------------------------------------------------------------
                    110: // 
                    111: 
                    112: UInt32
                    113: IOATAHDDriveNub::doGetFormatCapacities(UInt64 * capacities,
                    114:                                        UInt32   capacitiesMaxCount) const
                    115: {
                    116:     return (_provider->doGetFormatCapacities(capacities, capacitiesMaxCount));
                    117: }
                    118: 
                    119: // --------------------------------------------------------------------------
                    120: // 
                    121: 
                    122: IOReturn IOATAHDDriveNub::doLockUnlockMedia(bool doLock)
                    123: {
                    124:     return (_provider->doLockUnlockMedia(doLock));
                    125: }
                    126: 
                    127: // --------------------------------------------------------------------------
                    128: // 
                    129: 
                    130: // --------------------------------------------------------------------------
                    131: // 
                    132: 
                    133: IOReturn IOATAHDDriveNub::doSynchronizeCache()
                    134: {
                    135:     return (_provider->doSynchronizeCache());
                    136: }
                    137: 
                    138: IOReturn IOATAHDDriveNub::executeCdb(struct cdbParams *params)
                    139: {
                    140:     return(kIOReturnUnsupported);              // n/a for ATA; no cdb concept
                    141: }
                    142: 
                    143: // --------------------------------------------------------------------------
                    144: // 
                    145: 
                    146: char * IOATAHDDriveNub::getVendorString()
                    147: {
                    148:     return (_provider->getVendorString());
                    149: }
                    150: 
                    151: // --------------------------------------------------------------------------
                    152: // 
                    153: 
                    154: char * IOATAHDDriveNub::getProductString()
                    155: {
                    156:     return (_provider->getProductString());
                    157: }
                    158: 
                    159: // --------------------------------------------------------------------------
                    160: // 
                    161: 
                    162: char * IOATAHDDriveNub::getRevisionString()
                    163: {
                    164:     return (_provider->getRevisionString());
                    165: }
                    166: 
                    167: // --------------------------------------------------------------------------
                    168: // 
                    169: 
                    170: char * IOATAHDDriveNub::getAdditionalDeviceInfoString()
                    171: {
                    172:     return (_provider->getAdditionalDeviceInfoString());
                    173: }
                    174: 
                    175: // --------------------------------------------------------------------------
                    176: // 
                    177: 
                    178: IOReturn IOATAHDDriveNub::reportBlockSize(UInt64 * blockSize)
                    179: {
                    180:     return (_provider->reportBlockSize(blockSize));
                    181: }
                    182: 
                    183: // --------------------------------------------------------------------------
                    184: // 
                    185: 
                    186: IOReturn IOATAHDDriveNub::reportEjectability(bool * isEjectable)
                    187: {
                    188:     return (_provider->reportEjectability(isEjectable));
                    189: }
                    190: 
                    191: // --------------------------------------------------------------------------
                    192: // 
                    193: 
                    194: IOReturn IOATAHDDriveNub::reportLockability(bool * isLockable)
                    195: {
                    196:     return (_provider->reportLockability(isLockable));
                    197: }
                    198: 
                    199: // --------------------------------------------------------------------------
                    200: // 
                    201: 
                    202: IOReturn IOATAHDDriveNub::reportPollRequirements(bool * pollIsRequired,
                    203:                                                  bool * pollIsExpensive)
                    204: {
                    205:     return (_provider->reportPollRequirements(pollIsRequired, 
                    206:                                               pollIsExpensive));
                    207: }
                    208: 
                    209: // --------------------------------------------------------------------------
                    210: // 
                    211: 
                    212: IOReturn IOATAHDDriveNub::reportMaxReadTransfer(UInt64   blockSize,
                    213:                                                 UInt64 * max)
                    214: {
                    215:     return (_provider->reportMaxReadTransfer(blockSize, max));
                    216: }
                    217: 
                    218: // --------------------------------------------------------------------------
                    219: // 
                    220: 
                    221: IOReturn IOATAHDDriveNub::reportMaxValidBlock(UInt64 * maxBlock)
                    222: {
                    223:     return (_provider->reportMaxValidBlock(maxBlock));
                    224: }
                    225: 
                    226: // --------------------------------------------------------------------------
                    227: // 
                    228: 
                    229: IOReturn IOATAHDDriveNub::reportMaxWriteTransfer(UInt64   blockSize, 
                    230:                                                  UInt64 * max)
                    231: {
                    232:     return (_provider->reportMaxWriteTransfer(blockSize, max));
                    233: }
                    234: 
                    235: // --------------------------------------------------------------------------
                    236: // 
                    237: 
                    238: IOReturn IOATAHDDriveNub::reportMediaState(bool * mediaPresent,
                    239:                                            bool * changed)    
                    240: {
                    241:     return (_provider->reportMediaState(mediaPresent,changed));
                    242: }
                    243: 
                    244: // --------------------------------------------------------------------------
                    245: // 
                    246: 
                    247: IOReturn IOATAHDDriveNub::reportRemovability(bool * isRemovable)
                    248: {
                    249:     return (_provider->reportRemovability(isRemovable));
                    250: }
                    251: 
                    252: // --------------------------------------------------------------------------
                    253: // 
                    254: 
                    255: IOReturn IOATAHDDriveNub::reportWriteProtection(bool * isWriteProtected)
                    256: {
                    257:     return (_provider->reportWriteProtection(isWriteProtected));
                    258: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.