|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: File: IOFWIsoch.h ! 24: ! 25: Contains: Definitions for FireWire isochronous transfers. ! 26: ! 27: Version: 1.0 ! 28: ! 29: Copyright: � 1996-1999 by Apple Computer, Inc., all rights reserved. ! 30: ! 31: */ ! 32: ! 33: #ifndef __IOFWISOCH_H__ ! 34: #define __IOFWISOCH_H__ ! 35: ! 36: #ifndef __IOFWREGS_H__ ! 37: #include <IOKit/firewire/IOFWRegs.h> ! 38: #endif ! 39: ! 40: ! 41: //////////////////////////////////////////////////////////////////////////////// ! 42: // ! 43: // DCL opcode defs. ! 44: // ! 45: ! 46: enum ! 47: { ! 48: kFWDCLImmediateEvent = 0, ! 49: kFWDCLCycleEvent = 1, ! 50: kFWDCLSyBitsEvent = 2 ! 51: }; ! 52: ! 53: enum ! 54: { ! 55: kFWDCLInvalidNotification = 0, ! 56: kFWDCLUpdateNotification = 1, ! 57: kFWDCLModifyNotification = 2 ! 58: }; ! 59: ! 60: enum ! 61: { ! 62: kFWDCLOpDynamicFlag = (1 << 16), ! 63: kFWDCLOpVendorDefinedFlag = (1 << 17), ! 64: kFWDCLOpFlagMask = BitRange (16, 31), ! 65: kFWDCLOpFlagPhase = BitRangePhase (16, 31) ! 66: }; ! 67: ! 68: enum ! 69: { ! 70: kDCLInvalidOp = 0, ! 71: kDCLSendPacketStartOp = 1, ! 72: kDCLSendPacketWithHeaderStartOp = 2, ! 73: kDCLSendPacketOp = 3, ! 74: kDCLSendBufferOp = 4, ! 75: kDCLReceivePacketStartOp = 5, ! 76: kDCLReceivePacketOp = 6, ! 77: kDCLReceiveBufferOp = 7, ! 78: kDCLCallProcOp = 8, ! 79: kDCLLabelOp = 9, ! 80: kDCLJumpOp = 10, ! 81: kDCLSetTagSyncBitsOp = 11, ! 82: kDCLUpdateDCLListOp = 12, ! 83: kDCLTimeStampOp = 13 ! 84: }; ! 85: ! 86: typedef struct DCLCommandStruct DCLCommand, *DCLCommandPtr; ! 87: ! 88: struct DCLCommandStruct ! 89: { ! 90: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 91: UInt32 compilerData; // Data for use by DCL compiler. ! 92: UInt32 opcode; // DCL opcode. ! 93: UInt32 operands[1]; // DCL operands (size varies) ! 94: }; ! 95: ! 96: struct DCLTransferPacketStruct ! 97: { ! 98: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 99: UInt32 compilerData; // Data for use by DCL compiler. ! 100: UInt32 opcode; // DCL opcode. ! 101: void * buffer; // Packet buffer. ! 102: UInt32 size; // Buffer size. ! 103: }; ! 104: typedef struct DCLTransferPacketStruct DCLTransferPacket, *DCLTransferPacketPtr; ! 105: ! 106: struct DCLTransferBufferStruct ! 107: { ! 108: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 109: UInt32 compilerData; // Data for use by DCL compiler. ! 110: UInt32 opcode; // DCL opcode. ! 111: void * buffer; // Buffer. ! 112: UInt32 size; // Buffer size. ! 113: UInt16 packetSize; // Size of packets to send. ! 114: UInt16 reserved; ! 115: UInt32 bufferOffset; // Current offset into buffer. ! 116: }; ! 117: typedef struct DCLTransferBufferStruct DCLTransferBuffer, *DCLTransferBufferPtr; ! 118: ! 119: typedef void (DCLCallCommandProc) (DCLCommandPtr pDCLCommand); ! 120: typedef DCLCallCommandProc *DCLCallCommandProcPtr; ! 121: ! 122: struct DCLCallProcStruct ! 123: { ! 124: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 125: UInt32 compilerData; // Data for use by DCL compiler. ! 126: UInt32 opcode; // DCL opcode. ! 127: DCLCallCommandProcPtr proc; // Procedure to call. ! 128: UInt32 procData; // Data for use by called procedure. ! 129: }; ! 130: typedef struct DCLCallProcStruct DCLCallProc, *DCLCallProcPtr; ! 131: ! 132: struct DCLLabelStruct ! 133: { ! 134: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 135: UInt32 compilerData; // Data for use by DCL compiler. ! 136: UInt32 opcode; // DCL opcode. ! 137: }; ! 138: typedef struct DCLLabelStruct DCLLabel, *DCLLabelPtr; ! 139: ! 140: struct DCLJumpStruct ! 141: { ! 142: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 143: UInt32 compilerData; // Data for use by DCL compiler. ! 144: UInt32 opcode; // DCL opcode. ! 145: DCLLabelPtr pJumpDCLLabel; // DCL label to jump to. ! 146: }; ! 147: typedef struct DCLJumpStruct DCLJump, *DCLJumpPtr; ! 148: ! 149: struct DCLSetTagSyncBitsStruct ! 150: { ! 151: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 152: UInt32 compilerData; // Data for use by DCL compiler. ! 153: UInt32 opcode; // DCL opcode. ! 154: UInt16 tagBits; // Tag bits for following packets. ! 155: UInt16 syncBits; // Sync bits for following packets. ! 156: }; ! 157: typedef struct DCLSetTagSyncBitsStruct DCLSetTagSyncBits, *DCLSetTagSyncBitsPtr; ! 158: ! 159: struct DCLUpdateDCLListStruct ! 160: { ! 161: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 162: UInt32 compilerData; // Data for use by DCL compiler. ! 163: UInt32 opcode; // DCL opcode. ! 164: DCLCommandPtr *dclCommandList; // List of DCL commands to update. ! 165: UInt32 numDCLCommands; // Number of DCL commands in list. ! 166: }; ! 167: typedef struct DCLUpdateDCLListStruct DCLUpdateDCLList, *DCLUpdateDCLListPtr; ! 168: ! 169: struct DCLTimeStampStruct ! 170: { ! 171: DCLCommandPtr pNextDCLCommand; // Next DCL command. ! 172: UInt32 compilerData; // Data for use by DCL compiler. ! 173: UInt32 opcode; // DCL opcode. ! 174: UInt32 timeStamp; // Time stamp. ! 175: }; ! 176: typedef struct DCLTimeStampStruct DCLTimeStamp, *DCLTimeStampPtr; ! 177: ! 178: #endif /* __IOFWISOCH_H */ ! 179:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.