IOStorage.h

Overview

This header contains the IOStorage class definition.



Classes

IOStorage

The common base class for mass storage objects.



Typedefs

IOStorageCompletionAction

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
IOStorageCompletion

IOStorageAttributes


struct IOStorageAttributes { 
    IOStorageOptions options; 
    UInt32 reserved0032; 
    UInt64 reserved0064; 
    #ifdef __LP64__ 
    UInt64 reserved0128; 
    UInt64 reserved0192; 
    #endif 
    /* __LP64__ */
}; 
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.

Enumerated Types

IOStorageAccess
IOStorageOptions

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.

Macro Definitions

kIOStorageCategory

kIOStorageCategory is a value for IOService's kIOMatchCategoryKey property.

kIOStorageClass

The name of the IOStorage class.

kIOStorageFeatureDiscard

Describes the presence of the Discard feature.

kIOStorageFeatureForceUnitAccess

Describes the presence of the Force Unit Access feature.

kIOStorageFeaturesKey

A property of any object in the storage stack.


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" 


kIOStorageFeatureDiscard


Describes the presence of the Discard feature.

#define kIOStorageFeatureDiscard "Discard" 
Discussion

This property describes the ability of the storage stack to delete unused data from the media. It is one of the feature entries listed under the top- level kIOStorageFeaturesKey property table. It has an OSBoolean value.


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.

 

 

Last Updated: 2009-10-14