xen: Add initialisation of Xen
The xenpv machine use the common init function. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
		
							parent
							
								
									d5b93ddfef
								
							
						
					
					
						commit
						3285cf4fe7
					
				| @ -208,6 +208,15 @@ QEMU_CFLAGS += $(VNC_PNG_CFLAGS) | ||||
| # xen backend driver support
 | ||||
| obj-i386-$(CONFIG_XEN) += xen_machine_pv.o xen_domainbuild.o | ||||
| 
 | ||||
| ifeq ($(TARGET_BASE_ARCH), i386) | ||||
|   CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y) | ||||
| else | ||||
|   CONFIG_NO_XEN = y | ||||
| endif | ||||
| # xen support
 | ||||
| obj-i386-$(CONFIG_XEN) += xen-all.o | ||||
| obj-$(CONFIG_NO_XEN) += xen-stub.o | ||||
| 
 | ||||
| # Inter-VM PCI shared memory
 | ||||
| CONFIG_IVSHMEM = | ||||
| ifeq ($(CONFIG_KVM), y) | ||||
|  | ||||
							
								
								
									
										13
									
								
								hw/xen.h
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								hw/xen.h
									
									
									
									
									
								
							| @ -18,4 +18,17 @@ enum xen_mode { | ||||
| extern uint32_t xen_domid; | ||||
| extern enum xen_mode xen_mode; | ||||
| 
 | ||||
| extern int xen_allowed; | ||||
| 
 | ||||
| static inline int xen_enabled(void) | ||||
| { | ||||
| #ifdef CONFIG_XEN | ||||
|     return xen_allowed; | ||||
| #else | ||||
|     return 0; | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| int xen_init(void); | ||||
| 
 | ||||
| #endif /* QEMU_HW_XEN_H */ | ||||
|  | ||||
| @ -665,9 +665,8 @@ int xen_be_init(void) | ||||
|         goto err; | ||||
|     } | ||||
| 
 | ||||
|     xen_xc = xen_xc_interface_open(0, 0, 0); | ||||
|     if (xen_xc == XC_HANDLER_INITIAL_VALUE) { | ||||
|         xen_be_printf(NULL, 0, "can't open xen interface\n"); | ||||
|         /* Check if xen_init() have been called */ | ||||
|         goto err; | ||||
|     } | ||||
|     return 0; | ||||
|  | ||||
| @ -113,6 +113,7 @@ static QEMUMachine xenpv_machine = { | ||||
|     .desc = "Xen Para-virtualized PC", | ||||
|     .init = xen_init_pv, | ||||
|     .max_cpus = 1, | ||||
|     .default_machine_opts = "accel=xen", | ||||
| }; | ||||
| 
 | ||||
| static void xenpv_machine_init(void) | ||||
|  | ||||
							
								
								
									
										2
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								vl.c
									
									
									
									
									
								
							| @ -259,6 +259,7 @@ static NotifierList machine_init_done_notifiers = | ||||
| 
 | ||||
| static int tcg_allowed = 1; | ||||
| int kvm_allowed = 0; | ||||
| int xen_allowed = 0; | ||||
| uint32_t xen_domid; | ||||
| enum xen_mode xen_mode = XEN_EMULATE; | ||||
| 
 | ||||
| @ -1890,6 +1891,7 @@ static struct { | ||||
|     int *allowed; | ||||
| } accel_list[] = { | ||||
|     { "tcg", "tcg", tcg_available, tcg_init, &tcg_allowed }, | ||||
|     { "xen", "Xen", xen_available, xen_init, &xen_allowed }, | ||||
|     { "kvm", "KVM", kvm_available, kvm_init, &kvm_allowed }, | ||||
| }; | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										23
									
								
								xen-all.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								xen-all.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | ||||
| /*
 | ||||
|  * Copyright (C) 2010       Citrix Ltd. | ||||
|  * | ||||
|  * This work is licensed under the terms of the GNU GPL, version 2.  See | ||||
|  * the COPYING file in the top-level directory. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "hw/xen_common.h" | ||||
| #include "hw/xen_backend.h" | ||||
| 
 | ||||
| /* Initialise Xen */ | ||||
| 
 | ||||
| int xen_init(void) | ||||
| { | ||||
|     xen_xc = xen_xc_interface_open(0, 0, 0); | ||||
|     if (xen_xc == XC_HANDLER_INITIAL_VALUE) { | ||||
|         xen_be_printf(NULL, 0, "can't open xen interface\n"); | ||||
|         return -1; | ||||
|     } | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
							
								
								
									
										15
									
								
								xen-stub.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xen-stub.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | ||||
| /*
 | ||||
|  * Copyright (C) 2010       Citrix Ltd. | ||||
|  * | ||||
|  * This work is licensed under the terms of the GNU GPL, version 2.  See | ||||
|  * the COPYING file in the top-level directory. | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| #include "qemu-common.h" | ||||
| #include "hw/xen.h" | ||||
| 
 | ||||
| int xen_init(void) | ||||
| { | ||||
|     return -ENOSYS; | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anthony PERARD
						Anthony PERARD