1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero * 2011-12-12 Yi Qiu first version 9*10465441SEvalZero */ 10*10465441SEvalZero 11*10465441SEvalZero #ifndef __MASS_H__ 12*10465441SEvalZero #define __MASS_H__ 13*10465441SEvalZero 14*10465441SEvalZero #include <rtthread.h> 15*10465441SEvalZero #include "dfs_fs.h" 16*10465441SEvalZero 17*10465441SEvalZero #define MAX_PARTITION_COUNT 4 18*10465441SEvalZero #define SECTOR_SIZE 512 19*10465441SEvalZero 20*10465441SEvalZero struct ustor_data 21*10465441SEvalZero { 22*10465441SEvalZero struct dfs_partition part; 23*10465441SEvalZero struct uhintf* intf; 24*10465441SEvalZero int udisk_id; 25*10465441SEvalZero const char path; 26*10465441SEvalZero }; 27*10465441SEvalZero 28*10465441SEvalZero struct ustor 29*10465441SEvalZero { 30*10465441SEvalZero upipe_t pipe_in; 31*10465441SEvalZero upipe_t pipe_out; 32*10465441SEvalZero rt_uint32_t capicity[2]; 33*10465441SEvalZero 34*10465441SEvalZero struct rt_device dev[MAX_PARTITION_COUNT]; 35*10465441SEvalZero rt_uint8_t dev_cnt; 36*10465441SEvalZero }; 37*10465441SEvalZero typedef struct ustor* ustor_t; 38*10465441SEvalZero 39*10465441SEvalZero rt_err_t rt_usbh_storage_get_max_lun(struct uhintf* intf, rt_uint8_t* max_lun); 40*10465441SEvalZero rt_err_t rt_usbh_storage_reset(struct uhintf* intf); 41*10465441SEvalZero rt_err_t rt_usbh_storage_read10(struct uhintf* intf, rt_uint8_t *buffer, 42*10465441SEvalZero rt_uint32_t sector, rt_size_t count, int timeout); 43*10465441SEvalZero rt_err_t rt_usbh_storage_write10(struct uhintf* intf, rt_uint8_t *buffer, 44*10465441SEvalZero rt_uint32_t sector, rt_size_t count, int timeout); 45*10465441SEvalZero rt_err_t rt_usbh_storage_request_sense(struct uhintf* intf, rt_uint8_t* buffer); 46*10465441SEvalZero rt_err_t rt_usbh_storage_test_unit_ready(struct uhintf* intf); 47*10465441SEvalZero rt_err_t rt_usbh_storage_inquiry(struct uhintf* intf, rt_uint8_t* buffer); 48*10465441SEvalZero rt_err_t rt_usbh_storage_get_capacity(struct uhintf* intf, rt_uint8_t* buffer); 49*10465441SEvalZero 50*10465441SEvalZero #endif 51