Lines Matching +full:0 +full:x3000

50     CMD_GET_DEVICE_INFO            = 0x1001,
51 CMD_OPEN_SESSION = 0x1002,
52 CMD_CLOSE_SESSION = 0x1003,
53 CMD_GET_STORAGE_IDS = 0x1004,
54 CMD_GET_STORAGE_INFO = 0x1005,
55 CMD_GET_NUM_OBJECTS = 0x1006,
56 CMD_GET_OBJECT_HANDLES = 0x1007,
57 CMD_GET_OBJECT_INFO = 0x1008,
58 CMD_GET_OBJECT = 0x1009,
59 CMD_DELETE_OBJECT = 0x100b,
60 CMD_SEND_OBJECT_INFO = 0x100c,
61 CMD_SEND_OBJECT = 0x100d,
62 CMD_GET_PARTIAL_OBJECT = 0x101b,
63 CMD_GET_OBJECT_PROPS_SUPPORTED = 0x9801,
64 CMD_GET_OBJECT_PROP_DESC = 0x9802,
65 CMD_GET_OBJECT_PROP_VALUE = 0x9803,
68 RES_OK = 0x2001,
69 RES_GENERAL_ERROR = 0x2002,
70 RES_SESSION_NOT_OPEN = 0x2003,
71 RES_INVALID_TRANSACTION_ID = 0x2004,
72 RES_OPERATION_NOT_SUPPORTED = 0x2005,
73 RES_PARAMETER_NOT_SUPPORTED = 0x2006,
74 RES_INCOMPLETE_TRANSFER = 0x2007,
75 RES_INVALID_STORAGE_ID = 0x2008,
76 RES_INVALID_OBJECT_HANDLE = 0x2009,
77 RES_INVALID_OBJECT_FORMAT_CODE = 0x200b,
78 RES_STORE_FULL = 0x200c,
79 RES_STORE_READ_ONLY = 0x200e,
80 RES_PARTIAL_DELETE = 0x2012,
81 RES_STORE_NOT_AVAILABLE = 0x2013,
82 RES_SPEC_BY_FORMAT_UNSUPPORTED = 0x2014,
83 RES_INVALID_OBJECTINFO = 0x2015,
84 RES_DESTINATION_UNSUPPORTED = 0x2020,
85 RES_INVALID_PARENT_OBJECT = 0x201a,
86 RES_INVALID_PARAMETER = 0x201d,
87 RES_SESSION_ALREADY_OPEN = 0x201e,
88 RES_INVALID_OBJECT_PROP_CODE = 0xA801,
91 FMT_UNDEFINED_OBJECT = 0x3000,
92 FMT_ASSOCIATION = 0x3001,
95 EVT_CANCEL_TRANSACTION = 0x4001,
96 EVT_OBJ_ADDED = 0x4002,
97 EVT_OBJ_REMOVED = 0x4003,
98 EVT_OBJ_INFO_CHANGED = 0x4007,
101 PROP_STORAGE_ID = 0xDC01,
102 PROP_OBJECT_FORMAT = 0xDC02,
103 PROP_OBJECT_COMPRESSED_SIZE = 0xDC04,
104 PROP_PARENT_OBJECT = 0xDC0B,
105 PROP_PERSISTENT_UNIQUE_OBJECT_IDENTIFIER = 0xDC41,
106 PROP_NAME = 0xDC44,
110 DATA_TYPE_UINT16 = 0x0004,
111 DATA_TYPE_UINT32 = 0x0006,
112 DATA_TYPE_UINT64 = 0x0008,
113 DATA_TYPE_UINT128 = 0x000a,
114 DATA_TYPE_STRING = 0xffff,
232 uint8_t filename[0]; /* UTF-16 encoded */
233 char date_created[0]; /*unused*/
234 char date_modified[0]; /*unused*/
235 char keywords[0]; /*unused*/
242 #define QEMU_STORAGE_ID 0x00010001
244 #define MTP_FLAG_WRITABLE 0
275 .bInterfaceNumber = 0,
278 .bInterfaceSubClass = 0x01,
279 .bInterfaceProtocol = 0x01,
294 .bInterval = 0x0a,
300 .bcdUSB = 0x0200,
317 .bInterfaceNumber = 0,
320 .bInterfaceSubClass = 0x01,
321 .bInterfaceProtocol = 0x01,
336 .bInterval = 0x0a,
342 .bcdUSB = 0x0200,
365 .idVendor = 0x46f4, /* CRC16() of "QEMU" */
366 .idProduct = 0x0004,
367 .bcdDevice = 0,
385 if (name[0] == '.') { in usb_mtp_object_alloc()
399 if (lstat(o->path, &o->stat) != 0) { in usb_mtp_object_alloc()
410 if (access(o->path, R_OK) != 0) { in usb_mtp_object_alloc()
496 if (strncmp(iter->name, name, len) == 0) { in usb_mtp_object_lookup_name()
621 if (fd < 0) { in usb_mtp_object_readdir()
680 data->alloc = (data->length + bytes + 0xff) & ~0xff; in usb_mtp_realloc()
693 data->data[data->length++] = (val >> 0) & 0xff; in usb_mtp_add_u16()
694 data->data[data->length++] = (val >> 8) & 0xff; in usb_mtp_add_u16()
700 data->data[data->length++] = (val >> 0) & 0xff; in usb_mtp_add_u32()
701 data->data[data->length++] = (val >> 8) & 0xff; in usb_mtp_add_u32()
702 data->data[data->length++] = (val >> 16) & 0xff; in usb_mtp_add_u32()
703 data->data[data->length++] = (val >> 24) & 0xff; in usb_mtp_add_u32()
709 data->data[data->length++] = (val >> 0) & 0xff; in usb_mtp_add_u64()
710 data->data[data->length++] = (val >> 8) & 0xff; in usb_mtp_add_u64()
711 data->data[data->length++] = (val >> 16) & 0xff; in usb_mtp_add_u64()
712 data->data[data->length++] = (val >> 24) & 0xff; in usb_mtp_add_u64()
713 data->data[data->length++] = (val >> 32) & 0xff; in usb_mtp_add_u64()
714 data->data[data->length++] = (val >> 40) & 0xff; in usb_mtp_add_u64()
715 data->data[data->length++] = (val >> 48) & 0xff; in usb_mtp_add_u64()
716 data->data[data->length++] = (val >> 56) & 0xff; in usb_mtp_add_u64()
725 for (i = 0; i < len; i++) { in usb_mtp_add_u16_array()
736 for (i = 0; i < len; i++) { in usb_mtp_add_u32_array()
746 if (len > 0) { in usb_mtp_add_wstr()
747 len++; /* include terminating L'\0' */ in usb_mtp_add_wstr()
751 for (i = 0; i < len; i++) { in usb_mtp_add_wstr()
790 if (argc > 0) { in usb_mtp_queue_result()
791 c->argv[0] = arg0; in usb_mtp_queue_result()
835 usb_mtp_add_u32(d, 0x00000006); in usb_mtp_get_device_info()
836 usb_mtp_add_u16(d, 0x0064); in usb_mtp_get_device_info()
838 usb_mtp_add_u16(d, 0x0000); in usb_mtp_get_device_info()
841 usb_mtp_add_u16_array(d, 0, NULL); in usb_mtp_get_device_info()
842 usb_mtp_add_u16_array(d, 0, NULL); in usb_mtp_get_device_info()
843 usb_mtp_add_u16_array(d, 0, NULL); in usb_mtp_get_device_info()
877 usb_mtp_add_u16(d, 0x0003); in usb_mtp_get_storage_info()
878 usb_mtp_add_u16(d, 0x0002); in usb_mtp_get_storage_info()
879 usb_mtp_add_u16(d, 0x0000); in usb_mtp_get_storage_info()
881 usb_mtp_add_u16(d, 0x0001); in usb_mtp_get_storage_info()
882 usb_mtp_add_u16(d, 0x0002); in usb_mtp_get_storage_info()
883 usb_mtp_add_u16(d, 0x0001); in usb_mtp_get_storage_info()
887 if (rc == 0) { in usb_mtp_get_storage_info()
892 usb_mtp_add_u64(d, 0xffffffff); in usb_mtp_get_storage_info()
893 usb_mtp_add_u64(d, 0xffffffff); in usb_mtp_get_storage_info()
894 usb_mtp_add_u32(d, 0xffffffff); in usb_mtp_get_storage_info()
906 uint32_t i = 0; in usb_mtp_get_object_handles()
930 usb_mtp_add_u16(d, 0); in usb_mtp_get_object_info()
932 if (o->stat.st_size > 0xFFFFFFFF) { in usb_mtp_get_object_info()
933 usb_mtp_add_u32(d, 0xFFFFFFFF); in usb_mtp_get_object_info()
938 usb_mtp_add_u16(d, 0); in usb_mtp_get_object_info()
939 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
940 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
941 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
942 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
943 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
944 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
949 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
952 usb_mtp_add_u16(d, 0x0001); in usb_mtp_get_object_info()
953 usb_mtp_add_u32(d, 0x00000001); in usb_mtp_get_object_info()
954 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
956 usb_mtp_add_u16(d, 0); in usb_mtp_get_object_info()
957 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
958 usb_mtp_add_u32(d, 0); in usb_mtp_get_object_info()
1010 if (lseek(d->fd, offset, SEEK_SET) < 0) { in usb_mtp_get_partial_object()
1042 switch (c->argv[0]) { in usb_mtp_get_object_prop_desc()
1046 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1047 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1048 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1049 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1054 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1055 usb_mtp_add_u16(d, 0x0000); in usb_mtp_get_object_prop_desc()
1056 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1057 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1062 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1063 usb_mtp_add_u64(d, 0x0000000000000000); in usb_mtp_get_object_prop_desc()
1064 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1065 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1070 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1071 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1072 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1073 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1078 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1079 usb_mtp_add_u64(d, 0x0000000000000000); in usb_mtp_get_object_prop_desc()
1080 usb_mtp_add_u64(d, 0x0000000000000000); in usb_mtp_get_object_prop_desc()
1081 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1082 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1087 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1088 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1089 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_desc()
1090 usb_mtp_add_u8(d, 0x00); in usb_mtp_get_object_prop_desc()
1116 usb_mtp_add_u32(d, 0x00000000); in usb_mtp_get_object_prop_value()
1125 usb_mtp_add_u64(d, 0x0000000000000000); in usb_mtp_get_object_prop_value()
1149 DELETE_SUCCESS = (1 << 0),
1157 int ret = 0; in usb_mtp_deletefn()
1199 trans, 0, 0, 0, 0); in usb_mtp_object_delete()
1203 if (format_code != 0) { in usb_mtp_object_delete()
1205 trans, 0, 0, 0, 0); in usb_mtp_object_delete()
1209 if (handle == 0xFFFFFFF) { in usb_mtp_object_delete()
1216 trans, 0, 0, 0, 0); in usb_mtp_object_delete()
1224 0, 0, 0, 0); in usb_mtp_object_delete()
1228 trans, 0, 0, 0, 0); in usb_mtp_object_delete()
1232 trans, 0, 0, 0, 0); in usb_mtp_object_delete()
1243 uint32_t nres = 0, res0 = 0; in usb_mtp_command()
1247 if (c->code >= CMD_CLOSE_SESSION && s->session == 0) { in usb_mtp_command()
1249 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1261 c->trans, 1, s->session, 0, 0); in usb_mtp_command()
1264 if (c->argv[0] == 0) { in usb_mtp_command()
1266 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1270 s->session = c->argv[0]; in usb_mtp_command()
1283 s->session = 0; in usb_mtp_command()
1284 s->next_handle = 0; in usb_mtp_command()
1293 if (c->argv[0] != QEMU_STORAGE_ID && in usb_mtp_command()
1294 c->argv[0] != 0xffffffff) { in usb_mtp_command()
1296 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1303 if (c->argv[0] != QEMU_STORAGE_ID && in usb_mtp_command()
1304 c->argv[0] != 0xffffffff) { in usb_mtp_command()
1306 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1309 if (c->argv[1] != 0x00000000) { in usb_mtp_command()
1311 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1314 if (c->argv[2] == 0x00000000 || in usb_mtp_command()
1315 c->argv[2] == 0xffffffff) { in usb_mtp_command()
1322 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1327 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1340 o = usb_mtp_object_lookup(s, c->argv[0]); in usb_mtp_command()
1343 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1349 o = usb_mtp_object_lookup(s, c->argv[0]); in usb_mtp_command()
1352 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1357 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1363 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1368 usb_mtp_object_delete(s, c->argv[0], c->argv[1], c->trans); in usb_mtp_command()
1371 o = usb_mtp_object_lookup(s, c->argv[0]); in usb_mtp_command()
1374 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1379 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1385 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1395 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1396 } else if (c->argv[0] && (c->argv[0] != QEMU_STORAGE_ID)) { in usb_mtp_command()
1397 /* First parameter points to storage id or is 0 */ in usb_mtp_command()
1399 0, 0, 0, 0); in usb_mtp_command()
1400 } else if (c->argv[1] && !c->argv[0]) { in usb_mtp_command()
1403 0, 0, 0, 0); in usb_mtp_command()
1406 if (handle == 0xFFFFFFFF || handle == 0) { in usb_mtp_command()
1414 0, 0, 0, 0); in usb_mtp_command()
1417 0, 0, 0, 0); in usb_mtp_command()
1428 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1433 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1439 if (c->argv[0] != FMT_UNDEFINED_OBJECT && in usb_mtp_command()
1440 c->argv[0] != FMT_ASSOCIATION) { in usb_mtp_command()
1442 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1451 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1457 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1462 o = usb_mtp_object_lookup(s, c->argv[0]); in usb_mtp_command()
1465 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1471 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1478 c->trans, 0, 0, 0, 0); in usb_mtp_command()
1487 usb_mtp_queue_result(s, RES_OK, c->trans, nres, res0, 0, 0); in usb_mtp_command()
1500 s->session = 0; in usb_mtp_handle_reset()
1518 case ClassInterfaceOutRequest | 0x64: in usb_mtp_handle_control()
1527 s->dataset.size = 0; in usb_mtp_handle_control()
1538 if (ret >= 0) { in usb_mtp_handle_control()
1558 for (count = 0; count < len; count++) { in utf16_to_str()
1562 wstr[count] = 0; in utf16_to_str()
1564 dlen = wcstombs(NULL, wstr, 0) + 1; in utf16_to_str()
1571 /* Wrapper around write, returns 0 on failure */
1574 uint64_t ret = 0; in write_retry()
1576 if (lseek(fd, offset, SEEK_SET) < 0) { in write_retry()
1588 int ret = 0; in usb_mtp_update_object()
1608 int ret = 0; in usb_mtp_write_data()
1616 0, 0, 0, 0); in usb_mtp_write_data()
1641 /* Return success if initiator sent 0 sized data */ in usb_mtp_write_data()
1667 if ((s->dataset.size != 0xFFFFFFFF && in usb_mtp_write_data()
1671 0, 0, 0, 0); in usb_mtp_write_data()
1680 0, 0, 0, 0); in usb_mtp_write_data()
1683 0, 0, 0, 0); in usb_mtp_write_data()
1695 s->dataset.size = 0; in usb_mtp_write_data()
1725 0, 0, 0, 0); in usb_mtp_write_metadata()
1757 usb_mtp_queue_result(s, RES_INVALID_OBJECTINFO, 0, in usb_mtp_get_data()
1758 0, 0, 0, 0); in usb_mtp_get_data()
1773 d->offset = 0; in usb_mtp_get_data()
1776 d->data_offset = 0; in usb_mtp_get_data()
1781 memset(d->data, 0, d->length); in usb_mtp_get_data()
1788 d->data_offset = 0; in usb_mtp_get_data()
1817 assert((s->dataset.size == 0xFFFFFFFF) || in usb_mtp_get_data()
1825 usb_mtp_write_data(s, 0); in usb_mtp_get_data()
1832 usb_mtp_write_data(s, 0); in usb_mtp_get_data()
1868 if (d->length + sizeof(container) > 0xFFFFFFFF) { in usb_mtp_handle_data()
1869 container.length = cpu_to_le32(0xFFFFFFFF); in usb_mtp_handle_data()
1896 memset(d->data, 0, dlen); in usb_mtp_handle_data()
1911 (r->argc > 0) ? r->argv[0] : 0, in usb_mtp_handle_data()
1912 (r->argc > 1) ? r->argv[1] : 0); in usb_mtp_handle_data()
1915 (r->argc > 0) ? r->argv[0] : 0, in usb_mtp_handle_data()
1916 (r->argc > 1) ? r->argv[1] : 0); in usb_mtp_handle_data()
1922 for (i = 0; i < r->argc; i++) { in usb_mtp_handle_data()
1963 for (i = 0; i < cmd.argc; i++) { in usb_mtp_handle_data()
1967 (cmd.argc > 0) ? cmd.argv[0] : 0, in usb_mtp_handle_data()
1968 (cmd.argc > 1) ? cmd.argv[1] : 0, in usb_mtp_handle_data()
1969 (cmd.argc > 2) ? cmd.argv[2] : 0, in usb_mtp_handle_data()
1970 (cmd.argc > 3) ? cmd.argv[3] : 0, in usb_mtp_handle_data()
1971 (cmd.argc > 4) ? cmd.argv[4] : 0); in usb_mtp_handle_data()
2006 container.trans = 0; /* no trans specific events */ in usb_mtp_handle_data()
2021 if (p->actual_length == 0) { in usb_mtp_handle_data()
2041 if (access(s->root, R_OK) != 0) { in usb_mtp_realize()
2044 } else if (!s->readonly && access(s->root, W_OK) != 0) { in usb_mtp_realize()