/*++ Copyright (c) 1998-2001 Microsoft Corporation Module Name: ntkd1394.h Abstract: Header file for 1394 Debugging Author: George Chrysanthakopoulos (georgioc) 31-October-1999 Revision History: Date Who What ---------- --------- ------------------------------------------------------------ 06/19/2001 pbinder cleanup --*/ // {66f250d6-7801-4a64-b139-eea80a450b24} DEFINE_GUID(GUID_1394DBG, 0x66f250d6, 0x7801, 0x4a64, 0xb1, 0x39, 0xee, 0xa8, 0x0a, 0x45, 0x0b, 0x24); #define DEBUG_1394_MAJOR_VERSION 0x1 #define DEBUG_1394_MINOR_VERSION 0x0 #define DEBUG_1394_CONFIG_TAG 0xBABABABA #define INSTANCE_DEVICE_SYMLINK_NAME L"\\DosDevices\\DBG1394_INSTANCE" #define INSTANCE_DEVICE_NAME L"\\Device\\Dbg1394_Instance" #define DEBUG_BUS1394_MAX_PACKET_SIZE 4000 typedef struct _DEBUG_1394_SEND_PACKET { ULONG TransferStatus; ULONG PacketHeader[4]; ULONG Length; UCHAR Packet[DEBUG_BUS1394_MAX_PACKET_SIZE]; } DEBUG_1394_SEND_PACKET, *PDEBUG_1394_SEND_PACKET; typedef struct _DEBUG_1394_RECEIVE_PACKET { ULONG TransferStatus; ULONG Length; UCHAR Packet[DEBUG_BUS1394_MAX_PACKET_SIZE]; } DEBUG_1394_RECEIVE_PACKET, *PDEBUG_1394_RECEIVE_PACKET; // exists on target. client uses to match for id. typedef struct _DEBUG_1394_CONFIG { ULONG Tag; USHORT MajorVersion; USHORT MinorVersion; ULONG Id; ULONG BusPresent; PHYSICAL_ADDRESS SendPacket; PHYSICAL_ADDRESS ReceivePacket; } DEBUG_1394_CONFIG, *PDEBUG_1394_CONFIG; // // Various definitions // #define IOCTL_V1394DBG_API_REQUEST CTL_CODE( FILE_DEVICE_UNKNOWN, \ 0x200, \ METHOD_BUFFERED, \ FILE_ANY_ACCESS) // // Debug 1394 Request Packets // typedef struct _VDBG1394_API_CONFIGURATION { ULONG OperationMode; ULONG fulFlags; ULARGE_INTEGER HostControllerInstanceId; ULONG PhySpeed; } VDBG1394_API_CONFIGURATION, *PVDBG1394_API_CONFIGURATION; typedef struct _VDBG1394_API_IO_PARAMETERS { ULONG fulFlags; PHYSICAL_ADDRESS StartingMemoryOffset; } VDBG1394_API_IO_PARAMETERS, *PVDBG1394_IO_PARAMETERS; #ifndef _1394_H_ // // 1394 Node Address format // typedef struct _NODE_ADDRESS { USHORT NA_Node_Number:6; // Bits 10-15 USHORT NA_Bus_Number:10; // Bits 0-9 } NODE_ADDRESS, *PNODE_ADDRESS; // // 1394 Address Offset format (48 bit addressing) // typedef struct _ADDRESS_OFFSET { USHORT Off_High; ULONG Off_Low; } ADDRESS_OFFSET, *PADDRESS_OFFSET; // // 1394 I/O Address format // typedef struct _IO_ADDRESS { NODE_ADDRESS IA_Destination_ID; ADDRESS_OFFSET IA_Destination_Offset; } IO_ADDRESS, *PIO_ADDRESS; #endif typedef struct _V1394DBG_API_ASYNC_READ { IO_ADDRESS DestinationAddress; ULONG DataLength; UCHAR Data[1]; } VDBG1394_API_ASYNC_READ, *PVDBG1394_API_ASYNC_READ; typedef struct _V1394DBG_API_REQUEST { // // Holds the zero based Function number that corresponds to the request // that device drivers are asking the sbp2 port driver to carry out. // ULONG RequestNumber; // // Holds Flags that may be unique to this particular operation // ULONG Flags; // // Holds the structures used in performing the various 1394 APIs // union { VDBG1394_API_CONFIGURATION SetConfiguration; VDBG1394_API_CONFIGURATION GetConfiguration; VDBG1394_API_IO_PARAMETERS SetIoParameters; VDBG1394_API_IO_PARAMETERS GetIoParameters; VDBG1394_API_ASYNC_READ AsyncRead; } u; } V1394DBG_API_REQUEST, *PV1394DBG_API_REQUEST; // // Request Number // #define V1394DBG_API_SET_CONFIGURATION 0x00000001 #define V1394DBG_API_GET_CONFIGURATION 0x00000002 #define V1394DBG_API_SET_IO_PARAMETERS 0x00000003 #define V1394DBG_API_GET_IO_PARAMETERS 0x00000004 #define V1394DBG_API_SET_DEBUG_MODE 0x00000005 #define V1394DBG_API_ASYNC_READ 0x00000006 #define V1394DBG_API_CONFIGURATION_MODE_DEBUG 0x00000000 #define V1394DBG_API_CONFIGURATION_MODE_RAW_MEMORY_ACCESS 0x00000001 #define V1394DBG_API_FLAG_WRITE_IO 0x00000001 #define V1394DBG_API_FLAG_READ_IO 0x00000002 // 3 different debug modes flags #define V1394DBG_API_MODE_KD_CLIENT 0x00000001 #define V1394DBG_API_MODE_USER_CLIENT 0x00000002 #define V1394DBG_API_MODE_USER_SERVER 0x00000003