xen/dmop: Strip __XEN_TOOLS__ header guard from public ABI
authorAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 4 Mar 2021 22:30:00 +0000 (22:30 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 11 Mar 2021 17:27:48 +0000 (17:27 +0000)
commit368096b9c4a273be58dd897e996e3e010bcfc21b
tree8ab37c9d855020996f850d559b89ce84775ce77d
parent67390ec1f73f48253d53a59581bf6574234708a1
xen/dmop: Strip __XEN_TOOLS__ header guard from public ABI

__XEN_TOOLS__ is really there to separate the unstable from stable hypercalls.
Exactly as with c/s f40e1c52e4, stable interfaces shouldn't contain this
guard.

That change actually broke the build with:

  include/xendevicemodel.h:52:5: error: unknown type name 'ioservid_t'
       ioservid_t *id);
       ^

as libxendevicemodel.h now uses a type it can't see a typedef for.  However,
nothing noticed because the header.chk logic is also broken (fixed
subsequently).

Strip the guard from the public header, and remove compensation from
devicemodel's private.h.  Fix the dmop design doc to discuss both reasons
behind the the ABI design.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
docs/designs/dmop.pandoc
tools/libs/devicemodel/private.h
xen/include/public/hvm/dm_op.h