Merge remote-tracking branch 'stefanha/trivial-patches' into staging

This commit is contained in:
Anthony Liguori 2011-06-27 11:25:23 -05:00
commit bb820c03e2
30 changed files with 117 additions and 110 deletions

View File

@ -480,7 +480,7 @@ S: Maintained
F: tcg/ia64/ F: tcg/ia64/
MIPS target MIPS target
M: Aurelien Jarno <aurelien@aurel32.ne> M: Aurelien Jarno <aurelien@aurel32.net>
S: Maintained S: Maintained
F: tcg/mips/ F: tcg/mips/

View File

@ -671,7 +671,7 @@ static int block_load(QEMUFile *f, void *opaque, int version_id)
bs_prev = bs; bs_prev = bs;
total_sectors = bdrv_getlength(bs) >> BDRV_SECTOR_BITS; total_sectors = bdrv_getlength(bs) >> BDRV_SECTOR_BITS;
if (total_sectors <= 0) { if (total_sectors <= 0) {
error_report("Error getting length of block device %s\n", error_report("Error getting length of block device %s",
device_name); device_name);
return -EINVAL; return -EINVAL;
} }

View File

@ -936,7 +936,7 @@ static int qcow2_create2(const char *filename, int64_t total_size,
(1 << cluster_bits) != cluster_size) (1 << cluster_bits) != cluster_size)
{ {
error_report( error_report(
"Cluster size must be a power of two between %d and %dk\n", "Cluster size must be a power of two between %d and %dk",
1 << MIN_CLUSTER_BITS, 1 << (MAX_CLUSTER_BITS - 10)); 1 << MIN_CLUSTER_BITS, 1 << (MAX_CLUSTER_BITS - 10));
return -EINVAL; return -EINVAL;
} }

View File

@ -444,18 +444,12 @@ static SheepdogAIOCB *sd_aio_setup(BlockDriverState *bs, QEMUIOVector *qiov,
static int sd_schedule_bh(QEMUBHFunc *cb, SheepdogAIOCB *acb) static int sd_schedule_bh(QEMUBHFunc *cb, SheepdogAIOCB *acb)
{ {
if (acb->bh) { if (acb->bh) {
error_report("bug: %d %d\n", acb->aiocb_type, acb->aiocb_type); error_report("bug: %d %d", acb->aiocb_type, acb->aiocb_type);
return -EIO; return -EIO;
} }
acb->bh = qemu_bh_new(cb, acb); acb->bh = qemu_bh_new(cb, acb);
if (!acb->bh) {
error_report("oom: %d %d\n", acb->aiocb_type, acb->aiocb_type);
return -EIO;
}
qemu_bh_schedule(acb->bh); qemu_bh_schedule(acb->bh);
return 0; return 0;
} }
@ -598,7 +592,7 @@ static int connect_to_sdog(const char *addr, const char *port)
ret = getaddrinfo(addr, port, &hints, &res0); ret = getaddrinfo(addr, port, &hints, &res0);
if (ret) { if (ret) {
error_report("unable to get address info %s, %s\n", error_report("unable to get address info %s, %s",
addr, strerror(errno)); addr, strerror(errno));
return -1; return -1;
} }
@ -628,7 +622,7 @@ static int connect_to_sdog(const char *addr, const char *port)
goto success; goto success;
} }
fd = -1; fd = -1;
error_report("failed connect to %s:%s\n", addr, port); error_report("failed connect to %s:%s", addr, port);
success: success:
freeaddrinfo(res0); freeaddrinfo(res0);
return fd; return fd;
@ -644,7 +638,7 @@ again:
if (errno == EINTR || errno == EAGAIN) { if (errno == EINTR || errno == EAGAIN) {
goto again; goto again;
} }
error_report("failed to recv a rsp, %s\n", strerror(errno)); error_report("failed to recv a rsp, %s", strerror(errno));
return 1; return 1;
} }
@ -703,7 +697,7 @@ static int send_req(int sockfd, SheepdogReq *hdr, void *data,
ret = do_writev(sockfd, iov, sizeof(*hdr) + *wlen, 0); ret = do_writev(sockfd, iov, sizeof(*hdr) + *wlen, 0);
if (ret) { if (ret) {
error_report("failed to send a req, %s\n", strerror(errno)); error_report("failed to send a req, %s", strerror(errno));
ret = -1; ret = -1;
} }
@ -723,7 +717,7 @@ static int do_req(int sockfd, SheepdogReq *hdr, void *data,
ret = do_read(sockfd, hdr, sizeof(*hdr)); ret = do_read(sockfd, hdr, sizeof(*hdr));
if (ret) { if (ret) {
error_report("failed to get a rsp, %s\n", strerror(errno)); error_report("failed to get a rsp, %s", strerror(errno));
ret = -1; ret = -1;
goto out; goto out;
} }
@ -735,7 +729,7 @@ static int do_req(int sockfd, SheepdogReq *hdr, void *data,
if (*rlen) { if (*rlen) {
ret = do_read(sockfd, data, *rlen); ret = do_read(sockfd, data, *rlen);
if (ret) { if (ret) {
error_report("failed to get the data, %s\n", strerror(errno)); error_report("failed to get the data, %s", strerror(errno));
ret = -1; ret = -1;
goto out; goto out;
} }
@ -772,7 +766,7 @@ static void send_pending_req(BDRVSheepdogState *s, uint64_t oid, uint32_t id)
ret = add_aio_request(s, aio_req, acb->qiov->iov, ret = add_aio_request(s, aio_req, acb->qiov->iov,
acb->qiov->niov, 0, acb->aiocb_type); acb->qiov->niov, 0, acb->aiocb_type);
if (ret < 0) { if (ret < 0) {
error_report("add_aio_request is failed\n"); error_report("add_aio_request is failed");
free_aio_req(s, aio_req); free_aio_req(s, aio_req);
if (QLIST_EMPTY(&acb->aioreq_head)) { if (QLIST_EMPTY(&acb->aioreq_head)) {
sd_finish_aiocb(acb); sd_finish_aiocb(acb);
@ -805,7 +799,7 @@ static void aio_read_response(void *opaque)
/* read a header */ /* read a header */
ret = do_read(fd, &rsp, sizeof(rsp)); ret = do_read(fd, &rsp, sizeof(rsp));
if (ret) { if (ret) {
error_report("failed to get the header, %s\n", strerror(errno)); error_report("failed to get the header, %s", strerror(errno));
return; return;
} }
@ -816,7 +810,7 @@ static void aio_read_response(void *opaque)
} }
} }
if (!aio_req) { if (!aio_req) {
error_report("cannot find aio_req %x\n", rsp.id); error_report("cannot find aio_req %x", rsp.id);
return; return;
} }
@ -852,7 +846,7 @@ static void aio_read_response(void *opaque)
ret = do_readv(fd, acb->qiov->iov, rsp.data_length, ret = do_readv(fd, acb->qiov->iov, rsp.data_length,
aio_req->iov_offset); aio_req->iov_offset);
if (ret) { if (ret) {
error_report("failed to get the data, %s\n", strerror(errno)); error_report("failed to get the data, %s", strerror(errno));
return; return;
} }
break; break;
@ -860,7 +854,7 @@ static void aio_read_response(void *opaque)
if (rsp.result != SD_RES_SUCCESS) { if (rsp.result != SD_RES_SUCCESS) {
acb->ret = -EIO; acb->ret = -EIO;
error_report("%s\n", sd_strerror(rsp.result)); error_report("%s", sd_strerror(rsp.result));
} }
rest = free_aio_req(s, aio_req); rest = free_aio_req(s, aio_req);
@ -917,7 +911,7 @@ static int get_sheep_fd(BDRVSheepdogState *s)
fd = connect_to_sdog(s->addr, s->port); fd = connect_to_sdog(s->addr, s->port);
if (fd < 0) { if (fd < 0) {
error_report("%s\n", strerror(errno)); error_report("%s", strerror(errno));
return -1; return -1;
} }
@ -925,7 +919,7 @@ static int get_sheep_fd(BDRVSheepdogState *s)
ret = set_nodelay(fd); ret = set_nodelay(fd);
if (ret) { if (ret) {
error_report("%s\n", strerror(errno)); error_report("%s", strerror(errno));
closesocket(fd); closesocket(fd);
return -1; return -1;
} }
@ -1041,7 +1035,7 @@ static int find_vdi_name(BDRVSheepdogState *s, char *filename, uint32_t snapid,
} }
if (rsp->result != SD_RES_SUCCESS) { if (rsp->result != SD_RES_SUCCESS) {
error_report("cannot get vdi info, %s, %s %d %s\n", error_report("cannot get vdi info, %s, %s %d %s",
sd_strerror(rsp->result), filename, snapid, tag); sd_strerror(rsp->result), filename, snapid, tag);
ret = -1; ret = -1;
goto out; goto out;
@ -1069,7 +1063,7 @@ static int add_aio_request(BDRVSheepdogState *s, AIOReq *aio_req,
uint64_t old_oid = aio_req->base_oid; uint64_t old_oid = aio_req->base_oid;
if (!nr_copies) { if (!nr_copies) {
error_report("bug\n"); error_report("bug");
} }
memset(&hdr, 0, sizeof(hdr)); memset(&hdr, 0, sizeof(hdr));
@ -1102,14 +1096,14 @@ static int add_aio_request(BDRVSheepdogState *s, AIOReq *aio_req,
/* send a header */ /* send a header */
ret = do_write(s->fd, &hdr, sizeof(hdr)); ret = do_write(s->fd, &hdr, sizeof(hdr));
if (ret) { if (ret) {
error_report("failed to send a req, %s\n", strerror(errno)); error_report("failed to send a req, %s", strerror(errno));
return -EIO; return -EIO;
} }
if (wlen) { if (wlen) {
ret = do_writev(s->fd, iov, wlen, aio_req->iov_offset); ret = do_writev(s->fd, iov, wlen, aio_req->iov_offset);
if (ret) { if (ret) {
error_report("failed to send a data, %s\n", strerror(errno)); error_report("failed to send a data, %s", strerror(errno));
return -EIO; return -EIO;
} }
} }
@ -1151,7 +1145,7 @@ static int read_write_object(int fd, char *buf, uint64_t oid, int copies,
ret = do_req(fd, (SheepdogReq *)&hdr, buf, &wlen, &rlen); ret = do_req(fd, (SheepdogReq *)&hdr, buf, &wlen, &rlen);
if (ret) { if (ret) {
error_report("failed to send a request to the sheep\n"); error_report("failed to send a request to the sheep");
return -1; return -1;
} }
@ -1159,7 +1153,7 @@ static int read_write_object(int fd, char *buf, uint64_t oid, int copies,
case SD_RES_SUCCESS: case SD_RES_SUCCESS:
return 0; return 0;
default: default:
error_report("%s\n", sd_strerror(rsp->result)); error_report("%s", sd_strerror(rsp->result));
return -1; return -1;
} }
} }
@ -1212,7 +1206,7 @@ static int sd_open(BlockDriverState *bs, const char *filename, int flags)
fd = connect_to_sdog(s->addr, s->port); fd = connect_to_sdog(s->addr, s->port);
if (fd < 0) { if (fd < 0) {
error_report("failed to connect\n"); error_report("failed to connect");
goto out; goto out;
} }
@ -1281,7 +1275,7 @@ static int do_sd_create(char *filename, int64_t vdi_size,
} }
if (rsp->result != SD_RES_SUCCESS) { if (rsp->result != SD_RES_SUCCESS) {
error_report("%s, %s\n", sd_strerror(rsp->result), filename); error_report("%s, %s", sd_strerror(rsp->result), filename);
return -EIO; return -EIO;
} }
@ -1308,7 +1302,7 @@ static int sd_create(const char *filename, QEMUOptionParameter *options)
memset(vdi, 0, sizeof(vdi)); memset(vdi, 0, sizeof(vdi));
memset(tag, 0, sizeof(tag)); memset(tag, 0, sizeof(tag));
if (parse_vdiname(&s, filename, vdi, &snapid, tag) < 0) { if (parse_vdiname(&s, filename, vdi, &snapid, tag) < 0) {
error_report("invalid filename\n"); error_report("invalid filename");
return -EINVAL; return -EINVAL;
} }
@ -1322,7 +1316,7 @@ static int sd_create(const char *filename, QEMUOptionParameter *options)
} }
if (vdi_size > SD_MAX_VDI_SIZE) { if (vdi_size > SD_MAX_VDI_SIZE) {
error_report("too big image size\n"); error_report("too big image size");
return -EINVAL; return -EINVAL;
} }
@ -1334,7 +1328,7 @@ static int sd_create(const char *filename, QEMUOptionParameter *options)
/* Currently, only Sheepdog backing image is supported. */ /* Currently, only Sheepdog backing image is supported. */
drv = bdrv_find_protocol(backing_file); drv = bdrv_find_protocol(backing_file);
if (!drv || strcmp(drv->protocol_name, "sheepdog") != 0) { if (!drv || strcmp(drv->protocol_name, "sheepdog") != 0) {
error_report("backing_file must be a sheepdog image\n"); error_report("backing_file must be a sheepdog image");
return -EINVAL; return -EINVAL;
} }
@ -1345,7 +1339,7 @@ static int sd_create(const char *filename, QEMUOptionParameter *options)
s = bs->opaque; s = bs->opaque;
if (!is_snapshot(&s->inode)) { if (!is_snapshot(&s->inode)) {
error_report("cannot clone from a non snapshot vdi\n"); error_report("cannot clone from a non snapshot vdi");
bdrv_delete(bs); bdrv_delete(bs);
return -EINVAL; return -EINVAL;
} }
@ -1385,7 +1379,7 @@ static void sd_close(BlockDriverState *bs)
if (!ret && rsp->result != SD_RES_SUCCESS && if (!ret && rsp->result != SD_RES_SUCCESS &&
rsp->result != SD_RES_VDI_NOT_LOCKED) { rsp->result != SD_RES_VDI_NOT_LOCKED) {
error_report("%s, %s\n", sd_strerror(rsp->result), s->name); error_report("%s, %s", sd_strerror(rsp->result), s->name);
} }
qemu_aio_set_fd_handler(s->fd, NULL, NULL, NULL, NULL, NULL); qemu_aio_set_fd_handler(s->fd, NULL, NULL, NULL, NULL, NULL);
@ -1407,10 +1401,10 @@ static int sd_truncate(BlockDriverState *bs, int64_t offset)
unsigned int datalen; unsigned int datalen;
if (offset < s->inode.vdi_size) { if (offset < s->inode.vdi_size) {
error_report("shrinking is not supported\n"); error_report("shrinking is not supported");
return -EINVAL; return -EINVAL;
} else if (offset > SD_MAX_VDI_SIZE) { } else if (offset > SD_MAX_VDI_SIZE) {
error_report("too big image size\n"); error_report("too big image size");
return -EINVAL; return -EINVAL;
} }
@ -1427,7 +1421,7 @@ static int sd_truncate(BlockDriverState *bs, int64_t offset)
close(fd); close(fd);
if (ret < 0) { if (ret < 0) {
error_report("failed to update an inode.\n"); error_report("failed to update an inode.");
return -EIO; return -EIO;
} }
@ -1500,7 +1494,7 @@ static int sd_create_branch(BDRVSheepdogState *s)
fd = connect_to_sdog(s->addr, s->port); fd = connect_to_sdog(s->addr, s->port);
if (fd < 0) { if (fd < 0) {
error_report("failed to connect\n"); error_report("failed to connect");
goto out; goto out;
} }
@ -1618,7 +1612,7 @@ static void sd_readv_writev_bh_cb(void *p)
ret = add_aio_request(s, aio_req, acb->qiov->iov, acb->qiov->niov, ret = add_aio_request(s, aio_req, acb->qiov->iov, acb->qiov->niov,
create, acb->aiocb_type); create, acb->aiocb_type);
if (ret < 0) { if (ret < 0) {
error_report("add_aio_request is failed\n"); error_report("add_aio_request is failed");
free_aio_req(s, aio_req); free_aio_req(s, aio_req);
acb->ret = -EIO; acb->ret = -EIO;
goto out; goto out;
@ -1695,7 +1689,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
if (s->is_snapshot) { if (s->is_snapshot) {
error_report("You can't create a snapshot of a snapshot VDI, " error_report("You can't create a snapshot of a snapshot VDI, "
"%s (%" PRIu32 ").\n", s->name, s->inode.vdi_id); "%s (%" PRIu32 ").", s->name, s->inode.vdi_id);
return -EINVAL; return -EINVAL;
} }
@ -1718,7 +1712,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
ret = write_object(fd, (char *)&s->inode, vid_to_vdi_oid(s->inode.vdi_id), ret = write_object(fd, (char *)&s->inode, vid_to_vdi_oid(s->inode.vdi_id),
s->inode.nr_copies, datalen, 0, 0); s->inode.nr_copies, datalen, 0, 0);
if (ret < 0) { if (ret < 0) {
error_report("failed to write snapshot's inode.\n"); error_report("failed to write snapshot's inode.");
ret = -EIO; ret = -EIO;
goto cleanup; goto cleanup;
} }
@ -1726,7 +1720,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
ret = do_sd_create(s->name, s->inode.vdi_size, s->inode.vdi_id, &new_vid, 1, ret = do_sd_create(s->name, s->inode.vdi_size, s->inode.vdi_id, &new_vid, 1,
s->addr, s->port); s->addr, s->port);
if (ret < 0) { if (ret < 0) {
error_report("failed to create inode for snapshot. %s\n", error_report("failed to create inode for snapshot. %s",
strerror(errno)); strerror(errno));
ret = -EIO; ret = -EIO;
goto cleanup; goto cleanup;
@ -1738,7 +1732,7 @@ static int sd_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
s->inode.nr_copies, datalen, 0); s->inode.nr_copies, datalen, 0);
if (ret < 0) { if (ret < 0) {
error_report("failed to read new inode info. %s\n", strerror(errno)); error_report("failed to read new inode info. %s", strerror(errno));
ret = -EIO; ret = -EIO;
goto cleanup; goto cleanup;
} }
@ -1777,14 +1771,14 @@ static int sd_snapshot_goto(BlockDriverState *bs, const char *snapshot_id)
ret = find_vdi_name(s, vdi, snapid, tag, &vid, 1); ret = find_vdi_name(s, vdi, snapid, tag, &vid, 1);
if (ret) { if (ret) {
error_report("Failed to find_vdi_name\n"); error_report("Failed to find_vdi_name");
ret = -ENOENT; ret = -ENOENT;
goto out; goto out;
} }
fd = connect_to_sdog(s->addr, s->port); fd = connect_to_sdog(s->addr, s->port);
if (fd < 0) { if (fd < 0) {
error_report("failed to connect\n"); error_report("failed to connect");
goto out; goto out;
} }
@ -1802,7 +1796,7 @@ static int sd_snapshot_goto(BlockDriverState *bs, const char *snapshot_id)
memcpy(&s->inode, buf, sizeof(s->inode)); memcpy(&s->inode, buf, sizeof(s->inode));
if (!s->inode.vm_state_size) { if (!s->inode.vm_state_size) {
error_report("Invalid snapshot\n"); error_report("Invalid snapshot");
ret = -ENOENT; ret = -ENOENT;
goto out; goto out;
} }
@ -1819,7 +1813,7 @@ out:
qemu_free(buf); qemu_free(buf);
qemu_free(old_s); qemu_free(old_s);
error_report("failed to open. recover old bdrv_sd_state.\n"); error_report("failed to open. recover old bdrv_sd_state.");
return ret; return ret;
} }
@ -1874,7 +1868,7 @@ static int sd_snapshot_list(BlockDriverState *bs, QEMUSnapshotInfo **psn_tab)
fd = connect_to_sdog(s->addr, s->port); fd = connect_to_sdog(s->addr, s->port);
if (fd < 0) { if (fd < 0) {
error_report("failed to connect\n"); error_report("failed to connect");
goto out; goto out;
} }
@ -1948,7 +1942,7 @@ static int do_load_save_vmstate(BDRVSheepdogState *s, uint8_t *data,
} }
if (ret < 0) { if (ret < 0) {
error_report("failed to save vmstate %s\n", strerror(errno)); error_report("failed to save vmstate %s", strerror(errno));
ret = -EIO; ret = -EIO;
goto cleanup; goto cleanup;
} }

6
configure vendored
View File

@ -1640,7 +1640,7 @@ for drv in $audio_drv_list; do
pa) pa)
audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \ audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \
"pa_simple *s = NULL; pa_simple_free(s); return 0;" "pa_simple *s = 0; pa_simple_free(s); return 0;"
libs_softmmu="-lpulse -lpulse-simple $libs_softmmu" libs_softmmu="-lpulse -lpulse-simple $libs_softmmu"
audio_pt_int="yes" audio_pt_int="yes"
;; ;;
@ -3483,7 +3483,9 @@ for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.rom $source_p
done done
mkdir -p $DIRS mkdir -p $DIRS
for f in $FILES ; do for f in $FILES ; do
test -e $f || symlink $source_path/$f $f if [ -e "$source_path/$f" ] && ! [ -e "$f" ]; then
symlink "$source_path/$f" "$f"
fi
done done
# temporary config to build submodules # temporary config to build submodules

