• E
    xml: use long long internally, to centralize overflow checks · 73b99771
    Eric Blake 提交于
    On 64-bit platforms, unsigned long and unsigned long long are
    identical, so we don't have to worry about overflow checks.
    On 32-bit platforms, anywhere we narrow unsigned long long back
    to unsigned long, we have to worry about overflow; it's easier
    to do this in one place by having most of the code use the same
    or wider types, and only doing the narrowing at the last minute.
    Therefore, the memory set commands remain unsigned long, and
    the memory get command now centralizes the overflow check into
    libvirt.c, so that drivers don't have to repeat the work.
    
    This also fixes a bug where xen returned the wrong value on
    failure (most APIs return -1 on failure, but getMaxMemory
    must return 0 on failure).
    
    * src/driver.h (virDrvDomainGetMaxMemory): Use long long.
    * src/libvirt.c (virDomainGetMaxMemory): Raise overflow.
    * src/test/test_driver.c (testGetMaxMemory): Fix driver.
    * src/rpc/gendispatch.pl (name_to_ProcName): Likewise.
    * src/xen/xen_hypervisor.c (xenHypervisorGetMaxMemory): Likewise.
    * src/xen/xen_driver.c (xenUnifiedDomainGetMaxMemory): Likewise.
    * src/xen/xend_internal.c (xenDaemonDomainGetMaxMemory):
    Likewise.
    * src/xen/xend_internal.h (xenDaemonDomainGetMaxMemory):
    Likewise.
    * src/xen/xm_internal.c (xenXMDomainGetMaxMemory): Likewise.
    * src/xen/xm_internal.h (xenXMDomainGetMaxMemory): Likewise.
    * src/xen/xs_internal.c (xenStoreDomainGetMaxMemory): Likewise.
    * src/xen/xs_internal.h (xenStoreDomainGetMaxMemory): Likewise.
    * src/xenapi/xenapi_driver.c (xenapiDomainGetMaxMemory):
    Likewise.
    * src/esx/esx_driver.c (esxDomainGetMaxMemory): Likewise.
    * src/libxl/libxl_driver.c (libxlDomainGetMaxMemory): Likewise.
    * src/qemu/qemu_driver.c (qemudDomainGetMaxMemory): Likewise.
    * src/lxc/lxc_driver.c (lxcDomainGetMaxMemory): Likewise.
    * src/uml/uml_driver.c (umlDomainGetMaxMemory): Likewise.
    73b99771
xen_driver.c 65.5 KB