Mac Developer Library

Developer

IOStreamShared.h Reference

Options
Deployment Target:

On This Page

IOStreamShared.h Reference

IOStream definitions shared between kernel and user space.

Included Headers

  • <sys/cdefs.h>

  • <IOKit/IOTypes.h>

Data Types

See the Overview section above for header-level documentation.

  • Declaration

    typedef UInt32 IOStreamBufferID;

    Import Statement

  • Declaration

    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.

  • Declaration

    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.

Constants

See the Overview section above for header-level documentation.

  • Declaration

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

  • Port types used with IOConnectSetNotificationPort().

    Declaration

    enum { kIOStreamPortTypeOutput, kIOStreamPortTypeInput };

    Constants

    • kIOStreamPortTypeOutput

    • kIOStreamPortTypeInput

  • Memory types used with IOConnectMapMemory().

    Declaration

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

    Constants

    • kIOStreamMemoryTypeOutputQueue

    • kIOStreamMemoryTypeInputQueue

    • kIOStreamMemoryTypeBufferData

    • kIOStreamMemoryTypeBufferControl

    • kIOStreamBufferIDMask

    • kIOStreamMemoryTypeMask

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

    Declaration

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

    Constants

    • kIOStreamMethodOpen

    • kIOStreamMethodClose

    • kIOStreamMethodStart

    • kIOStreamMethodStop

    • kIOStreamMethodSuspend

    • kIOStreamMethodGetMode

    • kIOStreamMethodSetMode

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

    Declaration

    enum { kIOStreamEnqueueInputTrap, kIOStreamEnqueueInputSyncTrap };

    Constants

    • kIOStreamEnqueueInputTrap

    • kIOStreamEnqueueInputSyncTrap