View File

@ -1349,8 +1349,15 @@ static struct DisplayAllocator default_allocator = {
static void dumb_display_init(void) static void dumb_display_init(void)
{ {
DisplayState *ds = qemu_mallocz(sizeof(DisplayState)); DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
int width = 640;
int height = 480;
ds->allocator = &default_allocator; ds->allocator = &default_allocator;
ds->surface = qemu_create_displaysurface(ds, 640, 480); if (is_fixedsize_console()) {
width = active_console->g_width;
height = active_console->g_height;
}
ds->surface = qemu_create_displaysurface(ds, width, height);
register_displaystate(ds); register_displaystate(ds);
} }

3
cpus.c
View File

@ -33,7 +33,10 @@
#include "qemu-thread.h" #include "qemu-thread.h"
#include "cpus.h" #include "cpus.h"
#ifndef _WIN32
#include "compatfd.h" #include "compatfd.h"
#endif
#ifdef SIGRTMIN #ifdef SIGRTMIN
#define SIG_IPI (SIGRTMIN+4) #define SIG_IPI (SIGRTMIN+4)

10
exec.c
View File

@ -1207,12 +1207,16 @@ static inline void tb_alloc_page(TranslationBlock *tb,
unsigned int n, tb_page_addr_t page_addr) unsigned int n, tb_page_addr_t page_addr)
{ {
PageDesc *p; PageDesc *p;
TranslationBlock *last_first_tb; #ifndef CONFIG_USER_ONLY
bool page_already_protected;
#endif
tb->page_addr[n] = page_addr; tb->page_addr[n] = page_addr;
p = page_find_alloc(page_addr >> TARGET_PAGE_BITS, 1); p = page_find_alloc(page_addr >> TARGET_PAGE_BITS, 1);
tb->page_next[n] = p->first_tb; tb->page_next[n] = p->first_tb;
last_first_tb = p->first_tb; #ifndef CONFIG_USER_ONLY
page_already_protected = p->first_tb != NULL;
#endif
p->first_tb = (TranslationBlock *)((long)tb | n); p->first_tb = (TranslationBlock *)((long)tb | n);
invalidate_page_bitmap(p); invalidate_page_bitmap(p);
@ -1248,7 +1252,7 @@ static inline void tb_alloc_page(TranslationBlock *tb,
/* if some code is already present, then the pages are already /* if some code is already present, then the pages are already
protected. So we handle the case where only the first TB is protected. So we handle the case where only the first TB is
allocated in a physical page */ allocated in a physical page */
if (!last_first_tb) { if (!page_already_protected) {
tlb_protect_code(page_addr); tlb_protect_code(page_addr);
} }
#endif #endif

View File

@ -4,7 +4,7 @@
* Copyright (c) 2006-2007 CodeSourcery. * Copyright (c) 2006-2007 CodeSourcery.
* Written by Paul Brook * Written by Paul Brook
* *
* This code is licenced under the GPL. * This code is licensed under the GPL.
*/ */
#include "sysbus.h" #include "sysbus.h"
@ -14,7 +14,7 @@
/* Bitbanded IO. Each word corresponds to a single bit. */ /* Bitbanded IO. Each word corresponds to a single bit. */
/* Get the byte address of the real memory for a bitband acess. */ /* Get the byte address of the real memory for a bitband access. */
static inline uint32_t bitband_addr(void * opaque, uint32_t addr) static inline uint32_t bitband_addr(void * opaque, uint32_t addr)
{ {
uint32_t res; uint32_t res;

View File

@ -83,7 +83,7 @@ static void sys_write(void *opaque, target_phys_addr_t addr, uint32_t value)
break; break;
default: default:
error_report("lm32_sys: write access to unkown register 0x" error_report("lm32_sys: write access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }

View File

@ -86,7 +86,7 @@ static uint32_t timer_read(void *opaque, target_phys_addr_t addr)
r = (uint32_t)ptimer_get_count(s->ptimer); r = (uint32_t)ptimer_get_count(s->ptimer);
break; break;
default: default:
error_report("lm32_timer: read access to unkown register 0x" error_report("lm32_timer: read access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }
@ -124,7 +124,7 @@ static void timer_write(void *opaque, target_phys_addr_t addr, uint32_t value)
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
default: default:
error_report("lm32_timer: write access to unkown register 0x" error_report("lm32_timer: write access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }

View File

@ -149,7 +149,7 @@ static uint32_t uart_read(void *opaque, target_phys_addr_t addr)
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
default: default:
error_report("lm32_uart: read access to unkown register 0x" error_report("lm32_uart: read access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }
@ -185,7 +185,7 @@ static void uart_write(void *opaque, target_phys_addr_t addr, uint32_t value)
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
default: default:
error_report("lm32_uart: write access to unkown register 0x" error_report("lm32_uart: write access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }

View File

@ -103,7 +103,7 @@ static uint32_t ac97_read(void *opaque, target_phys_addr_t addr)
break; break;
default: default:
error_report("milkymist_ac97: read access to unkown register 0x" error_report("milkymist_ac97: read access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }
@ -152,7 +152,7 @@ static void ac97_write(void *opaque, target_phys_addr_t addr, uint32_t value)
break; break;
default: default:
error_report("milkymist_ac97: write access to unkown register 0x" error_report("milkymist_ac97: write access to unknown register 0x"
TARGET_FMT_plx, addr); TARGET_FMT_plx, addr);
break; break;
} }

View File

@ -154,7 +154,7 @@ static uint32_t memcard_read(void *opaque, target_phys_addr_t addr)
break; break;
default: default:
error_report("milkymist_memcard: read access to unkown register 0x" error_report("milkymist_memcard: read access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }
@ -210,7 +210,7 @@ static void memcard_write(void *opaque, target_phys_addr_t addr, uint32_t value)
break; break;
default: default:
error_report("milkymist_memcard: write access to unkown register 0x" error_report("milkymist_memcard: write access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }

View File

@ -234,20 +234,20 @@ static void minimac2_tx(MilkymistMinimac2State *s)
uint8_t *buf = s->tx_buf; uint8_t *buf = s->tx_buf;
if (txcount < 64) { if (txcount < 64) {
error_report("milkymist_minimac2: ethernet frame too small (%u < %u)\n", error_report("milkymist_minimac2: ethernet frame too small (%u < %u)",
txcount, 64); txcount, 64);
goto err; goto err;
} }
if (txcount > MINIMAC2_MTU) { if (txcount > MINIMAC2_MTU) {
error_report("milkymist_minimac2: MTU exceeded (%u > %u)\n", error_report("milkymist_minimac2: MTU exceeded (%u > %u)",
txcount, MINIMAC2_MTU); txcount, MINIMAC2_MTU);
goto err; goto err;
} }
if (memcmp(buf, preamble_sfd, 8) != 0) { if (memcmp(buf, preamble_sfd, 8) != 0) {
error_report("milkymist_minimac2: frame doesn't contain the preamble " error_report("milkymist_minimac2: frame doesn't contain the preamble "
"and/or the SFD (%02x %02x %02x %02x %02x %02x %02x %02x)\n", "and/or the SFD (%02x %02x %02x %02x %02x %02x %02x %02x)",
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]); buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]);
goto err; goto err;
} }

View File

@ -301,7 +301,7 @@ static int pfpu_decode_insn(MilkymistPFPUState *s)
} break; } break;
default: default:
error_report("milkymist_pfpu: unknown opcode %d\n", op); error_report("milkymist_pfpu: unknown opcode %d", op);
break; break;
} }
@ -358,7 +358,7 @@ static void pfpu_start(MilkymistPFPUState *s)
/* decode at most MICROCODE_WORDS instructions */ /* decode at most MICROCODE_WORDS instructions */
if (i++ >= MICROCODE_WORDS) { if (i++ >= MICROCODE_WORDS) {
error_report("milkymist_pfpu: too many instructions " error_report("milkymist_pfpu: too many instructions "
"executed in microcode. No VECTOUT?\n"); "executed in microcode. No VECTOUT?");
break; break;
} }
} }

View File

@ -131,7 +131,7 @@ static inline void softusb_read_dmem(MilkymistSoftUsbState *s,
{ {
if (offset + len >= s->dmem_size) { if (offset + len >= s->dmem_size) {
error_report("milkymist_softusb: read dmem out of bounds " error_report("milkymist_softusb: read dmem out of bounds "
"at offset 0x%x, len %d\n", offset, len); "at offset 0x%x, len %d", offset, len);
return; return;
} }
@ -143,7 +143,7 @@ static inline void softusb_write_dmem(MilkymistSoftUsbState *s,
{ {
if (offset + len >= s->dmem_size) { if (offset + len >= s->dmem_size) {
error_report("milkymist_softusb: write dmem out of bounds " error_report("milkymist_softusb: write dmem out of bounds "
"at offset 0x%x, len %d\n", offset, len); "at offset 0x%x, len %d", offset, len);
return; return;
} }
@ -155,7 +155,7 @@ static inline void softusb_read_pmem(MilkymistSoftUsbState *s,
{ {
if (offset + len >= s->pmem_size) { if (offset + len >= s->pmem_size) {
error_report("milkymist_softusb: read pmem out of bounds " error_report("milkymist_softusb: read pmem out of bounds "
"at offset 0x%x, len %d\n", offset, len); "at offset 0x%x, len %d", offset, len);
return; return;
} }
@ -167,7 +167,7 @@ static inline void softusb_write_pmem(MilkymistSoftUsbState *s,
{ {
if (offset + len >= s->pmem_size) { if (offset + len >= s->pmem_size) {
error_report("milkymist_softusb: write pmem out of bounds " error_report("milkymist_softusb: write pmem out of bounds "
"at offset 0x%x, len %d\n", offset, len); "at offset 0x%x, len %d", offset, len);
return; return;
} }

View File

@ -119,7 +119,7 @@ static uint32_t sysctl_read(void *opaque, target_phys_addr_t addr)
break; break;
default: default:
error_report("milkymist_sysctl: read access to unkown register 0x" error_report("milkymist_sysctl: read access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }
@ -189,7 +189,7 @@ static void sysctl_write(void *opaque, target_phys_addr_t addr, uint32_t value)
break; break;
default: default:
error_report("milkymist_sysctl: write access to unkown register 0x" error_report("milkymist_sysctl: write access to unknown register 0x"
TARGET_FMT_plx, addr << 2); TARGET_FMT_plx, addr << 2);
break; break;
} }

View File

@ -352,21 +352,21 @@ static uint32_t tmu2_read(void *opaque, target_phys_addr_t addr)
static void tmu2_check_registers(MilkymistTMU2State *s) static void tmu2_check_registers(MilkymistTMU2State *s)
{ {
if (s->regs[R_BRIGHTNESS] > MAX_BRIGHTNESS) { if (s->regs[R_BRIGHTNESS] > MAX_BRIGHTNESS) {
error_report("milkymist_tmu2: max brightness is %d\n", MAX_BRIGHTNESS); error_report("milkymist_tmu2: max brightness is %d", MAX_BRIGHTNESS);
} }
if (s->regs[R_ALPHA] > MAX_ALPHA) { if (s->regs[R_ALPHA] > MAX_ALPHA) {
error_report("milkymist_tmu2: max alpha is %d\n", MAX_ALPHA); error_report("milkymist_tmu2: max alpha is %d", MAX_ALPHA);
} }
if (s->regs[R_VERTICESADDR] & 0x07) { if (s->regs[R_VERTICESADDR] & 0x07) {
error_report("milkymist_tmu2: vertex mesh address has to be 64-bit " error_report("milkymist_tmu2: vertex mesh address has to be 64-bit "
"aligned\n"); "aligned");
} }
if (s->regs[R_TEXFBUF] & 0x01) { if (s->regs[R_TEXFBUF] & 0x01) {
error_report("milkymist_tmu2: texture buffer address has to be " error_report("milkymist_tmu2: texture buffer address has to be "
"16-bit aligned\n"); "16-bit aligned");
} }
} }

View File

@ -371,7 +371,7 @@ void qdev_init_nofail(DeviceState *dev)
DeviceInfo *info = dev->info; DeviceInfo *info = dev->info;
if (qdev_init(dev) < 0) { if (qdev_init(dev) < 0) {
error_report("Initialization of device %s failed\n", info->name); error_report("Initialization of device %s failed", info->name);
exit(1); exit(1);
} }
} }

View File

@ -1536,14 +1536,14 @@ StrongARMState *sa1110_init(unsigned int sdram_size, const char *rev)
} }
if (strncmp(rev, "sa1110", 6)) { if (strncmp(rev, "sa1110", 6)) {
error_report("Machine requires a SA1110 processor.\n"); error_report("Machine requires a SA1110 processor.");
exit(1); exit(1);
} }
s->env = cpu_init(rev); s->env = cpu_init(rev);
if (!s->env) { if (!s->env) {
error_report("Unable to find CPU definition\n"); error_report("Unable to find CPU definition");
exit(1); exit(1);
} }

View File

@ -1240,7 +1240,7 @@ static int ccid_card_init(DeviceState *qdev, DeviceInfo *base)
return -1; return -1;
} }
if (s->card != NULL) { if (s->card != NULL) {
error_report("Warning: usb-ccid card already full, not adding\n"); error_report("Warning: usb-ccid card already full, not adding");
return -1; return -1;
} }
ret = info->initfn ? info->initfn(card) : ret; ret = info->initfn ? info->initfn(card) : ret;

View File

@ -337,7 +337,7 @@ static void handle_control_message(VirtIOSerial *vser, void *buf, size_t len)
switch(cpkt.event) { switch(cpkt.event) {
case VIRTIO_CONSOLE_DEVICE_READY: case VIRTIO_CONSOLE_DEVICE_READY:
if (!cpkt.value) { if (!cpkt.value) {
error_report("virtio-serial-bus: Guest failure in adding device %s\n", error_report("virtio-serial-bus: Guest failure in adding device %s",
vser->bus.qbus.name); vser->bus.qbus.name);
break; break;
} }
@ -352,7 +352,7 @@ static void handle_control_message(VirtIOSerial *vser, void *buf, size_t len)
case VIRTIO_CONSOLE_PORT_READY: case VIRTIO_CONSOLE_PORT_READY:
if (!cpkt.value) { if (!cpkt.value) {
error_report("virtio-serial-bus: Guest failure in adding port %u for device %s\n", error_report("virtio-serial-bus: Guest failure in adding port %u for device %s",
port->id, vser->bus.qbus.name); port->id, vser->bus.qbus.name);
break; break;
} }
@ -741,7 +741,7 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base)
plugging_port0 = info->is_console && !find_port_by_id(port->vser, 0); plugging_port0 = info->is_console && !find_port_by_id(port->vser, 0);
if (find_port_by_id(port->vser, port->id)) { if (find_port_by_id(port->vser, port->id)) {
error_report("virtio-serial-bus: A port already exists at id %u\n", error_report("virtio-serial-bus: A port already exists at id %u",
port->id); port->id);
return -1; return -1;
} }
@ -752,7 +752,7 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base)
} else { } else {
port->id = find_free_port_id(port->vser); port->id = find_free_port_id(port->vser);
if (port->id == VIRTIO_CONSOLE_BAD_ID) { if (port->id == VIRTIO_CONSOLE_BAD_ID) {
error_report("virtio-serial-bus: Maximum port limit for this device reached\n"); error_report("virtio-serial-bus: Maximum port limit for this device reached");
return -1; return -1;
} }
} }
@ -760,7 +760,7 @@ static int virtser_port_qdev_init(DeviceState *qdev, DeviceInfo *base)
max_nr_ports = tswap32(port->vser->config.max_nr_ports); max_nr_ports = tswap32(port->vser->config.max_nr_ports);
if (port->id >= max_nr_ports) { if (port->id >= max_nr_ports) {
error_report("virtio-serial-bus: Out-of-range port id specified, max. allowed: %u\n", error_report("virtio-serial-bus: Out-of-range port id specified, max. allowed: %u",
max_nr_ports - 1); max_nr_ports - 1);
return -1; return -1;
} }

View File

@ -797,7 +797,7 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f)
/* Check it isn't doing very strange things with descriptor numbers. */ /* Check it isn't doing very strange things with descriptor numbers. */
if (nheads > vdev->vq[i].vring.num) { if (nheads > vdev->vq[i].vring.num) {
error_report("VQ %d size 0x%x Guest index 0x%x " error_report("VQ %d size 0x%x Guest index 0x%x "
"inconsistent with Host index 0x%x: delta 0x%x\n", "inconsistent with Host index 0x%x: delta 0x%x",
i, vdev->vq[i].vring.num, i, vdev->vq[i].vring.num,
vring_avail_idx(&vdev->vq[i]), vring_avail_idx(&vdev->vq[i]),
vdev->vq[i].last_avail_idx, nheads); vdev->vq[i].last_avail_idx, nheads);
@ -805,7 +805,7 @@ int virtio_load(VirtIODevice *vdev, QEMUFile *f)
} }
} else if (vdev->vq[i].last_avail_idx) { } else if (vdev->vq[i].last_avail_idx) {
error_report("VQ %d address 0x0 " error_report("VQ %d address 0x0 "
"inconsistent with Host index 0x%x\n", "inconsistent with Host index 0x%x",
i, vdev->vq[i].last_avail_idx); i, vdev->vq[i].last_avail_idx);
return -1; return -1;
} }

2
net.c
View File

@ -710,7 +710,7 @@ int qemu_find_nic_model(NICInfo *nd, const char * const *models,
return i; return i;
} }
error_report("qemu: Unsupported NIC model: %s", nd->model); error_report("Unsupported NIC model: %s", nd->model);
return -1; return -1;
} }

View File

@ -530,7 +530,7 @@ int net_init_socket(QemuOpts *opts,
qemu_opt_get(opts, "connect") || qemu_opt_get(opts, "connect") ||
qemu_opt_get(opts, "mcast") || qemu_opt_get(opts, "mcast") ||
qemu_opt_get(opts, "localaddr")) { qemu_opt_get(opts, "localaddr")) {
error_report("listen=, connect=, mcast= and localaddr= is invalid with fd=\n"); error_report("listen=, connect=, mcast= and localaddr= is invalid with fd=");
return -1; return -1;
} }
@ -550,7 +550,7 @@ int net_init_socket(QemuOpts *opts,
qemu_opt_get(opts, "connect") || qemu_opt_get(opts, "connect") ||
qemu_opt_get(opts, "mcast") || qemu_opt_get(opts, "mcast") ||
qemu_opt_get(opts, "localaddr")) { qemu_opt_get(opts, "localaddr")) {
error_report("fd=, connect=, mcast= and localaddr= is invalid with listen=\n"); error_report("fd=, connect=, mcast= and localaddr= is invalid with listen=");
return -1; return -1;
} }
@ -566,7 +566,7 @@ int net_init_socket(QemuOpts *opts,
qemu_opt_get(opts, "listen") || qemu_opt_get(opts, "listen") ||
qemu_opt_get(opts, "mcast") || qemu_opt_get(opts, "mcast") ||
qemu_opt_get(opts, "localaddr")) { qemu_opt_get(opts, "localaddr")) {
error_report("fd=, listen=, mcast= and localaddr= is invalid with connect=\n"); error_report("fd=, listen=, mcast= and localaddr= is invalid with connect=");
return -1; return -1;
} }

View File

@ -112,11 +112,6 @@ static inline char *realpath(const char *path, char *resolved_path)
_fullpath(resolved_path, path, _MAX_PATH); _fullpath(resolved_path, path, _MAX_PATH);
return resolved_path; return resolved_path;
} }
#define PRId64 "I64d"
#define PRIx64 "I64x"
#define PRIu64 "I64u"
#define PRIo64 "I64o"
#endif #endif
/* FIXME: Remove NEED_CPU_H. */ /* FIXME: Remove NEED_CPU_H. */

View File

@ -193,6 +193,8 @@ void error_print_loc(void)
/* /*
* Print an error message to current monitor if we have one, else to stderr. * Print an error message to current monitor if we have one, else to stderr.
* Format arguments like sprintf(). The result should not contain
* newlines.
* Prepend the current location and append a newline. * Prepend the current location and append a newline.
* It's wrong to call this in a QMP monitor. Use qerror_report() there. * It's wrong to call this in a QMP monitor. Use qerror_report() there.
*/ */

View File

@ -304,11 +304,11 @@ static int img_create(int argc, char **argv)
fmt = optarg; fmt = optarg;
break; break;
case 'e': case 'e':
error_report("qemu-img: option -e is deprecated, please use \'-o " error_report("option -e is deprecated, please use \'-o "
"encryption\' instead!"); "encryption\' instead!");
return 1; return 1;
case '6': case '6':
error_report("qemu-img: option -6 is deprecated, please use \'-o " error_report("option -6 is deprecated, please use \'-o "
"compat6\' instead!"); "compat6\' instead!");
return 1; return 1;
case 'o': case 'o':
@ -633,11 +633,11 @@ static int img_convert(int argc, char **argv)
compress = 1; compress = 1;
break; break;
case 'e': case 'e':
error_report("qemu-img: option -e is deprecated, please use \'-o " error_report("option -e is deprecated, please use \'-o "
"encryption\' instead!"); "encryption\' instead!");
return 1; return 1;
case '6': case '6':
error_report("qemu-img: option -6 is deprecated, please use \'-o " error_report("option -6 is deprecated, please use \'-o "
"compat6\' instead!"); "compat6\' instead!");
return 1; return 1;
case 'o': case 'o':
@ -690,12 +690,12 @@ static int img_convert(int argc, char **argv)
if (snapshot_name != NULL) { if (snapshot_name != NULL) {
if (bs_n > 1) { if (bs_n > 1) {
error_report("No support for concatenating multiple snapshot\n"); error_report("No support for concatenating multiple snapshot");
ret = -1; ret = -1;
goto out; goto out;
} }
if (bdrv_snapshot_load_tmp(bs[0], snapshot_name) < 0) { if (bdrv_snapshot_load_tmp(bs[0], snapshot_name) < 0) {
error_report("Failed to load snapshot\n"); error_report("Failed to load snapshot");
ret = -1; ret = -1;
goto out; goto out;
} }