mirror of https://github.com/xemu-project/xemu.git
trivial patches for 2014-08-24
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJT+eiRAAoJEL7lnXSkw9fbtj8IAIxK7KV/YgnFjv7ow7+unClI wzb9SAKv6Hk/L+QQWQfvcb6wrNlQrRfeZHX6WuiCwOM/3roUaRkE5Q7LFNL2FicU kYyqhzHGCVnln3345mo0E1weOQ2Y5h1lqyZ+BnC0lALarAIkCQnAMTVuAvpUxZDz XJig5jMZeOgV+pTggYrQAE8ZLY+TuPqfkF2yG4zT+zYzgOSwpx7eq9FxFzUNI7c2 KRUlno0Pmtv3uu91UhpVtJ2BySr6xuiOQUPdSuIZ/8TOnJAYrjtXzCFcolJAT0Dq mN2ULInSX5RhWRfxXy8zFrCz2pYidHvIWgEAiGqkgtFOfIwqyytBEzX9NIsFL2M= =iy5r -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-08-24' into staging trivial patches for 2014-08-24 # gpg: Signature made Sun 24 Aug 2014 14:28:49 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>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: 6F67 E18E 7C91 C5B1 5514 66A7 BEE5 9D74 A4C3 D7DB * remotes/mjt/tags/trivial-patches-2014-08-24: vmxnet3: Pad short frames to minimum size (60 bytes) libdecnumber: Fix warnings from smatch (missing static, boolean operations) linux-user: fix file descriptor leaks po: Fix Makefile rules for in-tree builds without configuration slirp/misc: Use the GLib memory allocation APIs configure: no need to mkdir QMP dma: axidma: Variablise repeated s->streams[i] sub-expr microblaze: ml605: Get rid of ddr_base variable tests/bios-tables-test: check the value returned by fopen() tcg: dump op count into qemu log util/path: Use the GLib memory allocation routines Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
3dd359c2d3
|
@ -5372,10 +5372,6 @@ for rom in seabios vgabios ; do
|
|||
echo "LD=$ld" >> $config_mak
|
||||
done
|
||||
|
||||
if test "$docs" = "yes" ; then
|
||||
mkdir -p QMP
|
||||
fi
|
||||
|
||||
# set up qemu-iotests in this build directory
|
||||
iotests_common_env="tests/qemu-iotests/common.env"
|
||||
iotests_check="tests/qemu-iotests/check"
|
||||
|
|
|
@ -553,10 +553,12 @@ static void xilinx_axidma_realize(DeviceState *dev, Error **errp)
|
|||
int i;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
s->streams[i].nr = i;
|
||||
s->streams[i].bh = qemu_bh_new(timer_hit, &s->streams[i]);
|
||||
s->streams[i].ptimer = ptimer_init(s->streams[i].bh);
|
||||
ptimer_set_freq(s->streams[i].ptimer, s->freqhz);
|
||||
struct Stream *st = &s->streams[i];
|
||||
|
||||
st->nr = i;
|
||||
st->bh = qemu_bh_new(timer_hit, st);
|
||||
st->ptimer = ptimer_init(st->bh);
|
||||
ptimer_set_freq(st->ptimer, s->freqhz);
|
||||
}
|
||||
return;
|
||||
|
||||
|
|
|
@ -89,7 +89,6 @@ petalogix_ml605_init(MachineState *machine)
|
|||
SysBusDevice *busdev;
|
||||
DriveInfo *dinfo;
|
||||
int i;
|
||||
hwaddr ddr_base = MEMORY_BASEADDR;
|
||||
MemoryRegion *phys_lmb_bram = g_new(MemoryRegion, 1);
|
||||
MemoryRegion *phys_ram = g_new(MemoryRegion, 1);
|
||||
qemu_irq irq[32];
|
||||
|
@ -106,7 +105,7 @@ petalogix_ml605_init(MachineState *machine)
|
|||
|
||||
memory_region_init_ram(phys_ram, NULL, "petalogix_ml605.ram", ram_size);
|
||||
vmstate_register_ram_global(phys_ram);
|
||||
memory_region_add_subregion(address_space_mem, ddr_base, phys_ram);
|
||||
memory_region_add_subregion(address_space_mem, MEMORY_BASEADDR, phys_ram);
|
||||
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
/* 5th parameter 2 means bank-width
|
||||
|
@ -201,7 +200,7 @@ petalogix_ml605_init(MachineState *machine)
|
|||
}
|
||||
}
|
||||
|
||||
microblaze_load_kernel(cpu, ddr_base, ram_size,
|
||||
microblaze_load_kernel(cpu, MEMORY_BASEADDR, ram_size,
|
||||
machine->initrd_filename,
|
||||
BINARY_DEVICE_TREE_FILE,
|
||||
machine_cpu_reset);
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
#define PCI_DEVICE_ID_VMWARE_VMXNET3_REVISION 0x1
|
||||
#define VMXNET3_MSIX_BAR_SIZE 0x2000
|
||||
#define MIN_BUF_SIZE 60
|
||||
|
||||
#define VMXNET3_BAR0_IDX (0)
|
||||
#define VMXNET3_BAR1_IDX (1)
|
||||
|
@ -1871,12 +1872,21 @@ vmxnet3_receive(NetClientState *nc, const uint8_t *buf, size_t size)
|
|||
{
|
||||
VMXNET3State *s = qemu_get_nic_opaque(nc);
|
||||
size_t bytes_indicated;
|
||||
uint8_t min_buf[MIN_BUF_SIZE];
|
||||
|
||||
if (!vmxnet3_can_receive(nc)) {
|
||||
VMW_PKPRN("Cannot receive now");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Pad to minimum Ethernet frame length */
|
||||
if (size < sizeof(min_buf)) {
|
||||
memcpy(min_buf, buf, size);
|
||||
memset(&min_buf[size], 0, sizeof(min_buf) - size);
|
||||
buf = min_buf;
|
||||
size = sizeof(min_buf);
|
||||
}
|
||||
|
||||
if (s->peer_has_vhdr) {
|
||||
vmxnet_rx_pkt_set_vhdr(s->rx_pkt, (struct virtio_net_hdr *)buf);
|
||||
buf += sizeof(struct virtio_net_hdr);
|
||||
|
|
|
@ -5275,8 +5275,8 @@ static decNumber * decMultiplyOp(decNumber *res, const decNumber *lhs,
|
|||
/* 4. The working precisions for the static buffers are twice the */
|
||||
/* obvious size to allow for calls from decNumberPower. */
|
||||
/* ------------------------------------------------------------------ */
|
||||
decNumber * decExpOp(decNumber *res, const decNumber *rhs,
|
||||
decContext *set, uInt *status) {
|
||||
static decNumber *decExpOp(decNumber *res, const decNumber *rhs,
|
||||
decContext *set, uInt *status) {
|
||||
uInt ignore=0; /* working status */
|
||||
Int h; /* adjusted exponent for 0.xxxx */
|
||||
Int p; /* working precision */
|
||||
|
@ -5563,7 +5563,8 @@ decNumber * decExpOp(decNumber *res, const decNumber *rhs,
|
|||
/* where x is truncated (NB) into the range 10 through 99, */
|
||||
/* and then c = k>>2 and e = k&3. */
|
||||
/* ------------------------------------------------------------------ */
|
||||
const uShort LNnn[90]={9016, 8652, 8316, 8008, 7724, 7456, 7208,
|
||||
static const uShort LNnn[90] = {
|
||||
9016, 8652, 8316, 8008, 7724, 7456, 7208,
|
||||
6972, 6748, 6540, 6340, 6148, 5968, 5792, 5628, 5464, 5312,
|
||||
5164, 5020, 4884, 4748, 4620, 4496, 4376, 4256, 4144, 4032,
|
||||
39233, 38181, 37157, 36157, 35181, 34229, 33297, 32389, 31501, 30629,
|
||||
|
@ -5635,8 +5636,8 @@ const uShort LNnn[90]={9016, 8652, 8316, 8008, 7724, 7456, 7208,
|
|||
/* 5. The static buffers are larger than might be expected to allow */
|
||||
/* for calls from decNumberPower. */
|
||||
/* ------------------------------------------------------------------ */
|
||||
decNumber * decLnOp(decNumber *res, const decNumber *rhs,
|
||||
decContext *set, uInt *status) {
|
||||
static decNumber *decLnOp(decNumber *res, const decNumber *rhs,
|
||||
decContext *set, uInt *status) {
|
||||
uInt ignore=0; /* working status accumulator */
|
||||
uInt needbytes; /* for space calculations */
|
||||
Int residue; /* rounding residue */
|
||||
|
@ -6052,9 +6053,9 @@ static decNumber * decQuantizeOp(decNumber *res, const decNumber *lhs,
|
|||
/* The emphasis here is on speed for common cases, and avoiding */
|
||||
/* coefficient comparison if possible. */
|
||||
/* ------------------------------------------------------------------ */
|
||||
decNumber * decCompareOp(decNumber *res, const decNumber *lhs,
|
||||
const decNumber *rhs, decContext *set,
|
||||
Flag op, uInt *status) {
|
||||
static decNumber *decCompareOp(decNumber *res, const decNumber *lhs,
|
||||
const decNumber *rhs, decContext *set,
|
||||
Flag op, uInt *status) {
|
||||
#if DECSUBSET
|
||||
decNumber *alloclhs=NULL; /* non-NULL if rounded lhs allocated */
|
||||
decNumber *allocrhs=NULL; /* .., rhs */
|
||||
|
@ -6086,11 +6087,11 @@ decNumber * decCompareOp(decNumber *res, const decNumber *lhs,
|
|||
|
||||
/* If total ordering then handle differing signs 'up front' */
|
||||
if (op==COMPTOTAL) { /* total ordering */
|
||||
if (decNumberIsNegative(lhs) & !decNumberIsNegative(rhs)) {
|
||||
if (decNumberIsNegative(lhs) && !decNumberIsNegative(rhs)) {
|
||||
result=-1;
|
||||
break;
|
||||
}
|
||||
if (!decNumberIsNegative(lhs) & decNumberIsNegative(rhs)) {
|
||||
if (!decNumberIsNegative(lhs) && decNumberIsNegative(rhs)) {
|
||||
result=+1;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -5167,6 +5167,7 @@ static int open_self_cmdline(void *cpu_env, int fd)
|
|||
|
||||
if (word_skipped) {
|
||||
if (write(fd, cp_buf, nb_read) != nb_read) {
|
||||
close(fd_orig);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,11 @@
|
|||
# Set SRC_PATH for in-tree builds without configuration.
|
||||
SRC_PATH=..
|
||||
|
||||
# The default target must come before any include statements.
|
||||
all:
|
||||
|
||||
.PHONY: all build clean install update
|
||||
|
||||
-include ../config-host.mak
|
||||
include $(SRC_PATH)/rules.mak
|
||||
|
||||
|
@ -45,5 +50,3 @@ $(PO_PATH)/messages.po: $(SRC_PATH)/ui/gtk.c
|
|||
|
||||
$(PO_PATH)/%.po: $(PO_PATH)/messages.po
|
||||
$(call quiet-command, msgmerge -q $@ $< > $@.bak && mv $@.bak $@, " GEN $@")
|
||||
|
||||
.PHONY: clean all
|
||||
|
|
20
slirp/misc.c
20
slirp/misc.c
|
@ -54,11 +54,11 @@ int add_exec(struct ex_list **ex_ptr, int do_pty, char *exec,
|
|||
}
|
||||
|
||||
tmp_ptr = *ex_ptr;
|
||||
*ex_ptr = (struct ex_list *)malloc(sizeof(struct ex_list));
|
||||
*ex_ptr = g_new(struct ex_list, 1);
|
||||
(*ex_ptr)->ex_fport = port;
|
||||
(*ex_ptr)->ex_addr = addr;
|
||||
(*ex_ptr)->ex_pty = do_pty;
|
||||
(*ex_ptr)->ex_exec = (do_pty == 3) ? exec : strdup(exec);
|
||||
(*ex_ptr)->ex_exec = (do_pty == 3) ? exec : g_strdup(exec);
|
||||
(*ex_ptr)->ex_next = tmp_ptr;
|
||||
return 0;
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty)
|
|||
bptr++;
|
||||
c = *bptr;
|
||||
*bptr++ = (char)0;
|
||||
argv[i++] = strdup(curarg);
|
||||
argv[i++] = g_strdup(curarg);
|
||||
} while (c);
|
||||
|
||||
argv[i] = NULL;
|
||||
|
@ -228,20 +228,6 @@ fork_exec(struct socket *so, const char *ex, int do_pty)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRDUP
|
||||
char *
|
||||
strdup(str)
|
||||
const char *str;
|
||||
{
|
||||
char *bptr;
|
||||
|
||||
bptr = (char *)malloc(strlen(str)+1);
|
||||
strcpy(bptr, str);
|
||||
|
||||
return bptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
void slirp_connection_info(Slirp *slirp, Monitor *mon)
|
||||
{
|
||||
const char * const tcpstates[] = {
|
||||
|
|
|
@ -16,10 +16,6 @@ struct ex_list {
|
|||
struct ex_list *ex_next;
|
||||
};
|
||||
|
||||
#ifndef HAVE_STRDUP
|
||||
char *strdup(const char *);
|
||||
#endif
|
||||
|
||||
#define EMU_NONE 0x0
|
||||
|
||||
/* TCP emulations */
|
||||
|
|
|
@ -72,9 +72,6 @@
|
|||
/* Define if you have strerror */
|
||||
#define HAVE_STRERROR
|
||||
|
||||
/* Define if you have strdup() */
|
||||
#define HAVE_STRDUP
|
||||
|
||||
/* Define according to how time.h should be included */
|
||||
#define TIME_WITH_SYS_TIME 0
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
|
|
@ -2404,12 +2404,10 @@ static int64_t tcg_table_op_count[NB_OPS];
|
|||
static void dump_op_count(void)
|
||||
{
|
||||
int i;
|
||||
FILE *f;
|
||||
f = fopen("/tmp/op.log", "w");
|
||||
|
||||
for(i = INDEX_op_end; i < NB_OPS; i++) {
|
||||
fprintf(f, "%s %" PRId64 "\n", tcg_op_defs[i].name, tcg_table_op_count[i]);
|
||||
qemu_log("%s %" PRId64 "\n", tcg_op_defs[i].name, tcg_table_op_count[i]);
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -790,6 +790,11 @@ int main(int argc, char *argv[])
|
|||
const char *arch = qtest_get_arch();
|
||||
FILE *f = fopen(disk, "w");
|
||||
int ret;
|
||||
|
||||
if (!f) {
|
||||
fprintf(stderr, "Couldn't open \"%s\": %s", disk, strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
fwrite(boot_sector, 1, sizeof boot_sector, f);
|
||||
fclose(f);
|
||||
|
||||
|
|
10
util/path.c
10
util/path.c
|
@ -45,8 +45,8 @@ static struct pathelem *new_entry(const char *root,
|
|||
struct pathelem *parent,
|
||||
const char *name)
|
||||
{
|
||||
struct pathelem *new = malloc(sizeof(*new));
|
||||
new->name = strdup(name);
|
||||
struct pathelem *new = g_malloc(sizeof(*new));
|
||||
new->name = g_strdup(name);
|
||||
new->pathname = g_strdup_printf("%s/%s", root, name);
|
||||
new->num_entries = 0;
|
||||
return new;
|
||||
|
@ -88,7 +88,7 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
|
|||
|
||||
root->num_entries++;
|
||||
|
||||
root = realloc(root, sizeof(*root)
|
||||
root = g_realloc(root, sizeof(*root)
|
||||
+ sizeof(root->entries[0])*root->num_entries);
|
||||
e = &root->entries[root->num_entries-1];
|
||||
|
||||
|
@ -161,8 +161,8 @@ void init_paths(const char *prefix)
|
|||
base = add_dir_maybe(base);
|
||||
if (base->num_entries == 0) {
|
||||
g_free(base->pathname);
|
||||
free(base->name);
|
||||
free(base);
|
||||
g_free(base->name);
|
||||
g_free(base);
|
||||
base = NULL;
|
||||
} else {
|
||||
set_parents(base, base);
|
||||
|
|
Loading…
Reference in New Issue