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

📄 datatype.h

📁 linux下nand flash驱动
💻 H
📖 第 1 页 / 共 2 页
字号:
/***********************************************************************	Module Name:		DataType.h			    ****	Author:			Zhangquan				    ****	Version:		1.0				    ****	CreateDate:		2001-05-18			    ****	Description:		Definitions Dataype		    ****	Remark:							    ****	Revision History:	2001-05-18			    ************************************************************************/#ifndef __DATATYPE__#define __DATATYPE__#include <linux/interrupt.h>#include <linux/kernel.h>#include <linux/types.h>#include <asm/segment.h>#include <linux/tqueue.h>#include <linux/sched.h>typedef unsigned char UCHAR;typedef char SCHAR;typedef unsigned short UWORD;typedef short SWORD;typedef unsigned long ULONG;typedef long SLONG;typedef unsigned int UINT;typedef int INT;/*TPBulk*/// USB Class Request Functions and Public Functions/* Host Device Disagreement Matrix*/enum _HOST_DEV_DISAGREE{	CASEOK = 0,	CASE1,	CASE2,	CASE3,	CASE4,	CASE5,	CASE6,	CASE7,	CASE8,	CASE9,	CASE10,	CASE11,	CASE12,	CASE13,	CASECBW};typedef union _D12FLAGS {	struct _D12FSM_FLAGS	{		UCHAR bus_reset		: 1;	UCHAR suspend		: 1;	UCHAR At_IRQL1		: 1;	UCHAR configuration	: 1;	UCHAR remote_wakeup	: 1;	UCHAR Reserved00	: 3;	UCHAR DCP_state		: 3; // Default Control Pipe FSM state	UCHAR DCP_IOorMEM	: 1; // Access Data via DCP from/to IO data port or Memory	UCHAR BOT_state		: 4; // Default Bulk Out Pipe FSM state	UCHAR BOT_IOorMEM	: 1; // Store Data via Bulk Out Pipe to IO port(ATA dev) or Memory	UCHAR verbose		: 1; // Debug info	UCHAR timer		: 1;	UCHAR Reserved20	: 6;	UCHAR Reserved30;	} bits;	ULONG value;} D12FLAGS;/*TPBulk*//*Protocol*/#define MAX_CONTROLDATA_SIZE				0x08typedef struct _device_request{	UCHAR bmRequestType;	UCHAR bRequest;	UWORD wValue;	UWORD wIndex;	UWORD wLength;} DEVICE_REQUEST;typedef struct _control_xfer{	DEVICE_REQUEST DeviceRequest;	ULONG wLength;	//UWORD to ULONG	Modified by Mike Chan	ULONG wCount;	//UWORD to ULONG	Modified by Mike Chan	UCHAR *pData;	UCHAR dataBuffer[MAX_CONTROLDATA_SIZE];} CONTROL_XFER;/*Protocol*//*PDIUSBD12*/typedef union _epp_flags{	struct _flags	{		UCHAR timer               	: 1;		//UCHAR bus_reset           	: 1;		//UCHAR suspend             	: 1;		//UCHAR setup_packet  	  	: 1;		UCHAR remote_wakeup		   	: 1;		UCHAR in_isr		      	: 1;		UCHAR control_state			: 2;				UCHAR configuration			: 1;		UCHAR verbose				: 1;		UCHAR do_ep1_rxdone			: 1; //////ep1_rxdone		UCHAR setup_dma				: 1;		UCHAR dma_state      		: 2;		UCHAR dma_disable			: 1;		UCHAR set_d12				: 1;	} bits;	UWORD value;} EPPFLAGS;/*PDIUSBD12*//*define begin*/#define USB_DEVICE_DESCRIPTOR_TYPE				0x01#define USB_CONFIGURATION_DESCRIPTOR_TYPE		0x02#define USB_STRING_DESCRIPTOR_TYPE				0x03#define USB_INTERFACE_DESCRIPTOR_TYPE			0x04#define USB_ENDPOINT_DESCRIPTOR_TYPE			0x05// Endpoint direction bit, stored in address#define USB_DATA_TRANSMIT_DEVICE_TO_HOST		0x80// USB defined Feature selectors#define USB_FEATURE_ENDPOINT_STALL          0x0000#define USB_FEATURE_REMOTE_WAKEUP           0x0001// USB defined request codes see chapter 9 of the USB 1.1 specifcation for more information.// These are the correct values based on the USB 1.1 specification#define USB_REQUEST_GET_STATUS                    0x00#define USB_REQUEST_CLEAR_FEATURE                 0x01#define USB_REQUEST_SET_FEATURE                   0x03#define USB_REQUEST_SET_ADDRESS                   0x05#define USB_REQUEST_GET_DESCRIPTOR                0x06#define USB_REQUEST_SET_DESCRIPTOR                0x07#define USB_REQUEST_GET_CONFIGURATION             0x08#define USB_REQUEST_SET_CONFIGURATION             0x09#define USB_REQUEST_GET_INTERFACE                 0x0a#define USB_REQUEST_SET_INTERFACE                 0x0b#define USB_REQUEST_SYNC_FRAME                    0x0c#define FALSE							0x00#define TRUE							(!FALSE)#define CSW_GOOD					0x00#define CSW_FAIL						0x01#define CSW_PHASE_ERROR			0x02#define CBW_SIGNATURE				0x43425355#define CSW_SIGNATURE				0x55534253//53425355#define CBW_FLAG_IN					0x80#define MAX_CDBLEN					0x10// 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_IDLE					0x00#define USBFSM_XMIT					0x01#define USBFSM_RCV					0x02#define USBFSM_INPROCESS			0x03#define USBFSM_STATUS				0x04#define USBFSM_ABORT				0x05#define USBFSM_INPROCESS2			0x06#define USBFSM_STALL				0x07// FSM for Default Control Pipe#define USBFSM4DCP_IDLE             USBFSM_IDLE#define USBFSM4DCP_DATAIN           USBFSM_XMIT#define USBFSM4DCP_DATAOUT          USBFSM_RCV#define USBFSM4DCP_REQUESTPROC      USBFSM_INPROCESS2#define USBFSM4DCP_STALL            USBFSM_STALL#define USBFSM4DCP_HANDSHAKE        USBFSM_STATUS#define USBFSM4DCP_SETUPPROC        USBFSM_INPROCESS// FSM for Bulk-Only Transfer#define USBFSM4BOT_STALL            USBFSM_STALL#define USBFSM4BOT_IDLE             USBFSM_IDLE#define USBFSM4BOT_DATAIN           USBFSM_XMIT#define USBFSM4BOT_DATAOUT          USBFSM_RCV#define USBFSM4BOT_CBWPROC          USBFSM_INPROCESS//#define USBFSM4BOT_CSWPROC          USBFSM_INPROCESS2#define USBFSM4BOT_CSW              USBFSM_STATUS#define USBFSM4BOT_CBW              USBFSM_ABORT#define USBFSM4BOT_DATAOVER              0x08//added ?????? 0x10X#define USB_CLASS_REQUEST_USBSTOR_RESET			0xff#define USB_CLASS_REQUEST_USBSTOR_GETMAXLUN		0xfe#define ATAPI_FORMATUNIT                 0x04#define ATAPI_READFORMATCAPA             0x23#define ATAPI_RAEDCAPACITY                0x25#define ATAPI_INQUIRE                   0x12#define ATAPI_REQUESTSENSE                0x03//************************************************************************#define ATAPI_MODESELECT15      	          0x15#define ATAPI_MODESELECT55	          0x55#define ATAPI_MODESENSE1A                 0x1a#define ATAPI_MODESELECT5A      	          0x5A#define ATAPI_TESTUNIT      	          0x00#define ATAPI_REZEROUNITPACKET                 0x01#define ATAPI_SEEKPACKET0B      		          0x0B#define ATAPI_SEEKPACKET2B                  0x2B#define ATAPI_SENDDIAGPACKET                 0x1D#define ATAPI_STARTSTOPUNIT      		          0x1B#define ATAPI_READ                 	0x08#define ATAPI_READ10                 	0x28#define ATAPI_WRITE10                 	0x2A#define ATAPI_WRITE             	0x0A#define	ATAPI_MODESENSE5A	0x5A#define ATAPI_TESTUNIT		0x00#define ATAPI_NONSENSE		0x06	//Command 0x06:Non-sense#define MAX_ENDPOINTS						0x03#define EP0_TX_FIFO_SIZE					16#define EP0_RX_FIFO_SIZE					16#define EP0_PACKET_SIZE						16#define EP1_TX_FIFO_SIZE					16#define EP1_RX_FIFO_SIZE					16#define EP1_PACKET_SIZE						16#define EP2_TX_FIFO_SIZE					64#define EP2_RX_FIFO_SIZE					64#define EP2_PACKET_SIZE						64#define USB_IDLE							0#define USB_TRANSMIT						1#define USB_RECEIVE							2// Mask#define USB_RECIPIENT						0x1f#define USB_RECIPIENT_DEVICE				0x00#define USB_RECIPIENT_INTERFACE				0x01#define USB_RECIPIENT_ENDPOINT				0x02#define USB_REQUEST_TYPE_MASK				0x60#define USB_STANDARD_REQUEST				0x00#define USB_CLASS_REQUEST					0x20#define USB_VENDOR_REQUEST					0x40#define USB_REQUEST_MASK					0x0f#define DEVICE_ADDRESS_MASK					0x7f#define NUM_ENDPOINTS						0x02#define CONFIG_DESCRIPTOR_LENGTH			sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_INTERFACE_DESCRIPTOR) + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))#define SWAP(x)		((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))// PDIUSBD12 Command// 		Initialization Commands#define D12_CMD_SET_ADDRESS_ENABLE		0xd0#define D12_CMD_SET_ENDPOINT_ENABLE		0xd8#define D12_CMD_SET_MODE				0xf3#define D12_CMD_SET_DMA					0xfb//		Data Flow Commands#define D12_CMD_READ_INTERRUPT_REGISTER	0xf4#define D12_CMD_SELECT_ENDPOINT			0x00#define D12_CMD_READ_STATUS				0x40#define D12_CMD_READ_BUFFER				0xf0#define D12_CMD_WRITE_BUFFER			0xf0#define D12_CMD_SET_STATUS				0x40#define D12_CMD_ACKNOWLEDGE_SETUP		0xf1#define D12_CMD_CLEAR_BUFFER			0xf2#define D12_CMD_VALIDATE_BUFFER			0xfa//		General Commands#define D12_CMD_SEND_RESUME				0xf6#define D12_CMD_READ_FRAME_NUMBER		0xf5// Endpoint Definitions#define D12_EP0_OUT						0x00#define D12_EP0_IN						0x01

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -