/* cyasgadget_ioctl.h - Linux USB Gadget driver ioctl file for * Cypress West Bridge ## =========================== ## Copyright (C) 2010 Cypress Semiconductor ## ## This program is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License ## as published by the Free Software Foundation; either version 2 ## of the License, or (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin Street, Fifth Floor ## Boston, MA 02110-1301, USA. ## =========================== */ #ifndef CYASGADGET_IOCTL_H #define CYASGADGET_IOCTL_H #include #include typedef struct cy_as_gadget_ioctl_send_object { uint32_t status; uint32_t byte_count; uint32_t transaction_id; } cy_as_gadget_ioctl_send_object; typedef struct cy_as_gadget_ioctl_get_object { uint32_t status; uint32_t byte_count; } cy_as_gadget_ioctl_get_object; typedef struct cy_as_gadget_ioctl_tmtp_status { cy_bool tmtp_send_complete; cy_bool tmtp_get_complete; cy_bool tmtp_need_new_blk_tbl; cy_as_gadget_ioctl_send_object tmtp_send_complete_data; cy_as_gadget_ioctl_get_object tmtp_get_complete_data; uint32_t t_usec; } cy_as_gadget_ioctl_tmtp_status; /*Init send object data*/ typedef struct cy_as_gadget_ioctl_i_s_o_j_d { uint32_t *blk_addr_p; /* starting sector */ uint16_t *blk_count_p; /* num of sectors in the block */ /* number of entries in the blk table */ uint32_t item_count; uint32_t num_bytes; /* in case if more prcise timestamping is done in kernel mode */ uint32_t t_usec; uint32_t ret_val; char *file_name; uint32_t name_length; } cy_as_gadget_ioctl_i_s_o_j_d; /*Init get object data*/ typedef struct cy_as_gadget_ioctl_i_g_o_j_d { uint32_t *blk_addr_p; uint16_t *blk_count_p; uint32_t item_count; uint32_t num_bytes; uint32_t tid; uint32_t ret_val; char *file_name; uint32_t name_length; } cy_as_gadget_ioctl_i_g_o_j_d; typedef struct cy_as_gadget_ioctl_cancel { uint32_t ret_val; } cy_as_gadget_ioctl_cancel; #define CYASGADGET_IOC_MAGIC 0xEF #define CYASGADGET_GETMTPSTATUS \ _IOW(CYASGADGET_IOC_MAGIC, 0, cy_as_gadget_ioctl_tmtp_status) #define CYASGADGET_CLEARTMTPSTATUS \ _IO(CYASGADGET_IOC_MAGIC, 1) #define CYASGADGET_INITSOJ \ _IOW(CYASGADGET_IOC_MAGIC, 2, cy_as_gadget_ioctl_i_s_o_j_d) #define CYASGADGET_INITGOJ \ _IOW(CYASGADGET_IOC_MAGIC, 3, cy_as_gadget_ioctl_i_g_o_j_d) #define CYASGADGET_CANCELSOJ \ _IOW(CYASGADGET_IOC_MAGIC, 4, cy_as_gadget_ioctl_cancel) #define CYASGADGET_CANCELGOJ \ _IOW(CYASGADGET_IOC_MAGIC, 5, cy_as_gadget_ioctl_cancel) #define CYASGADGET_IOC_MAXNR 6 #endif