Annotation of XNU/iokit/Families/IOSCSIHDDrive/IOSCSIHDDriveNub.cpp, revision 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: #include <IOKit/IOLib.h>
        !            23: #include <IOKit/storage/scsi/IOSCSIHDDriveNub.h>
        !            24: #include <IOKit/storage/scsi/IOSCSIHDDrive.h>
        !            25: 
        !            26: #define        super   IOHDDriveNub
        !            27: OSDefineMetaClassAndStructors(IOSCSIHDDriveNub,IOHDDriveNub)
        !            28: 
        !            29: bool
        !            30: IOSCSIHDDriveNub::attach(IOService * provider)
        !            31: {
        !            32: //    IOLog("IOSCSIHDDriveNub: attach\n");
        !            33:     
        !            34:     if (!super::attach(provider)) {
        !            35:         return(false);
        !            36:     }
        !            37:     
        !            38: //    IOLog("IOSCSIHDDriveNub: attach; casting provider\n");
        !            39:     _provider = OSDynamicCast(IOSCSIHDDrive,provider);
        !            40:     if (_provider == NULL) {
        !            41:         IOLog("IOSCSIHDDriveNub: attach; wrong provider type!\n");
        !            42:         return(false);
        !            43:     } else {
        !            44: //        IOLog("IOSCSIHDDriveNub: attach; provider OK\n");
        !            45:         return(true);
        !            46:     }
        !            47: }
        !            48: 
        !            49: void IOSCSIHDDriveNub::detach(IOService * provider)
        !            50: {
        !            51:     if( _provider == provider)
        !            52:        _provider = 0;
        !            53: 
        !            54:     super::detach( provider );
        !            55: }
        !            56: 
        !            57: IOReturn
        !            58: IOSCSIHDDriveNub::doAsyncReadWrite(IOMemoryDescriptor *buffer,
        !            59:                                             UInt32 block,UInt32 nblks,
        !            60:                                             gdCompletionFunction action,
        !            61:                                             IOService *target,void *param)
        !            62: {
        !            63:     return(_provider->doAsyncReadWrite(buffer,block,nblks,action,target,param));
        !            64: }
        !            65: 
        !            66: IOReturn
        !            67: IOSCSIHDDriveNub::doSyncReadWrite(IOMemoryDescriptor *buffer,UInt32 block,UInt32 nblks)
        !            68: {
        !            69:     return(_provider->doSyncReadWrite(buffer,block,nblks));
        !            70: }
        !            71: 
        !            72: IOReturn
        !            73: IOSCSIHDDriveNub::doEjectMedia(void)
        !            74: {
        !            75:     return(_provider->doEjectMedia());
        !            76: }
        !            77: 
        !            78: IOReturn
        !            79: IOSCSIHDDriveNub::doFormatMedia(UInt64 byteCapacity)  
        !            80: {
        !            81:     return(_provider->doFormatMedia(byteCapacity));
        !            82: }
        !            83: 
        !            84: UInt32
        !            85: IOSCSIHDDriveNub::doGetFormatCapacities(UInt64 * capacities,
        !            86:                                             UInt32   capacitiesMaxCount) const
        !            87: {
        !            88:     return(_provider->doGetFormatCapacities(capacities,capacitiesMaxCount));
        !            89: }
        !            90: 
        !            91: IOReturn
        !            92: IOSCSIHDDriveNub::doLockUnlockMedia(bool doLock)
        !            93: {
        !            94:     return(_provider->doLockUnlockMedia(doLock));
        !            95: }
        !            96: 
        !            97: IOReturn
        !            98: IOSCSIHDDriveNub::doSynchronizeCache(void)
        !            99: {
        !           100:     return(_provider->doSynchronizeCache());
        !           101: }
        !           102: 
        !           103: IOReturn
        !           104: IOSCSIHDDriveNub::executeCdb(struct cdbParams *params)
        !           105: {
        !           106:     return(_provider->executeCdb(params));
        !           107: }
        !           108: 
        !           109: char *
        !           110: IOSCSIHDDriveNub::getVendorString(void)
        !           111: {
        !           112:     return(_provider->getVendorString());
        !           113: }
        !           114: 
        !           115: char *
        !           116: IOSCSIHDDriveNub::getProductString(void)
        !           117: {
        !           118:     return(_provider->getProductString());
        !           119: }
        !           120: 
        !           121: char *
        !           122: IOSCSIHDDriveNub::getRevisionString(void)
        !           123: {
        !           124:     return(_provider->getRevisionString());
        !           125: }
        !           126: 
        !           127: char *
        !           128: IOSCSIHDDriveNub::getAdditionalDeviceInfoString(void)
        !           129: {
        !           130:     return(_provider-> getAdditionalDeviceInfoString());
        !           131: }
        !           132: 
        !           133: IOReturn
        !           134: IOSCSIHDDriveNub::reportBlockSize(UInt64 *blockSize)
        !           135: {
        !           136:     return(_provider->reportBlockSize(blockSize));
        !           137: }
        !           138: 
        !           139: IOReturn
        !           140: IOSCSIHDDriveNub::reportEjectability(bool *isEjectable)
        !           141: {
        !           142:     return(_provider->reportEjectability(isEjectable));
        !           143: }
        !           144: 
        !           145: IOReturn
        !           146: IOSCSIHDDriveNub::reportLockability(bool *isLockable)
        !           147: {
        !           148:     return(_provider->reportLockability(isLockable));
        !           149: }
        !           150: 
        !           151: IOReturn
        !           152: IOSCSIHDDriveNub::reportPollRequirements(bool *pollIsRequired,bool *pollIsExpensive)
        !           153: {
        !           154:     return(_provider->reportPollRequirements(pollIsRequired,pollIsExpensive));
        !           155: }
        !           156: 
        !           157: IOReturn
        !           158: IOSCSIHDDriveNub::reportMaxReadTransfer (UInt64 blockSize,UInt64 *max)
        !           159: {
        !           160:     return(_provider->reportMaxReadTransfer(blockSize,max));
        !           161: }
        !           162: 
        !           163: IOReturn
        !           164: IOSCSIHDDriveNub::reportMaxValidBlock(UInt64 *maxBlock)
        !           165: {
        !           166:     return(_provider->reportMaxValidBlock(maxBlock));
        !           167: }
        !           168: 
        !           169: IOReturn
        !           170: IOSCSIHDDriveNub::reportMaxWriteTransfer(UInt64 blockSize,UInt64 *max)
        !           171: {
        !           172:     return(_provider->reportMaxWriteTransfer(blockSize,max));
        !           173: }
        !           174: 
        !           175: IOReturn
        !           176: IOSCSIHDDriveNub::reportMediaState(bool *mediaPresent,bool *changed)    
        !           177: {
        !           178:     return(_provider->reportMediaState(mediaPresent,changed));
        !           179: }
        !           180: 
        !           181: IOReturn
        !           182: IOSCSIHDDriveNub::reportRemovability(bool *isRemovable)
        !           183: {
        !           184:     return(_provider->reportRemovability(isRemovable));
        !           185: }
        !           186: 
        !           187: IOReturn
        !           188: IOSCSIHDDriveNub::reportWriteProtection(bool *isWriteProtected)
        !           189: {
        !           190:     return(_provider->reportWriteProtection(isWriteProtected));
        !           191: }

unix.superglobalmegacorp.com

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