Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC
ADC Home > Reference Library > Reference > Hardware & Drivers > I/O Kit Framework Reference

 


IOStreamShared.h

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

Overview

IOStream definitions shared between kernel and user space.



Typedefs


IOStreamBufferID


typedef UInt32 IOStreamBufferID;  

Structs and Unions


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.

Enumerations


IOStream


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

open options


Mach


Port types used with IOConnectSetNotificationPort().

enum { 
    kIOStreamPortTypeOutput, 
    kIOStreamPortTypeInput 
};  
Constants
kIOStreamPortTypeOutput
kIOStreamPortTypeInput
Discussion

port types


Memory


Memory types used with IOConnectMapMemory().

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

mapping types


User


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

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


Discussion

client methods


User


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

enum { 
    kIOStreamEnqueueInputTrap, 
    kIOStreamEnqueueInputSyncTrap 
};  
Constants
kIOStreamEnqueueInputTrap
kIOStreamEnqueueInputSyncTrap
Discussion

client traps




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-03-11