📄 dccommon.h
字号:
/*
//*************************************************************************
//
// P H I L I P S P R O P R I E T A R Y
//
// COPYRIGHT (c) 1999 BY PHILIPS SINGAPORE.
// -- ALL RIGHTS RESERVED --
//
// File Name: DCCommon.H
// Created: Feb. 1, 2000
// Modified:
// Revision: 0.1
//
//*************************************************************************
//
//*************************************************************************
*/
#ifndef __DC_COMMON_H__
#define __DC_COMMON_H__
#include "BasicTyp.h"
/*
//*************************************************************************
// macros
//*************************************************************************
*/
#define SWAP(x) (x)
#define MSB(x) (((x) >> 8) & 0xFF)
#define LSB(x) ((x) & 0xFF)
#define RaiseIRQL() disable()
#define LowerIRQL() enable()
#define NULL_LENGTH 0xff
/*
//*************************************************************************
// structure and union definitions
//*************************************************************************
*/
typedef union _DC_TCB {
struct _TCB {
UCHAR Event_1SecTimer : 1;
UCHAR IRQL : 1;
UCHAR Reserved0 : 6;
} bits;
UCHAR byValue;
} DC_TCB;
enum _USBDEVICE_STATE{
DEVSTATE_DEFAULT = 0,
DEVSTATE_ADDRESS,
DEVSTATE_CONFIGURED
};
typedef union _USB_DEV_INFO {
struct _DEV_FLAGS
{
// USB Device State
UCHAR DevState : 2; // Default,Addressed,Configured
// Event Bitmap
UCHAR Event_BusReset : 1;
UCHAR Event_BusResume : 1;
UCHAR Event_Suspend : 1;
UCHAR Event_BusStatus : 1;
UCHAR Event_EOT : 1;
UCHAR Event_SOF : 1;
UCHAR Event_MissSOF : 1;
UCHAR bReserv0 : 1;
UCHAR BusStatus : 1;
UCHAR DevAddr;
UCHAR CnfigNo;
UCHAR InterfNo;
} bits;
ULONG dwValue;
} USB_DEV_INFO;
#define DIR_H2D 0
#define DIR_D2H 1
typedef struct _REQUEST_TYPE{
UCHAR Recipient :5;
UCHAR Type :2;
UCHAR XferDir :1;
} REQUEST_TYPE;
typedef struct _DEVICE_REQUEST{
REQUEST_TYPE bmRequestType;
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
} DEVICE_REQUEST;
// ******************************************************************************
#define MAX_CONTROLDATA_SIZE 512
typedef struct _CONTROL_XFER
{
DEVICE_REQUEST DeviceRequest;
UCHAR FSMState;
BOOLEAN bAbort;
USHORT wLength;
USHORT wCount;
PUSHORT ptrBuf;
} CONTROL_XFER, * PCONTROL_XFER;
/*
//*************************************************************************
// basic FSM state
//*************************************************************************
*/
#define USBFSM_ATTACHED 0
#define USBFSM_POWRED 1
#define USBFSM_DEFAULT 2
#define USBFSM_ADDRESS 3
#define USBFSM_CONFIGURED 4
#define USBFSM_SUSPENDED 5
#define USBFSM_RESET USBFSM_DEFAULT
/*
// Normal FSM for Set Command
// IDLE -> SETUP[IRQL-1] -> DataOut[IRQL_1] -> RequestProc[IRQL_0] -> Status Stage
// Normal FSM for Get Command
// IDLE -> SETUP[IRQL-1] -> RequestProc[IRQL_0] -> DataIn[IRQL-1]-> Status Stage
*/
#define USBFSM_STALL 7
#define USBFSM_IDLE 0
#define USBFSM_XMIT 1
#define USBFSM_RCV 2
#define USBFSM_INPROCESS 3
#define USBFSM_STATUS 4
#define USBFSM_ABORT 5
#define USBFSM_INPROCESS2 6
// FSM for Default Control Pipe
enum {
USBFSM4DCP_IDLE = 0,
USBFSM4DCP_SETUPPROC,
USBFSM4DCP_DATAIN,
USBFSM4DCP_DATAOUT,
USBFSM4DCP_REQUESTPROC,
USBFSM4DCP_HANDSHAKE,
USBFSM4DCP_STALL
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -