diff options
Diffstat (limited to 'include/linux/usb/f_mtp.h')
-rw-r--r-- | include/linux/usb/f_mtp.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/include/linux/usb/f_mtp.h b/include/linux/usb/f_mtp.h new file mode 100644 index 00000000000..7422b17c6eb --- /dev/null +++ b/include/linux/usb/f_mtp.h | |||
@@ -0,0 +1,75 @@ | |||
1 | /* | ||
2 | * Gadget Function Driver for MTP | ||
3 | * | ||
4 | * Copyright (C) 2010 Google, Inc. | ||
5 | * Author: Mike Lockwood <lockwood@android.com> | ||
6 | * | ||
7 | * This software is licensed under the terms of the GNU General Public | ||
8 | * License version 2, as published by the Free Software Foundation, and | ||
9 | * may be copied, distributed, and modified under those terms. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | */ | ||
17 | |||
18 | #ifndef __LINUX_USB_F_MTP_H | ||
19 | #define __LINUX_USB_F_MTP_H | ||
20 | |||
21 | #include <linux/ioctl.h> | ||
22 | |||
23 | #ifdef __KERNEL__ | ||
24 | |||
25 | struct mtp_data_header { | ||
26 | /* length of packet, including this header */ | ||
27 | uint32_t length; | ||
28 | /* container type (2 for data packet) */ | ||
29 | uint16_t type; | ||
30 | /* MTP command code */ | ||
31 | uint16_t command; | ||
32 | /* MTP transaction ID */ | ||
33 | uint32_t transaction_id; | ||
34 | }; | ||
35 | |||
36 | #endif /* __KERNEL__ */ | ||
37 | |||
38 | struct mtp_file_range { | ||
39 | /* file descriptor for file to transfer */ | ||
40 | int fd; | ||
41 | /* offset in file for start of transfer */ | ||
42 | loff_t offset; | ||
43 | /* number of bytes to transfer */ | ||
44 | int64_t length; | ||
45 | /* MTP command ID for data header, | ||
46 | * used only for MTP_SEND_FILE_WITH_HEADER | ||
47 | */ | ||
48 | uint16_t command; | ||
49 | /* MTP transaction ID for data header, | ||
50 | * used only for MTP_SEND_FILE_WITH_HEADER | ||
51 | */ | ||
52 | uint32_t transaction_id; | ||
53 | }; | ||
54 | |||
55 | struct mtp_event { | ||
56 | /* size of the event */ | ||
57 | size_t length; | ||
58 | /* event data to send */ | ||
59 | void *data; | ||
60 | }; | ||
61 | |||
62 | /* Sends the specified file range to the host */ | ||
63 | #define MTP_SEND_FILE _IOW('M', 0, struct mtp_file_range) | ||
64 | /* Receives data from the host and writes it to a file. | ||
65 | * The file is created if it does not exist. | ||
66 | */ | ||
67 | #define MTP_RECEIVE_FILE _IOW('M', 1, struct mtp_file_range) | ||
68 | /* Sends an event to the host via the interrupt endpoint */ | ||
69 | #define MTP_SEND_EVENT _IOW('M', 3, struct mtp_event) | ||
70 | /* Sends the specified file range to the host, | ||
71 | * with a 12 byte MTP data packet header at the beginning. | ||
72 | */ | ||
73 | #define MTP_SEND_FILE_WITH_HEADER _IOW('M', 4, struct mtp_file_range) | ||
74 | |||
75 | #endif /* __LINUX_USB_F_MTP_H */ | ||