Compare commits
10 Commits
v0.15.0-rc
...
v0.15.0
Author | SHA1 | Date | |
---|---|---|---|
|
76e4e1d237 | ||
|
4fbe5233fd | ||
|
e2f775205a | ||
|
51dd7a94c7 | ||
|
9096de69ff | ||
|
09afeef1ab | ||
|
01825a8ddf | ||
|
ae2dd33693 | ||
|
88ca9f047b | ||
|
898517b0bc |
4
Makefile
4
Makefile
@@ -192,8 +192,10 @@ test-qmp-commands.o: $(addprefix $(qapi-dir)/, test-qapi-types.c test-qapi-types
|
||||
test-qmp-commands: test-qmp-commands.o qfloat.o qint.o qdict.o qstring.o qlist.o qbool.o $(qapi-obj-y) error.o osdep.o qemu-malloc.o $(oslib-obj-y) qjson.o json-streamer.o json-lexer.o json-parser.o qerror.o qemu-error.o qemu-tool.o $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o $(qapi-dir)/test-qmp-marshal.o module.o
|
||||
|
||||
QGALIB=qga/guest-agent-command-state.o qga/guest-agent-commands.o
|
||||
QGALIB_GEN=$(addprefix $(qapi-dir)/, qga-qapi-types.c qga-qapi-types.h qga-qapi-visit.c qga-qmp-marshal.c)
|
||||
|
||||
qemu-ga.o: $(addprefix $(qapi-dir)/, qga-qapi-types.c qga-qapi-types.h qga-qapi-visit.c qga-qmp-marshal.c) $(qapi-obj-y)
|
||||
$(QGALIB_GEN): $(GENERATED_HEADERS)
|
||||
$(QGALIB) qemu-ga.o: $(QGALIB_GEN) $(qapi-obj-y)
|
||||
qemu-ga$(EXESUF): qemu-ga.o $(QGALIB) qemu-tool.o qemu-error.o error.o $(oslib-obj-y) $(trace-obj-y) $(block-obj-y) $(qobject-obj-y) $(version-obj-y) $(qapi-obj-y) qemu-timer-common.o qemu-sockets.o module.o qapi/qmp-dispatch.o qapi/qmp-registry.o $(qapi-dir)/qga-qapi-visit.o $(qapi-dir)/qga-qapi-types.o $(qapi-dir)/qga-qmp-marshal.o
|
||||
|
||||
QEMULIBS=libhw32 libhw64 libuser libdis libdis-user
|
||||
|
@@ -317,7 +317,8 @@ int qcow2_snapshot_goto(BlockDriverState *bs, const char *snapshot_id)
|
||||
{
|
||||
BDRVQcowState *s = bs->opaque;
|
||||
QCowSnapshot *sn;
|
||||
int i, snapshot_index, l1_size2;
|
||||
int i, snapshot_index;
|
||||
int cur_l1_bytes, sn_l1_bytes;
|
||||
|
||||
snapshot_index = find_snapshot_by_id_or_name(bs, snapshot_id);
|
||||
if (snapshot_index < 0)
|
||||
@@ -330,14 +331,19 @@ int qcow2_snapshot_goto(BlockDriverState *bs, const char *snapshot_id)
|
||||
if (qcow2_grow_l1_table(bs, sn->l1_size, true) < 0)
|
||||
goto fail;
|
||||
|
||||
s->l1_size = sn->l1_size;
|
||||
l1_size2 = s->l1_size * sizeof(uint64_t);
|
||||
cur_l1_bytes = s->l1_size * sizeof(uint64_t);
|
||||
sn_l1_bytes = sn->l1_size * sizeof(uint64_t);
|
||||
|
||||
if (cur_l1_bytes > sn_l1_bytes) {
|
||||
memset(s->l1_table + sn->l1_size, 0, cur_l1_bytes - sn_l1_bytes);
|
||||
}
|
||||
|
||||
/* copy the snapshot l1 table to the current l1 table */
|
||||
if (bdrv_pread(bs->file, sn->l1_table_offset,
|
||||
s->l1_table, l1_size2) != l1_size2)
|
||||
s->l1_table, sn_l1_bytes) < 0)
|
||||
goto fail;
|
||||
if (bdrv_pwrite_sync(bs->file, s->l1_table_offset,
|
||||
s->l1_table, l1_size2) < 0)
|
||||
s->l1_table, cur_l1_bytes) < 0)
|
||||
goto fail;
|
||||
for(i = 0;i < s->l1_size; i++) {
|
||||
be64_to_cpus(&s->l1_table[i]);
|
||||
|
@@ -856,9 +856,6 @@ int main(int argc, char **argv)
|
||||
usage();
|
||||
}
|
||||
}
|
||||
if (optind >= argc)
|
||||
usage();
|
||||
filename = argv[optind];
|
||||
|
||||
/* init debug */
|
||||
cpu_set_log_filename(log_file);
|
||||
@@ -877,6 +874,11 @@ int main(int argc, char **argv)
|
||||
cpu_set_log(mask);
|
||||
}
|
||||
|
||||
if (optind >= argc) {
|
||||
usage();
|
||||
}
|
||||
filename = argv[optind];
|
||||
|
||||
/* Zero out regs */
|
||||
memset(regs, 0, sizeof(struct target_pt_regs));
|
||||
|
||||
|
64
configure
vendored
64
configure
vendored
@@ -179,6 +179,7 @@ smartcard=""
|
||||
smartcard_nss=""
|
||||
usb_redir=""
|
||||
opengl=""
|
||||
guest_agent="yes"
|
||||
|
||||
# parse CC options first
|
||||
for opt do
|
||||
@@ -751,6 +752,10 @@ for opt do
|
||||
;;
|
||||
--enable-usb-redir) usb_redir="yes"
|
||||
;;
|
||||
--enable-guest-agent) guest_agent="yes"
|
||||
;;
|
||||
--disable-guest-agent) guest_agent="no"
|
||||
;;
|
||||
*) echo "ERROR: unknown option $opt"; show_help="yes"
|
||||
;;
|
||||
esac
|
||||
@@ -840,7 +845,6 @@ if [ "$softmmu" = "yes" ] ; then
|
||||
default_target_list="\
|
||||
i386-softmmu \
|
||||
x86_64-softmmu \
|
||||
alpha-softmmu \
|
||||
arm-softmmu \
|
||||
cris-softmmu \
|
||||
lm32-softmmu \
|
||||
@@ -1029,6 +1033,8 @@ echo " --disable-smartcard-nss disable smartcard nss support"
|
||||
echo " --enable-smartcard-nss enable smartcard nss support"
|
||||
echo " --disable-usb-redir disable usb network redirection support"
|
||||
echo " --enable-usb-redir enable usb network redirection support"
|
||||
echo " --disable-guest-agent disable building of the QEMU Guest Agent"
|
||||
echo " --enable-guest-agent enable building of the QEMU Guest Agent"
|
||||
echo ""
|
||||
echo "NOTE: The object files are built at the place where configure is launched"
|
||||
exit 1
|
||||
@@ -1088,11 +1094,13 @@ if test "$solaris" = "yes" ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if has $python; then
|
||||
:
|
||||
else
|
||||
echo "Python not found. Use --python=/path/to/python"
|
||||
exit 1
|
||||
if test "$guest_agent" != "no" ; then
|
||||
if has $python; then
|
||||
:
|
||||
else
|
||||
echo "Python not found. Use --python=/path/to/python"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$target_list" ; then
|
||||
@@ -1822,14 +1830,16 @@ fi
|
||||
|
||||
##########################################
|
||||
# glib support probe
|
||||
if $pkg_config --modversion glib-2.0 > /dev/null 2>&1 ; then
|
||||
glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
|
||||
glib_libs=`$pkg_config --libs glib-2.0 2>/dev/null`
|
||||
libs_softmmu="$glib_libs $libs_softmmu"
|
||||
libs_tools="$glib_libs $libs_tools"
|
||||
else
|
||||
echo "glib-2.0 required to compile QEMU"
|
||||
exit 1
|
||||
if test "$guest_agent" != "no" ; then
|
||||
if $pkg_config --modversion glib-2.0 > /dev/null 2>&1 ; then
|
||||
glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
|
||||
glib_libs=`$pkg_config --libs glib-2.0 2>/dev/null`
|
||||
libs_softmmu="$glib_libs $libs_softmmu"
|
||||
libs_tools="$glib_libs $libs_tools"
|
||||
else
|
||||
echo "glib-2.0 required to compile QEMU"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
@@ -2509,6 +2519,29 @@ if test "$trace_backend" = "dtrace"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# __sync_fetch_and_and requires at least -march=i486. Many toolchains
|
||||
# use i686 as default anyway, but for those that don't, an explicit
|
||||
# specification is necessary
|
||||
if test $vhost_net = "yes" && test $cpu = "i386"; then
|
||||
cat > $TMPC << EOF
|
||||
int sfaa(unsigned *ptr)
|
||||
{
|
||||
return __sync_fetch_and_and(ptr, 0);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int val = 42;
|
||||
sfaa(&val);
|
||||
return val;
|
||||
}
|
||||
EOF
|
||||
if ! compile_prog "" "" ; then
|
||||
CFLAGS+="-march=i486"
|
||||
fi
|
||||
fi
|
||||
|
||||
##########################################
|
||||
# End of CC checks
|
||||
# After here, no more $cc or $ld runs
|
||||
@@ -2566,7 +2599,9 @@ if test "$softmmu" = yes ; then
|
||||
tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
|
||||
if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
|
||||
tools="qemu-nbd\$(EXESUF) $tools"
|
||||
if [ "$guest_agent" = "yes" ]; then
|
||||
tools="qemu-ga\$(EXESUF) $tools"
|
||||
fi
|
||||
if [ "$check_utests" = "yes" ]; then
|
||||
tools="check-qint check-qstring check-qdict check-qlist $tools"
|
||||
tools="check-qfloat check-qjson $tools"
|
||||
@@ -2667,6 +2702,7 @@ echo "xfsctl support $xfs"
|
||||
echo "nss used $smartcard_nss"
|
||||
echo "usb net redir $usb_redir"
|
||||
echo "OpenGL support $opengl"
|
||||
echo "build guest agent $guest_agent"
|
||||
|
||||
if test $sdl_too_old = "yes"; then
|
||||
echo "-> Your SDL version is too old - please upgrade to have SDL support"
|
||||
|
@@ -809,9 +809,6 @@ int main(int argc, char **argv)
|
||||
usage();
|
||||
}
|
||||
}
|
||||
if (optind >= argc)
|
||||
usage();
|
||||
filename = argv[optind];
|
||||
|
||||
/* init debug */
|
||||
cpu_set_log_filename(log_file);
|
||||
@@ -830,6 +827,11 @@ int main(int argc, char **argv)
|
||||
cpu_set_log(mask);
|
||||
}
|
||||
|
||||
if (optind >= argc) {
|
||||
usage();
|
||||
}
|
||||
filename = argv[optind];
|
||||
|
||||
/* Zero out regs */
|
||||
memset(regs, 0, sizeof(struct target_pt_regs));
|
||||
|
||||
|
51
hw/fdc.c
51
hw/fdc.c
@@ -36,7 +36,6 @@
|
||||
#include "qdev-addr.h"
|
||||
#include "blockdev.h"
|
||||
#include "sysemu.h"
|
||||
#include "block_int.h"
|
||||
|
||||
/********************************************************/
|
||||
/* debug Floppy devices */
|
||||
@@ -83,7 +82,6 @@ typedef struct FDrive {
|
||||
uint8_t max_track; /* Nb of tracks */
|
||||
uint16_t bps; /* Bytes per sector */
|
||||
uint8_t ro; /* Is read-only */
|
||||
uint8_t media_changed; /* Is media changed */
|
||||
} FDrive;
|
||||
|
||||
static void fd_init(FDrive *drv)
|
||||
@@ -535,63 +533,16 @@ static CPUWriteMemoryFunc * const fdctrl_mem_write_strict[3] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static void fdrive_media_changed_pre_save(void *opaque)
|
||||
{
|
||||
FDrive *drive = opaque;
|
||||
|
||||
drive->media_changed = drive->bs->media_changed;
|
||||
}
|
||||
|
||||
static int fdrive_media_changed_post_load(void *opaque, int version_id)
|
||||
{
|
||||
FDrive *drive = opaque;
|
||||
|
||||
if (drive->bs != NULL) {
|
||||
drive->bs->media_changed = drive->media_changed;
|
||||
}
|
||||
|
||||
/* User ejected the floppy when drive->bs == NULL */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool fdrive_media_changed_needed(void *opaque)
|
||||
{
|
||||
FDrive *drive = opaque;
|
||||
|
||||
return (drive->bs != NULL && drive->bs->media_changed != 1);
|
||||
}
|
||||
|
||||
static const VMStateDescription vmstate_fdrive_media_changed = {
|
||||
.name = "fdrive/media_changed",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.pre_save = fdrive_media_changed_pre_save,
|
||||
.post_load = fdrive_media_changed_post_load,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT8(media_changed, FDrive),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
||||
static const VMStateDescription vmstate_fdrive = {
|
||||
.name = "fdrive",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.minimum_version_id_old = 1,
|
||||
.fields = (VMStateField[]) {
|
||||
.fields = (VMStateField []) {
|
||||
VMSTATE_UINT8(head, FDrive),
|
||||
VMSTATE_UINT8(track, FDrive),
|
||||
VMSTATE_UINT8(sect, FDrive),
|
||||
VMSTATE_END_OF_LIST()
|
||||
},
|
||||
.subsections = (VMStateSubsection[]) {
|
||||
{
|
||||
.vmsd = &vmstate_fdrive_media_changed,
|
||||
.needed = &fdrive_media_changed_needed,
|
||||
} , {
|
||||
/* empty */
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -310,10 +310,12 @@ static int milkymist_softusb_init(SysBusDevice *dev)
|
||||
usb_bus_new(&s->usbbus, &softusb_bus_ops, NULL);
|
||||
|
||||
/* our two ports */
|
||||
/* FIXME: claim to support full speed devices. qemu mouse and keyboard
|
||||
* report themselves as full speed devices. */
|
||||
usb_register_port(&s->usbbus, &s->usbport[0], NULL, 0, &softusb_ops,
|
||||
USB_SPEED_MASK_LOW);
|
||||
USB_SPEED_MASK_LOW | USB_SPEED_MASK_FULL);
|
||||
usb_register_port(&s->usbbus, &s->usbport[1], NULL, 1, &softusb_ops,
|
||||
USB_SPEED_MASK_LOW);
|
||||
USB_SPEED_MASK_LOW | USB_SPEED_MASK_FULL);
|
||||
|
||||
/* and finally create an usb keyboard */
|
||||
s->usbdev = usb_create_simple(&s->usbbus, "usb-kbd");
|
||||
|
@@ -3048,11 +3048,6 @@ int main(int argc, char **argv, char **envp)
|
||||
usage();
|
||||
}
|
||||
}
|
||||
if (optind >= argc)
|
||||
usage();
|
||||
filename = argv[optind];
|
||||
exec_path = argv[optind];
|
||||
|
||||
/* init debug */
|
||||
cpu_set_log_filename(log_file);
|
||||
if (log_mask) {
|
||||
@@ -3070,6 +3065,12 @@ int main(int argc, char **argv, char **envp)
|
||||
cpu_set_log(mask);
|
||||
}
|
||||
|
||||
if (optind >= argc) {
|
||||
usage();
|
||||
}
|
||||
filename = argv[optind];
|
||||
exec_path = argv[optind];
|
||||
|
||||
/* Zero out regs */
|
||||
memset(regs, 0, sizeof(struct target_pt_regs));
|
||||
|
||||
|
Reference in New Issue
Block a user