ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference

 


IOStorage.h

Include Path:

<IOKit/storage/IOStorage.h>

Path:

/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/IOKit/storage/IOStorage.h

Includes:

Overview

This header contains the IOStorage class definition. The IOStorage class is the common base class for both driver and media objects.

For more information on the IOStorage class, see Writing Drivers for Mass Storage Devices.



Classes

IOStorage

The common base class for mass storage objects.



Typedefs


IOStorageCompletionAction


typedef void ( *IOStorageCompletionAction)(
    void *target, 
    void *parameter, 
    IOReturn status, 
    UInt64 actualByteCount);  
Fields
target

Opaque client-supplied pointer (or an instance pointer for a C++ callback).

parameter

Opaque client-supplied pointer.

status

Status of the data transfer.

actualByteCount

Actual number of bytes transferred in the data transfer.

Discussion

The IOStorageCompletionAction declaration describes the C (or C++) completion routine that is called once an asynchronous storage operation completes.

Structs and Unions


IOStorageAttributes


struct IOStorageAttributes { 
    IOStorageOptions options; 
    UInt32 reserved[3]; 
};  
Fields
options

Options for the request. See IOStorageOptions.

reserved

Reserved for future use. Set to zero.

Discussion

Attributes of read and write storage requests.


IOStorageCompletion


struct IOStorageCompletion { 
    void *target; 
    IOStorageCompletionAction action; 
    void *parameter; 
};  
Fields
target

Opaque client-supplied pointer (or an instance pointer for a C++ callback).

action

Completion routine to call on completion of the data transfer.

parameter

Opaque client-supplied pointer.

Discussion

The IOStorageCompletion structure describes the C (or C++) completion routine that is called once an asynchronous storage operation completes. The values passed for the target and parameter fields will be passed to the routine when it is called.

Enumerations


IOStorageAccess


enum { 
    kIOStorageAccessNone = 0x00, 
    kIOStorageAccessReader = 0x01, 
    kIOStorageAccessReaderWriter = 0x03, 
    kIOStorageAccessSharedLock = 0x04, 
    kIOStorageAccessExclusiveLock = 0x08 
};  
Constants
kIOStorageAccessNone

No access is requested; should not be passed to open().

kIOStorageAccessReader

Read-only access is requested.

kIOStorageAccessReaderWriter

Read and write access is requested.

kIOStorageAccessSharedLock

Shared access is requested.

kIOStorageAccessExclusiveLock

Exclusive access is requested.

Discussion

The IOStorageAccess enumeration describes the possible access levels for open requests.


IOStorageOptions


enum { 
    kIOStorageOptionNone = 0x00000000, 
    kIOStorageOptionForceUnitAccess = 0x00000001, 
    kIOStorageOptionReserved = 0xFFFFFFFE 
};  
Constants
kIOStorageOptionForceUnitAccess

Force the request to access the media.

Discussion

Options for read and write storage requests.

#defines


kIOStorageCategory


kIOStorageCategory is a value for IOService's kIOMatchCategoryKey property.

#define kIOStorageCategory "IOStorage" /* (as IOMatchCategory) */
Discussion

The kIOStorageCategory value is the standard value for the IOService property kIOMatchCategoryKey ("IOMatchCategory") for all storage drivers. All storage objects that expect to drive new content (that is, produce new media objects) are expected to compete within the kIOStorageCategory namespace.

See the IOService documentation for more information on match categories.


kIOStorageClass


The name of the IOStorage class.

#define kIOStorageClass "IOStorage" 


kIOStorageFeatureForceUnitAccess


Describes the presence of the Force Unit Access feature.

#define kIOStorageFeatureForceUnitAccess "Force Unit Access" 
Discussion

This property describes the ability of the storage stack to force a request to access the media. It is one of the feature entries listed under the top- level kIOStorageFeaturesKey property table. It has an OSBoolean value.


kIOStorageFeaturesKey


A property of any object in the storage stack.

#define kIOStorageFeaturesKey "IOStorageFeatures" 
Discussion

kIOStorageFeaturesKey is a property of any object in the storage stack that wishes to express support of additional features, such as Force Unit Access. It is typically defined in the device object below the block storage driver object. It has an OSDictionary value, where each entry describes one given feature.


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.

 

Last Updated: 2008-12-19