t->offset = off;
t->len = len;
t->device = this;
+ t->return_code = 0;
+ t->next = nullptr;
if (buffered) {
+ t->ctx = nullptr;
// Only need to push the first entry
driver->queue_task(t);
Mutex::Locker l(buffer_lock);
t->len = len;
t->device = this;
t->buf = nullptr;
-
+ t->return_code = 0;
+ t->next = nullptr;
t->ctx = ioc;
Task *first = static_cast<Task*>(ioc->nvme_task_first);
Task *last = static_cast<Task*>(ioc->nvme_task_last);
t->len = len;
t->device = this;
t->return_code = 1;
+ t->next = nullptr;
++ioc->num_reading;
driver->queue_task(t);
t->len = aligned_len;
t->device = this;
t->return_code = 1;
+ t->next = nullptr;
++ioc.num_reading;
driver->queue_task(t);
class NVMEDevice;
struct Task {
- NVMEDevice *device = nullptr;
- IOContext *ctx = nullptr;
+ NVMEDevice *device;
+ IOContext *ctx;
IOCommand command;
- uint64_t offset = 0;
- uint64_t len = 0;
- void *buf = nullptr;
- Task *next = nullptr;
- int64_t return_code = 0;
+ uint64_t offset, len;
+ void *buf;
+ Task *next;
+ int64_t return_code;
utime_t start;
};