ADC Home > Reference Library > Reference > Darwin > Kernel 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-12-19