#ifndef __IOFWISOCH_H__
#define __IOFWISOCH_H__
#include <IOKit/firewire/IOFireWireFamilyCommon.h>
enum
{
kFWDCLImmediateEvent = 0,
kFWDCLCycleEvent = 1,
kFWDCLSyBitsEvent = 2
};
enum
{
kFWDCLInvalidNotification = 0,
kFWDCLUpdateNotification = 1,
kFWDCLModifyNotification = 2
};
enum
{
kFWDCLOpDynamicFlag = (1 << 16),
kFWDCLOpVendorDefinedFlag = (1 << 17),
kFWDCLOpFlagMask = BitRange (16, 31),
kFWDCLOpFlagPhase = BitRangePhase (16, 31)
};
enum
{
kDCLInvalidOp = 0,
kDCLSendPacketStartOp = 1,
kDCLSendPacketWithHeaderStartOp = 2,
kDCLSendPacketOp = 3,
kDCLSendBufferOp = 4,
kDCLReceivePacketStartOp = 5,
kDCLReceivePacketOp = 6,
kDCLReceiveBufferOp = 7,
kDCLCallProcOp = 8,
kDCLLabelOp = 9,
kDCLJumpOp = 10,
kDCLSetTagSyncBitsOp = 11,
kDCLUpdateDCLListOp = 12,
kDCLTimeStampOp = 13,
kDCLPtrTimeStampOp = 14
};
typedef struct DCLCommandStruct DCLCommand, *DCLCommandPtr;
struct DCLCommandStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; UInt32 operands[1]; };
struct DCLTransferPacketStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; void * buffer; UInt32 size; };
typedef struct DCLTransferPacketStruct DCLTransferPacket, *DCLTransferPacketPtr;
struct DCLTransferBufferStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; void * buffer; UInt32 size; UInt16 packetSize; UInt16 reserved;
UInt32 bufferOffset; };
typedef struct DCLTransferBufferStruct DCLTransferBuffer, *DCLTransferBufferPtr;
typedef void (DCLCallCommandProc) (DCLCommandPtr pDCLCommand);
typedef DCLCallCommandProc *DCLCallCommandProcPtr;
struct DCLCallProcStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; DCLCallCommandProcPtr proc; UInt32 procData; };
typedef struct DCLCallProcStruct DCLCallProc, *DCLCallProcPtr;
struct DCLLabelStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; };
typedef struct DCLLabelStruct DCLLabel, *DCLLabelPtr;
struct DCLJumpStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; DCLLabelPtr pJumpDCLLabel; };
typedef struct DCLJumpStruct DCLJump, *DCLJumpPtr;
struct DCLSetTagSyncBitsStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; UInt16 tagBits; UInt16 syncBits; };
typedef struct DCLSetTagSyncBitsStruct DCLSetTagSyncBits, *DCLSetTagSyncBitsPtr;
struct DCLUpdateDCLListStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; DCLCommandPtr *dclCommandList; UInt32 numDCLCommands; };
typedef struct DCLUpdateDCLListStruct DCLUpdateDCLList, *DCLUpdateDCLListPtr;
struct DCLTimeStampStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; UInt32 timeStamp; };
typedef struct DCLTimeStampStruct DCLTimeStamp, *DCLTimeStampPtr;
struct DCLPtrTimeStampStruct
{
DCLCommandPtr pNextDCLCommand; UInt32 compilerData; UInt32 opcode; UInt32 *timeStampPtr; };
typedef struct DCLPtrTimeStampStruct DCLPtrTimeStamp, *DCLPtrTimeStampPtr;
#endif