?? mass.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 + -