📄 storage.h
字号:
/*
** WASABI-Hot! version 1.2c
**
**
** -- copyright (c) 2001-2004 by Philips Japan, Ltd. -- All rights reserved --
**
**
** ** This code has been made to check/learn **
** ** the ISP1362/ISP1363 functionalities **
** ** Release 06-Aug-2004 **
**
** OKANO, Akifumi
**
** Application Laboratory, Mobile and Connectivity
** Semiconductors Div, Philips Japan Ltd.
** akifumi.okano@philips.com
** +81-3-3740-4668
*/
#ifndef _STORAGE_H
#define _STORAGE_H
/****************************************************************************/
/* includes */
/****************************************************************************/
#include "_hc_core/dev_ep.h"
#include "_hc_core/transfer.h"
#include "class_dr/storage/fs.h"
/****************************************************************************/
/* constants */
/****************************************************************************/
#define MAX_NUMBER_OF_VOLUME_INSTANCES 1
// IN
#define REQUEST_SENSE 0
#define INQUIRY 1
#define MODE_SENSE 2
#define READ_CAPACITY 3
#define ST_READ 4
// OUT
#define TEST_UNIT_READY 5
#define START_STOP_UNIT 6
#define PREVENT_ALLOW_MEDIUM_REMOVAL 7
#define ST_WRITE 8
#define storage_cls_sp_request_BulkOnlyMassStorageReset ((0x21 << 8) | 0xFF )
#define storage_cls_sp_request_GetMaxLUN ((0xA1 << 8) | 0xFE )
/****************************************************************************/
/* types */
/****************************************************************************/
typedef struct storage_param {
unsigned char state;
unsigned char previous_state; // for UI
unsigned short remaining_tr_size;
unsigned short transferred_size;
unsigned char direction;
unsigned char transfer_stop;
unsigned char *buffer_ptr;
unsigned char bulk_done;
transfer_instance *tip;
unsigned char ti_index;
transfer_instance *tip0; // for PP
transfer_instance *tip1; // for PP
unsigned char ti_index0; // for PP
unsigned char ti_index1; // for PP
endpoint_info_ptr endpoint_OUT;
endpoint_info_ptr endpoint_IN;
unsigned char ep_out;
unsigned char ep_in;
unsigned char target_LUN;
unsigned char max_LUN;
volume_param *volume_instance[ MAX_NUMBER_OF_VOLUME_INSTANCES ];
unsigned char remount;
}
storage_instance;
typedef struct _st_command_block6 {
//unsigned char opcode;
unsigned long logical_block_address;
unsigned char transfer_length;
unsigned char control;
unsigned char dummy[ 10 ];
}
st_command_block6;
typedef struct _st_command_block10 {
unsigned char opcode;
unsigned char service_action;
unsigned long logical_block_address;
unsigned char reserved;
unsigned short transfer_length;
unsigned char control;
unsigned char dummy[ 6 ];
}
st_command_block10;
typedef struct _st_command_block_wrapper {
unsigned long dCBWSignature;
unsigned long dCBWTag;
unsigned long dCBWDataTransferLength;
unsigned char bmCBWFlags;
unsigned char bmCBWLUN;
unsigned char bmCBWLength;
st_command_block10 CBWCB;
}
st_command_block_wrapper;
typedef struct _st_command_status_wrapper {
unsigned long dCSWSignature;
unsigned long dCBWTag;
unsigned long dCBWDataResidue;
unsigned char bmCBWStatus;
}
st_command_status_wrapper;
/****************************************************************************/
/* global vars */
/****************************************************************************/
/****************************************************************************/
/* function prototypes */
/****************************************************************************/
unsigned short storage_read_sector( unsigned char *buffer_ptr, unsigned long logical_block_address, unsigned short allocation_length );
unsigned short storage_write_sector( unsigned char *buffer_ptr, unsigned long logical_block_address, unsigned short num_of_sector );
unsigned short storage_init_commands( device_instance *dvi_ptr );
unsigned short storage_dispose_process( device_instance *dvi_ptr );
void storage_data_dump( char *s, unsigned char *b, unsigned short n );
device_instance *storage_device_ready( void );
volume_param *storage_volume_ready( void );
unsigned char storage_device_address( void );
unsigned char storage_mount( void );
unsigned char storage_unmount( void );
unsigned char storage_remount( unsigned char remount );
void storage_info( void );
void storage_dump_info( unsigned long start_sec, unsigned long length );
void storage_show_cclog_result( void );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -