This functionality is obsolete. It was introduced by c/s
41296317a31 into
Xend, but was never exposed in libxl.
Nothing limits this to PV guests, but it makes no sense for HVM guests.
Looking through the XenServer templates, this was used to work around bugs in
the 32bit RHEL/CentOS 4.7 and 4.8 kernels (fixed in 4.9) and RHEL/CentOS/OEL
5.2 and 5.3 kernels (fixed in 5.4). RHEL 4 as a major version went out of
support in 2017, whereas the 5.2/5.3 kernels went out of support when 5.4 was
released in 2009.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Acked-by: Christian Lindig <christian.lindig@citrix.com>
Acked-by: Wei Liu <wl@xen.org>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
uint16_t vspi,
uint16_t spi);
-int xc_domain_set_machine_address_size(xc_interface *xch,
- uint32_t domid,
- unsigned int width);
-int xc_domain_get_machine_address_size(xc_interface *xch,
- uint32_t domid);
-
/* Set the target domain */
int xc_domain_set_target(xc_interface *xch,
uint32_t domid,
return do_domctl(xch, &domctl);
}
-int xc_domain_set_machine_address_size(xc_interface *xch,
- uint32_t domid,
- unsigned int width)
-{
- DECLARE_DOMCTL;
-
- memset(&domctl, 0, sizeof(domctl));
- domctl.domain = domid;
- domctl.cmd = XEN_DOMCTL_set_machine_address_size;
- domctl.u.address_size.size = width;
-
- return do_domctl(xch, &domctl);
-}
-
-
-int xc_domain_get_machine_address_size(xc_interface *xch, uint32_t domid)
-{
- DECLARE_DOMCTL;
- int rc;
-
- memset(&domctl, 0, sizeof(domctl));
- domctl.domain = domid;
- domctl.cmd = XEN_DOMCTL_get_machine_address_size;
-
- rc = do_domctl(xch, &domctl);
-
- return rc == 0 ? domctl.u.address_size.size : rc;
-}
-
int xc_domain_debug_control(xc_interface *xc, uint32_t domid, uint32_t sop, uint32_t vcpu)
{
DECLARE_DOMCTL;
external domain_memory_increase_reservation: handle -> domid -> int64 -> unit
= "stub_xc_domain_memory_increase_reservation"
-external domain_set_machine_address_size: handle -> domid -> int -> unit
- = "stub_xc_domain_set_machine_address_size"
-external domain_get_machine_address_size: handle -> domid -> int
- = "stub_xc_domain_get_machine_address_size"
-
external domain_cpuid_set: handle -> domid -> (int64 * (int64 option))
-> string option array
-> string option array
external watchdog : handle -> int -> int32 -> int
= "stub_xc_watchdog"
-external domain_set_machine_address_size: handle -> domid -> int -> unit
- = "stub_xc_domain_set_machine_address_size"
-external domain_get_machine_address_size: handle -> domid -> int
- = "stub_xc_domain_get_machine_address_size"
-
external domain_cpuid_set: handle -> domid -> (int64 * (int64 option))
-> string option array
-> string option array
CAMLreturn(Val_unit);
}
-CAMLprim value stub_xc_domain_set_machine_address_size(value xch,
- value domid,
- value width)
-{
- CAMLparam3(xch, domid, width);
- uint32_t c_domid = _D(domid);
- int c_width = Int_val(width);
-
- int retval = xc_domain_set_machine_address_size(_H(xch), c_domid, c_width);
- if (retval)
- failwith_xc(_H(xch));
- CAMLreturn(Val_unit);
-}
-
-CAMLprim value stub_xc_domain_get_machine_address_size(value xch,
- value domid)
-{
- CAMLparam2(xch, domid);
- int retval;
-
- retval = xc_domain_get_machine_address_size(_H(xch), _D(domid));
- if (retval < 0)
- failwith_xc(_H(xch));
- CAMLreturn(Val_int(retval));
-}
-
CAMLprim value stub_xc_domain_cpuid_set(value xch, value domid,
value input,
value config)
return pyxc_create_cpuid_dict(regs_transform);
}
-
-static PyObject *pyxc_dom_set_machine_address_size(XcObject *self,
- PyObject *args,
- PyObject *kwds)
-{
- uint32_t dom, width;
-
- if (!PyArg_ParseTuple(args, "ii", &dom, &width))
- return NULL;
-
- if (xc_domain_set_machine_address_size(self->xc_handle, dom, width) != 0)
- return pyxc_error_to_exception(self->xc_handle);
-
- Py_INCREF(zero);
- return zero;
-}
#endif /* __i386__ || __x86_64__ */
static PyObject *pyxc_gnttab_hvm_seed(XcObject *self,
"Set the default cpuid policy for a domain.\n"
" dom [int]: Identifier of domain.\n\n"
"Returns: [int] 0 on success; exception on error.\n" },
-
- { "domain_set_machine_address_size",
- (PyCFunction)pyxc_dom_set_machine_address_size,
- METH_VARARGS, "\n"
- "Set maximum machine address size for this domain.\n"
- " dom [int]: Identifier of domain.\n"
- " width [int]: Maximum machine address width.\n" },
#endif
{ "dom_set_memshr",
ASSERT_UNREACHABLE();
break;
- case XEN_DOMCTL_set_machine_address_size:
- if ( d->tot_pages > 0 )
- ret = -EBUSY;
- else
- d->arch.physaddr_bitsize = domctl->u.address_size.size;
- break;
-
- case XEN_DOMCTL_get_machine_address_size:
- domctl->u.address_size.size = d->arch.physaddr_bitsize;
- copyback = true;
- break;
-
case XEN_DOMCTL_sendtrigger:
{
struct vcpu *v;
uint32_t port; /* IN */
};
-/*
- * Define the maximum machine address size which should be allocated
- * to a guest.
- */
-/* XEN_DOMCTL_set_machine_address_size */
-/* XEN_DOMCTL_get_machine_address_size */
-
/* XEN_DOMCTL_debug_op */
#define XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_OFF 0
#define XEN_DOMCTL_DEBUG_OP_SINGLE_STEP_ON 1
#define XEN_DOMCTL_unbind_pt_irq 48
#define XEN_DOMCTL_set_cpuid 49
#define XEN_DOMCTL_get_device_group 50
-#define XEN_DOMCTL_set_machine_address_size 51
-#define XEN_DOMCTL_get_machine_address_size 52
+/* #define XEN_DOMCTL_set_machine_address_size 51 - Obsolete */
+/* #define XEN_DOMCTL_get_machine_address_size 52 - Obsolete */
/* #define XEN_DOMCTL_suppress_spurious_page_faults 53 - Obsolete */
#define XEN_DOMCTL_debug_op 54
#define XEN_DOMCTL_gethvmcontext_partial 55
return current_has_perm(d, SECCLASS_HVM, HVM__GETHVMC);
case XEN_DOMCTL_set_address_size:
- case XEN_DOMCTL_set_machine_address_size:
return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__SETADDRSIZE);
case XEN_DOMCTL_get_address_size:
- case XEN_DOMCTL_get_machine_address_size:
return current_has_perm(d, SECCLASS_DOMAIN, DOMAIN__GETADDRSIZE);
case XEN_DOMCTL_mem_sharing_op:
set_target
# SCHEDOP_remote_shutdown
shutdown
-# XEN_DOMCTL_set{,_machine}_address_size
+# XEN_DOMCTL_set_address_size
setaddrsize
-# XEN_DOMCTL_get{,_machine}_address_size
+# XEN_DOMCTL_get_address_size
getaddrsize
# XEN_DOMCTL_sendtrigger
trigger