mirror of https://github.com/xemu-project/xemu.git
trivial patches for 2014-11-02
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJUVhuDAAoJEL7lnXSkw9fbOKMIAIE3XZMhar4Vmokb/K0DFbnh gy2z7iCe7vumLKiRSJX1LGmkFO3dwykw82JZQ1SVo0RdgguJ5dx1Abx1qDM1rojL jJT0pJ9zWPl4fTv38wCEfaysQHPdgwoH4826ga+MXnVS9XHRHHxuQ4vI01AK3oyQ 4t6/wto9H8kF3n6ny7tz5WNZClsq7qbiIqw5nNCILQfSh/VBPwxQNBiWf/nYVMuY Ubk5noztZwH+hbiAQL5lAPz/HolcRwg1tzbR0dfmt8/aqO28rJhasG58JgtziI2y JSg4BwldqUQEgiHonArLfQDixjLtEEyL+fQSzZm02ixwcBpc/ADSyGDy2R1zpH8= =j1ga -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2014-11-02' into staging trivial patches for 2014-11-02 # gpg: Signature made Sun 02 Nov 2014 11:54:43 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-02: (23 commits) vdi: wrapped uuid_unparse() in #ifdef tap: fix possible fd leak in net_init_tap tap: do not close(fd) in net_init_tap_one target-i386: Remove unused model_features_t struct tap_int.h: remove repeating NETWORK_SCRIPT defines os-posix: reorder parent notification for -daemonize pidfile: stop making pidfile error a special case os-posix: replace goto again with a proper loop os-posix: use global daemon_pipe instead of cryptic fds[1] dump: Fix dump-guest-memory termination and use-after-close virtio-9p-proxy: improve error messages in connect_namedsocket() virtio-9p-proxy: fix error return in proxy_init() virtio-9p-proxy: Fix sockfd leak target-tricore: check return value before using it net/slirp: specify logbase for smbd Revert "os-posix: report error message when lock file failed" util: Improve os_mem_prealloc error message sparse: fix build target-arm: A64: remove redundant store target-xtensa: mark XtensaConfig structs as unused ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
7135781f65
|
@ -137,12 +137,14 @@ static inline int uuid_is_null(const uuid_t uu)
|
||||||
return memcmp(uu, null_uuid, sizeof(uuid_t)) == 0;
|
return memcmp(uu, null_uuid, sizeof(uuid_t)) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# if defined(CONFIG_VDI_DEBUG)
|
||||||
static inline void uuid_unparse(const uuid_t uu, char *out)
|
static inline void uuid_unparse(const uuid_t uu, char *out)
|
||||||
{
|
{
|
||||||
snprintf(out, 37, UUID_FMT,
|
snprintf(out, 37, UUID_FMT,
|
||||||
uu[0], uu[1], uu[2], uu[3], uu[4], uu[5], uu[6], uu[7],
|
uu[0], uu[1], uu[2], uu[3], uu[4], uu[5], uu[6], uu[7],
|
||||||
uu[8], uu[9], uu[10], uu[11], uu[12], uu[13], uu[14], uu[15]);
|
uu[8], uu[9], uu[10], uu[11], uu[12], uu[13], uu[14], uu[15]);
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -4908,6 +4908,7 @@ echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
|
||||||
echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
|
echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
|
||||||
if test "$sparse" = "yes" ; then
|
if test "$sparse" = "yes" ; then
|
||||||
echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak
|
echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak
|
||||||
|
echo "CXX := REAL_CC=\"\$(CXX)\" cgcc" >> $config_host_mak
|
||||||
echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak
|
echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak
|
||||||
echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
|
echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
11
dump.c
11
dump.c
|
@ -604,10 +604,9 @@ static void dump_iterate(DumpState *s, Error **errp)
|
||||||
{
|
{
|
||||||
GuestPhysBlock *block;
|
GuestPhysBlock *block;
|
||||||
int64_t size;
|
int64_t size;
|
||||||
int ret;
|
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
while (1) {
|
do {
|
||||||
block = s->next_block;
|
block = s->next_block;
|
||||||
|
|
||||||
size = block->target_end - block->target_start;
|
size = block->target_end - block->target_start;
|
||||||
|
@ -623,11 +622,9 @@ static void dump_iterate(DumpState *s, Error **errp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = get_next_block(s, block);
|
} while (!get_next_block(s, block));
|
||||||
if (ret == 1) {
|
|
||||||
dump_completed(s);
|
dump_completed(s);
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void create_vmcore(DumpState *s, Error **errp)
|
static void create_vmcore(DumpState *s, Error **errp)
|
||||||
|
|
|
@ -1104,14 +1104,15 @@ static int connect_namedsocket(const char *path)
|
||||||
|
|
||||||
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
|
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||||
if (sockfd < 0) {
|
if (sockfd < 0) {
|
||||||
fprintf(stderr, "socket %s\n", strerror(errno));
|
fprintf(stderr, "failed to create socket: %s\n", strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
strcpy(helper.sun_path, path);
|
strcpy(helper.sun_path, path);
|
||||||
helper.sun_family = AF_UNIX;
|
helper.sun_family = AF_UNIX;
|
||||||
size = strlen(helper.sun_path) + sizeof(helper.sun_family);
|
size = strlen(helper.sun_path) + sizeof(helper.sun_family);
|
||||||
if (connect(sockfd, (struct sockaddr *)&helper, size) < 0) {
|
if (connect(sockfd, (struct sockaddr *)&helper, size) < 0) {
|
||||||
fprintf(stderr, "socket error\n");
|
fprintf(stderr, "failed to connect to %s: %s\n", path, strerror(errno));
|
||||||
|
close(sockfd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1154,10 +1155,12 @@ static int proxy_init(FsContext *ctx)
|
||||||
sock_id = atoi(ctx->fs_root);
|
sock_id = atoi(ctx->fs_root);
|
||||||
if (sock_id < 0) {
|
if (sock_id < 0) {
|
||||||
fprintf(stderr, "socket descriptor not initialized\n");
|
fprintf(stderr, "socket descriptor not initialized\n");
|
||||||
g_free(proxy);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sock_id < 0) {
|
||||||
|
g_free(proxy);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
g_free(ctx->fs_root);
|
g_free(ctx->fs_root);
|
||||||
ctx->fs_root = NULL;
|
ctx->fs_root = NULL;
|
||||||
|
|
||||||
|
|
|
@ -71,11 +71,11 @@ static void tricore_testboard_init(MachineState *machine, int board_id)
|
||||||
machine->cpu_model = "tc1796";
|
machine->cpu_model = "tc1796";
|
||||||
}
|
}
|
||||||
cpu = cpu_tricore_init(machine->cpu_model);
|
cpu = cpu_tricore_init(machine->cpu_model);
|
||||||
env = &cpu->env;
|
|
||||||
if (!cpu) {
|
if (!cpu) {
|
||||||
error_report("Unable to find CPU definition");
|
error_report("Unable to find CPU definition");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
env = &cpu->env;
|
||||||
memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024, &error_abort);
|
memory_region_init_ram(ext_cram, NULL, "powerlink_ext_c.ram", 2*1024*1024, &error_abort);
|
||||||
vmstate_register_ram_global(ext_cram);
|
vmstate_register_ram_global(ext_cram);
|
||||||
memory_region_init_ram(ext_dram, NULL, "powerlink_ext_d.ram", 4*1024*1024, &error_abort);
|
memory_region_init_ram(ext_dram, NULL, "powerlink_ext_d.ram", 4*1024*1024, &error_abort);
|
||||||
|
|
|
@ -357,7 +357,6 @@ char *qemu_find_file(int type, const char *name);
|
||||||
void os_setup_early_signal_handling(void);
|
void os_setup_early_signal_handling(void);
|
||||||
char *os_find_datadir(void);
|
char *os_find_datadir(void);
|
||||||
void os_parse_cmd_args(int index, const char *optarg);
|
void os_parse_cmd_args(int index, const char *optarg);
|
||||||
void os_pidfile_error(void);
|
|
||||||
|
|
||||||
/* Convert a byte between binary and BCD. */
|
/* Convert a byte between binary and BCD. */
|
||||||
static inline uint8_t to_bcd(uint8_t val)
|
static inline uint8_t to_bcd(uint8_t val)
|
||||||
|
|
|
@ -12,7 +12,11 @@
|
||||||
#ifndef BITMAP_H
|
#ifndef BITMAP_H
|
||||||
#define BITMAP_H
|
#define BITMAP_H
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include <glib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/bitops.h"
|
#include "qemu/bitops.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
#ifndef BITOPS_H
|
#ifndef BITOPS_H
|
||||||
#define BITOPS_H
|
#define BITOPS_H
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include <stdint.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#include "host-utils.h"
|
#include "host-utils.h"
|
||||||
|
|
||||||
#define BITS_PER_BYTE CHAR_BIT
|
#define BITS_PER_BYTE CHAR_BIT
|
||||||
|
|
|
@ -549,8 +549,8 @@ static int slirp_smb(SlirpState* s, const char *exported_dir,
|
||||||
);
|
);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -s %s",
|
snprintf(smb_cmdline, sizeof(smb_cmdline), "%s -l %s -s %s",
|
||||||
CONFIG_SMBD_COMMAND, smb_conf);
|
CONFIG_SMBD_COMMAND, s->smb_dir, smb_conf);
|
||||||
|
|
||||||
if (slirp_add_exec(s->slirp, 0, smb_cmdline, &vserver_addr, 139) < 0 ||
|
if (slirp_add_exec(s->slirp, 0, smb_cmdline, &vserver_addr, 139) < 0 ||
|
||||||
slirp_add_exec(s->slirp, 0, smb_cmdline, &vserver_addr, 445) < 0) {
|
slirp_add_exec(s->slirp, 0, smb_cmdline, &vserver_addr, 445) < 0) {
|
||||||
|
|
|
@ -598,7 +598,6 @@ static int net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
|
||||||
|
|
||||||
s = net_tap_fd_init(peer, model, name, fd, vnet_hdr);
|
s = net_tap_fd_init(peer, model, name, fd, vnet_hdr);
|
||||||
if (!s) {
|
if (!s) {
|
||||||
close(fd);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -797,6 +796,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name,
|
||||||
if (net_init_tap_one(tap, peer, "bridge", name, ifname,
|
if (net_init_tap_one(tap, peer, "bridge", name, ifname,
|
||||||
script, downscript, vhostfdname,
|
script, downscript, vhostfdname,
|
||||||
vnet_hdr, fd)) {
|
vnet_hdr, fd)) {
|
||||||
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -824,6 +824,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name,
|
||||||
if (queues > 1 && i == 0 && !tap->has_ifname) {
|
if (queues > 1 && i == 0 && !tap->has_ifname) {
|
||||||
if (tap_fd_get_ifname(fd, ifname)) {
|
if (tap_fd_get_ifname(fd, ifname)) {
|
||||||
error_report("Fail to get ifname");
|
error_report("Fail to get ifname");
|
||||||
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -832,6 +833,7 @@ int net_init_tap(const NetClientOptions *opts, const char *name,
|
||||||
i >= 1 ? "no" : script,
|
i >= 1 ? "no" : script,
|
||||||
i >= 1 ? "no" : downscript,
|
i >= 1 ? "no" : downscript,
|
||||||
vhostfdname, vnet_hdr, fd)) {
|
vhostfdname, vnet_hdr, fd)) {
|
||||||
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,9 +29,6 @@
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "qapi-types.h"
|
#include "qapi-types.h"
|
||||||
|
|
||||||
#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
|
|
||||||
#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
|
|
||||||
|
|
||||||
int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
|
int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
|
||||||
int vnet_hdr_required, int mq_required);
|
int vnet_hdr_required, int mq_required);
|
||||||
|
|
||||||
|
|
66
os-posix.c
66
os-posix.c
|
@ -47,7 +47,7 @@
|
||||||
static struct passwd *user_pwd;
|
static struct passwd *user_pwd;
|
||||||
static const char *chroot_dir;
|
static const char *chroot_dir;
|
||||||
static int daemonize;
|
static int daemonize;
|
||||||
static int fds[2];
|
static int daemon_pipe;
|
||||||
|
|
||||||
void os_setup_early_signal_handling(void)
|
void os_setup_early_signal_handling(void)
|
||||||
{
|
{
|
||||||
|
@ -205,6 +205,7 @@ void os_daemonize(void)
|
||||||
{
|
{
|
||||||
if (daemonize) {
|
if (daemonize) {
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
|
int fds[2];
|
||||||
|
|
||||||
if (pipe(fds) == -1) {
|
if (pipe(fds) == -1) {
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -217,26 +218,21 @@ void os_daemonize(void)
|
||||||
|
|
||||||
close(fds[1]);
|
close(fds[1]);
|
||||||
|
|
||||||
again:
|
do {
|
||||||
len = read(fds[0], &status, 1);
|
len = read(fds[0], &status, 1);
|
||||||
if (len == -1 && (errno == EINTR)) {
|
} while (len < 0 && errno == EINTR);
|
||||||
goto again;
|
|
||||||
}
|
/* only exit successfully if our child actually wrote
|
||||||
if (len != 1) {
|
* a one-byte zero to our pipe, upon successful init */
|
||||||
exit(1);
|
exit(len == 1 && status == 0 ? 0 : 1);
|
||||||
}
|
|
||||||
else if (status == 1) {
|
} else if (pid < 0) {
|
||||||
fprintf(stderr, "Could not acquire pidfile\n");
|
exit(1);
|
||||||
exit(1);
|
}
|
||||||
} else {
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
} else if (pid < 0) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
close(fds[0]);
|
close(fds[0]);
|
||||||
qemu_set_cloexec(fds[1]);
|
daemon_pipe = fds[1];
|
||||||
|
qemu_set_cloexec(daemon_pipe);
|
||||||
|
|
||||||
setsid();
|
setsid();
|
||||||
|
|
||||||
|
@ -259,17 +255,6 @@ void os_setup_post(void)
|
||||||
int fd = 0;
|
int fd = 0;
|
||||||
|
|
||||||
if (daemonize) {
|
if (daemonize) {
|
||||||
uint8_t status = 0;
|
|
||||||
ssize_t len;
|
|
||||||
|
|
||||||
again1:
|
|
||||||
len = write(fds[1], &status, 1);
|
|
||||||
if (len == -1 && (errno == EINTR)) {
|
|
||||||
goto again1;
|
|
||||||
}
|
|
||||||
if (len != 1) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
if (chdir("/")) {
|
if (chdir("/")) {
|
||||||
perror("not able to chdir to /");
|
perror("not able to chdir to /");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -284,23 +269,22 @@ void os_setup_post(void)
|
||||||
change_process_uid();
|
change_process_uid();
|
||||||
|
|
||||||
if (daemonize) {
|
if (daemonize) {
|
||||||
|
uint8_t status = 0;
|
||||||
|
ssize_t len;
|
||||||
|
|
||||||
dup2(fd, 0);
|
dup2(fd, 0);
|
||||||
dup2(fd, 1);
|
dup2(fd, 1);
|
||||||
dup2(fd, 2);
|
dup2(fd, 2);
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void os_pidfile_error(void)
|
do {
|
||||||
{
|
len = write(daemon_pipe, &status, 1);
|
||||||
if (daemonize) {
|
} while (len < 0 && errno == EINTR);
|
||||||
uint8_t status = 1;
|
if (len != 1) {
|
||||||
if (write(fds[1], &status, 1) != 1) {
|
exit(1);
|
||||||
perror("daemonize. Writing to pipe\n");
|
|
||||||
}
|
}
|
||||||
} else
|
}
|
||||||
fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void os_set_line_buffering(void)
|
void os_set_line_buffering(void)
|
||||||
|
@ -319,8 +303,6 @@ int qemu_create_pidfile(const char *filename)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (lockf(fd, F_TLOCK, 0) == -1) {
|
if (lockf(fd, F_TLOCK, 0) == -1) {
|
||||||
fprintf(stderr, "lock file '%s' failed: %s\n",
|
|
||||||
filename, strerror(errno));
|
|
||||||
close(fd);
|
close(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,11 +104,6 @@ void os_parse_cmd_args(int index, const char *optarg)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void os_pidfile_error(void)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno));
|
|
||||||
}
|
|
||||||
|
|
||||||
int qemu_create_pidfile(const char *filename)
|
int qemu_create_pidfile(const char *filename)
|
||||||
{
|
{
|
||||||
char buffer[128];
|
char buffer[128];
|
||||||
|
|
|
@ -748,7 +748,6 @@ static void do_fp_st(DisasContext *s, int srcidx, TCGv_i64 tcg_addr, int size)
|
||||||
} else {
|
} else {
|
||||||
TCGv_i64 tcg_hiaddr = tcg_temp_new_i64();
|
TCGv_i64 tcg_hiaddr = tcg_temp_new_i64();
|
||||||
tcg_gen_qemu_st_i64(tmp, tcg_addr, get_mem_index(s), MO_TEQ);
|
tcg_gen_qemu_st_i64(tmp, tcg_addr, get_mem_index(s), MO_TEQ);
|
||||||
tcg_gen_qemu_st64(tmp, tcg_addr, get_mem_index(s));
|
|
||||||
tcg_gen_ld_i64(tmp, cpu_env, fp_reg_hi_offset(s, srcidx));
|
tcg_gen_ld_i64(tmp, cpu_env, fp_reg_hi_offset(s, srcidx));
|
||||||
tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8);
|
tcg_gen_addi_i64(tcg_hiaddr, tcg_addr, 8);
|
||||||
tcg_gen_qemu_st_i64(tmp, tcg_hiaddr, get_mem_index(s), MO_TEQ);
|
tcg_gen_qemu_st_i64(tmp, tcg_hiaddr, get_mem_index(s), MO_TEQ);
|
||||||
|
|
|
@ -442,14 +442,6 @@ const char *get_register_name_32(unsigned int reg)
|
||||||
return x86_reg_info_32[reg].name;
|
return x86_reg_info_32[reg].name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* collects per-function cpuid data
|
|
||||||
*/
|
|
||||||
typedef struct model_features_t {
|
|
||||||
uint32_t *guest_feat;
|
|
||||||
uint32_t *host_feat;
|
|
||||||
FeatureWord feat_word;
|
|
||||||
} model_features_t;
|
|
||||||
|
|
||||||
/* KVM-specific features that are automatically added to all CPU models
|
/* KVM-specific features that are automatically added to all CPU models
|
||||||
* when KVM is enabled.
|
* when KVM is enabled.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "core-dc232b/core-isa.h"
|
#include "core-dc232b/core-isa.h"
|
||||||
#include "overlay_tool.h"
|
#include "overlay_tool.h"
|
||||||
|
|
||||||
static const XtensaConfig dc232b = {
|
static const XtensaConfig dc232b __attribute__((unused)) = {
|
||||||
.name = "dc232b",
|
.name = "dc232b",
|
||||||
.gdb_regmap = {
|
.gdb_regmap = {
|
||||||
.num_regs = 120,
|
.num_regs = 120,
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#include "core-dc233c/core-isa.h"
|
#include "core-dc233c/core-isa.h"
|
||||||
#include "overlay_tool.h"
|
#include "overlay_tool.h"
|
||||||
|
|
||||||
static const XtensaConfig dc233c = {
|
static const XtensaConfig dc233c __attribute__((unused)) = {
|
||||||
.name = "dc233c",
|
.name = "dc233c",
|
||||||
.gdb_regmap = {
|
.gdb_regmap = {
|
||||||
.num_regs = 121,
|
.num_regs = 121,
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "core-fsf/core-isa.h"
|
#include "core-fsf/core-isa.h"
|
||||||
#include "overlay_tool.h"
|
#include "overlay_tool.h"
|
||||||
|
|
||||||
static const XtensaConfig fsf = {
|
static const XtensaConfig fsf __attribute__((unused)) = {
|
||||||
.name = "fsf",
|
.name = "fsf",
|
||||||
/* GDB for this core is not supported currently */
|
/* GDB for this core is not supported currently */
|
||||||
.clock_freq_khz = 10000,
|
.clock_freq_khz = 10000,
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/bitops.h"
|
#include "qemu/bitops.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -390,7 +390,8 @@ void os_mem_prealloc(int fd, char *area, size_t memory)
|
||||||
pthread_sigmask(SIG_UNBLOCK, &set, &oldset);
|
pthread_sigmask(SIG_UNBLOCK, &set, &oldset);
|
||||||
|
|
||||||
if (sigsetjmp(sigjump, 1)) {
|
if (sigsetjmp(sigjump, 1)) {
|
||||||
fprintf(stderr, "os_mem_prealloc: failed to preallocate pages\n");
|
fprintf(stderr, "os_mem_prealloc: Insufficient free host memory "
|
||||||
|
"pages available to allocate guest RAM\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
} else {
|
} else {
|
||||||
int i;
|
int i;
|
||||||
|
|
2
vl.c
2
vl.c
|
@ -4008,7 +4008,7 @@ int main(int argc, char **argv, char **envp)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pid_file && qemu_create_pidfile(pid_file) != 0) {
|
if (pid_file && qemu_create_pidfile(pid_file) != 0) {
|
||||||
os_pidfile_error();
|
fprintf(stderr, "Could not acquire pid file: %s\n", strerror(errno));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue