oxenstored: fix ABI breakage introduced in Xen 4.9.0
authorEdwin Török <edvin.torok@citrix.com>
Wed, 15 Jul 2020 15:10:56 +0000 (16:10 +0100)
committerIan Jackson <iwj@xenproject.org>
Fri, 19 Mar 2021 13:24:06 +0000 (13:24 +0000)
commit9503a6df19924d2d9bf5b5a663342ba1507819c5
tree5f35f36925f6531ba975e059caf0ab91a5b1ab84
parentb0d7739f10dc93d9565220b4e79ebc6675548c02
oxenstored: fix ABI breakage introduced in Xen 4.9.0

dbc84d2983969bb47d294131ed9e6bbbdc2aec49 (Xen >= 4.9.0) deleted XS_RESTRICT
from oxenstored, which caused all the following opcodes to be shifted by 1:
reset_watches became off-by-one compared to the C version of xenstored.

Looking at the C code the opcode for reset watches needs:
XS_RESET_WATCHES = XS_SET_TARGET + 2

So add the placeholder `Invalid` in the OCaml<->C mapping list.
(Note that the code here doesn't simply convert the OCaml constructor to
 an integer, so we don't need to introduce a dummy constructor).

Igor says that with a suitably patched xenopsd to enable watch reset,
we now see `reset watches` during kdump of a guest in xenstored-access.log.

Signed-off-by: Edwin Török <edvin.torok@citrix.com>
Tested-by: Igor Druzhinin <igor.druzhinin@citrix.com>
Acked-by: Christian Lindig <christian.lindig@citrix.com>
(cherry picked from commit a6ed77f1e0334c26e6e216aea45f8674d9284856)
tools/ocaml/libs/xb/op.ml