IOStreamShared.h Reference

Declared in
IOStreamShared.h

Overview

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.

IOStreamBufferID

typedef UInt32 IOStreamBufferID;
Availability
  • Available in OS X v10.5 and later.
Declared In
IOStreamShared.h

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.

Availability
  • Available in OS X v10.6 and later.
Declared In
IOStreamShared.h

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.

Availability
  • Available in OS X v10.6 and later.
Declared In
IOStreamShared.h

Constants

See the Overview section above for header-level documentation.

IOStream open options

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

Mach port types

Port types used with IOConnectSetNotificationPort().

enum {
   kIOStreamPortTypeOutput,
   kIOStreamPortTypeInput
};
Constants
kIOStreamPortTypeOutput

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamPortTypeInput

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

Memory mapping types

Memory types used with IOConnectMapMemory().

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

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMemoryTypeInputQueue

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMemoryTypeBufferData

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMemoryTypeBufferControl

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamBufferIDMask

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMemoryTypeMask

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

User client methods

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

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

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMethodClose

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMethodStart

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMethodStop

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMethodSuspend

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMethodGetMode

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamMethodSetMode

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

User client traps

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

enum {
   kIOStreamEnqueueInputTrap,
   kIOStreamEnqueueInputSyncTrap
};
Constants
kIOStreamEnqueueInputTrap

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.

kIOStreamEnqueueInputSyncTrap

Available in OS X v10.5 and later.

Declared in IOStreamShared.h.