mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 03:59:52 +00:00
* Remove redundant/obsolete x86, arm and ppc disassemblers (Capstone is better)
* Limit some Xen-related code to builds where Xen is really available * Remove hxtool-conv.pl and remove STEXI/ETEXI references from the docs * Update MinGW and OpenBSD to a more recent version in the CI * Warn user if the -vga flag is passed but no vga device is created -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmJ4s8wRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbVszRAAjIJVvJgWJUlRqap/SFV3tX89jIhDKi3+ luTBhjsDsNoFLd6ARwpykyM9dFF5sEqAHr7tjWtL7nuJIEjsnhwcUi/WUhzfkp44 mEjmFaZL9WqXE3CD5Hd3HGhXpt5830Nmza59UvLEslLzNrmrEqQVR8cPVmmNCkG9 diS+tata2NI1p5CF2ScxpxCfxNbDrhrhWN9cU76BM6hut1KH1oA4+fdn2QrSr610 Y6YWvw+NlzXt9yCW2qDSUlLJvKT4VQ8r4bZ6ab/SiYzw0aHSFK14+150oyPYl91t dN7LAyDrheZQ/R46lb76fI57kTmXRQLK0WtxK9dRJTF0hgpGgAEbMNdOOz07oQ45 oBTFbIa7+mydgmfMZ1uZGSpUI55OOb0VE/N974MJOgXCjlFGLn0YaZezBErViBLd ugILNle3IbZWDOwQv4n1fT3VB+2s+I1E3/qPzeDSbGAIkWm41g/4MHpkc5JGMb0j dquDo98YdEW/gpFUSFk2u859MA/jMlla77KsOcHpBhKOvLnQtxse+Bi5If4NiR+K NPBObMLd2j5rFtUUfDQ1fXEeAkZiITbHNR4yOiOu1tuyTm214xqMuc0/JpqWf+cr +fd/i17j2M9Btn7EZePemuyAOqLec41QfOGid320yHS75nhBCdVkDA+g7J0MlOVF tFBkhBJ0F+U= =8A+p -----END PGP SIGNATURE----- Merge tag 'pull-request-2022-05-09' of https://gitlab.com/thuth/qemu into staging * Remove redundant/obsolete x86, arm and ppc disassemblers (Capstone is better) * Limit some Xen-related code to builds where Xen is really available * Remove hxtool-conv.pl and remove STEXI/ETEXI references from the docs * Update MinGW and OpenBSD to a more recent version in the CI * Warn user if the -vga flag is passed but no vga device is created # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmJ4s8wRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbVszRAAjIJVvJgWJUlRqap/SFV3tX89jIhDKi3+ # luTBhjsDsNoFLd6ARwpykyM9dFF5sEqAHr7tjWtL7nuJIEjsnhwcUi/WUhzfkp44 # mEjmFaZL9WqXE3CD5Hd3HGhXpt5830Nmza59UvLEslLzNrmrEqQVR8cPVmmNCkG9 # diS+tata2NI1p5CF2ScxpxCfxNbDrhrhWN9cU76BM6hut1KH1oA4+fdn2QrSr610 # Y6YWvw+NlzXt9yCW2qDSUlLJvKT4VQ8r4bZ6ab/SiYzw0aHSFK14+150oyPYl91t # dN7LAyDrheZQ/R46lb76fI57kTmXRQLK0WtxK9dRJTF0hgpGgAEbMNdOOz07oQ45 # oBTFbIa7+mydgmfMZ1uZGSpUI55OOb0VE/N974MJOgXCjlFGLn0YaZezBErViBLd # ugILNle3IbZWDOwQv4n1fT3VB+2s+I1E3/qPzeDSbGAIkWm41g/4MHpkc5JGMb0j # dquDo98YdEW/gpFUSFk2u859MA/jMlla77KsOcHpBhKOvLnQtxse+Bi5If4NiR+K # NPBObMLd2j5rFtUUfDQ1fXEeAkZiITbHNR4yOiOu1tuyTm214xqMuc0/JpqWf+cr # +fd/i17j2M9Btn7EZePemuyAOqLec41QfOGid320yHS75nhBCdVkDA+g7J0MlOVF # tFBkhBJ0F+U= # =8A+p # -----END PGP SIGNATURE----- # gpg: Signature made Sun 08 May 2022 11:25:16 PM PDT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [undefined] # gpg: aka "Thomas Huth <thuth@redhat.com>" [undefined] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2022-05-09' of https://gitlab.com/thuth/qemu: docs/devel/writing-monitor-commands: Replace obsolete STEXI/ETEXI tags Warn user if the vga flag is passed but no vga device is created tests/vm: update openbsd to release 7.1 gitlab-ci: Upgrade mingw base package. cirrus/win32: upgrade mingw base packages doc: remove hxtool-conv.pl qemu-options: Limit the -xen options to x86 and arm softmmu/vl: Fence 'xenfb' if Xen support is not compiled in disas: Remove old libopcode ppc disassembler disas: Remove old libopcode i386 disassembler disas: Remove old libopcode arm disassembler Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
7e31419815
@ -12,7 +12,7 @@ windows_msys2_task:
|
||||
CIRRUS_SHELL: powershell
|
||||
MSYS: winsymlinks:nativestrict
|
||||
MSYSTEM: MINGW64
|
||||
MSYS2_URL: https://github.com/msys2/msys2-installer/releases/download/2021-04-19/msys2-base-x86_64-20210419.sfx.exe
|
||||
MSYS2_URL: https://github.com/msys2/msys2-installer/releases/download/2022-05-03/msys2-base-x86_64-20220503.sfx.exe
|
||||
MSYS2_FINGERPRINT: 0
|
||||
MSYS2_PACKAGES: "
|
||||
diffutils git grep make pkg-config sed
|
||||
|
@ -16,7 +16,7 @@
|
||||
}
|
||||
- If ( !(Test-Path -Path msys64\var\cache\msys2.exe ) ) {
|
||||
Invoke-WebRequest
|
||||
"https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-base-x86_64-20210725.sfx.exe"
|
||||
"https://github.com/msys2/msys2-installer/releases/download/2022-05-03/msys2-base-x86_64-20220503.sfx.exe"
|
||||
-outfile "msys64\var\cache\msys2.exe"
|
||||
}
|
||||
- msys64\var\cache\msys2.exe -y
|
||||
|
@ -165,7 +165,6 @@ F: tests/qtest/arm-cpu-features.c
|
||||
F: hw/arm/
|
||||
F: hw/cpu/a*mpcore.c
|
||||
F: include/hw/cpu/a*mpcore.h
|
||||
F: disas/arm.c
|
||||
F: disas/arm-a64.cc
|
||||
F: disas/libvixl/
|
||||
F: docs/system/target-arm.rst
|
||||
@ -272,7 +271,6 @@ F: target/ppc/
|
||||
F: hw/ppc/ppc.c
|
||||
F: hw/ppc/ppc_booke.c
|
||||
F: include/hw/ppc/ppc.h
|
||||
F: disas/ppc.c
|
||||
|
||||
RISC-V TCG CPUs
|
||||
M: Palmer Dabbelt <palmer@dabbelt.com>
|
||||
@ -335,7 +333,6 @@ F: target/i386/tcg/
|
||||
F: tests/tcg/i386/
|
||||
F: tests/tcg/x86_64/
|
||||
F: hw/i386/
|
||||
F: disas/i386.c
|
||||
F: docs/system/cpu-models-x86*
|
||||
T: git https://gitlab.com/ehabkost/qemu.git x86-next
|
||||
|
||||
@ -3271,13 +3268,11 @@ M: Richard Henderson <richard.henderson@linaro.org>
|
||||
S: Maintained
|
||||
L: qemu-arm@nongnu.org
|
||||
F: tcg/arm/
|
||||
F: disas/arm.c
|
||||
|
||||
i386 TCG target
|
||||
M: Richard Henderson <richard.henderson@linaro.org>
|
||||
S: Maintained
|
||||
F: tcg/i386/
|
||||
F: disas/i386.c
|
||||
|
||||
LoongArch64 TCG target
|
||||
M: WANG Xuerui <git@xen0n.name>
|
||||
@ -3297,7 +3292,6 @@ PPC TCG target
|
||||
M: Richard Henderson <richard.henderson@linaro.org>
|
||||
S: Odd Fixes
|
||||
F: tcg/ppc/
|
||||
F: disas/ppc.c
|
||||
|
||||
RISC-V TCG target
|
||||
M: Palmer Dabbelt <palmer@dabbelt.com>
|
||||
|
5
disas.c
5
disas.c
@ -153,21 +153,17 @@ static void initialize_debug_host(CPUDebug *s)
|
||||
s->info.print_insn = print_insn_tci;
|
||||
#elif defined(__i386__)
|
||||
s->info.mach = bfd_mach_i386_i386;
|
||||
s->info.print_insn = print_insn_i386;
|
||||
s->info.cap_arch = CS_ARCH_X86;
|
||||
s->info.cap_mode = CS_MODE_32;
|
||||
s->info.cap_insn_unit = 1;
|
||||
s->info.cap_insn_split = 8;
|
||||
#elif defined(__x86_64__)
|
||||
s->info.mach = bfd_mach_x86_64;
|
||||
s->info.print_insn = print_insn_i386;
|
||||
s->info.cap_arch = CS_ARCH_X86;
|
||||
s->info.cap_mode = CS_MODE_64;
|
||||
s->info.cap_insn_unit = 1;
|
||||
s->info.cap_insn_split = 8;
|
||||
#elif defined(_ARCH_PPC)
|
||||
s->info.disassembler_options = (char *)"any";
|
||||
s->info.print_insn = print_insn_ppc;
|
||||
s->info.cap_arch = CS_ARCH_PPC;
|
||||
# ifdef _ARCH_PPC64
|
||||
s->info.cap_mode = CS_MODE_64;
|
||||
@ -192,7 +188,6 @@ static void initialize_debug_host(CPUDebug *s)
|
||||
s->info.mach = bfd_mach_sparc_v9b;
|
||||
#elif defined(__arm__)
|
||||
/* TCG only generates code for arm mode. */
|
||||
s->info.print_insn = print_insn_arm;
|
||||
s->info.cap_arch = CS_ARCH_ARM;
|
||||
#elif defined(__MIPSEB__)
|
||||
s->info.print_insn = print_insn_big_mips;
|
||||
|
4012
disas/arm.c
4012
disas/arm.c
File diff suppressed because it is too large
Load Diff
6771
disas/i386.c
6771
disas/i386.c
File diff suppressed because it is too large
Load Diff
@ -4,17 +4,14 @@ subdir('libvixl')
|
||||
common_ss.add(when: 'CONFIG_ALPHA_DIS', if_true: files('alpha.c'))
|
||||
common_ss.add(when: 'CONFIG_ARM_A64_DIS', if_true: files('arm-a64.cc'))
|
||||
common_ss.add_all(when: 'CONFIG_ARM_A64_DIS', if_true: libvixl_ss)
|
||||
common_ss.add(when: 'CONFIG_ARM_DIS', if_true: files('arm.c'))
|
||||
common_ss.add(when: 'CONFIG_CRIS_DIS', if_true: files('cris.c'))
|
||||
common_ss.add(when: 'CONFIG_HEXAGON_DIS', if_true: files('hexagon.c'))
|
||||
common_ss.add(when: 'CONFIG_HPPA_DIS', if_true: files('hppa.c'))
|
||||
common_ss.add(when: 'CONFIG_I386_DIS', if_true: files('i386.c'))
|
||||
common_ss.add(when: 'CONFIG_M68K_DIS', if_true: files('m68k.c'))
|
||||
common_ss.add(when: 'CONFIG_MICROBLAZE_DIS', if_true: files('microblaze.c'))
|
||||
common_ss.add(when: 'CONFIG_MIPS_DIS', if_true: files('mips.c'))
|
||||
common_ss.add(when: 'CONFIG_NANOMIPS_DIS', if_true: files('nanomips.cpp'))
|
||||
common_ss.add(when: 'CONFIG_NIOS2_DIS', if_true: files('nios2.c'))
|
||||
common_ss.add(when: 'CONFIG_PPC_DIS', if_true: files('ppc.c'))
|
||||
common_ss.add(when: 'CONFIG_RISCV_DIS', if_true: files('riscv.c'))
|
||||
common_ss.add(when: 'CONFIG_SH4_DIS', if_true: files('sh4.c'))
|
||||
common_ss.add(when: 'CONFIG_SPARC_DIS', if_true: files('sparc.c'))
|
||||
|
5435
disas/ppc.c
5435
disas/ppc.c
File diff suppressed because it is too large
Load Diff
@ -331,13 +331,10 @@ we should add it to the hmp-commands.hx file::
|
||||
.cmd = hmp_hello_world,
|
||||
},
|
||||
|
||||
::
|
||||
|
||||
STEXI
|
||||
@item hello_world @var{message}
|
||||
@findex hello_world
|
||||
Print message to the standard output
|
||||
ETEXI
|
||||
SRST
|
||||
``hello_world`` *message*
|
||||
Print message to the standard output
|
||||
ERST
|
||||
|
||||
To test this you have to open a user monitor and issue the "hello-world"
|
||||
command. It might be instructive to check the command's documentation with
|
||||
|
@ -265,6 +265,7 @@ static void machine_hppa_init(MachineState *machine)
|
||||
|
||||
/* Graphics setup. */
|
||||
if (machine->enable_graphics && vga_interface_type != VGA_NONE) {
|
||||
vga_interface_created = true;
|
||||
dev = qdev_new("artist");
|
||||
s = SYS_BUS_DEVICE(dev);
|
||||
sysbus_realize_and_unref(s, &error_fatal);
|
||||
|
@ -166,6 +166,7 @@ bool isa_realize_and_unref(ISADevice *dev, ISABus *bus, Error **errp)
|
||||
|
||||
ISADevice *isa_vga_init(ISABus *bus)
|
||||
{
|
||||
vga_interface_created = true;
|
||||
switch (vga_interface_type) {
|
||||
case VGA_CIRRUS:
|
||||
return isa_create_simple(bus, "isa-cirrus-vga");
|
||||
|
@ -320,6 +320,7 @@ static void mips_fuloong2e_init(MachineState *machine)
|
||||
|
||||
/* GPU */
|
||||
if (vga_interface_type != VGA_NONE) {
|
||||
vga_interface_created = true;
|
||||
pci_dev = pci_new(-1, "ati-vga");
|
||||
dev = DEVICE(pci_dev);
|
||||
qdev_prop_set_uint32(dev, "vgamem_mb", 16);
|
||||
|
@ -2037,6 +2037,7 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
|
||||
|
||||
PCIDevice *pci_vga_init(PCIBus *bus)
|
||||
{
|
||||
vga_interface_created = true;
|
||||
switch (vga_interface_type) {
|
||||
case VGA_CIRRUS:
|
||||
return pci_create_simple(bus, -1, "cirrus-vga");
|
||||
|
@ -1742,6 +1742,7 @@ static void spapr_rtc_create(SpaprMachineState *spapr)
|
||||
/* Returns whether we want to use VGA or not */
|
||||
static bool spapr_vga_init(PCIBus *pci_bus, Error **errp)
|
||||
{
|
||||
vga_interface_created = true;
|
||||
switch (vga_interface_type) {
|
||||
case VGA_NONE:
|
||||
return false;
|
||||
|
@ -920,6 +920,7 @@ static void sun4m_hw_init(MachineState *machine)
|
||||
/* sbus irq 5 */
|
||||
cg3_init(hwdef->tcx_base, slavio_irq[11], 0x00100000,
|
||||
graphic_width, graphic_height, graphic_depth);
|
||||
vga_interface_created = true;
|
||||
} else {
|
||||
/* If no display specified, default to TCX */
|
||||
if (graphic_depth != 8 && graphic_depth != 24) {
|
||||
@ -935,6 +936,7 @@ static void sun4m_hw_init(MachineState *machine)
|
||||
|
||||
tcx_init(hwdef->tcx_base, slavio_irq[11], 0x00100000,
|
||||
graphic_width, graphic_height, graphic_depth);
|
||||
vga_interface_created = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -632,6 +632,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
|
||||
switch (vga_interface_type) {
|
||||
case VGA_STD:
|
||||
pci_create_simple(pci_busA, PCI_DEVFN(2, 0), "VGA");
|
||||
vga_interface_created = true;
|
||||
break;
|
||||
case VGA_NONE:
|
||||
break;
|
||||
|
@ -63,6 +63,7 @@ static void xen_init_pv(MachineState *machine)
|
||||
if (vga_interface_type == VGA_XENFB) {
|
||||
xen_config_dev_vfb(0, "vnc");
|
||||
xen_config_dev_vkbd(0);
|
||||
vga_interface_created = true;
|
||||
}
|
||||
|
||||
/* configure disks */
|
||||
|
@ -418,7 +418,6 @@ int print_insn_tci(bfd_vma, disassemble_info*);
|
||||
int print_insn_big_mips (bfd_vma, disassemble_info*);
|
||||
int print_insn_little_mips (bfd_vma, disassemble_info*);
|
||||
int print_insn_nanomips (bfd_vma, disassemble_info*);
|
||||
int print_insn_i386 (bfd_vma, disassemble_info*);
|
||||
int print_insn_m68k (bfd_vma, disassemble_info*);
|
||||
int print_insn_z8001 (bfd_vma, disassemble_info*);
|
||||
int print_insn_z8002 (bfd_vma, disassemble_info*);
|
||||
@ -429,7 +428,6 @@ int print_insn_h8500 (bfd_vma, disassemble_info*);
|
||||
int print_insn_arm_a64 (bfd_vma, disassemble_info*);
|
||||
int print_insn_alpha (bfd_vma, disassemble_info*);
|
||||
disassembler_ftype arc_get_disassembler (int, int);
|
||||
int print_insn_arm (bfd_vma, disassemble_info*);
|
||||
int print_insn_sparc (bfd_vma, disassemble_info*);
|
||||
int print_insn_big_a29k (bfd_vma, disassemble_info*);
|
||||
int print_insn_little_a29k (bfd_vma, disassemble_info*);
|
||||
@ -449,7 +447,6 @@ int print_insn_w65 (bfd_vma, disassemble_info*);
|
||||
int print_insn_d10v (bfd_vma, disassemble_info*);
|
||||
int print_insn_v850 (bfd_vma, disassemble_info*);
|
||||
int print_insn_tic30 (bfd_vma, disassemble_info*);
|
||||
int print_insn_ppc (bfd_vma, disassemble_info*);
|
||||
int print_insn_crisv32 (bfd_vma, disassemble_info*);
|
||||
int print_insn_crisv10 (bfd_vma, disassemble_info*);
|
||||
int print_insn_microblaze (bfd_vma, disassemble_info*);
|
||||
|
@ -34,6 +34,7 @@ typedef enum {
|
||||
} VGAInterfaceType;
|
||||
|
||||
extern int vga_interface_type;
|
||||
extern bool vga_interface_created;
|
||||
|
||||
extern int graphic_width;
|
||||
extern int graphic_height;
|
||||
|
@ -4186,16 +4186,17 @@ SRST
|
||||
ERST
|
||||
|
||||
DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
|
||||
"-xen-domid id specify xen guest domain id\n", QEMU_ARCH_ALL)
|
||||
"-xen-domid id specify xen guest domain id\n",
|
||||
QEMU_ARCH_ARM | QEMU_ARCH_I386)
|
||||
DEF("xen-attach", 0, QEMU_OPTION_xen_attach,
|
||||
"-xen-attach attach to existing xen domain\n"
|
||||
" libxl will use this when starting QEMU\n",
|
||||
QEMU_ARCH_ALL)
|
||||
QEMU_ARCH_ARM | QEMU_ARCH_I386)
|
||||
DEF("xen-domid-restrict", 0, QEMU_OPTION_xen_domid_restrict,
|
||||
"-xen-domid-restrict restrict set of available xen operations\n"
|
||||
" to specified domain id. (Does not affect\n"
|
||||
" xenpv machine type).\n",
|
||||
QEMU_ARCH_ALL)
|
||||
QEMU_ARCH_ARM | QEMU_ARCH_I386)
|
||||
SRST
|
||||
``-xen-domid id``
|
||||
Specify xen guest domain id (XEN only).
|
||||
|
@ -1,137 +0,0 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Script to convert .hx file STEXI/ETEXI blocks to SRST/ERST
|
||||
#
|
||||
# Copyright (C) 2020 Linaro
|
||||
#
|
||||
# This work is licensed under the terms of the GNU GPL, version 2 or
|
||||
# (at your option) any later version. See the COPYING file in the
|
||||
# top-level directory.
|
||||
|
||||
# This script was only ever intended as a one-off conversion operation.
|
||||
# Please excuse the places where it is a bit hacky.
|
||||
# Some manual intervention after the conversion is expected, as are
|
||||
# some warnings from makeinfo.
|
||||
# Warning: this script is not idempotent: don't try to run it on
|
||||
# a .hx file that already has SRST/ERST sections.
|
||||
|
||||
# Expected usage:
|
||||
# scripts/hxtool-conv.pl file.hx > file.hx.new
|
||||
|
||||
use utf8;
|
||||
|
||||
my $reading_texi = 0;
|
||||
my $texiblock = '';
|
||||
my @tables = ();
|
||||
|
||||
sub update_tables($) {
|
||||
my ($texi) = @_;
|
||||
# Update our list of open table directives: every @table
|
||||
# line in the texi fragment is added to the list, and every
|
||||
# @end table line means we remove an entry from the list.
|
||||
# If this fragment had a completely self contained table with
|
||||
# both the @table and @end table lines, this will be a no-op.
|
||||
foreach (split(/\n/, $texi)) {
|
||||
push @tables, $_ if /^\@table/;
|
||||
pop @tables if /^\@end table/;
|
||||
}
|
||||
}
|
||||
|
||||
sub only_table_directives($) {
|
||||
# Return true if every line in the fragment is a start or end table directive
|
||||
my ($texi) = @_;
|
||||
foreach (split(/\n/, $texi)) {
|
||||
return 0 unless /^\@table/ or /^\@end table/;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
sub output_rstblock($) {
|
||||
# Write the output to /tmp/frag.texi, wrapped in whatever current @table
|
||||
# lines we need.
|
||||
my ($texi) = @_;
|
||||
|
||||
# As a special case, if this fragment is only table directives and
|
||||
# nothing else, update our set of open table directives but otherwise
|
||||
# ignore it. This avoids emitting an empty SRST/ERST block.
|
||||
if (only_table_directives($texi)) {
|
||||
update_tables($texi);
|
||||
return;
|
||||
}
|
||||
|
||||
open(my $fragfh, '>', '/tmp/frag.texi');
|
||||
# First output the currently active set of open table directives
|
||||
print $fragfh join("\n", @tables);
|
||||
# Next, update our list of open table directives.
|
||||
# We need to do this before we emit the closing table directives
|
||||
# so that we emit the right number if this fragment had an
|
||||
# unbalanced set of directives.
|
||||
update_tables($texi);
|
||||
# Then emit the texi fragment itself.
|
||||
print $fragfh "\n$texi\n";
|
||||
# Finally, add the necessary closing table directives.
|
||||
print $fragfh "\@end table\n" x scalar @tables;
|
||||
close $fragfh;
|
||||
|
||||
# Now invoke makeinfo/pandoc on it and slurp the results into a string
|
||||
open(my $fh, '-|', "makeinfo --force -o - --docbook "
|
||||
. "-D 'qemu_system_x86 QEMU_SYSTEM_X86_MACRO' "
|
||||
. "-D 'qemu_system QEMU_SYSTEM_MACRO' /tmp/frag.texi "
|
||||
. " | pandoc -f docbook -t rst")
|
||||
or die "can't start makeinfo/pandoc: $!";
|
||||
|
||||
binmode $fh, ':encoding(utf8)';
|
||||
|
||||
print "SRST\n";
|
||||
|
||||
# Slurp the whole thing into a string so we can do multiline
|
||||
# string matches on it.
|
||||
my $rst = do {
|
||||
local $/ = undef;
|
||||
<$fh>;
|
||||
};
|
||||
$rst =~ s/^- − /- /gm;
|
||||
$rst =~ s/“/"/gm;
|
||||
$rst =~ s/”/"/gm;
|
||||
$rst =~ s/‘/'/gm;
|
||||
$rst =~ s/’/'/gm;
|
||||
$rst =~ s/QEMU_SYSTEM_MACRO/|qemu_system|/g;
|
||||
$rst =~ s/QEMU_SYSTEM_X86_MACRO/|qemu_system_x86|/g;
|
||||
$rst =~ s/(?=::\n\n +\|qemu)/.. parsed-literal/g;
|
||||
$rst =~ s/:\n\n::$/::/gm;
|
||||
|
||||
# Fix up the invalid reference format makeinfo/pandoc emit:
|
||||
# `Some string here <#anchorname>`__
|
||||
# should be:
|
||||
# :ref:`anchorname`
|
||||
$rst =~ s/\`[^<`]+\<\#([^>]+)\>\`__/:ref:`$1`/gm;
|
||||
print $rst;
|
||||
|
||||
close $fh or die "error on close: $!";
|
||||
print "ERST\n";
|
||||
}
|
||||
|
||||
# Read the whole .hx input file.
|
||||
while (<>) {
|
||||
# Always print the current line
|
||||
print;
|
||||
if (/STEXI/) {
|
||||
$reading_texi = 1;
|
||||
$texiblock = '';
|
||||
next;
|
||||
}
|
||||
if (/ETEXI/) {
|
||||
$reading_texi = 0;
|
||||
# dump RST version of block
|
||||
output_rstblock($texiblock);
|
||||
next;
|
||||
}
|
||||
if ($reading_texi) {
|
||||
# Accumulate the texi into a string
|
||||
# but drop findex entries as they will confuse makeinfo
|
||||
next if /^\@findex/;
|
||||
$texiblock .= $_;
|
||||
}
|
||||
}
|
||||
|
||||
die "Unexpectedly still in texi block at EOF" if $reading_texi;
|
@ -40,6 +40,7 @@ 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;
|
||||
|
@ -934,10 +934,12 @@ static const VGAInterfaceInfo vga_interfaces[VGA_TYPE_MAX] = {
|
||||
.name = "CG3 framebuffer",
|
||||
.class_names = { "cgthree" },
|
||||
},
|
||||
#ifdef CONFIG_XEN_BACKEND
|
||||
[VGA_XENFB] = {
|
||||
.opt_name = "xenfb",
|
||||
.name = "Xen paravirtualized framebuffer",
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
static bool vga_interface_available(VGAInterfaceType t)
|
||||
@ -1351,6 +1353,7 @@ static void qemu_disable_default_devices(void)
|
||||
|
||||
if (!vga_model && !default_vga) {
|
||||
vga_interface_type = VGA_DEVICE;
|
||||
vga_interface_created = true;
|
||||
}
|
||||
if (!has_defaults || machine_class->no_serial) {
|
||||
default_serial = 0;
|
||||
@ -2734,6 +2737,12 @@ static void qemu_machine_creation_done(void)
|
||||
if (foreach_device_config(DEV_GDB, gdbserver_start) < 0) {
|
||||
exit(1);
|
||||
}
|
||||
if (!vga_interface_created && !default_vga &&
|
||||
vga_interface_type != VGA_NONE) {
|
||||
warn_report("A -vga option was passed but this machine "
|
||||
"type does not use that option; "
|
||||
"No VGA device has been created");
|
||||
}
|
||||
}
|
||||
|
||||
void qmp_x_exit_preconfig(Error **errp)
|
||||
|
@ -775,12 +775,6 @@ static bool arm_cpu_virtio_is_big_endian(CPUState *cs)
|
||||
|
||||
#endif
|
||||
|
||||
static int
|
||||
print_insn_thumb1(bfd_vma pc, disassemble_info *info)
|
||||
{
|
||||
return print_insn_arm(pc | 1, info);
|
||||
}
|
||||
|
||||
static void arm_disas_set_info(CPUState *cpu, disassemble_info *info)
|
||||
{
|
||||
ARMCPU *ac = ARM_CPU(cpu);
|
||||
@ -801,12 +795,10 @@ static void arm_disas_set_info(CPUState *cpu, disassemble_info *info)
|
||||
} else {
|
||||
int cap_mode;
|
||||
if (env->thumb) {
|
||||
info->print_insn = print_insn_thumb1;
|
||||
info->cap_insn_unit = 2;
|
||||
info->cap_insn_split = 4;
|
||||
cap_mode = CS_MODE_THUMB;
|
||||
} else {
|
||||
info->print_insn = print_insn_arm;
|
||||
info->cap_insn_unit = 4;
|
||||
info->cap_insn_split = 4;
|
||||
cap_mode = CS_MODE_ARM;
|
||||
|
@ -6821,7 +6821,6 @@ static void x86_disas_set_info(CPUState *cs, disassemble_info *info)
|
||||
info->mach = (env->hflags & HF_CS64_MASK ? bfd_mach_x86_64
|
||||
: env->hflags & HF_CS32_MASK ? bfd_mach_i386_i386
|
||||
: bfd_mach_i386_i8086);
|
||||
info->print_insn = print_insn_i386;
|
||||
|
||||
info->cap_arch = CS_ARCH_X86;
|
||||
info->cap_mode = (env->hflags & HF_CS64_MASK ? CS_MODE_64
|
||||
|
@ -7309,8 +7309,6 @@ static void ppc_disas_set_info(CPUState *cs, disassemble_info *info)
|
||||
info->mach = bfd_mach_ppc;
|
||||
#endif
|
||||
}
|
||||
info->disassembler_options = (char *)"any";
|
||||
info->print_insn = print_insn_ppc;
|
||||
|
||||
info->cap_arch = CS_ARCH_PPC;
|
||||
#ifdef TARGET_PPC64
|
||||
|
@ -22,8 +22,8 @@ class OpenBSDVM(basevm.BaseVM):
|
||||
name = "openbsd"
|
||||
arch = "x86_64"
|
||||
|
||||
link = "https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/install70.iso"
|
||||
csum = "1882f9a23c9800e5dba3dbd2cf0126f552605c915433ef4c5bb672610a4ca3a4"
|
||||
link = "https://cdn.openbsd.org/pub/OpenBSD/7.1/amd64/install71.iso"
|
||||
csum = "d3a7c5b9bf890bc404304a1c96f9ee72e1d9bbcf9cc849c1133bdb0d67843396"
|
||||
size = "20G"
|
||||
pkgs = [
|
||||
# tools
|
||||
|
Loading…
Reference in New Issue
Block a user