2009-09-16 16:26:27 +00:00
|
|
|
daemon/dispatch.c
|
|
|
|
daemon/libvirtd.c
|
|
|
|
daemon/remote.c
|
2009-08-24 19:53:48 +00:00
|
|
|
daemon/stream.c
|
2009-12-18 13:50:04 +00:00
|
|
|
src/conf/cpu_conf.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/conf/domain_conf.c
|
2010-01-13 18:11:33 +00:00
|
|
|
src/conf/domain_event.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/conf/interface_conf.c
|
|
|
|
src/conf/network_conf.c
|
|
|
|
src/conf/node_device_conf.c
|
2010-03-25 17:46:07 +00:00
|
|
|
src/conf/nwfilter_conf.c
|
|
|
|
src/conf/nwfilter_params.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/conf/secret_conf.c
|
|
|
|
src/conf/storage_conf.c
|
|
|
|
src/conf/storage_encryption_conf.c
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
src/cpu/cpu.c
|
2010-02-11 15:27:14 +00:00
|
|
|
src/cpu/cpu_generic.c
|
Adds CPU selection infrastructure
Each driver supporting CPU selection must fill in host CPU capabilities.
When filling them, drivers for hypervisors running on the same node as
libvirtd can use cpuNodeData() to obtain raw CPU data. Other drivers,
such as VMware, need to implement their own way of getting such data.
Raw data can be decoded into virCPUDefPtr using cpuDecode() function.
When implementing virConnectCompareCPU(), a hypervisor driver can just
call cpuCompareXML() function with host CPU capabilities.
For each guest for which a driver supports selecting CPU models, it must
set the appropriate feature in guest's capabilities:
virCapabilitiesAddGuestFeature(guest, "cpuselection", 1, 0)
Actions needed when a domain is being created depend on whether the
hypervisor understands raw CPU data (currently CPUID for i686, x86_64
architectures) or symbolic names has to be used.
Typical use by hypervisors which prefer CPUID (such as VMware and Xen):
- convert guest CPU configuration from domain's XML into a set of raw
data structures each representing one of the feature policies:
cpuEncode(conn, architecture, guest_cpu_config,
&forced_data, &required_data, &optional_data,
&disabled_data, &forbidden_data)
- create a mask or whatever the hypervisor expects to see and pass it
to the hypervisor
Typical use by hypervisors with symbolic model names (such as QEMU):
- get raw CPU data for a computed guest CPU:
cpuGuestData(conn, host_cpu, guest_cpu_config, &data)
- decode raw data into virCPUDefPtr with a possible restriction on
allowed model names:
cpuDecode(conn, guest, data, n_allowed_models, allowed_models)
- pass guest->model and guest->features to the hypervisor
* src/cpu/cpu.c src/cpu/cpu.h src/cpu/cpu_generic.c
src/cpu/cpu_generic.h src/cpu/cpu_map.c src/cpu/cpu_map.h
src/cpu/cpu_x86.c src/cpu/cpu_x86.h src/cpu/cpu_x86_data.h
* configure.in: check for CPUID instruction
* src/Makefile.am: glue the new files in
* src/libvirt_private.syms: add new private symbols
* po/POTFILES.in: add new cpu files containing translatable strings
2009-12-18 15:02:11 +00:00
|
|
|
src/cpu/cpu_map.c
|
|
|
|
src/cpu/cpu_x86.c
|
2008-11-04 23:22:06 +00:00
|
|
|
src/datatypes.c
|
2010-05-20 06:59:01 +00:00
|
|
|
src/driver.c
|
2010-04-02 19:34:31 +00:00
|
|
|
src/esx/esx_driver.c
|
2010-05-18 16:11:59 +00:00
|
|
|
src/esx/esx_storage_driver.c
|
2010-04-02 19:34:31 +00:00
|
|
|
src/esx/esx_util.c
|
|
|
|
src/esx/esx_vi.c
|
|
|
|
src/esx/esx_vi_methods.c
|
|
|
|
src/esx/esx_vi_types.c
|
2010-09-22 18:32:21 +00:00
|
|
|
src/fdstream.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/interface/netcf_driver.c
|
2010-04-16 17:21:10 +00:00
|
|
|
src/internal.h
|
2008-01-29 18:19:46 +00:00
|
|
|
src/libvirt.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/lxc/lxc_container.c
|
2010-05-25 14:33:51 +00:00
|
|
|
src/lxc/lxc_conf.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/lxc/lxc_controller.c
|
|
|
|
src/lxc/lxc_driver.c
|
2010-07-23 17:25:56 +00:00
|
|
|
src/lxc/veth.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/network/bridge_driver.c
|
|
|
|
src/node_device/node_device_driver.c
|
2010-05-20 06:59:01 +00:00
|
|
|
src/node_device/node_device_hal.c
|
2009-11-12 21:48:24 +00:00
|
|
|
src/node_device/node_device_linux_sysfs.c
|
|
|
|
src/node_device/node_device_udev.c
|
2009-01-20 17:13:33 +00:00
|
|
|
src/nodeinfo.c
|
2010-03-25 17:46:09 +00:00
|
|
|
src/nwfilter/nwfilter_driver.c
|
|
|
|
src/nwfilter/nwfilter_ebiptables_driver.c
|
|
|
|
src/nwfilter/nwfilter_gentech_driver.c
|
2010-04-08 11:01:00 +00:00
|
|
|
src/nwfilter/nwfilter_learnipaddr.c
|
2009-05-28 13:11:22 +00:00
|
|
|
src/opennebula/one_conf.c
|
|
|
|
src/opennebula/one_driver.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/openvz/openvz_conf.c
|
|
|
|
src/openvz/openvz_driver.c
|
2009-07-26 21:53:34 +00:00
|
|
|
src/phyp/phyp_driver.c
|
2009-11-03 22:41:23 +00:00
|
|
|
src/qemu/qemu_bridge_filter.c
|
2010-12-16 15:07:07 +00:00
|
|
|
src/qemu/qemu_capabilities.c
|
2010-12-16 16:10:54 +00:00
|
|
|
src/qemu/qemu_cgroup.c
|
2010-12-16 15:07:07 +00:00
|
|
|
src/qemu/qemu_command.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/qemu/qemu_conf.c
|
2010-12-16 15:23:41 +00:00
|
|
|
src/qemu/qemu_domain.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/qemu/qemu_driver.c
|
2010-12-16 16:10:54 +00:00
|
|
|
src/qemu/qemu_hostdev.c
|
2010-12-16 16:10:54 +00:00
|
|
|
src/qemu/qemu_hotplug.c
|
2009-10-09 18:07:55 +00:00
|
|
|
src/qemu/qemu_monitor.c
|
2009-11-03 18:59:18 +00:00
|
|
|
src/qemu/qemu_monitor_json.c
|
2009-09-22 17:48:40 +00:00
|
|
|
src/qemu/qemu_monitor_text.c
|
2011-02-14 16:09:39 +00:00
|
|
|
src/qemu/qemu_process.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/remote/remote_driver.c
|
|
|
|
src/secret/secret_driver.c
|
2009-10-08 14:34:22 +00:00
|
|
|
src/security/security_apparmor.c
|
Refactor the security drivers to simplify usage
The current security driver usage requires horrible code like
if (driver->securityDriver &&
driver->securityDriver->domainSetSecurityHostdevLabel &&
driver->securityDriver->domainSetSecurityHostdevLabel(driver->securityDriver,
vm, hostdev) < 0)
This pair of checks for NULL clutters up the code, making the driver
calls 2 lines longer than they really need to be. The goal of the
patchset is to change the calling convention to simply
if (virSecurityManagerSetHostdevLabel(driver->securityDriver,
vm, hostdev) < 0)
The first check for 'driver->securityDriver' being NULL is removed
by introducing a 'no op' security driver that will always be present
if no real driver is enabled. This guarentees driver->securityDriver
!= NULL.
The second check for 'driver->securityDriver->domainSetSecurityHostdevLabel'
being non-NULL is hidden in a new abstraction called virSecurityManager.
This separates the driver callbacks, from main internal API. The addition
of a virSecurityManager object, that is separate from the virSecurityDriver
struct also allows for security drivers to carry state / configuration
information directly. Thus the DAC/Stack drivers from src/qemu which
used to pull config from 'struct qemud_driver' can now be moved into
the 'src/security' directory and store their config directly.
* src/qemu/qemu_conf.h, src/qemu/qemu_driver.c: Update to
use new virSecurityManager APIs
* src/qemu/qemu_security_dac.c, src/qemu/qemu_security_dac.h
src/qemu/qemu_security_stacked.c, src/qemu/qemu_security_stacked.h:
Move into src/security directory
* src/security/security_stack.c, src/security/security_stack.h,
src/security/security_dac.c, src/security/security_dac.h: Generic
versions of previous QEMU specific drivers
* src/security/security_apparmor.c, src/security/security_apparmor.h,
src/security/security_driver.c, src/security/security_driver.h,
src/security/security_selinux.c, src/security/security_selinux.h:
Update to take virSecurityManagerPtr object as the first param
in all callbacks
* src/security/security_nop.c, src/security/security_nop.h: Stub
implementation of all security driver APIs.
* src/security/security_manager.h, src/security/security_manager.c:
New internal API for invoking security drivers
* src/libvirt.c: Add missing debug for security APIs
2010-11-17 20:26:30 +00:00
|
|
|
src/security/security_dac.c
|
2010-05-20 06:59:01 +00:00
|
|
|
src/security/security_driver.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/security/security_selinux.c
|
2009-10-08 14:34:22 +00:00
|
|
|
src/security/virt-aa-helper.c
|
2010-11-16 19:01:37 +00:00
|
|
|
src/storage/parthelper.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/storage/storage_backend.c
|
|
|
|
src/storage/storage_backend_disk.c
|
|
|
|
src/storage/storage_backend_fs.c
|
|
|
|
src/storage/storage_backend_iscsi.c
|
|
|
|
src/storage/storage_backend_logical.c
|
|
|
|
src/storage/storage_backend_mpath.c
|
|
|
|
src/storage/storage_backend_scsi.c
|
|
|
|
src/storage/storage_driver.c
|
|
|
|
src/test/test_driver.c
|
|
|
|
src/uml/uml_conf.c
|
|
|
|
src/uml/uml_driver.c
|
2010-03-14 19:50:14 +00:00
|
|
|
src/util/authhelper.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/util/bridge.c
|
2010-05-20 06:59:01 +00:00
|
|
|
src/util/cgroup.c
|
2010-05-25 11:14:06 +00:00
|
|
|
src/util/command.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/util/conf.c
|
2010-04-26 13:56:03 +00:00
|
|
|
src/util/dnsmasq.c
|
2010-03-26 14:49:45 +00:00
|
|
|
src/util/hooks.c
|
2010-01-11 16:40:46 +00:00
|
|
|
src/util/hostusb.c
|
2010-04-13 14:57:11 +00:00
|
|
|
src/util/interface.c
|
Convert virNetwork to use virSocketAddr everywhere
Instead of storing the IP address string in virNetwork related
structs, store the parsed virSocketAddr. This will make it
easier to add IPv6 support in the future, by letting driver
code directly check what address family is present
* src/conf/network_conf.c, src/conf/network_conf.h,
src/network/bridge_driver.c: Convert to use virSocketAddr
in virNetwork, instead of char *.
* src/util/bridge.c, src/util/bridge.h,
src/util/dnsmasq.c, src/util/dnsmasq.h,
src/util/iptables.c, src/util/iptables.h: Convert to
take a virSocketAddr instead of char * for any IP
address parameters
* src/util/network.h: Add macros to determine if an address
is set, and what address family is set.
2010-10-21 12:14:33 +00:00
|
|
|
src/util/iptables.c
|
2009-11-03 18:59:18 +00:00
|
|
|
src/util/json.c
|
2010-02-15 15:58:13 +00:00
|
|
|
src/util/macvtap.c
|
2010-10-20 14:13:00 +00:00
|
|
|
src/util/network.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/util/pci.c
|
2009-11-16 15:22:34 +00:00
|
|
|
src/util/processinfo.c
|
2010-02-04 23:02:10 +00:00
|
|
|
src/util/stats_linux.c
|
2009-09-30 12:12:03 +00:00
|
|
|
src/util/storage_file.c
|
2010-11-05 14:22:13 +00:00
|
|
|
src/util/sysinfo.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/util/util.c
|
2010-09-15 13:44:11 +00:00
|
|
|
src/util/virtaudit.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/util/virterror.c
|
|
|
|
src/util/xml.c
|
2010-12-14 22:07:57 +00:00
|
|
|
src/vbox/vbox_MSCOMGlue.c
|
2010-10-22 19:25:03 +00:00
|
|
|
src/vbox/vbox_XPCOMCGlue.c
|
2009-05-12 20:44:29 +00:00
|
|
|
src/vbox/vbox_driver.c
|
2009-04-21 19:13:23 +00:00
|
|
|
src/vbox/vbox_tmpl.c
|
2010-12-17 10:28:20 +00:00
|
|
|
src/vmware/vmware_conf.c
|
|
|
|
src/vmware/vmware_driver.c
|
2010-12-21 21:39:55 +00:00
|
|
|
src/vmx/vmx.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/xen/xen_driver.c
|
|
|
|
src/xen/xen_hypervisor.c
|
|
|
|
src/xen/xen_inotify.c
|
2010-05-20 06:59:01 +00:00
|
|
|
src/xen/xend_internal.c
|
2009-09-16 16:26:27 +00:00
|
|
|
src/xen/xm_internal.c
|
|
|
|
src/xen/xs_internal.c
|
2010-03-31 10:24:25 +00:00
|
|
|
src/xenapi/xenapi_driver.c
|
2010-03-16 18:32:05 +00:00
|
|
|
src/xenapi/xenapi_utils.c
|
2009-09-16 16:26:27 +00:00
|
|
|
tools/console.c
|
2011-01-06 19:00:30 +00:00
|
|
|
tools/libvirt-guests.init.sh
|
2009-09-16 16:26:27 +00:00
|
|
|
tools/virsh.c
|