ioreq-server: create basic ioreq server abstraction
authorPaul Durrant <paul.durrant@citrix.com>
Mon, 12 May 2014 10:02:20 +0000 (12:02 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 12 May 2014 10:02:20 +0000 (12:02 +0200)
commitbb6d5e155d8bc8f4d34928a81c39a7adcaf34987
treed16050f10571e8c46a045fe220a91bcba51a53dc
parentdea8c75c82a8c24c9554fd1f31a0c4866aeae12d
ioreq-server: create basic ioreq server abstraction

Collect together data structures concerning device emulation together into
a new struct hvm_ioreq_server.

Code that deals with the shared and buffered ioreq pages is extracted from
functions such as hvm_domain_initialise, hvm_vcpu_initialise and do_hvm_op
and consolidated into a set of hvm_ioreq_server manipulation functions. The
lock in the hvm_ioreq_page served two different purposes and has been
replaced by separate locks in the hvm_ioreq_server structure.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/hvm.c
xen/include/asm-x86/hvm/domain.h
xen/include/asm-x86/hvm/vcpu.h