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

📄 usb.equ

📁 dos下的USB源码(包括UHCI
💻 EQU
📖 第 1 页 / 共 5 页
字号:

MASS_VERIFY	STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
	dStartLBA	DWORD	?		; Starting LBA address
	wNumBlks	WORD	?		; Number of blocks to verify
	wPreSkipSize	WORD	?		; Number of bytes to skip before
	wPostSkipSize	WORD	?		; Number of bytes to skip after
	fpBufferPtr	DWORD	?		; Far buffer pointer
MASS_VERIFY	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_FORMAT
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassFormatDevice (API #27h, SubFunc 06h)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;		bHeadNumber	BYTE	Head number to format
;		bTrackNumber	BYTE	Track number to format
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_FORMAT	STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
	bHeadNumber	BYTE	?		; Head number to format
	bTrackNumber	BYTE	?		; Track number to format
MASS_FORMAT	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_REQ_SENSE
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassRequestSense (API #27h, SubFunc 07h)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_REQ_SENSE		STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
MASS_REQ_SENSE		ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_TEST_UNIT_RDY
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassTestUnitReady (API #27h, SubFunc 08h)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_TEST_UNIT_RDY	STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
MASS_TEST_UNIT_RDY	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_START_STOP_UNIT
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassStartStopUnit (API #27h, SubFunc 09h)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;		bCommand	BYTE	0 - Stop, 1 - Start
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_START_STOP_UNIT	STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
	bCommand	BYTE	?		; 0 - Stop, 1 - Start
MASS_START_STOP_UNIT	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_READ_CAPACITY
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassReadCapacity (API #27h, SubFunc 0Ah)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;		dMaxLBA		DWORD	Maximum LBA address
;		dBlockSize	DWORD	Block size
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_READ_CAPACITY	STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
	dMaxLBA		DWORD	?		; Max LBA address
	dBlockSize	DWORD	?		; Block size
MASS_READ_CAPACITY	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_MODE_SENSE
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassModeSense (API #27h, SubFunc 0Bh)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;		bNumHeads	BYTE	Number of heads
;		wNumCylinders	WORD	Number of cylinders
;		bNumSectors	BYTE	Number of sectors
;		wBytesPerSector	WORD	Number of bytes per sector
;		bMediaType	BYTE	Media type
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_MODE_SENSE		STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
	bNumHeads	BYTE	?		; Number of heads
	wNumCylinders	WORD	?		; Number of cylinders
	bNumSectors	BYTE	?		; Number of sectors
	wBytesPerSector	WORD	?		; Number of bytes per sector
	bMediaType	BYTE	?		; Media type
MASS_MODE_SENSE		ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_INQUIRY
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassInquiry (API #27h, SubFunc 0Ch)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;		bDevType	BYTE	Device type byte (HDD, CD, Removable)
;		bEmuType	BYTE	Emulation type used
;		fpDevId		DWORD	Far pointer to the device ID
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_INQUIRY	STRUC
	bDevAddr	BYTE	?		; USB Device Address
	dSenseData	DWORD	?		; USB Sense data
	bDevType	BYTE	?		; Device type
	bEmuType	BYTE	?		; Emulation type
	fpDevId		DWORD	?		; Far ptr to the device id
;; DO NOT ADD OR DELETE ANY FIELD ABOVE - This should match the
;; MASS_GET_DEV_INFO structure for proper working
MASS_INQUIRY	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		MASS_CMD_PASS_THRU
;
; Description:	This is a Mass URP (Mass USB Request Packet) structure for
;		the BIOS API call MassCmdPassThru command (API #27h, 
;		SubFunc 0Dh)
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bDevAddr	BYTE	USB device address of the device
;		dSenseData	DWORD	Sense data of the last command
;		fpCmdBuffer	DWORD	Far pointer to the command buffer
;		wCmdLength	WORD	Command length
;		fpDataBuffer	DWORD	Far pointer for data buffer
;		wDataLength	WORD	Data length
;		bXferDir	BYTE	Data transfer direction
;
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

MASS_CMD_PASS_THRU	STRUC
	bDevAddr	BYTE	?
	dSenseData	DWORD	?
	fpCmdBuffer	DWORD	?
	wCmdLength	WORD	?
	fpDataBuffer	DWORD	?
	wDataLength	WORD	?
	bXferDir	BYTE	?
MASS_CMD_PASS_THRU	ENDS


;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		API_DATA
;
; Description:	This is a union data type of all the API related data
;
; Fields:	 Name		Type			Description
;		------------------------------------------------------------
;		CkPresence	CK_PRESENCE		See relevant structure
;		StartHc		START_HC		See relevant structure
;		GetDevInfo	GET_DEV_INFO		See relevant structure
;		ChkDevPrsnc	CHK_DEV_PRSNC		See relevant structure
;		MassGetDevInfo	MASS_GET_DEV_INFO	Refer struc header
;		MassGetDevGeo	MASS_GET_DEV_GEO	Refer struc header
;		MassReset	MASS_RESET		Refer struc header
;		MassRead	MASS_READ		Refer struc header
;		MassWrite	MASS_WRITE		Refer struc header
;		MassVerify	MASS_VERIFY		Refer struc header
;		MassFormat	MASS_FORMAT		Refer struc header
;		MassReqSense	MASS_REQ_SENSE		Refer struc header
;		MassTstUnitRdy	MASS_TEST_UNIT_RDY	Refer struc header
;		MassStartStop	MASS_START_STOP_UNIT	Refer struc header
;		MassReadCap	MASS_READ_CAPACITY	Refer struc header
;		MassModeSense	MASS_MODE_SENSE		Refer struc header
;		MassInquiry	MASS_INQUIRY		Refer struc header
;		MassCmdPassThru	MASS_CMD_PASS_THRU	Refer struc header
;		MassAssignNum	MASS_ASSIGN_DRIVE_NUM	Refer struc header
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

API_DATA	UNION
	CkPresence	CK_PRESENCE	<>
	StartHc		START_HC	<>
	GetDevInfo	GET_DEV_INFO	<>
	ChkDevPrsnc	CHK_DEV_PRSNC	<>
	MassGetDevInfo	MASS_GET_DEV_INFO <>
	MassGetDevGeo	MASS_GET_DEV_GEO <>
	MassReset	MASS_RESET <>
	MassRead	MASS_READ <>
	MassWrite	MASS_WRITE <>
	MassVerify	MASS_VERIFY <>
	MassFormat	MASS_FORMAT <>
	MassReqSense	MASS_REQ_SENSE <>
	MassTstUnitRdy	MASS_TEST_UNIT_RDY <>
	MassStartStop	MASS_START_STOP_UNIT <>
	MassReadCap	MASS_READ_CAPACITY <>
	MassModeSense	MASS_MODE_SENSE <>
	MassInquiry	MASS_INQUIRY <>
	MassCmdPassThru	MASS_CMD_PASS_THRU <>
	MassAssignNum	MASS_ASSIGN_DRIVE_NUM <>
API_DATA	ENDS

;<AMI_SHDR_START>
;----------------------------------------------------------------------------
; Name:		URP_STRUC
;
; Description:	URP (USB Request Packet) is the structure used to send command
;		to the USB code from POST/Runtime. The POST/Runtime code can
;		invoke the USB API functions using this structure.
;
; Fields:	 Name		Type		Description
;		------------------------------------------------------------
;		bFuncNumber	BYTE		Function number of the URP
;		bSubFunc	BYTE		Sub-func number of the URP
;		bRetValue	BYTE		Return value
;		ApiData		API_DATA	Refer structure definition
;----------------------------------------------------------------------------
;<AMI_SHDR_END>

URP_STRUC	STRUC
	bFuncNumber	BYTE		?
	bSubFunc	BYTE		?
	bRetValue	BYTE		?
	ApiData		API_DATA	<>
URP_STRUC	ENDS
;----------------------------------------------------------------------------
; DO NOT CHANGE THIS VALUES. If you do change the value then please
; change 'USBPort_GetDataSegment' routine also
USB_GET_CURRENT_SEGMENT		EQU	00000h
USB_GET_RUNTIME_SEGMENT		EQU	0FFFFh		; -1
USB_GET_BOOTBLOCK_SEGMENT	EQU	0FFFEh		; -2
;----------------------------------------------------------------------------

; Values used to identify the update data area table invoke time
USB_CALLED_AT_INIT		EQU	00Fh
USB_CALLED_AT_MOVE		EQU	01Fh
USB_CALLED_AT_PREOS		EQU	02Fh
USB_CALLED_AT_BBLK		EQU	03Fh
;----------------------------------------------------------------------------

USB_MEM_ALLOCATED		EQU	10h
USB_MEM_FREE			EQU	20h

MAX_TEMP_BUFFER_SIZE	EQU 	080h	; Size of temp buffer
MAX_CONTROL_DATA_SIZE	EQU 	200h	; Maximum amount of data to
					; transfer in one control
					; transaction
USB_HC_CLASS_CODE	EQU	0C03h

MAX_NUM_HC_MODULES	EQU	3

MAX_DEVICES		EQU	(MKF_MAX_MASS_DEVICES + \
				 MKF_HID_DEVICE_LIMIT + \
				 MKF_HUB_DEVICE_LIMIT)
; Highest possible device address
MAX_DEVICE_ADDR		EQU 	MAX_DEVICES
; Addr that is guaranted not to be used
DUMMY_DEVICE_ADDR	EQU 	MAX_DEVICE_ADDR + 1

DEFAULT_PACKET_LENGTH	EQU	8	; Max size of packet data

;----------------------------------------------------------------------------


; USB Initialization Flags - passed in when USB is initialized
;----------------------------------------------------------------------------
USB_LEGACY_ENABLED_BIT		EQU	BIT0	; 0 Q_USB_LEGACY_ENABLE setup option
USB_LEGACY_KEYBOARD_BIT		EQU	BIT1	; 1 Q_USB_LEGACY_KEYBOARD setup option
USB_LEGACY_MOUSE_BIT		EQU	BIT2	; 2 Q_USB_LEGACY_MOUSE setup option
USB_LEGACY_STORAGE_BIT		EQU	BIT3	; 3 Q_USB_LEGACY_STORAGE setup option
INIT_FLAG_BEEP_ENABLE		EQU	BIT4	; 4 If set, beep on device connect/disconnect
USB_HISPEED_SUPPORT		EQU	BIT5	; 5 Q_USB_HISPEED_SUPPORT setup option
USB_PORT_TRAPPING_BIT		EQU	BIT6	; 6 Q_USB_6460_EMULATION setup option
USB_STOP_EHCI_IN_OHCI_HANDOVER	EQU	BIT7	; 7 Q_USB_STOP_HISPEED_HC setup option
USB_MASS_DEVICES_REGISTERED	EQU	BIT8	; 8 If set, USB mass storage devices are already registered with BBS
USB_HOTPLUG_FDD_BIT		EQU	BIT9	; 9 If set, USB hotplug FDD support is added
USB_HOTPLUG_FDD_AUTO_BIT	EQU	BIT10	;10 If set, USB hotplug FDD support is set to auto
USB_HOTPLUG_CDROM_BIT		EQU	BIT11	;11 If set, USB hotplug CDROM support is added

⌨️ 快捷键说明

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