mirror of https://github.com/xqemu/xqemu.git
trivial patches for 2016-05-18
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJXPFpbAAoJEL7lnXSkw9fbxXMH/jB1u7jMlB3Amxjw4qaQ60xq UlSiFtwXAcS1ifbef8coMnUWE+dAR24anmHpvQYeh87SeppznV3vEd8rQhOZdDn4 mtNTN88iP4YcHj9uYkvt6AejzBEOl/6dKQvT8SAYqIOHiduyuRAAeI1ZxFE6T9sg rlFDnG7dhcUcLJqRcv2kR7NVunxI0Tro6n/Aij+vCpbeZjryYkSaY9yVYuoPl9sk NCxdoUb3ogv38oJFFScHChM9/IiwZBkK49/c651yecHqT77WQF0jK4S8/nyJocnX tS4BXJsfDqARiqRmbhv6K2w3KTpAfzLjIjE5QxegG/a1gVFkQt4R1VJ91LbqWs4= =PzAP -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2016-05-18' into staging trivial patches for 2016-05-18 # gpg: Signature made Wed 18 May 2016 13:04:43 BST using RSA key ID A4C3D7DB # gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>" # gpg: aka "Michael Tokarev <mjt@corpit.ru>" # gpg: aka "Michael Tokarev <mjt@debian.org>" * remotes/mjt/tags/pull-trivial-patches-2016-05-18: Fix some typos found by codespell 9p: drop unused declaration from coth.h smbios: fix typo accel: make configure_accelerator return void configure: Use uniform description for devel packages ipack: Update e-mail address util: fix comment typos qdict: fix unbounded stack warning for qdict_array_entries Fix typo in variable name (found and fixed by codespell) vl: fix comment about when parsing cpu definitions loader: fix potential memory leak remove comment for nonexistent structure member s390: remove misleading comment Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
8ec4fe0a4b
4
accel.c
4
accel.c
|
@ -77,7 +77,7 @@ static int accel_init_machine(AccelClass *acc, MachineState *ms)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int configure_accelerator(MachineState *ms)
|
void configure_accelerator(MachineState *ms)
|
||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
char buf[10];
|
char buf[10];
|
||||||
|
@ -128,8 +128,6 @@ int configure_accelerator(MachineState *ms)
|
||||||
if (init_failed) {
|
if (init_failed) {
|
||||||
fprintf(stderr, "Back to %s accelerator.\n", acc->name);
|
fprintf(stderr, "Back to %s accelerator.\n", acc->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return !accel_initialised;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,7 @@ f_sample *mixeng_clip[2][2][2][3] = {
|
||||||
* August 21, 1998
|
* August 21, 1998
|
||||||
* Copyright 1998 Fabrice Bellard.
|
* Copyright 1998 Fabrice Bellard.
|
||||||
*
|
*
|
||||||
* [Rewrote completly the code of Lance Norskog And Sundry
|
* [Rewrote completely the code of Lance Norskog And Sundry
|
||||||
* Contributors with a more efficient algorithm.]
|
* Contributors with a more efficient algorithm.]
|
||||||
*
|
*
|
||||||
* This source code is freely redistributable and may be used for
|
* This source code is freely redistributable and may be used for
|
||||||
|
|
|
@ -898,7 +898,7 @@ static struct audio_option oss_options[] = {
|
||||||
.name = "EXCLUSIVE",
|
.name = "EXCLUSIVE",
|
||||||
.tag = AUD_OPT_BOOL,
|
.tag = AUD_OPT_BOOL,
|
||||||
.valp = &glob_conf.exclusive,
|
.valp = &glob_conf.exclusive,
|
||||||
.descr = "Open device in exclusive mode (vmix wont work)"
|
.descr = "Open device in exclusive mode (vmix won't work)"
|
||||||
},
|
},
|
||||||
#ifdef USE_DSP_POLICY
|
#ifdef USE_DSP_POLICY
|
||||||
{
|
{
|
||||||
|
|
|
@ -4611,7 +4611,7 @@ if test "$softmmu" = yes ; then
|
||||||
tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
|
tools="$tools fsdev/virtfs-proxy-helper\$(EXESUF)"
|
||||||
else
|
else
|
||||||
if test "$virtfs" = yes; then
|
if test "$virtfs" = yes; then
|
||||||
error_exit "VirtFS is supported only on Linux and requires libcap-devel and libattr-devel"
|
error_exit "VirtFS is supported only on Linux and requires libcap devel and libattr devel"
|
||||||
fi
|
fi
|
||||||
virtfs=no
|
virtfs=no
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
* unix socket. For each client, the server will create some eventfd
|
* unix socket. For each client, the server will create some eventfd
|
||||||
* (see EVENTFD(2)), one per vector. These fd are transmitted to all
|
* (see EVENTFD(2)), one per vector. These fd are transmitted to all
|
||||||
* clients using the SCM_RIGHTS cmsg message. Therefore, each client is
|
* clients using the SCM_RIGHTS cmsg message. Therefore, each client is
|
||||||
* able to send a notification to another client without beeing
|
* able to send a notification to another client without being
|
||||||
* "profixied" by the server.
|
* "profixied" by the server.
|
||||||
*
|
*
|
||||||
* We use this mechanism to send interruptions between guests.
|
* We use this mechanism to send interruptions between guests.
|
||||||
|
|
|
@ -303,7 +303,7 @@ Endianness
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Device registers are hard-coded to little-endian (LE). The driver should
|
Device registers are hard-coded to little-endian (LE). The driver should
|
||||||
convert to/from host endianess to LE for device register accesses.
|
convert to/from host endianness to LE for device register accesses.
|
||||||
|
|
||||||
Descriptors are LE. Descriptor buffer TLVs will have LE type and length
|
Descriptors are LE. Descriptor buffer TLVs will have LE type and length
|
||||||
fields, but the value field can either be LE or network-byte-order, depending
|
fields, but the value field can either be LE or network-byte-order, depending
|
||||||
|
|
|
@ -10,7 +10,7 @@ Introduction
|
||||||
------------
|
------------
|
||||||
QEMU includes a throttling module that can be used to set limits to
|
QEMU includes a throttling module that can be used to set limits to
|
||||||
I/O operations. The code itself is generic and independent of the I/O
|
I/O operations. The code itself is generic and independent of the I/O
|
||||||
units, but it is currenly used to limit the number of bytes per second
|
units, but it is currently used to limit the number of bytes per second
|
||||||
and operations per second (IOPS) when performing disk I/O.
|
and operations per second (IOPS) when performing disk I/O.
|
||||||
|
|
||||||
This document explains how to use the throttling code in QEMU, and how
|
This document explains how to use the throttling code in QEMU, and how
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
extern void co_run_in_worker_bh(void *);
|
extern void co_run_in_worker_bh(void *);
|
||||||
extern int v9fs_init_worker_threads(void);
|
|
||||||
extern int v9fs_co_readlink(V9fsPDU *, V9fsPath *, V9fsString *);
|
extern int v9fs_co_readlink(V9fsPDU *, V9fsPath *, V9fsString *);
|
||||||
extern int v9fs_co_readdir_r(V9fsPDU *, V9fsFidState *,
|
extern int v9fs_co_readdir_r(V9fsPDU *, V9fsFidState *,
|
||||||
struct dirent *, struct dirent **result);
|
struct dirent *, struct dirent **result);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* QEMU GE IP-Octal 232 IndustryPack emulation
|
* QEMU GE IP-Octal 232 IndustryPack emulation
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Igalia, S.L.
|
* Copyright (C) 2012 Igalia, S.L.
|
||||||
* Author: Alberto Garcia <agarcia@igalia.com>
|
* Author: Alberto Garcia <berto@igalia.com>
|
||||||
*
|
*
|
||||||
* This code is licensed under the GNU GPL v2 or (at your option) any
|
* This code is licensed under the GNU GPL v2 or (at your option) any
|
||||||
* later version.
|
* later version.
|
||||||
|
|
|
@ -914,10 +914,16 @@ int rom_add_file(const char *file, const char *fw_dir,
|
||||||
err:
|
err:
|
||||||
if (fd != -1)
|
if (fd != -1)
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
g_free(rom->data);
|
g_free(rom->data);
|
||||||
g_free(rom->path);
|
g_free(rom->path);
|
||||||
g_free(rom->name);
|
g_free(rom->name);
|
||||||
|
if (fw_dir) {
|
||||||
|
g_free(rom->fw_dir);
|
||||||
|
g_free(rom->fw_file);
|
||||||
|
}
|
||||||
g_free(rom);
|
g_free(rom);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -247,7 +247,7 @@ static void imx_i2c_write(void *opaque, hwaddr offset,
|
||||||
if (s->address == ADDR_RESET) {
|
if (s->address == ADDR_RESET) {
|
||||||
if (i2c_start_transfer(s->bus, extract32(s->i2dr_write, 1, 7),
|
if (i2c_start_transfer(s->bus, extract32(s->i2dr_write, 1, 7),
|
||||||
extract32(s->i2dr_write, 0, 1))) {
|
extract32(s->i2dr_write, 0, 1))) {
|
||||||
/* if non zero is returned, the adress is not valid */
|
/* if non zero is returned, the address is not valid */
|
||||||
s->i2sr |= I2SR_RXAK;
|
s->i2sr |= I2SR_RXAK;
|
||||||
} else {
|
} else {
|
||||||
s->address = s->i2dr_write;
|
s->address = s->i2dr_write;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* QEMU IndustryPack emulation
|
* QEMU IndustryPack emulation
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Igalia, S.L.
|
* Copyright (C) 2012 Igalia, S.L.
|
||||||
* Author: Alberto Garcia <agarcia@igalia.com>
|
* Author: Alberto Garcia <berto@igalia.com>
|
||||||
*
|
*
|
||||||
* This code is licensed under the GNU GPL v2 or (at your option) any
|
* This code is licensed under the GNU GPL v2 or (at your option) any
|
||||||
* later version.
|
* later version.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* QEMU TEWS TPCI200 IndustryPack carrier emulation
|
* QEMU TEWS TPCI200 IndustryPack carrier emulation
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Igalia, S.L.
|
* Copyright (C) 2012 Igalia, S.L.
|
||||||
* Author: Alberto Garcia <agarcia@igalia.com>
|
* Author: Alberto Garcia <berto@igalia.com>
|
||||||
*
|
*
|
||||||
* This code is licensed under the GNU GPL v2 or (at your option) any
|
* This code is licensed under the GNU GPL v2 or (at your option) any
|
||||||
* later version.
|
* later version.
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#define VMXNET3_MSIX_BAR_SIZE 0x2000
|
#define VMXNET3_MSIX_BAR_SIZE 0x2000
|
||||||
#define MIN_BUF_SIZE 60
|
#define MIN_BUF_SIZE 60
|
||||||
|
|
||||||
/* Compatability flags for migration */
|
/* Compatibility flags for migration */
|
||||||
#define VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS_BIT 0
|
#define VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS_BIT 0
|
||||||
#define VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS \
|
#define VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS \
|
||||||
(1 << VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS_BIT)
|
(1 << VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS_BIT)
|
||||||
|
@ -341,7 +341,7 @@ typedef struct {
|
||||||
uint32_t mcast_list_len;
|
uint32_t mcast_list_len;
|
||||||
uint32_t mcast_list_buff_size; /* needed for live migration. */
|
uint32_t mcast_list_buff_size; /* needed for live migration. */
|
||||||
|
|
||||||
/* Compatability flags for migration */
|
/* Compatibility flags for migration */
|
||||||
uint32_t compat_flags;
|
uint32_t compat_flags;
|
||||||
} VMXNET3State;
|
} VMXNET3State;
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
*
|
*
|
||||||
* Setting this flag to false will remove MSI/MSI-X capability from all devices.
|
* Setting this flag to false will remove MSI/MSI-X capability from all devices.
|
||||||
*
|
*
|
||||||
* It is preferrable for controllers to set this to true (non-broken) even if
|
* It is preferable for controllers to set this to true (non-broken) even if
|
||||||
* they do not actually support MSI/MSI-X: guests normally probe the controller
|
* they do not actually support MSI/MSI-X: guests normally probe the controller
|
||||||
* type and do not attempt to enable MSI/MSI-X with interrupt controllers not
|
* type and do not attempt to enable MSI/MSI-X with interrupt controllers not
|
||||||
* supporting such, so removing the capability is not required, and
|
* supporting such, so removing the capability is not required, and
|
||||||
|
|
|
@ -116,7 +116,7 @@ pcibus_t pci_bridge_get_base(const PCIDevice *bridge, uint8_t type)
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* accessor funciton to get bridge filtering limit */
|
/* accessor function to get bridge filtering limit */
|
||||||
pcibus_t pci_bridge_get_limit(const PCIDevice *bridge, uint8_t type)
|
pcibus_t pci_bridge_get_limit(const PCIDevice *bridge, uint8_t type)
|
||||||
{
|
{
|
||||||
pcibus_t limit;
|
pcibus_t limit;
|
||||||
|
|
|
@ -129,7 +129,7 @@ static void s390_ipl_realize(DeviceState *dev, Error **errp)
|
||||||
/* Adjust ELF start address to final location */
|
/* Adjust ELF start address to final location */
|
||||||
ipl->bios_start_addr += fwbase;
|
ipl->bios_start_addr += fwbase;
|
||||||
} else {
|
} else {
|
||||||
/* Try to load non-ELF file (e.g. s390-ccw.img) */
|
/* Try to load non-ELF file */
|
||||||
bios_size = load_image_targphys(bios_filename, ZIPL_IMAGE_START,
|
bios_size = load_image_targphys(bios_filename, ZIPL_IMAGE_START,
|
||||||
4096);
|
4096);
|
||||||
ipl->bios_start_addr = ZIPL_IMAGE_START;
|
ipl->bios_start_addr = ZIPL_IMAGE_START;
|
||||||
|
|
|
@ -698,7 +698,7 @@ static void vscsi_inquiry_no_target(VSCSIState *s, vscsi_req *req)
|
||||||
uint8_t resp_data[36];
|
uint8_t resp_data[36];
|
||||||
int rc, len, alen;
|
int rc, len, alen;
|
||||||
|
|
||||||
/* We dont do EVPD. Also check that page_code is 0 */
|
/* We don't do EVPD. Also check that page_code is 0 */
|
||||||
if ((cdb[1] & 0x01) || cdb[2] != 0) {
|
if ((cdb[1] & 0x01) || cdb[2] != 0) {
|
||||||
/* Send INVALID FIELD IN CDB */
|
/* Send INVALID FIELD IN CDB */
|
||||||
vscsi_makeup_sense(s, req, ILLEGAL_REQUEST, 0x24, 0);
|
vscsi_makeup_sense(s, req, ILLEGAL_REQUEST, 0x24, 0);
|
||||||
|
|
|
@ -63,7 +63,7 @@ typedef struct PVSCSIClass {
|
||||||
#define PVSCSI_DEVICE_GET_CLASS(obj) \
|
#define PVSCSI_DEVICE_GET_CLASS(obj) \
|
||||||
OBJECT_GET_CLASS(PVSCSIClass, (obj), TYPE_PVSCSI)
|
OBJECT_GET_CLASS(PVSCSIClass, (obj), TYPE_PVSCSI)
|
||||||
|
|
||||||
/* Compatability flags for migration */
|
/* Compatibility flags for migration */
|
||||||
#define PVSCSI_COMPAT_OLD_PCI_CONFIGURATION_BIT 0
|
#define PVSCSI_COMPAT_OLD_PCI_CONFIGURATION_BIT 0
|
||||||
#define PVSCSI_COMPAT_OLD_PCI_CONFIGURATION \
|
#define PVSCSI_COMPAT_OLD_PCI_CONFIGURATION \
|
||||||
(1 << PVSCSI_COMPAT_OLD_PCI_CONFIGURATION_BIT)
|
(1 << PVSCSI_COMPAT_OLD_PCI_CONFIGURATION_BIT)
|
||||||
|
|
|
@ -184,7 +184,7 @@ static void a9_gtimer_write(void *opaque, hwaddr addr, uint64_t value,
|
||||||
case R_COUNTER_LO:
|
case R_COUNTER_LO:
|
||||||
/*
|
/*
|
||||||
* Keep it simple - ARM docco explicitly says to disable timer before
|
* Keep it simple - ARM docco explicitly says to disable timer before
|
||||||
* modding it, so dont bother trying to do all the difficult on the fly
|
* modding it, so don't bother trying to do all the difficult on the fly
|
||||||
* timer modifications - (if they even work in real hardware??).
|
* timer modifications - (if they even work in real hardware??).
|
||||||
*/
|
*/
|
||||||
if (s->control & R_CONTROL_TIMER_ENABLE) {
|
if (s->control & R_CONTROL_TIMER_ENABLE) {
|
||||||
|
|
|
@ -187,7 +187,7 @@ static void aspeed_timer_set_value(AspeedTimerCtrlState *s, int timer, int reg,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Control register operations are broken out into helpers that can be
|
/* Control register operations are broken out into helpers that can be
|
||||||
* explictly called on aspeed_timer_reset(), but also from
|
* explicitly called on aspeed_timer_reset(), but also from
|
||||||
* aspeed_timer_ctrl_op().
|
* aspeed_timer_ctrl_op().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -380,7 +380,7 @@ static void aspeed_timer_reset(DeviceState *dev)
|
||||||
|
|
||||||
for (i = 0; i < ASPEED_TIMER_NR_TIMERS; i++) {
|
for (i = 0; i < ASPEED_TIMER_NR_TIMERS; i++) {
|
||||||
AspeedTimer *t = &s->timers[i];
|
AspeedTimer *t = &s->timers[i];
|
||||||
/* Explictly call helpers to avoid any conditional behaviour through
|
/* Explicitly call helpers to avoid any conditional behaviour through
|
||||||
* aspeed_timer_set_ctrl().
|
* aspeed_timer_set_ctrl().
|
||||||
*/
|
*/
|
||||||
aspeed_timer_ctrl_enable(t, false);
|
aspeed_timer_ctrl_enable(t, false);
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
* Fill @buf with @buflen bytes of cryptographically strong
|
* Fill @buf with @buflen bytes of cryptographically strong
|
||||||
* random data
|
* random data
|
||||||
*
|
*
|
||||||
* Returns 0 on sucess, -1 on error
|
* Returns 0 on success, -1 on error
|
||||||
*/
|
*/
|
||||||
int qcrypto_random_bytes(uint8_t *buf,
|
int qcrypto_random_bytes(uint8_t *buf,
|
||||||
size_t buflen,
|
size_t buflen,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* QEMU IndustryPack emulation
|
* QEMU IndustryPack emulation
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Igalia, S.L.
|
* Copyright (C) 2012 Igalia, S.L.
|
||||||
* Author: Alberto Garcia <agarcia@igalia.com>
|
* Author: Alberto Garcia <berto@igalia.com>
|
||||||
*
|
*
|
||||||
* This code is licensed under the GNU GPL v2 or (at your option) any
|
* This code is licensed under the GNU GPL v2 or (at your option) any
|
||||||
* later version.
|
* later version.
|
||||||
|
|
|
@ -33,7 +33,7 @@ typedef enum SmbiosEntryPointType {
|
||||||
|
|
||||||
/* SMBIOS Entry Point
|
/* SMBIOS Entry Point
|
||||||
* There are two types of entry points defined in the SMBIOS specification
|
* There are two types of entry points defined in the SMBIOS specification
|
||||||
* (see below). BIOS must place the entry point(s) at a 16-bit-aligned
|
* (see below). BIOS must place the entry point(s) at a 16-byte-aligned
|
||||||
* address between 0xf0000 and 0xfffff. Note that either entry point type
|
* address between 0xf0000 and 0xfffff. Note that either entry point type
|
||||||
* can be used in a 64-bit target system, except that SMBIOS 2.1 entry point
|
* can be used in a 64-bit target system, except that SMBIOS 2.1 entry point
|
||||||
* only allows the SMBIOS struct table to reside below 4GB address space.
|
* only allows the SMBIOS struct table to reside below 4GB address space.
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
* We don't support Xen prior to 4.2.0.
|
* We don't support Xen prior to 4.2.0.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Xen 4.2 thru 4.6 */
|
/* Xen 4.2 through 4.6 */
|
||||||
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 471
|
#if CONFIG_XEN_CTRL_INTERFACE_VERSION < 471
|
||||||
|
|
||||||
typedef xc_interface xenforeignmemory_handle;
|
typedef xc_interface xenforeignmemory_handle;
|
||||||
|
|
|
@ -219,7 +219,7 @@ void qio_task_run_in_thread(QIOTask *task,
|
||||||
* qio_task_complete:
|
* qio_task_complete:
|
||||||
* @task: the task struct
|
* @task: the task struct
|
||||||
*
|
*
|
||||||
* Mark the operation as succesfully completed
|
* Mark the operation as successfully completed
|
||||||
* and free the memory for @task.
|
* and free the memory for @task.
|
||||||
*/
|
*/
|
||||||
void qio_task_complete(QIOTask *task);
|
void qio_task_complete(QIOTask *task);
|
||||||
|
|
|
@ -313,7 +313,7 @@ static inline void qemu_timersub(const struct timeval *val1,
|
||||||
void qemu_set_cloexec(int fd);
|
void qemu_set_cloexec(int fd);
|
||||||
|
|
||||||
/* QEMU "hardware version" setting. Used to replace code that exposed
|
/* QEMU "hardware version" setting. Used to replace code that exposed
|
||||||
* QEMU_VERSION to guests in the past and need to keep compatibilty.
|
* QEMU_VERSION to guests in the past and need to keep compatibility.
|
||||||
* Do not use qemu_hw_version() in new code.
|
* Do not use qemu_hw_version() in new code.
|
||||||
*/
|
*/
|
||||||
void qemu_set_hw_version(const char *);
|
void qemu_set_hw_version(const char *);
|
||||||
|
|
|
@ -56,6 +56,6 @@ typedef struct AccelClass {
|
||||||
|
|
||||||
extern int tcg_tb_size;
|
extern int tcg_tb_size;
|
||||||
|
|
||||||
int configure_accelerator(MachineState *ms);
|
void configure_accelerator(MachineState *ms);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -44,7 +44,6 @@ struct HostMemoryBackendClass {
|
||||||
*
|
*
|
||||||
* @parent: opaque parent object container
|
* @parent: opaque parent object container
|
||||||
* @size: amount of memory backend provides
|
* @size: amount of memory backend provides
|
||||||
* @id: unique identification string in memdev namespace
|
|
||||||
* @mr: MemoryRegion representing host memory belonging to backend
|
* @mr: MemoryRegion representing host memory belonging to backend
|
||||||
*/
|
*/
|
||||||
struct HostMemoryBackend {
|
struct HostMemoryBackend {
|
||||||
|
|
|
@ -413,7 +413,7 @@ static int kvm_physical_sync_dirty_bitmap(KVMMemoryListener *kml,
|
||||||
* userspace memory corruption (which is not detectable by valgrind
|
* userspace memory corruption (which is not detectable by valgrind
|
||||||
* too, in most cases).
|
* too, in most cases).
|
||||||
* So for now, let's align to 64 instead of HOST_LONG_BITS here, in
|
* So for now, let's align to 64 instead of HOST_LONG_BITS here, in
|
||||||
* a hope that sizeof(long) wont become >8 any time soon.
|
* a hope that sizeof(long) won't become >8 any time soon.
|
||||||
*/
|
*/
|
||||||
size = ALIGN(((mem->memory_size) >> TARGET_PAGE_BITS),
|
size = ALIGN(((mem->memory_size) >> TARGET_PAGE_BITS),
|
||||||
/*HOST_LONG_BITS*/ 64) / 8;
|
/*HOST_LONG_BITS*/ 64) / 8;
|
||||||
|
|
|
@ -278,7 +278,7 @@ static void deferred_incoming_migration(Error **errp)
|
||||||
void migrate_send_rp_req_pages(MigrationIncomingState *mis, const char *rbname,
|
void migrate_send_rp_req_pages(MigrationIncomingState *mis, const char *rbname,
|
||||||
ram_addr_t start, size_t len)
|
ram_addr_t start, size_t len)
|
||||||
{
|
{
|
||||||
uint8_t bufc[12 + 1 + 255]; /* start (8), len (4), rbname upto 256 */
|
uint8_t bufc[12 + 1 + 255]; /* start (8), len (4), rbname up to 256 */
|
||||||
size_t msglen = 12; /* start + len */
|
size_t msglen = 12; /* start + len */
|
||||||
|
|
||||||
*(uint64_t *)bufc = cpu_to_be64((uint64_t)start);
|
*(uint64_t *)bufc = cpu_to_be64((uint64_t)start);
|
||||||
|
|
|
@ -1272,7 +1272,7 @@ static int ram_save_target_page(MigrationState *ms, QEMUFile *f,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ram_save_host_page: Starting at *offset send pages upto the end
|
* ram_save_host_page: Starting at *offset send pages up to the end
|
||||||
* of the current host page. It's valid for the initial
|
* of the current host page. It's valid for the initial
|
||||||
* offset to point into the middle of a host page
|
* offset to point into the middle of a host page
|
||||||
* in which case the remainder of the hostpage is sent.
|
* in which case the remainder of the hostpage is sent.
|
||||||
|
|
|
@ -373,7 +373,7 @@ static QIOChannel *nbd_receive_starttls(QIOChannel *ioc,
|
||||||
}
|
}
|
||||||
length = be32_to_cpu(length);
|
length = be32_to_cpu(length);
|
||||||
if (length != 0) {
|
if (length != 0) {
|
||||||
error_setg(errp, "Start TLS reponse was not zero %x",
|
error_setg(errp, "Start TLS response was not zero %x",
|
||||||
length);
|
length);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ static gboolean ga_channel_prepare(GSource *source, gint *timeout_ms)
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
/* dont block forever, iterate the main loop every once and a while */
|
/* don't block forever, iterate the main loop every once in a while */
|
||||||
*timeout_ms = 500;
|
*timeout_ms = 500;
|
||||||
/* if there's data in the read buffer, or another event is pending,
|
/* if there's data in the read buffer, or another event is pending,
|
||||||
* skip polling and issue user cb.
|
* skip polling and issue user cb.
|
||||||
|
|
|
@ -182,8 +182,8 @@ GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **err)
|
||||||
*/
|
*/
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
/* Additionally WIN32 does not provide any additional information
|
/* Additionally WIN32 does not provide any additional information
|
||||||
* on whetherthe child exited or terminated via signal.
|
* on whether the child exited or terminated via signal.
|
||||||
* We use this simple range check to distingish application exit code
|
* We use this simple range check to distinguish application exit code
|
||||||
* (usually value less then 256) and unhandled exception code with
|
* (usually value less then 256) and unhandled exception code with
|
||||||
* ntstatus (always value greater then 0xC0000005). */
|
* ntstatus (always value greater then 0xC0000005). */
|
||||||
if ((uint32_t)gei->status < 0xC0000000U) {
|
if ((uint32_t)gei->status < 0xC0000000U) {
|
||||||
|
|
|
@ -705,19 +705,16 @@ int qdict_array_entries(QDict *src, const char *subqdict)
|
||||||
for (i = 0; i < INT_MAX; i++) {
|
for (i = 0; i < INT_MAX; i++) {
|
||||||
QObject *subqobj;
|
QObject *subqobj;
|
||||||
int subqdict_entries;
|
int subqdict_entries;
|
||||||
size_t slen = 32 + subqdict_len;
|
char *prefix = g_strdup_printf("%s%u.", subqdict, i);
|
||||||
char indexstr[slen], prefix[slen];
|
|
||||||
size_t snprintf_ret;
|
|
||||||
|
|
||||||
snprintf_ret = snprintf(indexstr, slen, "%s%u", subqdict, i);
|
|
||||||
assert(snprintf_ret < slen);
|
|
||||||
|
|
||||||
subqobj = qdict_get(src, indexstr);
|
|
||||||
|
|
||||||
snprintf_ret = snprintf(prefix, slen, "%s%u.", subqdict, i);
|
|
||||||
assert(snprintf_ret < slen);
|
|
||||||
|
|
||||||
subqdict_entries = qdict_count_prefixed_entries(src, prefix);
|
subqdict_entries = qdict_count_prefixed_entries(src, prefix);
|
||||||
|
|
||||||
|
/* Remove ending "." */
|
||||||
|
prefix[strlen(prefix) - 1] = 0;
|
||||||
|
subqobj = qdict_get(src, prefix);
|
||||||
|
|
||||||
|
g_free(prefix);
|
||||||
|
|
||||||
if (subqdict_entries < 0) {
|
if (subqdict_entries < 0) {
|
||||||
return subqdict_entries;
|
return subqdict_entries;
|
||||||
}
|
}
|
||||||
|
|
|
@ -363,7 +363,7 @@ sub sanitise_line {
|
||||||
for ($off = 1; $off < length($line); $off++) {
|
for ($off = 1; $off < length($line); $off++) {
|
||||||
$c = substr($line, $off, 1);
|
$c = substr($line, $off, 1);
|
||||||
|
|
||||||
# Comments we are wacking completly including the begin
|
# Comments we are wacking completely including the begin
|
||||||
# and end, all to $;.
|
# and end, all to $;.
|
||||||
if ($sanitise_quote eq '' && substr($line, $off, 2) eq '/*') {
|
if ($sanitise_quote eq '' && substr($line, $off, 2) eq '/*') {
|
||||||
$sanitise_quote = '*/';
|
$sanitise_quote = '*/';
|
||||||
|
|
|
@ -53,44 +53,44 @@ class ELF(object):
|
||||||
self.notes = []
|
self.notes = []
|
||||||
self.segments = []
|
self.segments = []
|
||||||
self.notes_size = 0
|
self.notes_size = 0
|
||||||
self.endianess = None
|
self.endianness = None
|
||||||
self.elfclass = ELFCLASS64
|
self.elfclass = ELFCLASS64
|
||||||
|
|
||||||
if arch == 'aarch64-le':
|
if arch == 'aarch64-le':
|
||||||
self.endianess = ELFDATA2LSB
|
self.endianness = ELFDATA2LSB
|
||||||
self.elfclass = ELFCLASS64
|
self.elfclass = ELFCLASS64
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_AARCH
|
self.ehdr.e_machine = EM_AARCH
|
||||||
|
|
||||||
elif arch == 'aarch64-be':
|
elif arch == 'aarch64-be':
|
||||||
self.endianess = ELFDATA2MSB
|
self.endianness = ELFDATA2MSB
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_AARCH
|
self.ehdr.e_machine = EM_AARCH
|
||||||
|
|
||||||
elif arch == 'X86_64':
|
elif arch == 'X86_64':
|
||||||
self.endianess = ELFDATA2LSB
|
self.endianness = ELFDATA2LSB
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_X86_64
|
self.ehdr.e_machine = EM_X86_64
|
||||||
|
|
||||||
elif arch == '386':
|
elif arch == '386':
|
||||||
self.endianess = ELFDATA2LSB
|
self.endianness = ELFDATA2LSB
|
||||||
self.elfclass = ELFCLASS32
|
self.elfclass = ELFCLASS32
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_386
|
self.ehdr.e_machine = EM_386
|
||||||
|
|
||||||
elif arch == 's390':
|
elif arch == 's390':
|
||||||
self.endianess = ELFDATA2MSB
|
self.endianness = ELFDATA2MSB
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_S390
|
self.ehdr.e_machine = EM_S390
|
||||||
|
|
||||||
elif arch == 'ppc64-le':
|
elif arch == 'ppc64-le':
|
||||||
self.endianess = ELFDATA2LSB
|
self.endianness = ELFDATA2LSB
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_PPC64
|
self.ehdr.e_machine = EM_PPC64
|
||||||
|
|
||||||
elif arch == 'ppc64-be':
|
elif arch == 'ppc64-be':
|
||||||
self.endianess = ELFDATA2MSB
|
self.endianness = ELFDATA2MSB
|
||||||
self.ehdr = get_arch_ehdr(self.endianess, self.elfclass)
|
self.ehdr = get_arch_ehdr(self.endianness, self.elfclass)
|
||||||
self.ehdr.e_machine = EM_PPC64
|
self.ehdr.e_machine = EM_PPC64
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
@ -104,7 +104,7 @@ class ELF(object):
|
||||||
def add_note(self, n_name, n_desc, n_type):
|
def add_note(self, n_name, n_desc, n_type):
|
||||||
"""Adds a note to the ELF."""
|
"""Adds a note to the ELF."""
|
||||||
|
|
||||||
note = get_arch_note(self.endianess, len(n_name), len(n_desc))
|
note = get_arch_note(self.endianness, len(n_name), len(n_desc))
|
||||||
note.n_namesz = len(n_name) + 1
|
note.n_namesz = len(n_name) + 1
|
||||||
note.n_descsz = len(n_desc)
|
note.n_descsz = len(n_desc)
|
||||||
note.n_name = n_name.encode()
|
note.n_name = n_name.encode()
|
||||||
|
@ -123,7 +123,7 @@ class ELF(object):
|
||||||
def add_segment(self, p_type, p_paddr, p_size):
|
def add_segment(self, p_type, p_paddr, p_size):
|
||||||
"""Adds a segment to the elf."""
|
"""Adds a segment to the elf."""
|
||||||
|
|
||||||
phdr = get_arch_phdr(self.endianess, self.elfclass)
|
phdr = get_arch_phdr(self.endianness, self.elfclass)
|
||||||
phdr.p_type = p_type
|
phdr.p_type = p_type
|
||||||
phdr.p_paddr = p_paddr
|
phdr.p_paddr = p_paddr
|
||||||
phdr.p_filesz = p_size
|
phdr.p_filesz = p_size
|
||||||
|
@ -155,10 +155,10 @@ class ELF(object):
|
||||||
elf_file.write(note)
|
elf_file.write(note)
|
||||||
|
|
||||||
|
|
||||||
def get_arch_note(endianess, len_name, len_desc):
|
def get_arch_note(endianness, len_name, len_desc):
|
||||||
"""Returns a Note class with the specified endianess."""
|
"""Returns a Note class with the specified endianness."""
|
||||||
|
|
||||||
if endianess == ELFDATA2LSB:
|
if endianness == ELFDATA2LSB:
|
||||||
superclass = ctypes.LittleEndianStructure
|
superclass = ctypes.LittleEndianStructure
|
||||||
else:
|
else:
|
||||||
superclass = ctypes.BigEndianStructure
|
superclass = ctypes.BigEndianStructure
|
||||||
|
@ -190,20 +190,20 @@ class Ident(ctypes.Structure):
|
||||||
('ei_abiversion', ctypes.c_ubyte),
|
('ei_abiversion', ctypes.c_ubyte),
|
||||||
('ei_pad', ctypes.c_ubyte * 7)]
|
('ei_pad', ctypes.c_ubyte * 7)]
|
||||||
|
|
||||||
def __init__(self, endianess, elfclass):
|
def __init__(self, endianness, elfclass):
|
||||||
self.ei_mag0 = 0x7F
|
self.ei_mag0 = 0x7F
|
||||||
self.ei_mag1 = ord('E')
|
self.ei_mag1 = ord('E')
|
||||||
self.ei_mag2 = ord('L')
|
self.ei_mag2 = ord('L')
|
||||||
self.ei_mag3 = ord('F')
|
self.ei_mag3 = ord('F')
|
||||||
self.ei_class = elfclass
|
self.ei_class = elfclass
|
||||||
self.ei_data = endianess
|
self.ei_data = endianness
|
||||||
self.ei_version = EV_CURRENT
|
self.ei_version = EV_CURRENT
|
||||||
|
|
||||||
|
|
||||||
def get_arch_ehdr(endianess, elfclass):
|
def get_arch_ehdr(endianness, elfclass):
|
||||||
"""Returns a EHDR64 class with the specified endianess."""
|
"""Returns a EHDR64 class with the specified endianness."""
|
||||||
|
|
||||||
if endianess == ELFDATA2LSB:
|
if endianness == ELFDATA2LSB:
|
||||||
superclass = ctypes.LittleEndianStructure
|
superclass = ctypes.LittleEndianStructure
|
||||||
else:
|
else:
|
||||||
superclass = ctypes.BigEndianStructure
|
superclass = ctypes.BigEndianStructure
|
||||||
|
@ -228,12 +228,12 @@ def get_arch_ehdr(endianess, elfclass):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(superclass, self).__init__()
|
super(superclass, self).__init__()
|
||||||
self.e_ident = Ident(endianess, elfclass)
|
self.e_ident = Ident(endianness, elfclass)
|
||||||
self.e_type = ET_CORE
|
self.e_type = ET_CORE
|
||||||
self.e_version = EV_CURRENT
|
self.e_version = EV_CURRENT
|
||||||
self.e_ehsize = ctypes.sizeof(self)
|
self.e_ehsize = ctypes.sizeof(self)
|
||||||
self.e_phoff = ctypes.sizeof(self)
|
self.e_phoff = ctypes.sizeof(self)
|
||||||
self.e_phentsize = ctypes.sizeof(get_arch_phdr(endianess, elfclass))
|
self.e_phentsize = ctypes.sizeof(get_arch_phdr(endianness, elfclass))
|
||||||
self.e_phnum = 0
|
self.e_phnum = 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -257,12 +257,12 @@ def get_arch_ehdr(endianess, elfclass):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(superclass, self).__init__()
|
super(superclass, self).__init__()
|
||||||
self.e_ident = Ident(endianess, elfclass)
|
self.e_ident = Ident(endianness, elfclass)
|
||||||
self.e_type = ET_CORE
|
self.e_type = ET_CORE
|
||||||
self.e_version = EV_CURRENT
|
self.e_version = EV_CURRENT
|
||||||
self.e_ehsize = ctypes.sizeof(self)
|
self.e_ehsize = ctypes.sizeof(self)
|
||||||
self.e_phoff = ctypes.sizeof(self)
|
self.e_phoff = ctypes.sizeof(self)
|
||||||
self.e_phentsize = ctypes.sizeof(get_arch_phdr(endianess, elfclass))
|
self.e_phentsize = ctypes.sizeof(get_arch_phdr(endianness, elfclass))
|
||||||
self.e_phnum = 0
|
self.e_phnum = 0
|
||||||
|
|
||||||
# End get_arch_ehdr
|
# End get_arch_ehdr
|
||||||
|
@ -272,10 +272,10 @@ def get_arch_ehdr(endianess, elfclass):
|
||||||
return EHDR32()
|
return EHDR32()
|
||||||
|
|
||||||
|
|
||||||
def get_arch_phdr(endianess, elfclass):
|
def get_arch_phdr(endianness, elfclass):
|
||||||
"""Returns a 32 or 64 bit PHDR class with the specified endianess."""
|
"""Returns a 32 or 64 bit PHDR class with the specified endianness."""
|
||||||
|
|
||||||
if endianess == ELFDATA2LSB:
|
if endianness == ELFDATA2LSB:
|
||||||
superclass = ctypes.LittleEndianStructure
|
superclass = ctypes.LittleEndianStructure
|
||||||
else:
|
else:
|
||||||
superclass = ctypes.BigEndianStructure
|
superclass = ctypes.BigEndianStructure
|
||||||
|
|
|
@ -206,7 +206,7 @@ soread(struct socket *so)
|
||||||
* We don't test for <= 0 this time, because there legitimately
|
* We don't test for <= 0 this time, because there legitimately
|
||||||
* might not be any more data (since the socket is non-blocking),
|
* might not be any more data (since the socket is non-blocking),
|
||||||
* a close will be detected on next iteration.
|
* a close will be detected on next iteration.
|
||||||
* A return of -1 wont (shouldn't) happen, since it didn't happen above
|
* A return of -1 won't (shouldn't) happen, since it didn't happen above
|
||||||
*/
|
*/
|
||||||
if (n == 2 && nn == iov[0].iov_len) {
|
if (n == 2 && nn == iov[0].iov_len) {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
|
@ -3057,7 +3057,7 @@ static unsigned int crisv32_decoder(CPUCRISState *env, DisasContext *dc)
|
||||||
*
|
*
|
||||||
* When the software returns from an exception, the branch will re-execute.
|
* When the software returns from an exception, the branch will re-execute.
|
||||||
* On QEMU care needs to be taken when a branch+delayslot sequence is broken
|
* On QEMU care needs to be taken when a branch+delayslot sequence is broken
|
||||||
* and the branch and delayslot dont share pages.
|
* and the branch and delayslot don't share pages.
|
||||||
*
|
*
|
||||||
* The TB contaning the branch insn will set up env->btarget and evaluate
|
* The TB contaning the branch insn will set up env->btarget and evaluate
|
||||||
* env->btaken. When the translation loop exits we will note that the branch
|
* env->btaken. When the translation loop exits we will note that the branch
|
||||||
|
@ -3246,7 +3246,7 @@ void gen_intermediate_code(CPUCRISState *env, struct TranslationBlock *tb)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If we are rexecuting a branch due to exceptions on
|
/* If we are rexecuting a branch due to exceptions on
|
||||||
delay slots dont break. */
|
delay slots don't break. */
|
||||||
if (!(tb->pc & 1) && cs->singlestep_enabled) {
|
if (!(tb->pc & 1) && cs->singlestep_enabled) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -130,7 +130,7 @@ static void cris_set_prefix(DisasContext *dc)
|
||||||
dc->tb_flags |= PFIX_FLAG;
|
dc->tb_flags |= PFIX_FLAG;
|
||||||
tcg_gen_ori_tl(cpu_PR[PR_CCS], cpu_PR[PR_CCS], PFIX_FLAG);
|
tcg_gen_ori_tl(cpu_PR[PR_CCS], cpu_PR[PR_CCS], PFIX_FLAG);
|
||||||
|
|
||||||
/* prefix insns dont clear the x flag. */
|
/* prefix insns don't clear the x flag. */
|
||||||
dc->clear_x = 0;
|
dc->clear_x = 0;
|
||||||
cris_lock_irq(dc);
|
cris_lock_irq(dc);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2523,7 +2523,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
|
||||||
|
|
||||||
/* The Linux kernel checks for the CMPLegacy bit and
|
/* The Linux kernel checks for the CMPLegacy bit and
|
||||||
* discards multiple thread information if it is set.
|
* discards multiple thread information if it is set.
|
||||||
* So dont set it here for Intel to make Linux guests happy.
|
* So don't set it here for Intel to make Linux guests happy.
|
||||||
*/
|
*/
|
||||||
if (cs->nr_cores * cs->nr_threads > 1) {
|
if (cs->nr_cores * cs->nr_threads > 1) {
|
||||||
if (env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1 ||
|
if (env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1 ||
|
||||||
|
|
|
@ -1366,7 +1366,7 @@ void cpu_report_tpr_access(CPUX86State *env, TPRAccess access);
|
||||||
* If value is NULL, no default will be set and the original
|
* If value is NULL, no default will be set and the original
|
||||||
* value from the CPU model table will be kept.
|
* value from the CPU model table will be kept.
|
||||||
*
|
*
|
||||||
* It is valid to call this funciton only for properties that
|
* It is valid to call this function only for properties that
|
||||||
* are already present in the kvm_default_props table.
|
* are already present in the kvm_default_props table.
|
||||||
*/
|
*/
|
||||||
void x86_cpu_change_kvm_default(const char *prop, const char *value);
|
void x86_cpu_change_kvm_default(const char *prop, const char *value);
|
||||||
|
|
|
@ -581,7 +581,7 @@ static bool mips_vp_is_wfi(MIPSCPU *c)
|
||||||
|
|
||||||
static inline void mips_vpe_wake(MIPSCPU *c)
|
static inline void mips_vpe_wake(MIPSCPU *c)
|
||||||
{
|
{
|
||||||
/* Dont set ->halted = 0 directly, let it be done via cpu_has_work
|
/* Don't set ->halted = 0 directly, let it be done via cpu_has_work
|
||||||
because there might be other conditions that state that c should
|
because there might be other conditions that state that c should
|
||||||
be sleeping. */
|
be sleeping. */
|
||||||
cpu_interrupt(CPU(c), CPU_INTERRUPT_WAKE);
|
cpu_interrupt(CPU(c), CPU_INTERRUPT_WAKE);
|
||||||
|
|
|
@ -2858,7 +2858,7 @@ static void gen_shaci(TCGv ret, TCGv r1, int32_t shift_count)
|
||||||
} else if (shift_count == -32) {
|
} else if (shift_count == -32) {
|
||||||
/* set PSW.C */
|
/* set PSW.C */
|
||||||
tcg_gen_mov_tl(cpu_PSW_C, r1);
|
tcg_gen_mov_tl(cpu_PSW_C, r1);
|
||||||
/* fill ret completly with sign bit */
|
/* fill ret completely with sign bit */
|
||||||
tcg_gen_sari_tl(ret, r1, 31);
|
tcg_gen_sari_tl(ret, r1, 31);
|
||||||
/* clear PSW.V */
|
/* clear PSW.V */
|
||||||
tcg_gen_movi_tl(cpu_PSW_V, 0);
|
tcg_gen_movi_tl(cpu_PSW_V, 0);
|
||||||
|
|
|
@ -473,7 +473,7 @@ On a 32 bit target, all 64 bit operations are converted to 32 bits. A
|
||||||
few specific operations must be implemented to allow it (see add2_i32,
|
few specific operations must be implemented to allow it (see add2_i32,
|
||||||
sub2_i32, brcond2_i32).
|
sub2_i32, brcond2_i32).
|
||||||
|
|
||||||
On a 64 bit target, the values are transfered between 32 and 64-bit
|
On a 64 bit target, the values are transferred between 32 and 64-bit
|
||||||
registers using the following ops:
|
registers using the following ops:
|
||||||
- trunc_shr_i64_i32
|
- trunc_shr_i64_i32
|
||||||
- ext_i32_i64
|
- ext_i32_i64
|
||||||
|
|
|
@ -51,7 +51,7 @@ int main(void)
|
||||||
t = (unsigned char *)x;
|
t = (unsigned char *)x;
|
||||||
t -= 32768;
|
t -= 32768;
|
||||||
p = (unsigned char *) &y.v1;
|
p = (unsigned char *) &y.v1;
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_pi_d(p, t);
|
cris_addo_pi_d(p, t);
|
||||||
|
@ -62,7 +62,7 @@ int main(void)
|
||||||
|
|
||||||
|
|
||||||
t += 32770;
|
t += 32770;
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_pi_w(p, t);
|
cris_addo_pi_w(p, t);
|
||||||
|
@ -71,7 +71,7 @@ int main(void)
|
||||||
if (*r != 0x4455aa77)
|
if (*r != 0x4455aa77)
|
||||||
err();
|
err();
|
||||||
|
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_d(p, r);
|
cris_addo_d(p, r);
|
||||||
|
@ -81,7 +81,7 @@ int main(void)
|
||||||
if (*r != 0xee19ccff)
|
if (*r != 0xee19ccff)
|
||||||
err();
|
err();
|
||||||
|
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_pi_b(p, t);
|
cris_addo_pi_b(p, t);
|
||||||
|
@ -90,7 +90,7 @@ int main(void)
|
||||||
if (*(uint16_t*)r != 0xff22)
|
if (*(uint16_t*)r != 0xff22)
|
||||||
err();
|
err();
|
||||||
|
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_b(p, r);
|
cris_addo_b(p, r);
|
||||||
|
@ -100,7 +100,7 @@ int main(void)
|
||||||
if (*r != 0x4455aa77)
|
if (*r != 0x4455aa77)
|
||||||
err();
|
err();
|
||||||
|
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_w(p, r);
|
cris_addo_w(p, r);
|
||||||
|
@ -110,7 +110,7 @@ int main(void)
|
||||||
if (*r != 0xff224455)
|
if (*r != 0xff224455)
|
||||||
err();
|
err();
|
||||||
|
|
||||||
mb(); /* dont reorder anything beyond here. */
|
mb(); /* don't reorder anything beyond here. */
|
||||||
cris_tst_cc_init();
|
cris_tst_cc_init();
|
||||||
asm volatile ("setf\tzvnc\n");
|
asm volatile ("setf\tzvnc\n");
|
||||||
cris_addo_pi_d(p, t);
|
cris_addo_pi_d(p, t);
|
||||||
|
|
|
@ -108,7 +108,7 @@ static bool get_trace_record(unsigned int idx, TraceRecord **recordptr)
|
||||||
smp_rmb(); /* read memory barrier before accessing record */
|
smp_rmb(); /* read memory barrier before accessing record */
|
||||||
/* read the record header to know record length */
|
/* read the record header to know record length */
|
||||||
read_from_buffer(idx, &record, sizeof(TraceRecord));
|
read_from_buffer(idx, &record, sizeof(TraceRecord));
|
||||||
*recordptr = malloc(record.length); /* dont use g_malloc, can deadlock when traced */
|
*recordptr = malloc(record.length); /* don't use g_malloc, can deadlock when traced */
|
||||||
/* make a copy of record to avoid being overwritten */
|
/* make a copy of record to avoid being overwritten */
|
||||||
read_from_buffer(idx, *recordptr, record.length);
|
read_from_buffer(idx, *recordptr, record.length);
|
||||||
smp_rmb(); /* memory barrier before clearing valid flag */
|
smp_rmb(); /* memory barrier before clearing valid flag */
|
||||||
|
@ -180,7 +180,7 @@ static gpointer writeout_thread(gpointer opaque)
|
||||||
while (get_trace_record(idx, &recordptr)) {
|
while (get_trace_record(idx, &recordptr)) {
|
||||||
unused = fwrite(recordptr, recordptr->length, 1, trace_fp);
|
unused = fwrite(recordptr, recordptr->length, 1, trace_fp);
|
||||||
writeout_idx += recordptr->length;
|
writeout_idx += recordptr->length;
|
||||||
free(recordptr); /* dont use g_free, can deadlock when traced */
|
free(recordptr); /* don't use g_free, can deadlock when traced */
|
||||||
idx = writeout_idx % TRACE_BUF_LEN;
|
idx = writeout_idx % TRACE_BUF_LEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1394,7 +1394,7 @@ static void addRemovableDevicesMenuItems(void)
|
||||||
[menuItem setEnabled: NO];
|
[menuItem setEnabled: NO];
|
||||||
[menu addItem: menuItem];
|
[menu addItem: menuItem];
|
||||||
|
|
||||||
/* Loop thru all the block devices in the emulator */
|
/* Loop through all the block devices in the emulator */
|
||||||
while (currentDevice) {
|
while (currentDevice) {
|
||||||
deviceName = [[NSString stringWithFormat: @"%s", currentDevice->value->device] retain];
|
deviceName = [[NSString stringWithFormat: @"%s", currentDevice->value->device] retain];
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#define BUFFER_MIN_INIT_SIZE 4096
|
#define BUFFER_MIN_INIT_SIZE 4096
|
||||||
#define BUFFER_MIN_SHRINK_SIZE 65536
|
#define BUFFER_MIN_SHRINK_SIZE 65536
|
||||||
|
|
||||||
/* define the factor alpha for the expentional smoothing
|
/* define the factor alpha for the exponential smoothing
|
||||||
* that is used in the average size calculation. a shift
|
* that is used in the average size calculation. a shift
|
||||||
* of 7 results in an alpha of 1/2^7. */
|
* of 7 results in an alpha of 1/2^7. */
|
||||||
#define BUFFER_AVG_SIZE_SHIFT 7
|
#define BUFFER_AVG_SIZE_SHIFT 7
|
||||||
|
@ -45,7 +45,7 @@ static void buffer_adj_size(Buffer *buffer, size_t len)
|
||||||
old, buffer->capacity);
|
old, buffer->capacity);
|
||||||
|
|
||||||
/* make it even harder for the buffer to shrink, reset average size
|
/* make it even harder for the buffer to shrink, reset average size
|
||||||
* to currenty capacity if it is larger than the average. */
|
* to current capacity if it is larger than the average. */
|
||||||
buffer->avg_size = MAX(buffer->avg_size,
|
buffer->avg_size = MAX(buffer->avg_size,
|
||||||
buffer->capacity << BUFFER_AVG_SIZE_SHIFT);
|
buffer->capacity << BUFFER_AVG_SIZE_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ NetworkAddressFamily inet_netfamily(int family)
|
||||||
* t f PF_INET
|
* t f PF_INET
|
||||||
* t t PF_INET6
|
* t t PF_INET6
|
||||||
*
|
*
|
||||||
* NB, this matrix is only about getting the neccessary results
|
* NB, this matrix is only about getting the necessary results
|
||||||
* from getaddrinfo(). Some of the cases require further work
|
* from getaddrinfo(). Some of the cases require further work
|
||||||
* after reading results from getaddrinfo in order to fully
|
* after reading results from getaddrinfo in order to fully
|
||||||
* apply the logic the end user wants. eg with the last case
|
* apply the logic the end user wants. eg with the last case
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
* Benoît Canet <benoit.canet@nodalink.com>
|
* Benoît Canet <benoit.canet@nodalink.com>
|
||||||
* Alberto Garcia <berto@igalia.com>
|
* Alberto Garcia <berto@igalia.com>
|
||||||
*
|
*
|
||||||
* This program is free sofware: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Sofware Foundation, either version 2 of the License, or
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
* (at your option) version 3 or any later version.
|
* (at your option) version 3 or any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful,
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
|
2
vl.c
2
vl.c
|
@ -4083,7 +4083,7 @@ int main(int argc, char **argv, char **envp)
|
||||||
/* Init CPU def lists, based on config
|
/* Init CPU def lists, based on config
|
||||||
* - Must be called after all the qemu_read_config_file() calls
|
* - Must be called after all the qemu_read_config_file() calls
|
||||||
* - Must be called before list_cpus()
|
* - Must be called before list_cpus()
|
||||||
* - Must be called before machine->init()
|
* - Must be called before machine_class->init()
|
||||||
*/
|
*/
|
||||||
cpudef_init();
|
cpudef_init();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue