mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00

Move the existing code using libxengnttab to xen-operations.c and allow the operations to be redirected so that we can add emulation of grant table mapping for backend drivers. In emulation, mapping more than one grant ref to be virtually contiguous would be fairly difficult. The best way to do it might be to make the ram_block mappings actually backed by a file (shmem or a deleted file, perhaps) so that we can have multiple *shared* mappings of it. But that would be fairly intrusive. Making the backend drivers cope with page *lists* instead of expecting the mapping to be contiguous is also non-trivial, since some structures would actually *cross* page boundaries (e.g. the 32-bit blkif responses which are 12 bytes). So for now, we'll support only single-page mappings in emulation. Add a XEN_GNTTAB_OP_FEATURE_MAP_MULTIPLE flag to indicate that the native Xen implementation *does* support multi-page maps, and a helper function to query it. Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Reviewed-by: Paul Durrant <paul@xen.org>
69 lines
2.4 KiB
C
69 lines
2.4 KiB
C
/*
|
|
* Global variables that (mostly) should not exist
|
|
*
|
|
* Copyright (c) 2003-2020 QEMU contributors
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "exec/cpu-common.h"
|
|
#include "hw/display/vga.h"
|
|
#include "hw/loader.h"
|
|
#include "hw/xen/xen.h"
|
|
#include "net/net.h"
|
|
#include "sysemu/cpus.h"
|
|
#include "sysemu/sysemu.h"
|
|
|
|
enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
|
|
int display_opengl;
|
|
const char* keyboard_layout;
|
|
bool enable_mlock;
|
|
bool enable_cpu_pm;
|
|
int nb_nics;
|
|
NICInfo nd_table[MAX_NICS];
|
|
int autostart = 1;
|
|
int vga_interface_type = VGA_NONE;
|
|
bool vga_interface_created;
|
|
Chardev *parallel_hds[MAX_PARALLEL_PORTS];
|
|
int win2k_install_hack;
|
|
int singlestep;
|
|
int fd_bootchk = 1;
|
|
int graphic_rotate;
|
|
QEMUOptionRom option_rom[MAX_OPTION_ROMS];
|
|
int nb_option_roms;
|
|
int old_param;
|
|
const char *qemu_name;
|
|
unsigned int nb_prom_envs;
|
|
const char *prom_envs[MAX_PROM_ENVS];
|
|
uint8_t *boot_splash_filedata;
|
|
int only_migratable; /* turn it off unless user states otherwise */
|
|
int icount_align_option;
|
|
|
|
/* The bytes in qemu_uuid are in the order specified by RFC4122, _not_ in the
|
|
* little-endian "wire format" described in the SMBIOS 2.6 specification.
|
|
*/
|
|
QemuUUID qemu_uuid;
|
|
bool qemu_uuid_set;
|
|
|
|
uint32_t xen_domid;
|
|
enum xen_mode xen_mode = XEN_DISABLED;
|
|
bool xen_domid_restrict;
|
|
struct evtchn_backend_ops *xen_evtchn_ops;
|
|
struct gnttab_backend_ops *xen_gnttab_ops;
|