You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
2.7 KiB
190 lines
2.7 KiB
|
|
#include "usb.h"
|
|
#include "usbhcdi.h"
|
|
|
|
// include all bus interfaces
|
|
#include "usbbusif.h"
|
|
#include "hubbusif.h"
|
|
|
|
// inclulde ioctl defs for port drivers
|
|
#include "usbkern.h"
|
|
#include "usbuser.h"
|
|
|
|
#include "..\..\USB2LIB\usb2lib.h"
|
|
#include "..\usbport\dbg.h"
|
|
#include "..\usbport\usbport.h"
|
|
|
|
//#define DEBUGIT
|
|
|
|
typedef union _SIG {
|
|
UCHAR c[4];
|
|
ULONG l;
|
|
} SIG, *PSIG;
|
|
|
|
typedef struct _FLAG_TABLE {
|
|
PUCHAR Name;
|
|
ULONG Mask;
|
|
} FLAG_TABLE, *PFLAG_TABLE;
|
|
|
|
#define GETMEMLOC(base, typ, field) \
|
|
((base) + FIELD_OFFSET(typ, field))
|
|
|
|
|
|
typedef ULONG64 MEMLOC, *PMEMLOC;
|
|
|
|
typedef struct _STRUC_ENTRY {
|
|
PUCHAR FieldName;
|
|
ULONG FieldType;
|
|
} STRUC_ENTRY, *PSTRUC_ENTRY;
|
|
|
|
#define FT_ULONG 1
|
|
#define FT_UCHAR 2
|
|
#define FT_USHORT 3
|
|
#define FT_PTR 4
|
|
#define FT_SIG 5
|
|
#define FT_DEVSPEED 6
|
|
#define FT_ULONG64 7
|
|
|
|
ULONG
|
|
CheckSym();
|
|
|
|
|
|
#define CHECKSYM()\
|
|
{\
|
|
ULONG n;\
|
|
if ((n=CheckSym()) != S_OK) {\
|
|
return n;\
|
|
}\
|
|
}
|
|
|
|
|
|
|
|
VOID
|
|
UsbDumpStruc(
|
|
MEMLOC MemLoc,
|
|
PUCHAR Cs,
|
|
PSTRUC_ENTRY FieldList,
|
|
ULONG NumEntries
|
|
);
|
|
|
|
CPPMOD
|
|
ScanfMemLoc(
|
|
PMEMLOC MemLoc,
|
|
PCSTR args
|
|
);
|
|
|
|
VOID
|
|
PrintfMemLoc(
|
|
PUCHAR Str1,
|
|
MEMLOC MemLoc,
|
|
PUCHAR Str2
|
|
);
|
|
|
|
VOID
|
|
BadMemLoc(
|
|
ULONG MemLoc
|
|
);
|
|
|
|
VOID
|
|
BadSig(
|
|
ULONG Sig,
|
|
ULONG ExpectedSig
|
|
);
|
|
|
|
VOID
|
|
DumpIPipe(
|
|
MEMLOC MEmLoc
|
|
);
|
|
|
|
PCHAR
|
|
ListEmpty(
|
|
MEMLOC HeadMemLoc
|
|
);
|
|
|
|
VOID
|
|
DumpPowerCaps(
|
|
MEMLOC MemLoc
|
|
);
|
|
|
|
VOID
|
|
UsbDumpFlags(
|
|
ULONG Flags,
|
|
PFLAG_TABLE FlagTable,
|
|
ULONG NumEntries
|
|
);
|
|
|
|
VOID
|
|
DumpUnicodeString(
|
|
UNICODE_STRING uniString
|
|
);
|
|
|
|
VOID
|
|
DumpEndpointParameters(
|
|
MEMLOC MemLoc
|
|
);
|
|
|
|
|
|
VOID
|
|
DumpUSBDescriptor(
|
|
PVOID Descriptor
|
|
);
|
|
|
|
VOID
|
|
EpType(
|
|
ENDPOINT_TRANSFER_TYPE Typ
|
|
);
|
|
|
|
VOID
|
|
EpDir(
|
|
ENDPOINT_TRANSFER_DIRECTION Dir
|
|
);
|
|
|
|
VOID
|
|
Sig(
|
|
ULONG Sig,
|
|
PUCHAR p
|
|
);
|
|
|
|
VOID
|
|
DumpInterfaceInfo(
|
|
MEMLOC MemLoc
|
|
);
|
|
|
|
ULONG
|
|
UsbFieldOffset(
|
|
IN LPSTR Type,
|
|
IN LPSTR Field
|
|
);
|
|
|
|
MEMLOC
|
|
UsbReadFieldPtr(
|
|
IN ULONG64 Addr,
|
|
IN LPSTR Type,
|
|
IN LPSTR Field
|
|
);
|
|
|
|
ULONG
|
|
UsbReadFieldUlong(
|
|
IN ULONG64 Addr,
|
|
IN LPSTR Type,
|
|
IN LPSTR Field
|
|
);
|
|
|
|
UCHAR
|
|
UsbReadFieldUchar(
|
|
IN ULONG64 Addr,
|
|
IN LPSTR Type,
|
|
IN LPSTR Field
|
|
);
|
|
|
|
USHORT
|
|
UsbReadFieldUshort(
|
|
IN ULONG64 Addr,
|
|
IN LPSTR Type,
|
|
IN LPSTR Field
|
|
);
|
|
|
|
VOID
|
|
DumpEHCI_StaticQHs(
|
|
MEMLOC MemLoc
|
|
);
|