mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 11:39:53 +00:00
trivial patches for 2014-11-11
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJUYh9vAAoJEL7lnXSkw9fbgPQH/065L5+SpaJR1Nte9Lz3N2s1 a6tGSI22yu85tKvYCdYjeoVHSkSTyR57FdTfUd2xc2QPj+J4sWXpA81KILBGTJUp NMpmLpWg4LOh8Ek4ViRgmFFdryzIFa4dT4gc1AcSAIAQ6jsgK1dM7m5kfncC3TN0 TUs248vJ2i/DaE0k8TOeJqxJTqInoFttlJEqG7RD+V5JznokE4zpFNXHDGx9BptE W2J38GJ/TKRPe9UrHMKZI1r6+ZBdXyE/CaqsNNKLJdqrHgSQuAyK/PS6dQbM4BLg M1qdP7Tp0wOlvv9qoEZMOEiUsi54XPqLgaLMbW74Yp5X459fqmLW2imy49pHXt8= =klsW -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2014-11-11' into staging trivial patches for 2014-11-11 # gpg: Signature made Tue 11 Nov 2014 14:38:39 GMT 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-2014-11-11: block: Fix comment for bdrv_co_get_block_status sysbus: Correct SYSTEM_BUS(obj) defines target-i386: cpu: keeping function parameters alignment on new line xen-hvm: Remove redundant variable 'xstate' coroutine-sigaltstack: Change jmp_buf to sigjmp_buf pc-bios: petalogix-s3adsp1800.dtb: Use 'xlnx, xps-ethernetlite-2.00.a' instead of 'xlnx, xps-ethernetlite-2.00.b' gdbstub: Add a missing case of signal number translation in gdbstub numa: make 'info numa' take into account hotplugged memory slirp/smbd: modify/set several parameters in generated smbd.conf qemu-doc.texi: fix typos in x509 examples icc_bus: fix typo ICC_BRIGDE -> ICC_BRIDGE Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
776346cd63
6
block.c
6
block.c
@ -3903,9 +3903,9 @@ typedef struct BdrvCoGetBlockStatusData {
|
||||
} BdrvCoGetBlockStatusData;
|
||||
|
||||
/*
|
||||
* Returns true iff the specified sector is present in the disk image. Drivers
|
||||
* not implementing the functionality are assumed to not support backing files,
|
||||
* hence all their sectors are reported as allocated.
|
||||
* Returns the allocation status of the specified sectors.
|
||||
* Drivers not implementing the functionality are assumed to not support
|
||||
* backing files, hence all their sectors are reported as allocated.
|
||||
*
|
||||
* If 'sector_num' is beyond the end of the disk image the return value is 0
|
||||
* and 'pnum' is set to 0.
|
||||
|
@ -155,7 +155,7 @@ Coroutine *qemu_coroutine_new(void)
|
||||
stack_t oss;
|
||||
sigset_t sigs;
|
||||
sigset_t osigs;
|
||||
jmp_buf old_env;
|
||||
sigjmp_buf old_env;
|
||||
|
||||
/* The way to manipulate stack is with the sigaltstack function. We
|
||||
* prepare a stack, with it delivering a signal to ourselves and then
|
||||
|
@ -823,7 +823,10 @@ static int gdb_handle_packet(GDBState *s, const char *line_buf)
|
||||
action = *p++;
|
||||
signal = 0;
|
||||
if (action == 'C' || action == 'S') {
|
||||
signal = strtoul(p, (char **)&p, 16);
|
||||
signal = gdb_signal_to_target(strtoul(p, (char **)&p, 16));
|
||||
if (signal == -1) {
|
||||
signal = 0;
|
||||
}
|
||||
} else if (action != 'c' && action != 's') {
|
||||
res = 0;
|
||||
break;
|
||||
|
@ -73,11 +73,11 @@ typedef struct ICCBridgeState {
|
||||
MemoryRegion apic_container;
|
||||
} ICCBridgeState;
|
||||
|
||||
#define ICC_BRIGDE(obj) OBJECT_CHECK(ICCBridgeState, (obj), TYPE_ICC_BRIDGE)
|
||||
#define ICC_BRIDGE(obj) OBJECT_CHECK(ICCBridgeState, (obj), TYPE_ICC_BRIDGE)
|
||||
|
||||
static void icc_bridge_init(Object *obj)
|
||||
{
|
||||
ICCBridgeState *s = ICC_BRIGDE(obj);
|
||||
ICCBridgeState *s = ICC_BRIDGE(obj);
|
||||
SysBusDevice *sb = SYS_BUS_DEVICE(obj);
|
||||
|
||||
qbus_create_inplace(&s->icc_bus, sizeof(s->icc_bus), TYPE_ICC_BUS,
|
||||
|
@ -83,7 +83,9 @@ typedef enum {
|
||||
#define BDRV_SECTOR_SIZE (1ULL << BDRV_SECTOR_BITS)
|
||||
#define BDRV_SECTOR_MASK ~(BDRV_SECTOR_SIZE - 1)
|
||||
|
||||
/* BDRV_BLOCK_DATA: data is read from bs->file or another file
|
||||
/*
|
||||
* Allocation status flags
|
||||
* BDRV_BLOCK_DATA: data is read from bs->file or another file
|
||||
* BDRV_BLOCK_ZERO: sectors read as zero
|
||||
* BDRV_BLOCK_OFFSET_VALID: sector stored in bs->file as raw data
|
||||
* BDRV_BLOCK_ALLOCATED: the content of the block is determined by this
|
||||
|
@ -10,7 +10,7 @@
|
||||
#define QDEV_MAX_PIO 32
|
||||
|
||||
#define TYPE_SYSTEM_BUS "System"
|
||||
#define SYSTEM_BUS(obj) OBJECT_CHECK(IDEBus, (obj), TYPE_IDE_BUS)
|
||||
#define SYSTEM_BUS(obj) OBJECT_CHECK(BusState, (obj), TYPE_SYSTEM_BUS)
|
||||
|
||||
typedef struct SysBusDevice SysBusDevice;
|
||||
|
||||
|
@ -161,6 +161,7 @@ typedef struct node_info {
|
||||
extern NodeInfo numa_info[MAX_NODES];
|
||||
void set_numa_nodes(void);
|
||||
void set_numa_modes(void);
|
||||
void query_numa_node_mem(uint64_t node_mem[]);
|
||||
extern QemuOptsList qemu_numa_opts;
|
||||
int numa_init_func(QemuOpts *opts, void *opaque);
|
||||
|
||||
|
@ -1948,7 +1948,10 @@ static void do_info_numa(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
int i;
|
||||
CPUState *cpu;
|
||||
uint64_t *node_mem;
|
||||
|
||||
node_mem = g_new0(uint64_t, nb_numa_nodes);
|
||||
query_numa_node_mem(node_mem);
|
||||
monitor_printf(mon, "%d nodes\n", nb_numa_nodes);
|
||||
for (i = 0; i < nb_numa_nodes; i++) {
|
||||
monitor_printf(mon, "node %d cpus:", i);
|
||||
@ -1959,8 +1962,9 @@ static void do_info_numa(Monitor *mon, const QDict *qdict)
|
||||
}
|
||||
monitor_printf(mon, "\n");
|
||||
monitor_printf(mon, "node %d size: %" PRId64 " MB\n", i,
|
||||
numa_info[i].node_mem >> 20);
|
||||
node_mem[i] >> 20);
|
||||
}
|
||||
g_free(node_mem);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PROFILER
|
||||
|
@ -523,15 +523,21 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
|
||||
fprintf(f,
|
||||
"[global]\n"
|
||||
"private dir=%s\n"
|
||||
"socket address=127.0.0.1\n"
|
||||
"interfaces=127.0.0.1\n"
|
||||
"bind interfaces only=yes\n"
|
||||
"pid directory=%s\n"
|
||||
"lock directory=%s\n"
|
||||
"state directory=%s\n"
|
||||
"cache directory=%s\n"
|
||||
"ncalrpc dir=%s/ncalrpc\n"
|
||||
"log file=%s/log.smbd\n"
|
||||
"smb passwd file=%s/smbpasswd\n"
|
||||
"security = user\n"
|
||||
"map to guest = Bad User\n"
|
||||
"load printers = no\n"
|
||||
"printing = bsd\n"
|
||||
"disable spoolss = yes\n"
|
||||
"usershare max shares = 0\n"
|
||||
"[qemu]\n"
|
||||
"path=%s\n"
|
||||
"read only=no\n"
|
||||
@ -544,6 +550,7 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
|
||||
s->smb_dir,
|
||||
s->smb_dir,
|
||||
s->smb_dir,
|
||||
s->smb_dir,
|
||||
exported_dir,
|
||||
passwd->pw_name
|
||||
);
|
||||
|
38
numa.c
38
numa.c
@ -35,6 +35,7 @@
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/hostmem.h"
|
||||
#include "qmp-commands.h"
|
||||
#include "hw/mem/pc-dimm.h"
|
||||
|
||||
QemuOptsList qemu_numa_opts = {
|
||||
.name = "numa",
|
||||
@ -315,6 +316,43 @@ void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
|
||||
}
|
||||
}
|
||||
|
||||
static void numa_stat_memory_devices(uint64_t node_mem[])
|
||||
{
|
||||
MemoryDeviceInfoList *info_list = NULL;
|
||||
MemoryDeviceInfoList **prev = &info_list;
|
||||
MemoryDeviceInfoList *info;
|
||||
|
||||
qmp_pc_dimm_device_list(qdev_get_machine(), &prev);
|
||||
for (info = info_list; info; info = info->next) {
|
||||
MemoryDeviceInfo *value = info->value;
|
||||
|
||||
if (value) {
|
||||
switch (value->kind) {
|
||||
case MEMORY_DEVICE_INFO_KIND_DIMM:
|
||||
node_mem[value->dimm->node] += value->dimm->size;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
qapi_free_MemoryDeviceInfoList(info_list);
|
||||
}
|
||||
|
||||
void query_numa_node_mem(uint64_t node_mem[])
|
||||
{
|
||||
int i;
|
||||
|
||||
if (nb_numa_nodes <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
numa_stat_memory_devices(node_mem);
|
||||
for (i = 0; i < nb_numa_nodes; i++) {
|
||||
node_mem[i] += numa_info[i].node_mem;
|
||||
}
|
||||
}
|
||||
|
||||
static int query_memdev(Object *obj, void *opaque)
|
||||
{
|
||||
MemdevList **list = opaque;
|
||||
|
Binary file not shown.
@ -1631,7 +1631,7 @@ EOF
|
||||
# certtool --generate-certificate \
|
||||
--load-ca-certificate ca-cert.pem \
|
||||
--load-ca-privkey ca-key.pem \
|
||||
--load-privkey server server-key.pem \
|
||||
--load-privkey server-key.pem \
|
||||
--template server.info \
|
||||
--outfile server-cert.pem
|
||||
@end example
|
||||
@ -1654,7 +1654,7 @@ the secure CA private key:
|
||||
country = GB
|
||||
state = London
|
||||
locality = London
|
||||
organiazation = Name of your organization
|
||||
organization = Name of your organization
|
||||
cn = client.foo.example.com
|
||||
tls_www_client
|
||||
encryption_key
|
||||
|
@ -540,8 +540,8 @@ void host_cpuid(uint32_t function, uint32_t count,
|
||||
* otherwise the string is assumed to sized by a terminating nul.
|
||||
* Return lexical ordering of *s1:*s2.
|
||||
*/
|
||||
static int sstrcmp(const char *s1, const char *e1, const char *s2,
|
||||
const char *e2)
|
||||
static int sstrcmp(const char *s1, const char *e1,
|
||||
const char *s2, const char *e2)
|
||||
{
|
||||
for (;;) {
|
||||
if (!*s1 || !*s2 || *s1 != *s2)
|
||||
@ -1859,7 +1859,7 @@ static void x86_cpu_parse_featurestr(CPUState *cs, char *features,
|
||||
* if flags, suppress names undefined in featureset.
|
||||
*/
|
||||
static void listflags(char *buf, int bufsize, uint32_t fbits,
|
||||
const char **featureset, uint32_t flags)
|
||||
const char **featureset, uint32_t flags)
|
||||
{
|
||||
const char **p = &featureset[31];
|
||||
char *q, *b, bit;
|
||||
|
@ -993,9 +993,8 @@ static void xen_main_loop_prepare(XenIOState *state)
|
||||
static void xen_hvm_change_state_handler(void *opaque, int running,
|
||||
RunState rstate)
|
||||
{
|
||||
XenIOState *xstate = opaque;
|
||||
if (running) {
|
||||
xen_main_loop_prepare(xstate);
|
||||
xen_main_loop_prepare((XenIOState *)opaque);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user