⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dccommon.h

📁 此為philip 1362 USB DOS下的驅動程式包, 已經共測試並內含有說明文件
💻 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 + -