/* * upstream_interface_def.h * * Created on: 22/06/2015 * Author: Robert Fisk */ #ifndef INC_UPSTREAM_INTERFACE_DEF_H_ #define INC_UPSTREAM_INTERFACE_DEF_H_ //*************** // Attention! // Keep this file synchronised with downstream_interface_def.h // in the Downstream project. //*************** //Upstream only supports one LUN. //Downstream may support > 1 LUN and only report the first active one to upstream. #define UPSTREAM_LUN_NBR 1 #define COMMAND_CLASS_DATA_FLAG 0x80 #define COMMAND_CLASS_MASK ((uint8_t)(~COMMAND_CLASS_DATA_FLAG)) typedef enum { COMMAND_CLASS_INTERFACE, COMMAND_CLASS_MASS_STORAGE } InterfaceCommandClassTypeDef; typedef enum { COMMAND_INTERFACE_ECHO, //Returns echo packet including all data COMMAND_INTERFACE_NOTIFY_DEVICE //Returns COMMAND_CLASS_*** byte when downstream USB device is connected } InterfaceCommandInterfaceTypeDef; typedef enum { COMMAND_MSC_TEST_UNIT_READY, //Returns HAL_StatusTypeDef result COMMAND_MSC_GET_CAPACITY, //Returns uint32_t blk_nbr, uint32_t blk_size COMMAND_MSC_BEGIN_READ, //Returns HAL_StatusTypeDef result, then data stream COMMAND_MSC_BEGIN_WRITE, //Returns HAL_OK, HAL_ERROR if medium not present, HAL_BUSY if write-protected result, then waits for data stream } InterfaceCommandMscTypeDef; #endif /* INC_UPSTREAM_INTERFACE_DEF_H_ */