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

📄 mass.h

📁 zlg/fs源代码
💻 H
字号:
#ifndef _MASS_H
#define _MASS_H

#include	"_hc_core/dev_ep.h"
#include	"_hc_core/transfer.h"

#define MAX_MASS_DEVICES_DEFINE			2
#define MAX_MASS_DEVICES_LUN_DEFINE 	MAX_MASS_DEVICES_DEFINE+ 3

#define		mass_instance_ptr( x )			((x)->class_instance_ptr)								


#define MAX_MASS_LUN 4


/* 大容量设备描述数据结构 */
typedef struct MASS_STORAGE_CLASS
{	unsigned char  		LUN;							/* 该设备的逻辑单元数*/
	struct _HMEDLUN	LUN_info[MAX_MASS_LUN];	/* 逻辑单元描述信息结构指针 */ 
	device_instance 		*dvi_ptr;						/* 设备信息描述结构指针*/
	unsigned char		SubclassCode;					/* 子类代码 */
	unsigned char		ProtocolCode;					/* 传输协议代码CBI 或BULK*/ 
	unsigned char		CBW_Buff[31];					/* 批量传输的命令包缓冲区指针 */
	//unsigned char		RBC_Buff[12];				/* 命令设置缓冲区 */
}MassStorageClass,*PMassStorageClass;


/* 媒介设备句柄 */ 
typedef struct _HMEDLUN
{
	unsigned char  		LUN;					// 所在大容量设备的逻辑单元号
	MassStorageClass	*MSC;					// 大容量设备的描述信息结构
	unsigned char  		VendorInfo[8];			// 厂商信息
	unsigned char  		ProductInfo[16];		// 产品信息
	unsigned char  		ProductRev[4];			// 产品版本	
	unsigned int		LastLogicalBlookAddress;// 最后逻辑块地址
	unsigned int  		BlockLengthInBytes;		// 逻辑块长度
}hMedLUN;



void ini_mass_device_LUN_mem(void);
void ini_mass_device_mem(void);
unsigned short		mass_init_commands( device_instance *dvi_ptr );
unsigned short		mass_dispose_process( device_instance *dvi_ptr );

hMedLUN * Creat_Medium(device_instance *dvi_ptr ,unsigned char LUNIndex);
void Close_Medium(hMedLUN *hMedLUNPtr,unsigned char LUNIndex);
unsigned short ReadBlockData(hMedLUN 	*MediumPtr, unsigned char *BufferPtr,
							   unsigned int LBA, unsigned short TrBLength);		
unsigned short WriteBlockData(hMedLUN 	*MediumPtr, unsigned char *BufferPtr,
							   unsigned int LBA, unsigned short TrBLength);							  

#endif //	_MASS_H


⌨️ 快捷键说明

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