Revision be4a8928

b/configure
2758 2758

  
2759 2759
# check for usbredirparser for usb network redirection support
2760 2760
if test "$usb_redir" != "no" ; then
2761
    if $pkg_config --atleast-version=0.3.4 libusbredirparser >/dev/null 2>&1 ; then
2761
    if $pkg_config --atleast-version=0.5 libusbredirparser >/dev/null 2>&1 ; then
2762 2762
        usb_redir="yes"
2763 2763
        usb_redir_cflags=$($pkg_config --cflags libusbredirparser 2>/dev/null)
2764 2764
        usb_redir_libs=$($pkg_config --libs libusbredirparser 2>/dev/null)
b/hw/usb/redirect.c
107 107
    struct usb_redir_interface_info_header *interface_info);
108 108
static void usbredir_ep_info(void *priv,
109 109
    struct usb_redir_ep_info_header *ep_info);
110
static void usbredir_configuration_status(void *priv, uint32_t id,
110
static void usbredir_configuration_status(void *priv, uint64_t id,
111 111
    struct usb_redir_configuration_status_header *configuration_status);
112
static void usbredir_alt_setting_status(void *priv, uint32_t id,
112
static void usbredir_alt_setting_status(void *priv, uint64_t id,
113 113
    struct usb_redir_alt_setting_status_header *alt_setting_status);
114
static void usbredir_iso_stream_status(void *priv, uint32_t id,
114
static void usbredir_iso_stream_status(void *priv, uint64_t id,
115 115
    struct usb_redir_iso_stream_status_header *iso_stream_status);
116
static void usbredir_interrupt_receiving_status(void *priv, uint32_t id,
116
static void usbredir_interrupt_receiving_status(void *priv, uint64_t id,
117 117
    struct usb_redir_interrupt_receiving_status_header
118 118
    *interrupt_receiving_status);
119
static void usbredir_bulk_streams_status(void *priv, uint32_t id,
119
static void usbredir_bulk_streams_status(void *priv, uint64_t id,
120 120
    struct usb_redir_bulk_streams_status_header *bulk_streams_status);
121
static void usbredir_control_packet(void *priv, uint32_t id,
121
static void usbredir_control_packet(void *priv, uint64_t id,
122 122
    struct usb_redir_control_packet_header *control_packet,
123 123
    uint8_t *data, int data_len);
124
static void usbredir_bulk_packet(void *priv, uint32_t id,
124
static void usbredir_bulk_packet(void *priv, uint64_t id,
125 125
    struct usb_redir_bulk_packet_header *bulk_packet,
126 126
    uint8_t *data, int data_len);
127
static void usbredir_iso_packet(void *priv, uint32_t id,
127
static void usbredir_iso_packet(void *priv, uint64_t id,
128 128
    struct usb_redir_iso_packet_header *iso_packet,
129 129
    uint8_t *data, int data_len);
130
static void usbredir_interrupt_packet(void *priv, uint32_t id,
130
static void usbredir_interrupt_packet(void *priv, uint64_t id,
131 131
    struct usb_redir_interrupt_packet_header *interrupt_header,
132 132
    uint8_t *data, int data_len);
133 133

  
......
805 805

  
806 806
    usbredirparser_caps_set_cap(caps, usb_redir_cap_connect_device_version);
807 807
    usbredirparser_caps_set_cap(caps, usb_redir_cap_filter);
808
    usbredirparser_caps_set_cap(caps, usb_redir_cap_64bits_ids);
808 809
    usbredirparser_init(dev->parser, version, caps, USB_REDIR_CAPS_SIZE, 0);
809 810
    usbredirparser_do_write(dev->parser);
810 811
}
......
1182 1183
    }
1183 1184
}
1184 1185

  
1185
static void usbredir_configuration_status(void *priv, uint32_t id,
1186
static void usbredir_configuration_status(void *priv, uint64_t id,
1186 1187
    struct usb_redir_configuration_status_header *config_status)
1187 1188
{
1188 1189
    USBRedirDevice *dev = priv;
1189 1190
    USBPacket *p;
1190 1191
    int len = 0;
1191 1192

  
1192
    DPRINTF("set config status %d config %d id %u\n", config_status->status,
1193
            config_status->configuration, id);
1193
    DPRINTF("set config status %d config %d id %"PRIu64"\n",
1194
            config_status->status, config_status->configuration, id);
1194 1195

  
1195 1196
    p = usbredir_find_packet_by_id(dev, 0, id);
1196 1197
    if (p) {
......
1203 1204
    }
1204 1205
}
1205 1206

  
1206
static void usbredir_alt_setting_status(void *priv, uint32_t id,
1207
static void usbredir_alt_setting_status(void *priv, uint64_t id,
1207 1208
    struct usb_redir_alt_setting_status_header *alt_setting_status)
1208 1209
{
1209 1210
    USBRedirDevice *dev = priv;
1210 1211
    USBPacket *p;
1211 1212
    int len = 0;
1212 1213

  
1213
    DPRINTF("alt status %d intf %d alt %d id: %u\n",
1214
            alt_setting_status->status,
1215
            alt_setting_status->interface,
1214
    DPRINTF("alt status %d intf %d alt %d id: %"PRIu64"\n",
1215
            alt_setting_status->status, alt_setting_status->interface,
1216 1216
            alt_setting_status->alt, id);
1217 1217

  
1218 1218
    p = usbredir_find_packet_by_id(dev, 0, id);
......
1227 1227
    }
1228 1228
}
1229 1229

  
1230
static void usbredir_iso_stream_status(void *priv, uint32_t id,
1230
static void usbredir_iso_stream_status(void *priv, uint64_t id,
1231 1231
    struct usb_redir_iso_stream_status_header *iso_stream_status)
1232 1232
{
1233 1233
    USBRedirDevice *dev = priv;
1234 1234
    uint8_t ep = iso_stream_status->endpoint;
1235 1235

  
1236
    DPRINTF("iso status %d ep %02X id %u\n", iso_stream_status->status,
1236
    DPRINTF("iso status %d ep %02X id %"PRIu64"\n", iso_stream_status->status,
1237 1237
            ep, id);
1238 1238

  
1239 1239
    if (!dev->dev.attached || !dev->endpoint[EP2I(ep)].iso_started) {
......
1247 1247
    }
1248 1248
}
1249 1249

  
1250
static void usbredir_interrupt_receiving_status(void *priv, uint32_t id,
1250
static void usbredir_interrupt_receiving_status(void *priv, uint64_t id,
1251 1251
    struct usb_redir_interrupt_receiving_status_header
1252 1252
    *interrupt_receiving_status)
1253 1253
{
1254 1254
    USBRedirDevice *dev = priv;
1255 1255
    uint8_t ep = interrupt_receiving_status->endpoint;
1256 1256

  
1257
    DPRINTF("interrupt recv status %d ep %02X id %u\n",
1257
    DPRINTF("interrupt recv status %d ep %02X id %"PRIu64"\n",
1258 1258
            interrupt_receiving_status->status, ep, id);
1259 1259

  
1260 1260
    if (!dev->dev.attached || !dev->endpoint[EP2I(ep)].interrupt_started) {
......
1269 1269
    }
1270 1270
}
1271 1271

  
1272
static void usbredir_bulk_streams_status(void *priv, uint32_t id,
1272
static void usbredir_bulk_streams_status(void *priv, uint64_t id,
1273 1273
    struct usb_redir_bulk_streams_status_header *bulk_streams_status)
1274 1274
{
1275 1275
}
1276 1276

  
1277
static void usbredir_control_packet(void *priv, uint32_t id,
1277
static void usbredir_control_packet(void *priv, uint64_t id,
1278 1278
    struct usb_redir_control_packet_header *control_packet,
1279 1279
    uint8_t *data, int data_len)
1280 1280
{
......
1282 1282
    USBPacket *p;
1283 1283
    int len = control_packet->length;
1284 1284

  
1285
    DPRINTF("ctrl-in status %d len %d id %u\n", control_packet->status,
1285
    DPRINTF("ctrl-in status %d len %d id %"PRIu64"\n", control_packet->status,
1286 1286
            len, id);
1287 1287

  
1288 1288
    p = usbredir_find_packet_by_id(dev, 0, id);
......
1304 1304
    free(data);
1305 1305
}
1306 1306

  
1307
static void usbredir_bulk_packet(void *priv, uint32_t id,
1307
static void usbredir_bulk_packet(void *priv, uint64_t id,
1308 1308
    struct usb_redir_bulk_packet_header *bulk_packet,
1309 1309
    uint8_t *data, int data_len)
1310 1310
{
......
1313 1313
    int len = bulk_packet->length;
1314 1314
    USBPacket *p;
1315 1315

  
1316
    DPRINTF("bulk-in status %d ep %02X len %d id %u\n", bulk_packet->status,
1317
            ep, len, id);
1316
    DPRINTF("bulk-in status %d ep %02X len %d id %"PRIu64"\n",
1317
            bulk_packet->status, ep, len, id);
1318 1318

  
1319 1319
    p = usbredir_find_packet_by_id(dev, ep, id);
1320 1320
    if (p) {
......
1335 1335
    free(data);
1336 1336
}
1337 1337

  
1338
static void usbredir_iso_packet(void *priv, uint32_t id,
1338
static void usbredir_iso_packet(void *priv, uint64_t id,
1339 1339
    struct usb_redir_iso_packet_header *iso_packet,
1340 1340
    uint8_t *data, int data_len)
1341 1341
{
1342 1342
    USBRedirDevice *dev = priv;
1343 1343
    uint8_t ep = iso_packet->endpoint;
1344 1344

  
1345
    DPRINTF2("iso-in status %d ep %02X len %d id %u\n", iso_packet->status, ep,
1346
             data_len, id);
1345
    DPRINTF2("iso-in status %d ep %02X len %d id %"PRIu64"\n",
1346
             iso_packet->status, ep, data_len, id);
1347 1347

  
1348 1348
    if (dev->endpoint[EP2I(ep)].type != USB_ENDPOINT_XFER_ISOC) {
1349 1349
        ERROR("received iso packet for non iso endpoint %02X\n", ep);
......
1361 1361
    bufp_alloc(dev, data, data_len, iso_packet->status, ep);
1362 1362
}
1363 1363

  
1364
static void usbredir_interrupt_packet(void *priv, uint32_t id,
1364
static void usbredir_interrupt_packet(void *priv, uint64_t id,
1365 1365
    struct usb_redir_interrupt_packet_header *interrupt_packet,
1366 1366
    uint8_t *data, int data_len)
1367 1367
{
1368 1368
    USBRedirDevice *dev = priv;
1369 1369
    uint8_t ep = interrupt_packet->endpoint;
1370 1370

  
1371
    DPRINTF("interrupt-in status %d ep %02X len %d id %u\n",
1371
    DPRINTF("interrupt-in status %d ep %02X len %d id %"PRIu64"\n",
1372 1372
            interrupt_packet->status, ep, data_len, id);
1373 1373

  
1374 1374
    if (dev->endpoint[EP2I(ep)].type != USB_ENDPOINT_XFER_INT) {

Also available in: Unified diff