Lines Matching refs:io_req
167 …atic struct asyncio_desc *get_asyncio_desc(struct acrn_vcpu *vcpu, const struct io_request *io_req) in get_asyncio_desc() argument
181 switch (io_req->io_type) { in get_asyncio_desc()
183 addr = io_req->reqs.pio_request.address; in get_asyncio_desc()
184 value = io_req->reqs.pio_request.value; in get_asyncio_desc()
189 addr = io_req->reqs.mmio_request.address; in get_asyncio_desc()
190 value = io_req->reqs.mmio_request.value; in get_asyncio_desc()
248 int32_t acrn_insert_request(struct acrn_vcpu *vcpu, const struct io_request *io_req) in acrn_insert_request() argument
265 acrn_io_req->type = io_req->io_type; in acrn_insert_request()
267 &io_req->reqs, sizeof(acrn_io_req->reqs)); in acrn_insert_request()
389 static void emulate_mmio_complete(struct acrn_vcpu *vcpu, const struct io_request *io_req) in emulate_mmio_complete() argument
391 const struct acrn_mmio_request *mmio_req = &io_req->reqs.mmio_request; in emulate_mmio_complete()
399 static void complete_ioreq(struct acrn_vcpu *vcpu, struct io_request *io_req) in complete_ioreq() argument
408 if (io_req != NULL) { in complete_ioreq()
411 io_req->reqs.pio_request.value = acrn_io_req->reqs.pio_request.value; in complete_ioreq()
415 io_req->reqs.mmio_request.value = acrn_io_req->reqs.mmio_request.value; in complete_ioreq()
442 struct io_request *io_req = &vcpu->req; in dm_emulate_pio_complete() local
444 complete_ioreq(vcpu, io_req); in dm_emulate_pio_complete()
446 emulate_pio_complete(vcpu, io_req); in dm_emulate_pio_complete()
461 struct io_request *io_req = &vcpu->req; in dm_emulate_mmio_complete() local
463 complete_ioreq(vcpu, io_req); in dm_emulate_mmio_complete()
465 emulate_mmio_complete(vcpu, io_req); in dm_emulate_mmio_complete()
544 static int32_t mmio_default_access_handler(struct io_request *io_req, in mmio_default_access_handler() argument
547 struct acrn_mmio_request *mmio = &io_req->reqs.mmio_request; in mmio_default_access_handler()
583 hv_emulate_pio(struct acrn_vcpu *vcpu, struct io_request *io_req) in hv_emulate_pio() argument
589 struct acrn_pio_request *pio_req = &io_req->reqs.pio_request; in hv_emulate_pio()
647 hv_emulate_mmio(struct acrn_vcpu *vcpu, struct io_request *io_req) in hv_emulate_mmio() argument
653 struct acrn_mmio_request *mmio_req = &io_req->reqs.mmio_request; in hv_emulate_mmio()
695 status = read_write(io_req, handler_private_data); in hv_emulate_mmio()
725 emulate_io(struct acrn_vcpu *vcpu, struct io_request *io_req) in emulate_io() argument
733 switch (io_req->io_type) { in emulate_io()
735 status = hv_emulate_pio(vcpu, io_req); in emulate_io()
737 emulate_pio_complete(vcpu, io_req); in emulate_io()
742 status = hv_emulate_mmio(vcpu, io_req); in emulate_io()
744 emulate_mmio_complete(vcpu, io_req); in emulate_io()
759 aio_desc = get_asyncio_desc(vcpu, io_req); in emulate_io()
763 status = acrn_insert_request(vcpu, io_req); in emulate_io()
772 struct acrn_pio_request *pio_req = &io_req->reqs.pio_request; in emulate_io()
775 pio_req->direction, io_req->io_type, in emulate_io()