Revision aba1f023 hw/esp.c
b/hw/esp.c | ||
---|---|---|
395 | 395 |
esp_dma_done(s); |
396 | 396 |
} |
397 | 397 |
|
398 |
static void esp_command_complete(SCSIRequest *req, uint32_t arg)
|
|
398 |
static void esp_command_complete(SCSIRequest *req, uint32_t status)
|
|
399 | 399 |
{ |
400 | 400 |
ESPState *s = DO_UPCAST(ESPState, busdev.qdev, req->bus->qbus.parent); |
401 | 401 |
|
... | ... | |
406 | 406 |
s->ti_size = 0; |
407 | 407 |
s->dma_left = 0; |
408 | 408 |
s->async_len = 0; |
409 |
if (arg) {
|
|
409 |
if (status) {
|
|
410 | 410 |
DPRINTF("Command failed\n"); |
411 | 411 |
} |
412 |
s->status = arg;
|
|
412 |
s->status = status;
|
|
413 | 413 |
s->rregs[ESP_RSTAT] = STAT_ST; |
414 | 414 |
esp_dma_done(s); |
415 | 415 |
if (s->current_req) { |
... | ... | |
419 | 419 |
} |
420 | 420 |
} |
421 | 421 |
|
422 |
static void esp_transfer_data(SCSIRequest *req, uint32_t arg)
|
|
422 |
static void esp_transfer_data(SCSIRequest *req, uint32_t len)
|
|
423 | 423 |
{ |
424 | 424 |
ESPState *s = DO_UPCAST(ESPState, busdev.qdev, req->bus->qbus.parent); |
425 | 425 |
|
426 | 426 |
DPRINTF("transfer %d/%d\n", s->dma_left, s->ti_size); |
427 |
s->async_len = arg;
|
|
427 |
s->async_len = len;
|
|
428 | 428 |
s->async_buf = scsi_req_get_buf(req); |
429 | 429 |
if (s->dma_left) { |
430 | 430 |
esp_do_dma(s); |
Also available in: Unified diff