Revision c16b5a2c block/curl.c
b/block/curl.c | ||
---|---|---|
349 | 349 |
return -EINVAL; |
350 | 350 |
} |
351 | 351 |
|
352 |
static void curl_aio_cancel(BlockDriverAIOCB *blockacb) |
|
353 |
{ |
|
354 |
// Do we have to implement canceling? Seems to work without... |
|
355 |
} |
|
356 |
|
|
357 |
static AIOPool curl_aio_pool = { |
|
358 |
.aiocb_size = sizeof(CURLAIOCB), |
|
359 |
.cancel = curl_aio_cancel, |
|
360 |
}; |
|
361 |
|
|
352 | 362 |
static BlockDriverAIOCB *curl_aio_readv(BlockDriverState *bs, |
353 | 363 |
int64_t sector_num, QEMUIOVector *qiov, int nb_sectors, |
354 | 364 |
BlockDriverCompletionFunc *cb, void *opaque) |
... | ... | |
359 | 369 |
size_t end; |
360 | 370 |
CURLState *state; |
361 | 371 |
|
362 |
acb = qemu_aio_get(bs, cb, opaque); |
|
372 |
acb = qemu_aio_get(&curl_aio_pool, bs, cb, opaque);
|
|
363 | 373 |
if (!acb) |
364 | 374 |
return NULL; |
365 | 375 |
|
... | ... | |
406 | 416 |
return &acb->common; |
407 | 417 |
} |
408 | 418 |
|
409 |
static void curl_aio_cancel(BlockDriverAIOCB *blockacb) |
|
410 |
{ |
|
411 |
// Do we have to implement canceling? Seems to work without... |
|
412 |
} |
|
413 |
|
|
414 | 419 |
static void curl_close(BlockDriverState *bs) |
415 | 420 |
{ |
416 | 421 |
BDRVCURLState *s = bs->opaque; |
... | ... | |
450 | 455 |
.bdrv_close = curl_close, |
451 | 456 |
.bdrv_getlength = curl_getlength, |
452 | 457 |
|
453 |
.aiocb_size = sizeof(CURLAIOCB), |
|
454 | 458 |
.bdrv_aio_readv = curl_aio_readv, |
455 |
.bdrv_aio_cancel = curl_aio_cancel, |
|
456 | 459 |
}; |
457 | 460 |
|
458 | 461 |
static BlockDriver bdrv_https = { |
... | ... | |
464 | 467 |
.bdrv_close = curl_close, |
465 | 468 |
.bdrv_getlength = curl_getlength, |
466 | 469 |
|
467 |
.aiocb_size = sizeof(CURLAIOCB), |
|
468 | 470 |
.bdrv_aio_readv = curl_aio_readv, |
469 |
.bdrv_aio_cancel = curl_aio_cancel, |
|
470 | 471 |
}; |
471 | 472 |
|
472 | 473 |
static BlockDriver bdrv_ftp = { |
... | ... | |
478 | 479 |
.bdrv_close = curl_close, |
479 | 480 |
.bdrv_getlength = curl_getlength, |
480 | 481 |
|
481 |
.aiocb_size = sizeof(CURLAIOCB), |
|
482 | 482 |
.bdrv_aio_readv = curl_aio_readv, |
483 |
.bdrv_aio_cancel = curl_aio_cancel, |
|
484 | 483 |
}; |
485 | 484 |
|
486 | 485 |
static BlockDriver bdrv_ftps = { |
... | ... | |
492 | 491 |
.bdrv_close = curl_close, |
493 | 492 |
.bdrv_getlength = curl_getlength, |
494 | 493 |
|
495 |
.aiocb_size = sizeof(CURLAIOCB), |
|
496 | 494 |
.bdrv_aio_readv = curl_aio_readv, |
497 |
.bdrv_aio_cancel = curl_aio_cancel, |
|
498 | 495 |
}; |
499 | 496 |
|
500 | 497 |
static BlockDriver bdrv_tftp = { |
... | ... | |
506 | 503 |
.bdrv_close = curl_close, |
507 | 504 |
.bdrv_getlength = curl_getlength, |
508 | 505 |
|
509 |
.aiocb_size = sizeof(CURLAIOCB), |
|
510 | 506 |
.bdrv_aio_readv = curl_aio_readv, |
511 |
.bdrv_aio_cancel = curl_aio_cancel, |
|
512 | 507 |
}; |
513 | 508 |
|
514 | 509 |
static void curl_block_init(void) |
Also available in: Unified diff