Mac OS X Reference Library Apple Developer
Search

IOStreamShared.h

Includes:
<sys/cdefs.h>
<IOKit/IOTypes.h>

Overview

IOStream definitions shared between kernel and user space.



Typedefs

IOStreamBufferID

IOStreamBufferID



typedef UInt32 IOStreamBufferID;  

Structs and Unions

IOStreamBufferQueue
IOStreamBufferQueueEntry

IOStreamBufferQueue



struct IOStreamBufferQueue { 
    UInt32 entryCount; 
    volatile UInt32 headIndex; 
    volatile UInt32 tailIndex; 
    UInt32 reserved; 
    IOStreamBufferQueueEntry queue[0]; 
};  
Fields
entryCount

The number of queue entries in the queue.

headIndex

The index of the next queue slot that will be filled in by the queue writer.

tailIndex

The index of the next queue slot that can be read by the queue reader.

reserved

Reserved for future use.

queue

The array of queue entries.


IOStreamBufferQueueEntry



struct IOStreamBufferQueueEntry { 
    IOStreamBufferID bufferID; 
    UInt32 dataOffset; 
    UInt32 dataLength; 
    UInt32 controlOffset; 
    UInt32 controlLength; 
    UInt32 reserved[3]; 
};  
Fields
bufferID

The ID of the buffer passed in this queue entry.

dataLength

The length of the valid data in the buffer.

reserved

Reserved for future use.

Enumerated Types

IOStream
Mach

Port types used with IOConnectSetNotificationPort().

Memory

Memory types used with IOConnectMapMemory().

User

Client method numbers used with IOConnectMethod...() functions.

User

Client trap numbers used with IOConnectTrap..() functions.


IOStream



enum { 
    kIOStreamOptionOpenExclusive = 0x00010000, 
    kIOStreamOptionOpenShared = 0x00020000 
};  
Discussion

open options


Mach


Port types used with IOConnectSetNotificationPort().


enum { 
    kIOStreamPortTypeOutput, 
    kIOStreamPortTypeInput 
};  
Constants
Discussion

port types


Memory


Memory types used with IOConnectMapMemory().


enum { 
    kIOStreamMemoryTypeOutputQueue = 0x10000000, 
    kIOStreamMemoryTypeInputQueue = 0x20000000, 
    kIOStreamMemoryTypeBufferData = 0x30000000, 
    kIOStreamMemoryTypeBufferControl = 0x40000000, 
    kIOStreamBufferIDMask = 0x0FFFFFFF, 
    kIOStreamMemoryTypeMask = 0xF0000000 
};  
Constants
Discussion

mapping types


User


Client method numbers used with IOConnectMethod...() functions.


enum { 
    kIOStreamMethodOpen, 
    kIOStreamMethodClose, 
    kIOStreamMethodStart, 
    kIOStreamMethodStop, 
    kIOStreamMethodSuspend, 
    kIOStreamMethodGetMode, 
    kIOStreamMethodSetMode, 
    kIOStreamMethodGetBufferCount 
};  
Constants
Discussion

client methods


User


Client trap numbers used with IOConnectTrap..() functions.


enum { 
    kIOStreamEnqueueInputTrap, 
    kIOStreamEnqueueInputSyncTrap 
};  
Constants
Discussion

client traps

 

Did this document help you? Yes It's good, but... Not helpful...

Last Updated: 2010-07-29