Merge branch 'trivial-patches' of git://github.com/stefanha/qemu
* 'trivial-patches' of git://github.com/stefanha/qemu: cpu-exec: Allow "-d exec" in non-debug builds (drop CONFIG_DEBUG_EXEC) Typo, spelling and grammatical fixes linux-user: pass correct host flags to eventfd2 call target-moxie: Fix VMState registration
This commit is contained in:
commit
396a14a3be
3
configure
vendored
3
configure
vendored
@ -3471,9 +3471,6 @@ echo "ARCH=$ARCH" >> $config_host_mak
|
||||
if test "$debug_tcg" = "yes" ; then
|
||||
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$debug" = "yes" ; then
|
||||
echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
|
||||
fi
|
||||
if test "$strip_opt" = "yes" ; then
|
||||
echo "STRIP=${strip}" >> $config_host_mak
|
||||
fi
|
||||
|
15
cpu-exec.c
15
cpu-exec.c
@ -23,8 +23,6 @@
|
||||
#include "qemu/atomic.h"
|
||||
#include "sysemu/qtest.h"
|
||||
|
||||
//#define CONFIG_DEBUG_EXEC
|
||||
|
||||
bool qemu_cpu_has_work(CPUState *cpu)
|
||||
{
|
||||
return cpu_has_work(cpu);
|
||||
@ -567,7 +565,7 @@ int cpu_exec(CPUArchState *env)
|
||||
env->exception_index = EXCP_INTERRUPT;
|
||||
cpu_loop_exit(env);
|
||||
}
|
||||
#if defined(DEBUG_DISAS) || defined(CONFIG_DEBUG_EXEC)
|
||||
#if defined(DEBUG_DISAS)
|
||||
if (qemu_loglevel_mask(CPU_LOG_TB_CPU)) {
|
||||
/* restore flags in standard format */
|
||||
#if defined(TARGET_I386)
|
||||
@ -582,7 +580,7 @@ int cpu_exec(CPUArchState *env)
|
||||
log_cpu_state(env, 0);
|
||||
#endif
|
||||
}
|
||||
#endif /* DEBUG_DISAS || CONFIG_DEBUG_EXEC */
|
||||
#endif /* DEBUG_DISAS */
|
||||
spin_lock(&tcg_ctx.tb_ctx.tb_lock);
|
||||
tb = tb_find_fast(env);
|
||||
/* Note: we do it here to avoid a gcc bug on Mac OS X when
|
||||
@ -594,11 +592,10 @@ int cpu_exec(CPUArchState *env)
|
||||
next_tb = 0;
|
||||
tcg_ctx.tb_ctx.tb_invalidated_flag = 0;
|
||||
}
|
||||
#ifdef CONFIG_DEBUG_EXEC
|
||||
qemu_log_mask(CPU_LOG_EXEC, "Trace %p [" TARGET_FMT_lx "] %s\n",
|
||||
tb->tc_ptr, tb->pc,
|
||||
lookup_symbol(tb->pc));
|
||||
#endif
|
||||
if (qemu_loglevel_mask(CPU_LOG_EXEC)) {
|
||||
qemu_log("Trace %p [" TARGET_FMT_lx "] %s\n",
|
||||
tb->tc_ptr, tb->pc, lookup_symbol(tb->pc));
|
||||
}
|
||||
/* see if we can patch the calling TB. When the TB
|
||||
spans two pages, we cannot safely do a direct
|
||||
jump. */
|
||||
|
@ -9,7 +9,7 @@ still be bootable.
|
||||
|
||||
== Example ==
|
||||
|
||||
Lets assume we have QEMU machine with two NICs (virtio, e1000) and two
|
||||
Let's assume we have a QEMU machine with two NICs (virtio, e1000) and two
|
||||
disks (IDE, virtio):
|
||||
|
||||
qemu -drive file=disk1.img,if=none,id=disk1
|
||||
@ -20,7 +20,7 @@ qemu -drive file=disk1.img,if=none,id=disk1
|
||||
-netdev type=user,id=net1 -device e1000,netdev=net1,bootindex=1
|
||||
|
||||
Given the command above, firmware should try to boot from the e1000 NIC
|
||||
first. If this fails, it should try the virtio NIC next, if this fails
|
||||
first. If this fails, it should try the virtio NIC next; if this fails
|
||||
too, it should try the virtio disk, and then the IDE disk.
|
||||
|
||||
== Limitations ==
|
||||
@ -28,7 +28,7 @@ too, it should try the virtio disk, and then the IDE disk.
|
||||
1. Some firmware has limitations on which devices can be considered for
|
||||
booting. For instance, the PC BIOS boot specification allows only one
|
||||
disk to be bootable. If boot from disk fails for some reason, the BIOS
|
||||
won't retry booting from other disk. It still can try to boot from
|
||||
won't retry booting from other disk. It can still try to boot from
|
||||
floppy or net, though.
|
||||
|
||||
2. Sometimes, firmware cannot map the device path QEMU wants firmware to
|
||||
@ -36,8 +36,8 @@ boot from to a boot method. It doesn't happen for devices the firmware
|
||||
can natively boot from, but if firmware relies on an option ROM for
|
||||
booting, and the same option ROM is used for booting from more then one
|
||||
device, the firmware may not be able to ask the option ROM to boot from
|
||||
a particular device reliably. For instance with PC BIOS, if a SCSI HBA
|
||||
a particular device reliably. For instance with the PC BIOS, if a SCSI HBA
|
||||
has three bootable devices target1, target3, target5 connected to it,
|
||||
the option ROM will have a boot method for each of them, but it is not
|
||||
possible to map from boot method back to a specific target. This is a
|
||||
shortcoming of PC BIOS boot specification.
|
||||
shortcoming of the PC BIOS boot specification.
|
||||
|
@ -24,7 +24,7 @@ information see the specification:
|
||||
Revision 1.1
|
||||
April 22rd, 2005
|
||||
|
||||
Smartcard are used for authentication, single sign on, decryption in
|
||||
Smartcards are used for authentication, single sign on, decryption in
|
||||
public/private schemes and digital signatures. A smartcard reader on the client
|
||||
cannot be used on a guest with simple usb passthrough since it will then not be
|
||||
available on the client, possibly locking the computer when it is "removed". On
|
||||
|
@ -494,10 +494,10 @@ static void virtio_blk_update_config(VirtIODevice *vdev, uint8_t *config)
|
||||
blkcfg.heads = s->conf->heads;
|
||||
/*
|
||||
* We must ensure that the block device capacity is a multiple of
|
||||
* the logical block size. If that is not the case, lets use
|
||||
* the logical block size. If that is not the case, let's use
|
||||
* sector_mask to adopt the geometry to have a correct picture.
|
||||
* For those devices where the capacity is ok for the given geometry
|
||||
* we dont touch the sector value of the geometry, since some devices
|
||||
* we don't touch the sector value of the geometry, since some devices
|
||||
* (like s390 dasd) need a specific value. Here the capacity is already
|
||||
* cyls*heads*secs*blk_size and the sector value is not block size
|
||||
* divided by 512 - instead it is the amount of blk_size blocks
|
||||
|
@ -172,7 +172,7 @@ static uint32_t nvic_readl(nvic_state *s, uint32_t offset)
|
||||
return 10000;
|
||||
case 0xd00: /* CPUID Base. */
|
||||
return cpu_single_env->cp15.c0_cpuid;
|
||||
case 0xd04: /* Interrypt Control State. */
|
||||
case 0xd04: /* Interrupt Control State. */
|
||||
/* VECTACTIVE */
|
||||
val = s->gic.running_irq[0];
|
||||
if (val == 1023) {
|
||||
|
@ -76,7 +76,7 @@ static void ccw_init(QEMUMachineInitArgs *args)
|
||||
}
|
||||
my_ram_size = my_ram_size >> (20 + shift) << (20 + shift);
|
||||
|
||||
/* lets propagate the changed ram size into the global variable. */
|
||||
/* let's propagate the changed ram size into the global variable. */
|
||||
ram_size = my_ram_size;
|
||||
|
||||
/* get a BUS */
|
||||
|
@ -240,7 +240,7 @@ static void s390_init(QEMUMachineInitArgs *args)
|
||||
}
|
||||
my_ram_size = my_ram_size >> (20 + shift) << (20 + shift);
|
||||
|
||||
/* lets propagate the changed ram size into the global variable. */
|
||||
/* let's propagate the changed ram size into the global variable. */
|
||||
ram_size = my_ram_size;
|
||||
|
||||
/* get a BUS */
|
||||
|
@ -308,7 +308,7 @@ static void sd_set_csd(SDState *sd, uint64_t size)
|
||||
sd->csd[13] = 0x40;
|
||||
sd->csd[14] = 0x00;
|
||||
sd->csd[15] = 0x00;
|
||||
sd->ocr |= 1 << 30; /* High Capacity SD Memort Card */
|
||||
sd->ocr |= 1 << 30; /* High Capacity SD Memory Card */
|
||||
}
|
||||
}
|
||||
|
||||
@ -1541,7 +1541,7 @@ void sd_write_data(SDState *sd, uint8_t value)
|
||||
|
||||
case 25: /* CMD25: WRITE_MULTIPLE_BLOCK */
|
||||
if (sd->data_offset == 0) {
|
||||
/* Start of the block - lets check the address is valid */
|
||||
/* Start of the block - let's check the address is valid */
|
||||
if (sd->data_start + sd->blk_len > sd->size) {
|
||||
sd->card_status |= ADDRESS_ERROR;
|
||||
break;
|
||||
|
@ -8823,8 +8823,17 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
||||
#endif
|
||||
#if defined(TARGET_NR_eventfd2)
|
||||
case TARGET_NR_eventfd2:
|
||||
ret = get_errno(eventfd(arg1, arg2));
|
||||
{
|
||||
int host_flags = arg2 & (~(TARGET_O_NONBLOCK | TARGET_O_CLOEXEC));
|
||||
if (arg2 & TARGET_O_NONBLOCK) {
|
||||
host_flags |= O_NONBLOCK;
|
||||
}
|
||||
if (arg2 & TARGET_O_CLOEXEC) {
|
||||
host_flags |= O_CLOEXEC;
|
||||
}
|
||||
ret = get_errno(eventfd(arg1, host_flags));
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#endif /* CONFIG_EVENTFD */
|
||||
#if defined(CONFIG_FALLOCATE) && defined(TARGET_NR_fallocate)
|
||||
|
@ -114,7 +114,7 @@ unsigned int mmu_translate(struct microblaze_mmu *mmu,
|
||||
tlb_ex = d & TLB_EX;
|
||||
tlb_wr = d & TLB_WR;
|
||||
|
||||
/* Now lets see if there is a zone that overrides the protbits. */
|
||||
/* Now let's see if there is a zone that overrides the protbits. */
|
||||
tlb_zsel = (d >> 4) & 0xf;
|
||||
t0 = mmu->regs[MMU_R_ZPR] >> (30 - (tlb_zsel * 2));
|
||||
t0 &= 0x3;
|
||||
|
@ -97,7 +97,7 @@ static void moxie_cpu_class_init(ObjectClass *oc, void *data)
|
||||
|
||||
cc->class_by_name = moxie_cpu_class_by_name;
|
||||
|
||||
dc->vmsd = &vmstate_moxie_cpu;
|
||||
cpu_class_set_vmsd(cc, &vmstate_moxie_cpu);
|
||||
cc->do_interrupt = moxie_cpu_do_interrupt;
|
||||
}
|
||||
|
||||
|
@ -28,8 +28,6 @@
|
||||
|
||||
#define TARGET_HAS_ICE 1
|
||||
|
||||
#define CPU_SAVE_VERSION 1
|
||||
|
||||
#define ELF_MACHINE 0xFEED /* EM_MOXIE */
|
||||
|
||||
#define MOXIE_EX_DIV0 0
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
const VMStateDescription vmstate_moxie_cpu = {
|
||||
.name = "cpu",
|
||||
.version_id = CPU_SAVE_VERSION,
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
@ -16,13 +16,3 @@ const VMStateDescription vmstate_moxie_cpu = {
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
||||
void cpu_save(QEMUFile *f, void *opaque)
|
||||
{
|
||||
vmstate_save_state(f, &vmstate_moxie_cpu, opaque);
|
||||
}
|
||||
|
||||
int cpu_load(QEMUFile *f, void *opaque, int version_id)
|
||||
{
|
||||
return vmstate_load_state(f, &vmstate_moxie_cpu, opaque, version_id);
|
||||
}
|
||||
|
@ -344,7 +344,7 @@ uint64_t HELPER(srst)(CPUS390XState *env, uint64_t r0, uint64_t end,
|
||||
env->retxl = str;
|
||||
|
||||
/* Lest we fail to service interrupts in a timely manner, limit the
|
||||
amount of work we're willing to do. For now, lets cap at 8k. */
|
||||
amount of work we're willing to do. For now, let's cap at 8k. */
|
||||
for (len = 0; len < 0x2000; ++len) {
|
||||
if (str + len == end) {
|
||||
/* Character not found. R1 & R2 are unmodified. */
|
||||
@ -375,7 +375,7 @@ uint64_t HELPER(clst)(CPUS390XState *env, uint64_t c, uint64_t s1, uint64_t s2)
|
||||
s2 = fix_address(env, s2);
|
||||
|
||||
/* Lest we fail to service interrupts in a timely manner, limit the
|
||||
amount of work we're willing to do. For now, lets cap at 8k. */
|
||||
amount of work we're willing to do. For now, let's cap at 8k. */
|
||||
for (len = 0; len < 0x2000; ++len) {
|
||||
uint8_t v1 = cpu_ldub_data(env, s1 + len);
|
||||
uint8_t v2 = cpu_ldub_data(env, s2 + len);
|
||||
@ -424,7 +424,7 @@ uint64_t HELPER(mvst)(CPUS390XState *env, uint64_t c, uint64_t d, uint64_t s)
|
||||
s = fix_address(env, s);
|
||||
|
||||
/* Lest we fail to service interrupts in a timely manner, limit the
|
||||
amount of work we're willing to do. For now, lets cap at 8k. */
|
||||
amount of work we're willing to do. For now, let's cap at 8k. */
|
||||
for (len = 0; len < 0x2000; ++len) {
|
||||
uint8_t v = cpu_ldub_data(env, s + len);
|
||||
cpu_stb_data(env, d + len, v);
|
||||
@ -708,7 +708,7 @@ uint64_t HELPER(cksm)(CPUS390XState *env, uint64_t r1,
|
||||
uint64_t cksm = (uint32_t)r1;
|
||||
|
||||
/* Lest we fail to service interrupts in a timely manner, limit the
|
||||
amount of work we're willing to do. For now, lets cap at 8k. */
|
||||
amount of work we're willing to do. For now, let's cap at 8k. */
|
||||
max_len = (src_len > 0x2000 ? 0x2000 : src_len);
|
||||
|
||||
/* Process full words as available. */
|
||||
|
Loading…
Reference in New Issue
Block a user