History log of /external/qemu/vl-android.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0e5ff1bd3073e3847ac8400ba46814878beb8605 04-Jul-2014 David 'Digit' Turner <digit@google.com> memcheck: Remove feature entirely

This patch removes the memcheck feature from the Android emulator
code base. This is for several reasons:

- Supporting the feature impacts many QEMU-specific emulation files
in subtle ways, that make it difficult to refactor this code to
integrate upstream changes.

- The feature only works for ARM (32-bit), has no unit tests, and
generates massive amounts of false positive messages coming
from the platform.

- Barely anyone uses it.

This feature might make a comeback in the future, but this will be
under a different life-form that will have adapted to the new state
of the code.

+ As a bonus, fix the build!

Change-Id: Idd19a3bc7923379cb1e82850f14499549b6a991b
/external/qemu/vl-android.c
965a6e09eb2bf63b6784e6c264990042fd199502 23-Jun-2014 David 'Digit' Turner <digit@google.com> Parse fstab.goldfish file from ramdisk.img

This patch modifies the emulator to detect an fstab.goldfish
in ramdisk.img, and if present, use it to determine the exact
format of all partitions on the system.

This file should be present starting with Android 4.4 (KitKat).
The change is important because not all SDK system images have
the same settings, and it's hard to guess correctly from the
API level or kernel version.

This should make the emulator _much_ more reliable in the way it
setups partition images, in the wake of changing partition
formats during platform development (i.e. the format of the
cache partition has changed several times in AOSP and internal
trees, and not all development branches have the same value now,
this patch should make the emulator always select the right value
now, instead of getting it wrong in many cases).

BUG=15831221,15832082,15753975,15670063,15137521

Change-Id: I636784f7a28e3b546b859ca355fd5345abf14982
/external/qemu/vl-android.c
b72ae03a20146da5fa15bb710e0d765bedf183c9 18-Jun-2014 David 'Digit' Turner <digit@google.com> Fix: create missing partition images on demand.

The previous patch introduced a regression where, if the userdata
partition image was not present (e.g. userdata-qemu.img), it was
no longer created at startup, and the emulator would fail to run.

This patch fixes the issue.

As an added bonus, it also fixes -wipe-data to ensure that this
option also clears the cache partition, if any. For some reason
the latter was never properly cleared.

Change-Id: Ic97ffa0468da6a8889d64623efaf05148099311f
/external/qemu/vl-android.c
a7f4b19791f48b2a3b482fa3478f77cff1f8e757 17-Jun-2014 David 'Digit' Turner <digit@google.com> vl-android.c: Support EXT4 cache partitions.

Kernel 3.10 dropped support for yaffs2 partitions, which forces
the cache partition to be ext4 too, just like the system and
data one.

This patch refactors the code in vl-android.c that configures
the NAND devices corresponding to each partition image to do
the following:

- Use a single function to perform the configuration, based
on a small set of parameters (android_nand_add_device).

- Ensure that the cache partition uses 'ext4' if kernel 3.10
or higher is used, or 'yaffs2' otherwise.

Change-Id: I7352dc436d5677c508b89591d92c066b4227ce3a
/external/qemu/vl-android.c
cc5804ca118e802842bbd91a3f4f8dfbc1c4303b 12-Jun-2014 David 'Digit' Turner <digit@google.com> Support EXT4 cache partition images.

Recent Android kernels (3.10) do not support YAFFS2 anymore, as such
the cache partition must be formatted as EXT4 when they are used.

This patch adds the necessary code to do the following:

- Auto-detect whether a YAFFS2 or EXT4 cache partition is needed
based on the kernel version.

- Add a hardware property to override the auto-detected result,
in case of problem (kernel.supportsYaffs2)

- Create either an empty YAFFS2 or EXT4 cache partition when the
file doesn't exist yet in the AVD's content directory.

This uses the new android_createEmptyExt4Image() function that
was introduced in a previous patch.

Change-Id: Idd0e49501422993f655f77f14db651d5d2eb4ca2
/external/qemu/vl-android.c
7c07e4eacaa12e259866aedd0005cf906eb750d7 14-Jun-2014 David 'Digit' Turner <digit@google.com> Fix CPU architecture check for x86_64.

Recently, the value of ro.build.cpu.abi for x86_64 system images
was changed from the invalid 'x86' to the correct 'x86_64'.

Unfortunately, this triggered a bug in vl-android.c where the value
is checked. This patch modifies the code to accept 'x86_64' as a
valid ABI value in emulator-x86 and emulator64-x86, and simplifies
the logic to make it easier to add support for more architectures
in the future.

BUG=none

Change-Id: I35001536e8bbd156b809fce1cceacefd47c5f845
/external/qemu/vl-android.c
81edfa7cecb129367d98e4bf9c2ea9a8a5ddc9b9 11-Jun-2014 Greg Hackmann <ghackmann@google.com> Revert "android: support generating ext4 partition images"

This reverts commit 44f06dffd84c0a626f6c3d539d16a0891240028d.

Change-Id: I7694f8373eb91c7c7e3afea202c7f6f8b43bf406
/external/qemu/vl-android.c
44f06dffd84c0a626f6c3d539d16a0891240028d 10-Jun-2014 Greg Hackmann <ghackmann@google.com> android: support generating ext4 partition images

Defer generation to libext4_utils, built using the existing sources in
the same style as libgtest. With the emulator now generating valid ext4
images, re-enable support for ext4 cache partitions.

Bug: 13115061

Change-Id: I8770f2ddbc95f6beb4ca9655ebf9d8f8a7bdd1b0
Signed-off-by: Greg Hackmann <ghackmann@google.com>
/external/qemu/vl-android.c
27ff62a645346c58826ce3e7d08727832c1a9e58 05-May-2014 David 'Digit' Turner <digit@google.com> Merge "Disable 64-bit Darwin platform build." into idea133
Auto-merge: 5e25267

* commit '5e2526706be97ceee436e6f0b7e6c1c35619b851':
Disable 64-bit Darwin platform build.
Add '-accel <mode>' and 'no-accel' options.
Add misc android/base/ helper classes.
Windows: Fix libSDLmain compilation
045bdbe2e68c305f5f819744ccbe75c7478e4e8b 28-Apr-2014 David 'Digit' Turner <digit@google.com> Add '-accel <mode>' and 'no-accel' options.

This patch adds two new options to better control CPU emulation
acceleration (i.e. KVM and HAX). More specifically:

'-no-accel' can be used to disable acceleration if available.
'-accel off' does the same.
'-accel on' forces to run with acceleration, or refuses to start
the emulator.
'-accel auto' probes the system for a working accelerator and uses
it when possible (i.e. when emulating x86 or x86_64 images only).

Also print some information with -verbose or -debug-init.

Note: This adds QEMU-independent probing code for KVM and HAX
under android/emulation/ (C++), as well as some glue to
use it from C under android/cpu_accelerator.[hc].

Note: HAX is no longer enabled by default when reaching the QEMU
main function.

Change-Id: Ic91db7a3b213d69296c50fec35cd29a32a8e5779
/external/qemu/vl-android.c
9f82bbb7f5463da5ad5b891fc9012ade60eaed0d 14-Apr-2014 David 'Digit' Turner <digit@google.com> USB: Remove USB-related sources.

The Android emulator doesn't support USB, removing these files
reduces the upstream integration work.

Change-Id: Id6b40808092e118e11924c30ca77bd366f95d12c
/external/qemu/vl-android.c
cd64b0ed78828bd125d69eca70fc78e2f018feb6 14-Apr-2014 David 'Digit' Turner <digit@google.com> bluetooth: Remove BT-related sources.

The Android emulator doesn't support Bluetooth, so remove any
code that is related to it. This reduces the amount of code that
needs to be integrated from upstream.

If really needed, BT support might be introduced later after the
big refactoring is complete.

Change-Id: I19d2bdc901aef89bec0418e4f345a5f1758de7a1
/external/qemu/vl-android.c
6657678c3d86395084f6a699e73614195f06c445 24-Mar-2014 David 'Digit' Turner <digit@google.com> Introduce CPUState.

This patch splits the definitions previously found in CPUArchState,
to place some of them in a common data structure called CPUState,
to mirror upstream.

Note that upstream also makes CPUState a complete QOM object that
derives from DeviceState / DeviceClass, but this patch doesn't do
that. That's why the target-*/cpu-qom.h files, as well as
include/qom/cpu.h are not the real ones from upstream yet.

Future patches will get rid of CPUOldState, which is currently used
as an alias for CPUArchState, but will be replaced entirely by
CPUState, requiring changing the signature of many functions to
match upstream.

QOM-ification will probably happen after that, but may require
a few more patches due to layering / coupling issues.

Change-Id: Ifc33f8abe2aa80b20da13f5c83c109e37aff7e11

Conflicts:
cputlb.c
target-arm/op_helper.c
target-i386/op_helper.c
target-mips/op_helper.c
/external/qemu/vl-android.c
4ab1225535dfc5fbcbde37a171b39224ea34e30b 24-Mar-2014 David 'Digit' Turner <digit@google.com> exec.c: Use a QTAILQ to list CPUs.

This introduces CPUState, a mere typedef to CPUOldState for now,
and changes the way CPUs are listed in QEMU. The goal is to get
closer to upstream, while also allowing really separating CPUState
from CPUArmState in future patches.

+ Move "current_cpu" to a thread-local variable on Linux, just like
upstream. Testing shows this doesn't affect performance.

Change-Id: Id07bbef4ba1584e607bec647d5117ac755c48ce6
/external/qemu/vl-android.c
5bb450ee9cc5da0c6582e63f41c504c7861e2788 14-Mar-2014 David 'Digit' Turner <digit@google.com> Rename CONFIG_MEMCHECK to CONFIG_ANDROID_MEMCHECK

Change-Id: I9b0edcc1e243111f86f18c22eecbebb23219c297
/external/qemu/vl-android.c
96e493a7f0be0193cb17b24c3492d998411b5031 14-Mar-2014 David 'Digit' Turner <digit@google.com> Move memcheck implementation to android/qemu/memcheck/

Change-Id: I806820d2c3d3f1436bbca54e53a7fa1a0e0a4dba
/external/qemu/vl-android.c
abaca002309a7f6d7ac8153a86d0c486cef4736b 27-Mar-2014 David 'Digit' Turner <digit@google.com> resolve merge conflicts of 496eabe to master.

Conflicts:
vl-android.c

Change-Id: I06521c078a6750b3a5c942bbccad6ef1e21476db
a44d1dc71b6d3f01bcd6a2f53b27784a9ca49c4f 19-Mar-2014 David 'Digit' Turner <digit@google.com> vl-android.c: Fix cache partition comment.

A previous patch introduced a rather ambiguous comment line to
fix a bug. Remove it and replace it with something a little more
meaningful that better explains the issue.

Change-Id: I9af586c14cf510c00ccd528dd48fc53edad23c93
/external/qemu/vl-android.c
53b435c014976c622bf93d6cb22e9a26df582d26 14-Mar-2014 JP Abgrall <jpa@google.com> Fix cache partition support

The emulation tools don't fully support ext4. Yet.
So we stick with the default which ends up being yaffs2.
This needs a matching fstab change.

Bug: 13330763
Change-Id: I0ddfa080c50ac6546ff72d648c07df9347799152
Signed-off-by: JP Abgrall <jpa@google.com>
/external/qemu/vl-android.c
7f9826692febc48c6ce23f65bc6770fc5f9fe576 14-Mar-2014 JP Abgrall <jpa@google.com> Fix cache partition support

The emulation tools don't fully support ext4. Yet.
So we stick with the default which ends up being yaffs2.
This needs a matching fstab change.

Bug: 13330763
Change-Id: I0ddfa080c50ac6546ff72d648c07df9347799152
Signed-off-by: JP Abgrall <jpa@google.com>
/external/qemu/vl-android.c
c6e0caedac5585546cb68605418eedc9e726b44b 07-Mar-2014 David 'Digit' Turner <digit@google.com> Support kernels with version >= 3.10

Newer Android Linux kernels modify the way certain devices are
named, i.e.:

/dev/qemu_pipe is renamed as /dev/goldfish_pipe.
/dev/ttyS<num> is renamed as /dev/ttyGF<num>

This patch adds support code to the emulator to deal with this
as transparently as possible:

1) Add a new hardware property 'kernel.newDeviceNaming', a string
which can only take the values 'autodetect', 'no', and 'yes'.

2) Support code to probe the type of a kernel image.
IMPORTANT: The kernel implementation depends on the host
/usr/bin/file to properly recognize kernel files and extract
their version number. This really only works on Linux and
OS X, and only for x86 and x86_64 kernel images.

A future patch will implement more robust detection by
essentially doing its own probing through libmagic or equivalent.

Note that there doesn't seem to be any existing libmagic rules
to recognize ARM and MIPS kernel images at the moment :-(

See android/kernel/kernel_utils*

3) Modify the emulator startup code to perform auto-detection
when possible (broken on Windows, and non Intel archs, see
comment above).

4) Modify the kernel command line generation to handle the new
TTY device naming

5) Modify the Goldfish pipe virtual device implementation
(since the device name presented to the kernel also changed).

This should be enough to auto-detect Linux 3.10+ x86_64 kernel
images on Linux.

Change-Id: Ied517f8a1fdeb18d84fa9a12ebcdc3daa1f41d9a
/external/qemu/vl-android.c
0e8e7484a282d510c335a5f8a238ad02250345ad 17-Feb-2014 David 'Digit' Turner <digit@google.com> RAMBlock/RAMList integration.

This patch back-ports changes to the RAMBlock/RAMList types which
are used to manage the memory buffers used to keep the guest RAM
pages in memory.

Change-Id: Iffc90462af2efe9be712356bdefa93cdd1d470b5
Note: this doesn't use the new MemoryRegion API yet.
/external/qemu/vl-android.c
5cb5c0b8c5145dc0002b24e1421a3fa7a697475e 17-Feb-2014 David 'Digit' Turner <digit@google.com> savevm.c: Getting closer to upstream.

This patch refactors savevm.c considerably to get much closer
to upstream. The main benefit is the introduction of savevm_register()
and savevm_unregister() functions, which allow the client to provide
a description of the state through a VMStateDescription structure.

The 'legacy' register_savevm() and unregister_savevm() are still
provided (just like upstream does). Future patches will 'upgrade'
our virtual devices to the new interface.

NOTE: Since DeviceState is not implemented properly yet, qdev_get_path()
is stubbed to always return NULL.

Change-Id: I7bfa201da40a0e470fafde6ccc002a4216ecd9c1
/external/qemu/vl-android.c
28f52f24090bdcf4a027dcd12821a56009d97585 26-Feb-2014 David 'Digit' Turner <digit@google.com> Only print yaffs2/ext4 message with -verbose or -debug-init

The direct calls to dprint() were a silly mistake, so use
VERBOSE_PRINT(init,...) instead.

Change-Id: Ie23f89aa07d0784c115fac8d82dd71b3beebc25c
/external/qemu/vl-android.c
c005246ed03de874fdc432073ba8e5e8ebfed922 25-Feb-2014 David 'Digit' Turner <digit@google.com> Remove trailing spaces in misc sources.

Change-Id: I573d4e816112b7401b3c824fbe773b85a8601531
/external/qemu/vl-android.c
890f46464b0a35cbee882a5d62bd86a49879cabc 24-Feb-2014 David 'Digit' Turner <digit@google.com> Fix Ext4 filesystem support.

This patch fixes the way the emulator handles Ext4 partition images.

Before the patch:

- The hardware property 'hw.useext4' was used to determine whether
the partition images use yaffs2 (for 'no') or ext4 (for 'yes').
The default value was based on the API level, since ext4 is
used since Android 4.4 (API level 19), but it was easy to get
confused, resulting in the inability to properly boot the
AVD. The symptom was not trivial, i.e.:

- Mounting /system with the disk image failed, so the
system kept using the ramdisk mount.

- Later, logcat contained plenty of complaints that some
stuff couldn't be found under /system/bin/

After the patch:

- The partition format is simply auto-detected by probing the
start of the disk image. The hardware property has not been
removed because doing this breaks snapshots, but it is now
tagged as deprecated.

+ Move the ext4 probing code from android/avd/util.* to
android/filesystems/ext4_utils.* and add proper unit tests.

Change-Id: Iab24191e491d4cb8589dd13408618a0d13efeb76
/external/qemu/vl-android.c
1365eb2b35736211464f313616e32f25569e5107 16-Feb-2014 David 'Digit' Turner <digit@google.com> Remove compiler warnings

Change-Id: I75e21a86958a4650b956e89a55357f0c38fcb118
/external/qemu/vl-android.c
dcda949f769a11b197f4784fe299a448d87e6e14 16-Feb-2014 David 'Digit' Turner <digit@google.com> qemu-timer.c: Use upstream version.

This completely modifies the implementation of timers to match upstream,
the only difference is that the oddly-placed qemu_gpoll_ns() function is
disabled (it's not used yet).

Most of the changes here (but not all), were applied through the following
sed script:

s|qemu_get_clock\s*(\s*vm_clock\s*)|qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)|g
s|qemu_get_clock\s*(\s*rt_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_REALTIME)|g
s|qemu_get_clock_ns\s*(\s*vm_clock\s*)|qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)|g
s|qemu_get_clock_ns\s*(\s*rt_clock\s*)|qemu_clock_get_ns(QEMU_CLOCK_REALTIME)|g
s|qemu_get_clock_ms\s*(\s*vm_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL)|g
s|qemu_get_clock_ms\s*(\s*rt_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_REALTIME)|g
s|qemu_get_clock_ms\s*(\s*host_clock\s*)|qemu_clock_get_ms(QEMU_CLOCK_HOST)|g
s|qemu_get_clock_ms\s*(\s*SHAPER_CLOCK\s*)|qemu_clock_get_ms(SHAPER_CLOCK)|g
s|qemu_mod_timer\s*(|timer_mod(|g
s|qemu_del_timer\s*(|timer_del(|g
s|qemu_free_timer\s*(|timer_free(|g
s|qemu_new_timer_ms\s*(\s*rt_clock,|timer_new(QEMU_CLOCK_REALTIME, SCALE_MS,|g
s|qemu_new_timer_ns\s*(\s*rt_clock,|timer_new(QEMU_CLOCK_REALTIME, SCALE_NS,|g
s|qemu_new_timer_ms\s*(\s*vm_clock,|timer_new(QEMU_CLOCK_VIRTUAL, SCALE_MS,|g
s|qemu_new_timer_ns\s*(\s*vm_clock,|timer_new(QEMU_CLOCK_VIRTUAL, SCALE_NS,|g
s|qemu_new_timer_ms\s*(\s*host_clock,|timer_new(QEMU_CLOCK_HOST, SCALE_MS,|g
s|qemu_new_timer_ns\s*(\s*host_clock,|timer_new(QEMU_CLOCK_HOST, SCALE_NS,|g
s|qemu_new_timer_ms\s*(\s*SHAPER_CLOCK\s*,|timer_new(SHAPER_CLOCK, SCALE_MS,|g
s|qemu_put_timer\s*(|timer_put(|g
s|qemu_get_timer\s*(|timer_get(|g
s|qemu_timer_pending\s*(|timer_pending(|g
s|qemu_clock_next_deadline\s*(\s*vm_clock|qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL|g
s|qemu_clock_next_deadline\s*(\s*rt_clock|qemu_clock_deadline_ns_all(QEMU_CLOCK_REALTIME|g
s|qemu_clock_next_deadline\s*(\s*host_clock|qemu_clock_deadline_ns_all(QEMU_CLOCK_HOST|g

+ Disable icount-based clock warping/adjustments. It will be re-enabled in the future
after cpu emulation has been completely refactored.

Change-Id: Ifbcf4a52654eed3a08dfe59b0546a75d4627f758
/external/qemu/vl-android.c
f9077a88a0b9edca081b0810dde73d108db087a6 10-Feb-2014 David 'Digit' Turner <digit@google.com> Move main loop logic to main-loop.c

This patch moves most of the logic dealing with the internal main loop
into the main-loop.c file, to match upstream. Note however that the actual
implementation is not changed, and is still _very_ different from upstream.

However, this decouples a few more things to make upcoming refactors
significantly easier. This should not affect performance in any way.

+ Move the log rotation logic, which is specific to QEMU, to
log-rotate-android.c and include/android/log-rotate.h, it's likely
that the use of SIGUSR1 will not be maintained in the future, because
upstream uses that to signal virtual CPU threads internally instead.

Change-Id: I7bc886778fa70742c165b1dfe77637564910764e
/external/qemu/vl-android.c
d79c7c53b561aeb2f34ff5cfd66c8360e7af4f36 10-Feb-2014 David 'Digit' Turner <digit@google.com> Remove dead CONFIG_IOTHREAD code.

This removes all sources that are inside #ifdef CONFIG_IOTHREAD .. #endif
blocks, since this configuration macro is never defined for the Android
emulator.

Note that upstream has definitely switched to an I/O thread implementation,
which allows using one core / virtual CPU in KVM mode. However, its
implementation is now so different that the code fragments that were
kept here were no longer useful, even for historical reasons.

Hopefully, the Android emulator will switch to a threaded implementation
in future patches, but this will only happen after some more significant
refactoring.

Change-Id: I5610c9d33a3b8e76c600fd94bab2676067054715
/external/qemu/vl-android.c
81911b0de42d9e949deda2dfef6a59a1c0561bda 10-Feb-2014 David 'Digit' Turner <digit@google.com> Remove dead KQEMU support code.

CONFIG_KQEMU was never defined anyway, so remove this dead code
from the source tree.

Change-Id: Ie854f7015f1c02352b0a59a9b7ff0294fa889a6e
/external/qemu/vl-android.c
171dd0bf53f93e64b71d3edc958e15f40c96748d 04-Feb-2014 David 'Digit' Turner <digit@android.com> Remove CONFIG_TRACE support.

It was limited to ARMv5, and didn't work correctly. Moreover, it
made integrating upstream changes difficult, so remove it for now.

Change-Id: I7da7a1e00b241d452c6dff5a318ccfedc5d7a8a4
/external/qemu/vl-android.c
7e9f6c194a8e3e661cc89302db6690ff6835db85 22-Jan-2014 David 'Digit' Turner <digit@android.com> exec/cpu-all.h: Get rid of obsolete CPULogItem type and functions.

Upstream has moved the log type definitions to "qemu/log.h" and
the implementation of qemu-log.c, which is now part of our build.

Update the caller to use the new versions which use QEMU/qemu_ as
the prefix, instead of CPU/cpu_.

Change-Id: Iec93d0a9e0b8430706d52cec79103f116f5f88b6
/external/qemu/vl-android.c
8848f632455c464be35092720757b953f57c29fe 16-Jan-2014 David 'Digit' Turner <digit@android.com> cache-utils: upstream integration

Change-Id: Ia7fecda45c0c4bfa565feb928a0d192ecf233902
/external/qemu/vl-android.c
e2678e116c8cdb0f36b247a5bd9cfacc849362fc 16-Jan-2014 David 'Digit' Turner <digit@android.com> Rename CPUState to CPUOldState.

Upstream qemu has split the cpu state into two new data structures:

CPUState -> is used to model the CPU state through the QEMU
object model.

CPUArchState -> actually a macro that aliases CPUArmState,
CPUX86State or CPUMIPSState.

Both were part of the "CPUState" in the current emulator sources.

Previous patches introduced CPUArchState, as a simple alias to the
machine-specific state. This patch renames any use of CPUState in
the current code to CPUOldState, except within target-*/ directories
where it is replaced by CPU${ARCH}State instead.

This will allow bringing the upstream CPUState definition in the
source tree, and slowly migrate everything to the right location.

Change-Id: I88b79e6e89f1f36084dc2642e1cf415135e4da09
/external/qemu/vl-android.c
a2c14f947951612b45024095afd2210aa7368773 04-Feb-2014 David 'Digit' Turner <digit@google.com> Cleanup: Remove 100+ compiler warnings.

This is a big cleanup that removes compiler warnings by performing
the following:

- Remove unused functions or variables.
- Change pointer cast to be alias safe using unions.
- Use __attribute__((unused)) on some local variable definitions
when their usage depends on conditional defines that are not
always true when compiling the same source several times.
- Fix a couple array indexing bugs.

There are still a few warnings from the JSON lexer, libjpeg and
the TCG helpers though, but the overall compilation is much cleaner.

BUG=NONE

Change-Id: Ic4483e6402b266ecfd7bca8c92a73d8fcf392a1f
/external/qemu/vl-android.c
7342c8a36068977855b3becfe1bc994147e837bb 21-Jan-2014 David 'Digit' Turner <digit@google.com> Fix Windows unittests build.

Turns out that emulator_common depended on a symbol (android_verbose)
that was declared outside of the module, for no good reason. This
broke the Windows build of emulator_unittests, so fix the glitch
by moving the symbol declaration to the appropriate location.

Change-Id: I325e79435c0c2cfcfa9850689bd6d0b09c40eac1
/external/qemu/vl-android.c
aa8236dc1b1ea300ab18716db5b8fab42aca3ca7 10-Jan-2014 David 'Digit' Turner <digit@android.com> qemu-malloc.c: Remove qemu-specific heap routines.

Remove all uses of qemu_malloc/malloc0/realloc/free/strdup/etc to use
the equivalent GLib functions (g_malloc, g_free, ...) as per upstream.

This also removes qemu-malloc.c since it's no longer required.

Change-Id: I3c36a0396b73dd114b8da385b43f56a2e54dbb15
/external/qemu/vl-android.c
bcde1092aca184dbd7860078af020de7d1e4e22f 09-Jan-2014 David 'Digit' Turner <digit@android.com> rename target_phy_addr_t to hwaddr to match upstream.

Upstream got rid of the target_phys_addr_t and replaced it with 'hwaddr',
so do the corresponding rename here. Note that:

- This also renames <exec/targphys.h> to <exec/hwaddr.h>

- Upstream always deins hwaddr as a 64-bit type, while the size of
our own hwaddr is still controlled by TARGET_PHYS_ADDR_BITS, and
will be 32 for now.

A future patch will change the type definition to fully match
upstream, but it is more risky / requires more cleanups. It's
simply cleaner / simpler to put the related work in a separate
patch, given the large number of sources touched by the
current change.

Change-Id: Iee30869a57798c12109b6a23570b166232bb9244
/external/qemu/vl-android.c
503191814921f8f080d8902d5bc2a308a51e1b99 17-Dec-2013 David 'Digit' Turner <digit@android.com> hw/xen.h -> include/hw/xen/

Change-Id: I14bef06cc36e82e8959af620dfcd0ea7e0b59782
/external/qemu/vl-android.c
7821d6304f2944405f27abf06ae5fc9da38821e4 17-Dec-2013 David 'Digit' Turner <digit@android.com> hw/watchdog.h -> include/sysemu/watchdog.h

Change-Id: I5beefeffa9a368946eb43f5c98067423b7934ed5
/external/qemu/vl-android.c
73a93a1fe2cec18d8f4286d122c295019b1fd51e 17-Dec-2013 David 'Digit' Turner <digit@android.com> hw/smbios.h -> include/hw/i386

Change-Id: Ic756eaaf87e3aecf28f41f22214c77ff833725b6
/external/qemu/vl-android.c
f0665425f3d93ce5c43147e00d8d5259708f0176 17-Dec-2013 David 'Digit' Turner <digit@android.com> hw/goldfish_* -> hw/android/goldfish/*

Change-Id: I96fd376258e3bcd8357625373176ba53cdde12d0
/external/qemu/vl-android.c
2ec695af7284adbedcdbc08a22d818b6bdd8990c 17-Dec-2013 David 'Digit' Turner <digit@android.com> Move hw/ headers to include/hw/

hw/hw.h, hw/irq.h, hw/qdev.h -> include/hw/
hw/pc.h -> include/hw/i386/
hw/isa.h -> include/hw/isa/

hw/irq.c -> hw/core/irq.c

Change-Id: I0f529fef02b5cd3ee7c418d1a4a644d75d32b1d5
/external/qemu/vl-android.c
53cd8e814eeb35e195081dd369ac7667cc68b1c6 17-Dec-2013 David 'Digit' Turner <digit@android.com> targphy.s -> include/exec/

Note that upstream, this is called hwaddr.h and defines the
type hwaddr as a uint64_t typedef, independent of the target
physical address size.

Change-Id: Ie916b6336e95e28fb16603d309c6653dd04410a1
/external/qemu/vl-android.c
d0edecb426b34ddb9b10b81dea19aee04a61a385 17-Dec-2013 David 'Digit' Turner <digit@android.com> qemu_socket.h -> include/qemu/sockets.h

Change-Id: I4b538a8033c3c89bf0a7a0c2f2a50a4beab65501
/external/qemu/vl-android.c
2dbdad58803b1dae837eae134659387491ffab12 17-Dec-2013 David 'Digit' Turner <digit@android.com> hpet.h -> include/hw/timer/

Change-Id: I99c9a53ddf392ae490d254de76b0d0cdacd1494c
/external/qemu/vl-android.c
1182284cd2ef1396dbbeeecd46ff90b4a225f0da 17-Dec-2013 David 'Digit' Turner <digit@android.com> cpus.h -> include/sysemu/

Change-Id: I63adb1aa61112565fa6962687536132b6800689f
/external/qemu/vl-android.c
6800f0a746a7760429007c6dd7ac9eafeffc3741 17-Dec-2013 David 'Digit' Turner <digit@android.com> bt-host.h -> include/sysemu/bt.h

Change-Id: I40396deda6166769d67db8352f4920d57267ef09
/external/qemu/vl-android.c
6e2eb78f2b52b6fff73a72995bc4356d6e67e773 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move tcpdump.h -> include/android/tcpdump.h

+ tcpdump.c -> android/qemu-tcpdump.c

Change-Id: Ib3a19f62f910b6562285fab3bcc98178ea9a4e9e
/external/qemu/vl-android.c
e7216d82dbaa19892ad62b07402d512234559a6e 15-Dec-2013 David 'Digit' Turner <digit@android.com> qemu-char.h -> include/sysemu/char.h

Change-Id: I8e3d6e9a73a347978789a98035e89ea1e03b59aa
/external/qemu/vl-android.c
e1e03df288d5a44bfbffbd86588395c7cbbc27df 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move more headers.

cbuffer.h, charpipe.h -> include/android/
cbuffer.c, charpipe.c -> android/
qemu_debug.h -> include/android/qemu-debug.h
block.h, block_int.h -> include/block/
elf.h -> include/
hax.h -> include/exec/
qemu-lock.h -> include/exec/spinlock.h
readline.h -> include/monitor/readline.h
qemu-common.h - include
qemu-barrier.h -> include/qemu/atomic.h
qemu-log.h -> include/qemu/log.h

Change-Id: I86b998932461caa35d347cd71b40bd6e4ec7d84d
/external/qemu/vl-android.c
34c48ff1e3ad5cd2084ca40188754d45f423750b 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move headers to incude/sysemu/

+ arch_init.h, balloon.h, blockdev.h, dma.h, kvm.h,
sysemu.h -> include/sysemu/

+ kvm-android.h -> include/android/kvm.h

Change-Id: I3d334e1b6eea836fdcee9f36fe693cf4c74be54f
/external/qemu/vl-android.c
28a09b6fe8d8f3e92ffee9263609a6da881b8818 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move migration.h to include/migration/

+ qemu_file.h -> include/migration/qemu-file.h
+ thunk.h -> include/exec/user/

Change-Id: I6fc339ac0fe9d366db1ed095dff08f5619ebc3d5
/external/qemu/vl-android.c
cc33b2d8035092608c7cba4154e9c44452727e1b 15-Dec-2013 David 'Digit' Turner <digit@android.com> Move disas.h to include/disas/

+ dis-asm.h -> include/disas/bfd.h

+ arm-dis.c -> disas/arm.c
ppc-dis.c -> disas/ppc.c
i386-dis.c -> disas/i386.c
mips-dis.c -> disas/mips.c

+ remove all unused .ld scripts

Change-Id: Ie29662b83c09ea17d34e42dda3998691c182b10e
/external/qemu/vl-android.c
6af6765e2f3bc930d0dce21d752bea570a1b1362 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move monitor.h to include/monitor/

+ monitor-android.h -> include/android/monitor.h

Change-Id: Iad8afa71461dd70c6997902516fbf4ef7cb8babe
/external/qemu/vl-android.c
d4e803c5e928790b14704ae7f0b048da7ba47fab 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move android-trace.h to include/android/

+ android-trace_common.h -> include/android/trace_common.h
NOTE: trace_common.h is still in the top-level directory because
the qtools first need to be updated to include the header
at include/android/trace_common.h

+ trace.c -> android/
+ user-events.h -> include/android/
+ user-events-qemu.c -> android/

Change-Id: Idbf59c8b1a5cc2872f035eb3fa7f9922755f357d
/external/qemu/vl-android.c
cc330d4169441727fecf1da08aee806fc021c4e2 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move net.h to include/net/

+ Move net-android.c and net.c to net/
+ Rename net-checksum.c to net/checksum.c
+ Move sockets.h and shaper.h to include/android/
and sockets.c + shaper.c to android/

+ Move vgafont.h to ui/

Change-Id: I2659a919a316d3f95aac0f9924833eeee4cb5592
/external/qemu/vl-android.c
852088c7e08182c2de563872d558309815cbfa0d 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move headers to include/exec/

Change-Id: Ife43f9cd12a02aa98f408043b0cccb9fe45a9ff7
/external/qemu/vl-android.c
1c31e3e43ce4cca85a707dfff631e5e102fdeced 14-Dec-2013 David 'Digit' Turner <digit@android.com> Even more moves.

include/ui + ui/
include/qapi/qmp/ + qobject/

Change-Id: Ief236a08cb234d9dd692e85907757678ef32f035
/external/qemu/vl-android.c
37dc41a01f33a1e6aca0458b205c2b1609fe82c3 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move more files to include/qemu/ and util/

Change-Id: I79e70241894e8bbeea2de711ff9de742583c23b1
/external/qemu/vl-android.c
7a78db75ad42aea283f5073f51891464104a9fc3 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move qemu-timer.h to include/qemu/timer.h

Note: upstream still puts qemu-timer.c in the top-level
directory, so no need to move it

Change-Id: I475309d6f0040b4fd2277e52a2526825c112e91f
/external/qemu/vl-android.c
0faeb3acf8c3843b71884b490577ce89c4738117 29-Oct-2013 Siva Velusamy <vsiva@google.com> Set ro.config.low_ram=true when AVD has <= 512M of RAM

This is a partial fix for Issue 11377795

Change-Id: I1f1b1be527e32f25ede5c80ff960051644d9e717
/external/qemu/vl-android.c
04b20f411ba9398fc2bfac3d93f0997cd93a86f9 11-Sep-2013 Deepanshu Gupta <deepanshu@google.com> Change sizes for ext4 images

Change page_size to 512 and extra_size to 0. This is needed to use ext4
filesystem, which is used beyond apiLevel 18, on goldfish. A new
hardware property has been added to specify which filesystem to use:
ext4 or yaffs2. The default for this property is to use yaffs2 if
apiLevel <= 18 and use ext4 otherwise. It can be overridden in AVD's
config.ini by specifying "hw.useext4=yes".

Bug: http://b.android.com/38561
Change-Id: I978afe0f742795beef66e7eaee59a8d9e76d4602
/external/qemu/vl-android.c
58ecd74ecb860c173e8ccc2074887165cc5dc43d 18-Jul-2012 Manuel Francisco Naranjo <manuel@aircable.net> fix bug in usb hub initialization

Change-Id: I4dce451af970bd9dcaf4f2ac57325bc19cb69d82
/external/qemu/vl-android.c
035f805e44a2a5ea556e425584060fad1f4230b6 18-May-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Use -qemu -lcd-density parameter for setting qemu.sf.lcd_density boot property.

Change-Id: Ibfd85c3e351caef89ae57630c824255f29f47914
/external/qemu/vl-android.c
cf289fbe0669ad54965e9f378b7e7b4edea9d814 14-May-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Check RAM availability before VM is initialized.

Quite often (especially on older XP machines) attempts to allocate large VM RAM is
going to fail, and crash the emulator. Since it's failing deep inside QEMU, it's
not really possible to provide the user with a meaningful explanation for the crash.
So, before initializing VM we should check if QEMU is going to be able to allocate
requested amount of RAM, and if not, try to come up with a recomendation.

Change-Id: Id6213d50c70f6bd3b32c4df2ded96d8e3013ec40
/external/qemu/vl-android.c
ba5c1f674511aff458dae69927a1c61d60e66aa1 09-May-2012 Jesse Hall <jessehall@google.com> Remove init-time GLES per-frame callback

The GLES renderer interface now allows the per-frame callback to be
registered after initialization. This change updates the emulator to
use the new interface. Since reading back completed frames is slow
(due to pipeline flush/stall), a future change will enable the
callback only while multitouch emulation is actually in use.

Change-Id: I7ad23b4bebe1bd3077863da4d50333cc0578519e
/external/qemu/vl-android.c
1efe36f95c788400c8b504b9055173bc8f9a4d15 03-May-2012 Jesse Hall <jessehall@google.com> Merge "Provide GL strings from renderer to ddms ping"
3d894287d2907dc6a0fc45d7a5b77dbe76ab2bd6 01-May-2012 Andrew Hsieh <andrewhsieh@google.com> Fixed pc-bios path in standalone emulator

pc-bios was recently moved to new directory. Change emulator to
search in new path in standalone mode (built in external/qemu
and run from external/qemu/objs). To be specific, change

../../../prebuilt/common/pc-bios/

to

../../../prebuilts/qemu-kernel/x86/pc-bios/

Change-Id: Id79534349394c9b47f8ef5dda76f2a21268b58fe
/external/qemu/vl-android.c
733fffaac9ccebfc424fccf9467b22475f71a2f8 26-Apr-2012 Jesse Hall <jessehall@google.com> Provide GL strings from renderer to ddms ping

Change-Id: I59c9e58c568a70855783e57514fec80b711d6a64
/external/qemu/vl-android.c
6699b688d7dbd7ad4a07ca1c1f77db864012010a 18-Apr-2012 Jesse Hall <jessehall@google.com> Publish and use libOpenglRender interface header

The emulator opengles.c file duplicated the function declarations from
libOpenglRenderer's render_api.h instead of including it directly.
This led to multiple bugs since the declarations didn't actually
match, but there was no way for the compiler or dynamic loader to
check this.

This change makes opengles.c include render_api.h to get function
pointer prototypes, and changes the prototypes/implementation as
necessary to make both sides actually match. It should be much more
difficult to introduce interface mismatch bugs now.

Two bugs this change would have prevented:
(a) The interface mismatch caused by inconsistent branching which led
to GPU acceleration crashing on Windows. With this change, we
would have caught the problem at compile time.
(b) The emulator verbose log has always been printing "Can't start
OpenGLES renderer?" even when the renderer started fine. This is
because the renderer was returning a bool (true == success) but
the emulator's declaration said it returned int, and the emulator
assumed 0 meant success. This difference in return type should now
be caught at compile time.

Change-Id: I5b3c70c9a40854332d67e37333acd6edb6ad01f6
/external/qemu/vl-android.c
1a820e90d8848c6b0ac7c78b5a2e8b28c9738a3a 11-Apr-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Enable multi-touch emulation with -gpu on

This CL implements a callback that gets invoked by OpenGLES emulator on it framebuffer
updates. This allows transferring framebuffer changes to the supporting device.

Proper implementation of this new callback also required changes to JPEG compression,
addressing:

1. OpenGLES framebuffer format is RGBA8889, which required implementing line conversion
for this format.
2. OpenGLES framebuffer is (or at least could be) bottom-up arranged. This requires changes
to the compressor, so it compresses the FB starting from the bottom, so the resulting
image is up-bottom.

Change-Id: Icd4efbe4a251c838adfa3518decbfc43a7ef06c8
/external/qemu/vl-android.c
9dcf03fda8001a74016a316b0aa223f6675dff37 27-Mar-2012 Jesse Hall <jessehall@google.com> Merge "EmuGL: Add OnPost callback to OpenGL renderer"
7105d422d800a624b4257798e0d81ec2045491d8 21-Mar-2012 Jesse Hall <jessehall@google.com> EmuGL: Add OnPost callback to OpenGL renderer

Match the interface changes in the OpenGL renderer that add a
per-frame callback. The callback isn't used in this change.

This change is co-dependent on Idae3b026d52ed8dd666cbcdc3f3af80175c90ad3
in development/.

Change-Id: Idae3b026d52ed8dd666cbcdc3f3af80175c90ad3
/external/qemu/vl-android.c
b557e9f989598460eb950cb3942a79f805a2a5bb 22-Mar-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Get rid of compiler warnings.

Compiler throws warnings that 'dhport/dlport' may be used uninitialized, which creates
a lot of noise when compiling the emulator. The way the variables are used and initialized
makes it completely safe to ignore these warnings.

Change-Id: I87c9930c73bb8d54a86e826ca23b32010fbc046f
/external/qemu/vl-android.c
82cb5a041bfa5fa0495e8c9e570371bf708af11a 22-Mar-2012 Jesse Hall <jessehall@google.com> Revert "EmuGL: Add OnPost callback to OpenGL renderer"

This reverts commit 2f4361f1d63751f1f72e1a1f953acfb9c05727da
/external/qemu/vl-android.c
2f4361f1d63751f1f72e1a1f953acfb9c05727da 21-Mar-2012 Jesse Hall <jessehall@google.com> EmuGL: Add OnPost callback to OpenGL renderer

Match the interface changes in the OpenGL renderer that add a
per-frame callback. The callback isn't used in this change.

This change is co-dependent on Idae3b026d52ed8dd666cbcdc3f3af80175c90ad3
in development/.

Change-Id: Idae3b026d52ed8dd666cbcdc3f3af80175c90ad3
/external/qemu/vl-android.c
7485c2989d727a1d0c14a66fb75e140f885a1583 19-Mar-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Refactor HW config to use hw.camera_back, and hw.camera_front properties.

This is a continuation of an effort to simplify HW config, and make the UI for it clearer.
This CL gets rid of multiple camera emulation properties, combining everything into just
two properties:
- hw.camera_back that controls emulation of a camera facing back, and
- hw.camera_front that controls emulation of a camera facing front.

Change-Id: Ia114ae4caf2053685cbff00f39088e5b5be2952c
/external/qemu/vl-android.c
863d1010d9c8fa4342b1b0ea860bcfb096806acc 16-Mar-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Cleanup harware properties.

1. Remove unused hw.camera.maxHorizontalPixels, and hw.camera.maxVerticalPixels parameters.
2. Combine hw.touchScreen, and hw.multiTouch under one property: hw.screen

Change-Id: I3cdf64f7d7e46486110cbc0769f9d98a61f0bea5
/external/qemu/vl-android.c
c7389bd69e570a2c8432b37399aff1976b021f0f 13-Mar-2012 Andrew Hsieh <andrewhsieh@google.com> 64-bit emulator

Patch to allow emulator searches for emulator64-${ARCH} first on
64-bit OS. If none is found, the original behavior which searchs
for 32-bit emulator-${ARCH} is performed as usual.

64-bit emulator (which still emulates Android built in 32-bit) offers
up to 20% speedup compared to its 32-bit counterpart.

Details:

android/main-emulator.c
1) search emulator64 based on the OS
2) dlopen lib64OpenglRender in 64-bit

Makefile.*
1) Rules to build 64-bit executable emulator64-{x86,arm} and libraries
emulator64-{libui,libqemu,target-i386,target-arm,libelff,common}
2) remove -Wa,-32
3) Changes prebuit toolchain path

android-configure.h
android/build/common.h
1) no longer force 32-bit build (because now prebuilts/tools/gcc-sdk/gcc
can now handle 64-bit
2) set ANDROID_PREBUILTS to correctly locate ccache

android/config/*/config-host.h
1) Detect HOST_X86_64 and HOST_X86_64/HOST_I386

Misc 64-bit porting clean-up
1) use %zx to print variable of type size_t in hex
2) use %zu to print variable of type size_t in dec
3) Initialize query_parm to NULL
4) use PRIu64 to replace PDUd64
5) use PRId64/PRIu64/PRIX64 to print 64-bit
6) drop PRUx64 because PRIx64 does the same
7) cast pointer arith to intptr_t before casting to int
8) fixed 1ULL<<63

Change-Id: Ife62a20063a6ec38d4a9b23977e840af1fce149a
/external/qemu/vl-android.c
8dd31e8e10fc3ca10192368acf19d2345eeddde7 16-Feb-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Multi-touch emulation support

Change-Id: I311dc55fe10f41637775baa330a7c732ff317f51
/external/qemu/vl-android.c
4a5a0efd49f100c7d53920807c83d9c74304ecd8 22-Feb-2012 Jiang, Yunhong <yunhong.jiang@intel.com> Check HAXM capability in QEMU

Checking HAXM capability to check if emulator can use HAXM virtalization.
Currently two possibility that HAXM not work. Firstly is VT/NX is not enabled
in the system, seconly is HAXM have used up the memory quota. See code comemnts
for the memry quota explaination.

Checking the capability in advance can give user more information that why HAXM
is not working and be more user friendly.

Change-Id: I13f73734cf783398f485fabd19cce43364b571c3
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Gao, Fengqian <fengqian.gao@intel.com>
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
/external/qemu/vl-android.c
a381ef07088ce479610129e37bfef42538f397da 18-Dec-2011 Jun Nakajima <jun.nakajima@intel.com> Changes to existing files to add HAX support

HAX (Hardware-based Accelerated eXecution) employes hardware virtualization
technology to boost performance of the Android emulator on Mac OS X or Windows
hosts.
This changeset includes the changes required to the existing files. To pass
the compilation, hax.h is added, but CONFIG_HAX is disabled so that no
real changes added.

Change-Id: Ifa5777e8788e6698747c1ec4cd91315161c2ca0b
Signed-off-by: Zhang, Xiantao <xiantao.zhang@intel.com>
Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Signed-off-by: Jiang Yunhong <yunhong.jiang@intel.com>
Signed-off-by: Nakajima, Jun <jun.nakajima@intel.com>
/external/qemu/vl-android.c
db450d73092add519efddcd6d55c7a0e7541ec70 12-Jan-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Respect HW configs when loading VM from snapshots.

Changing HW configuration properties may cause emulator / guest system crash on
condition that VM has been loaded from a snapshot. This CL addresses this issue
in the following way:

1. Each time a snapshot is saved, a backup copy of HW config is saved with it.
2. Each time a snapshot is loaded, emulator finds an appropriate HW config
backup, and compares current HW config with the one that was saved in the
backup, and if configs are different, emulator exits with an appropriate
error.

Change-Id: I730bec0afbe166e88189fdcc4804b76e109e4422
/external/qemu/vl-android.c
fa0c8e25403290b545bb98735b1ece275c524361 04-Oct-2011 Xavier Ducrohet <xav@android.com> New AVD property to control presence of hw main keys.

This allows injecting a new runtime property into the system
running on the emulator to control whether to display the new
software back/home keys.

Change-Id: I2bf7cc5c291752090187463332219638e883d052
/external/qemu/vl-android.c
33f89d05b375f18596fa5892acaaae356fbb0c0e 28-Sep-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Fix CPU architecture reported in HW config

Change-Id: I9221916514a39435d2710fa9dada92a87bdc4dab
/external/qemu/vl-android.c
b8dcaffaf7dcb0c795d2776abf3bb75196f8527c 17-Sep-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Add -webcam commandline option to control webcam emulation

-webcam name=<name>[,dir=<direction>] options controls web cameras to use for emulation.

Change-Id: I961fd399c7e041541adda040dd24f194cc383cb9
/external/qemu/vl-android.c
ae0d8136ce0d3c39ca80c64763e633b86b0c5453 13-Sep-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Add cmdline param to control fake camera emulation

- Enable / Disable fake camera
- Set fake camera facing direction: back, or front

Change-Id: Iab741a694daf2bf752e91e23df566a83ac7a97e7
/external/qemu/vl-android.c
c646f5e40ddda3d49b581ac0c78cf748b5dee74c 04-Sep-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Camera service skeleton

Skeleton that implements camera emulation service over QEMU pipe. More meat
will be added as the guest camera emulation develops.

This is a patch taken from approved AOSP commit that didn't go through
because of a merge conflict.

Change-Id: I6f0a2e42be4f5f0bd86d3dbf0c2a609e74b200c2
/external/qemu/vl-android.c
cb88e79ecbd16dea5f2201fd12320db5945db83e 26-Aug-2011 David 'Digit' Turner <digit@android.com> Add hw.gpu.enabled hardware property

This patch adds a new hardware property to enable GPU emulation
(named hw.gpu.enabled). It is currently disabled by default.

It also modifies the UI code to display the GL output properly
inside the UI window. And sets the kernel parameter qemu.gles
to either 0 or 1 to indicate to the guest system's GLES libraries
whether to use GPU emulation or fallback to the software renderer.

A future patch will also add auto-detection of desktop GL capabilities.
For example, if the emulator is started on a headless server without
an X11/GL display, hw.gpu.enabled will be forced to 'no', forcing the
guest to use the software renderer.

Another patch will allow to change the property from the command-line
for debugging purpose.

NOTE: If you want to test GPU emulation, change the default value of
the property in android/avd/hardware-properties.ini from 'no'
to 'yes'. You will need to run a ToT master AOSP tree with
the following pending patches applied:

https://review.source.android.com/25797
https://review.source.android.com/25154
https://review.source.android.com/25759

Change-Id: I1fa3512be24395244fd5068f2bf59ad54db5c7d5
/external/qemu/vl-android.c
f816a75ca5b357563a4ecf996e95b24ffabd0b54 23-Jun-2011 David 'Digit' Turner <digit@android.com> Fix -audio <name> and -no-audio processing.

Turns out that the string passed to putenv() must not be modified :-/

We provide our own win32 implementation for emulator-ui that doesn't
embed the os-win32.c QEMU-specific file.

Change-Id: I7260fbc37d23a5340dab589dfde577ef5eb10005
/external/qemu/vl-android.c
406a59bd0a2e7a38cd840a5c08602e3a36bd2df8 12-May-2011 David 'Digit' Turner <digit@android.com> trace.h: rename to trace-android.h

This is done to allow for future integration of the
upstream auto-generated "trace.h" header file.

Change-Id: I9d1bba3320d9e8acfd7359540d3ed6695773061e
/external/qemu/vl-android.c
280afa072a7b829e581d884c2b3276530a6014b7 11-May-2011 David 'Digit' Turner <digit@android.com> ramblocks: integrate upstream implementation (sophisticated)

Change-Id: I49e96e2d5ae571849b0b6fef0a30b41ecdee8d23
/external/qemu/vl-android.c
ae3098a3bce898cf958a6c3334f3d62282b12d2a 11-May-2011 David 'Digit' Turner <digit@android.com> vl-android.c: move arch-specific functions to arch_init.c

Change-Id: I4908006f3492aab199466c501dedff2bd835d647
/external/qemu/vl-android.c
23ca2ae2bf303236eb6b1e0beb126ec05c6c23bf 01-Jun-2011 David 'Digit' Turner <digit@android.com> vl-android.c: move cpu functions to cpus.c

Change-Id: Ib422f24224c2e75dd126689c67dbbb187d7c1670
/external/qemu/vl-android.c
c1ac40a3f493bebe160a441faf36cc9b28b9f205 01-Jun-2011 David 'Digit' Turner <digit@android.com> vl-android.c: use os-specific setup routines

Also fixes a bug in os-posix.c

Change-Id: If2c6fb94d3e48d1db051aa9141dc2f69bdca35a8
/external/qemu/vl-android.c
8354d2d35fe4463816dcc52a96fa354940fdd38f 11-May-2011 David 'Digit' Turner <digit@android.com> vl-android.c: Move code to iohandler.c

Change-Id: I28d2025dfa1f7bfc1ab2318f5ff6c0fd56f4b658
/external/qemu/vl-android.c
8ee4e5ed2bf68384cd80ec5b958da4da164652ae 09-May-2011 David 'Digit' Turner <digit@android.com> trace: simplify code and avoid conflicts

Change-Id: I8f93e06038bd6e35a2972e3fef351046c247e4ee
/external/qemu/vl-android.c
5973c775c853e26f684de58ad28c267281aaffd6 10-May-2011 David 'Digit' Turner <digit@android.com> qemu-timer.c: rename qemu_timer_new_scale()

Get rid of qemu_timer_new() implementation, and update all
callers to use qemu_timer_new_ms() or qemu_timer_new_ns()
instead.

Rename qemu_new_timer_scale() to qemu_new_timer() to follow
upstream conventions.

Change-Id: Id2c04f8597ec5026e02f87b3e2c5507920eb688e
/external/qemu/vl-android.c
317c9d54284844615b33a25834a63248bf1bfa73 10-May-2011 David 'Digit' Turner <digit@android.com> qemu-timer.c: upstream integrate

Change-Id: I6856ded73b4dcd10fe4831697c8518f958aeffbb
/external/qemu/vl-android.c
088edf82b3d34409ed9d9fd09ec1f7e9b933304f 09-May-2011 David 'Digit' Turner <digit@android.com> os-posix.c + os-win32.c and dependencies

+ Generate qemu-options.def instead of qemu-options.h

Change-Id: I043e6b0c1c58e5cc2e96d05465f39b42f9054b5a
/external/qemu/vl-android.c
795bb19daea966401df15bbf23c57b98848eec23 09-May-2011 David 'Digit' Turner <digit@android.com> qemu-common.h: other intergrates

Change-Id: Iaf5221814247d7686ec3d57abeab097b09c6a5dd
/external/qemu/vl-android.c
24d2752ad601b4ab48d72b52f602e129dd4761d7 01-Jun-2011 David 'Digit' Turner <digit@android.com> vl-android.c: Fix PC Bios search order.

This fixes the algorithm used to search the PC Bios files.
Moreover, this makes standalone builds under external/qemu
just work by looking under prebuilt/common/pc-bios

Change-Id: I4619565d57dc5a5b75333f6459f5bfc32b81e918
/external/qemu/vl-android.c
36597756e589622ee6c6628efb47c1b130d5ee85 20-May-2011 David 'Digit' Turner <digit@android.com> x86: kvm: fix KVM build + enable auto-detection.

This patch fixes the build of KVM support in the x86 emulator by
copying official Ubuntu Lucid KVM headers into android/config/linux-*/

This removes the need to rely on the build machine's versions of these
headers, which caused various issues.

Also, by default, the emulator will now probe the system to see if it
can start in KVM mode automatically. See android-kvm.c for details.
You can see the result of the probing with the -verbose option.

IMPORTANT NOTE:
It looks like there is a bug in the KVM code when the emulator
is built as a 32-bit binary, running on a 64-bit kernel, so
we explicitely disable KVM when we detect this case. It's hard
to tell whether this is a bug in QEMU or some versions of the
KVM driver.

As such, KVM only works when building the emulator as a
64-bit program. For now, this is only possible with
"android-configure.sh --try-64", not the Android build system.

+ Add a new QEMU option (-disable-kvm) to explicitely disable KVM
if needed. This is an addition to -enable-kvm which already exists
(and forces usage of KVM).

Change-Id: I6a397cae29ab62b1c56fce95c1ee75a4664d6688
/external/qemu/vl-android.c
cc3b2199549c45cdabfdeb3afdb81b0895f5ceef 21-May-2011 David 'Digit' Turner <digit@android.com> fix audio backend handling

This patch fixes a small bug where the audio backend given with
the -audio <name> option was ignored. The bug was introduced during
a previous integration of upstream audio changes.

The old code always used the same default backend (PulseAudio).

Change-Id: I7bc68df3fd3025f8a8bd1f0fd868872b7eee2017
/external/qemu/vl-android.c
f0cee2e578098010b6957c8cbfc2324df42fb0d9 14-May-2011 David 'Digit' Turner <digit@android.com> Fix the pc-bios search path for build trees.

This patch fixes the routine that looks for the x86 BIOS
file(s) when running from the build tree (i.e. typing
'emulator' just after building the full_x86-eng product).

Turns out that the files are installed under
out/host/<system>/usr/share/pc-bios by our build scripts.

Change-Id: I51ae849d5cdf130558d05f2386c4175dfea1e054
/external/qemu/vl-android.c
8fc3e6effd925b9ebe39268c6ccbf9e8730ef3d4 09-May-2011 David 'Digit' Turner <digit@android.com> Fix SDCard speed issues too.

It looks like we also need to set the 'cache' property to 'unsafe'
when initializing the SDCard block device. Otherwise it will be
mounted as O_DIRECT, making all i/o operations on the SD Card
extremely slow.

Change-Id: Id1a72f926c73dc6981a568f005f19cfc50f724d5
/external/qemu/vl-android.c
9fb360ec4c47d750711c8f1776c180e3802b0aab 04-May-2011 David 'Digit' Turner <digit@google.com> Correct fix for snapshot saving speed

QEMU is a weird animal. The "snapshot" property speeds-up snapshot
saving but also redirect all stores to a temporary file which is
deleted when the emulator exit.

Use a different property to get the desired speed-up. Note that
using "writeback" instead of "unsafe" forces the use of fdatasync()
which will still be horribly slow.

+ Argument checking in avd snapshot commands in the console.
(trying to load a name-less snapshot actually crashes the emulator).

Change-Id: Ie61f110f037bbb3539c7f9892cb03bee8bfec6bd
/external/qemu/vl-android.c
4297b82edb9d528928fb168cb14abd4955f8664b 04-May-2011 David 'Digit' Turner <digit@google.com> Fix snapshot save pathetic speed.

It turns out that the 'snapshot' property must be turned on on
the block device corresponding to the snapshot storage file.

Otherwise, the file is mounted O_DIRECT, which on my speedy machine
limits the operation to a max of about 2.5 MB/s. This explains why
saving snapshots was so pathetic.

With this change, the save throughput is up to 278 MB/s on the same
machine!

Change-Id: I77c792114171a4ecaf3e3f08f64d8b3a30709f23
/external/qemu/vl-android.c
c0ac73377011befa8a3e6444d61a80cd6ada2659 02-May-2011 David 'Digit' Turner <digit@android.com> Document new QEMU pipe implementation.

+ Rename android/pipe-net.c to android/hw-pipe-net.c

Change-Id: Ia2e2466c3bf3ea812f36639420fad7ce2e0cb61d
/external/qemu/vl-android.c
2d238fd9871687b1557f15b8878a6cf3e9634b57 25-Mar-2011 David 'Digit' Turner <digit@android.com> Add 'emulator' launcher program.

This patch renames the current ARM-specific emulator binary to 'emulator-arm'
and introduces a new tiny (less than 20KB) 'emulator' launcher program.

The role of 'emulator' is to launch either 'emulator-arm' or 'emulator-x86'
based on the target AVD or platform build being used.

This program will be replaced in the future by what is currently known
as 'emulator-ui', but is a good placeholder until this work is completed.

+ Move some utility functions from android/avd/info.[hc] to
android/avd/util.[hc] so that 'emulator' can use them directly.

IMPORTANT: For platform builds, the target architecture is detected
automatically by parsing the build.prop file.

For SDK AVDs however, there is no easy way to determine the
target architecture, so the patch adds a new hw.cpu.arch
property which can have value 'arm' or 'x86'

Change-Id: I0084c196695a75c8b9230ba716b3cd2e12610ded
/external/qemu/vl-android.c
d4d688e926097faba7fd3717d1c0d3f296bdb526 26-Apr-2011 David 'Digit' Turner <digit@android.com> New goldfish_pipe virtual device.

This adds a new virtual hardware device named "goldfish_pipe"
used to implement a very fast communication channel between the
guest system and the emulator.

IMPORTANT: This depends on a special kernel driver, see:

https://review.source.android.com/#change,22496

Usage from the guest is simply the following:

fd = open("/dev/qemu_pipe", O_RDWR);
const char* pipename = "pipe:<name>";
ret = write(fd, pipename, strlen(pipename)+1);
if (ret < 0) {
/* could not connect to service named <name> */
}
/* now you can read()/write()/close() as a normal
* file descriptor to exchange data with the service.
*/

In addition, this implements the following pipe services in the
emulator:

tcp:<port>
tcp:<hostname>:<port>
unix:<path>
opengles

The 'tcp:' and 'unix:' services simply redirect to a TCP or Unix
socket on the host with minimal

The 'opengles' service simply connects to tcp:locahost:22468 for now.
We may change this to be more configurable in the future, but that's
the port number used by the current experimental OpenGL ES hardware
emulation host libraries / programs.

Benchmarking with a simple ping-pong program shows that the
guest <-> emulator can achieve a roundtrip bandwidth of 192 MB/s
(on a 2.7 Ghz Xeon PC).

Using the tcp: service to talk to a ping-pong server listening
on localhost reaches 102 MB/s on the same machine, using a Unix
socket reaches 140 MB/s.

By contrast, using standard sockets in the guest reaches only
3.8 MB/s on the same machine (and requires special privileges
from the application anyway).
/external/qemu/vl-android.c
ca9505992288636908169d0389087b3ca5277d07 27-Apr-2011 David 'Digit' Turner <digit@android.com> Fix -qemu -vnc startup.

Starting the emulator with something like "-qemu -vnc :1"
didn't result in a valid boot sequence, due to the way our
"hw-control" service is initialized.

This patch fixes the issue. Note however that since a VNC client
cannot send proper touch events, it can only be used as a viewer
at the moment.

Change-Id: Ib9b60ff7028892368547bff89b84f580344c2edd
/external/qemu/vl-android.c
5b48149747c214e9951fd8ce0926c45d6926fc3d 11-Apr-2011 David 'Digit' Turner <digit@android.com> vl-android.c: Init opengles pipe on startup

Change-Id: I14c03c193166c214ce406a3dc524b8dfa16fa733
/external/qemu/vl-android.c
b64325d15d9e767c652491414c95f4fc148b0211 22-Mar-2011 David 'Digit' Turner <digit@android.com> Set hw.keyboard.lid default value to false for API level >= 12

This patch modifies the emulator to extract the target API level for
the AVD or the current platform release, and use it to set the
default value of hw.keyboard.lid.

This will *not* affect any existing AVD/platform that sets the value
explicitely in its config.ini (for AVDs) or hardware.ini (for platform
builds).

The change is beneficial for platform builds targetting API level >= 12,
because the input framework changed its the window orientation behaviour
depending on the availability of a hardware lid.

In short, this allows platform builds to be correctly oriented, even
if they don't provide a custom hardware.ini.

Fix for bug 4128604

Change-Id: I195135aae6f3c4cc11d2f01e1293f3cd6cad2f58
/external/qemu/vl-android.c
e8ab08c1ee27349cb81cd5e8849a01a85da16775 15-Mar-2011 David 'Digit' Turner <digit@android.com> Fix a crash that happened when the content directory didn't have a cache.img file.

This only happened for fresh newly-created AVDs. Existing ones used for testing
the emulator already had a cache.img and booted properly.

Change-Id: I87901ea5fb1dc6aa7d2bb3dd191de58d972c386f
/external/qemu/vl-android.c
62c7ae56be1ada62e89221352a0fa3e412929ffa 08-Mar-2011 David 'Digit' Turner <digit@android.com> Always prepend a space before kernel parameters.

It has been reported that in certain cases, qemud would think that
the serial device is /dev/ttyS1android.checkjni=1.

Change-Id: I977456ef23fb708b284cfe026da07ecce8d03bf1
/external/qemu/vl-android.c
1321c76d96910c2c807207f3fdfeb560c598ca60 05-Mar-2011 Jun Nakajima <jnakajim@gmail.com> x86: Enable KVM mode for Android x86 emulator (update/rebase)

This patch enables KVM mode on x86 Linux to boost performance of x86 emulaiton
if the hardware-based virtualization feature is present on the host machine.

Change-Id: I4b24474b3ec115a3b9a7bf017801f4f610253b09
Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
/external/qemu/vl-android.c
02c6385fd50f926d0f0801dfe60480cd90d8df81 24-Feb-2011 Bruce Beare <brucex.j.beare@intel.com> look for the pc-bios files in the SDK tools/lib/pc-bios directory

Change-Id: I6d546f79617032dea0d72d8d38dab3016e6bd4a0
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
/external/qemu/vl-android.c
d952f28e527175cc3df9ebd91e739e34df2194c9 02-Mar-2011 rich cannings <richc@google.com> qemu logging extensions

(1) Clear the logs upon receiving a SIGUSR1 signal
(2) Add logging timestamps for network connections
(3) Extended TCP redirect logs to include local src
ip/port and fixed byte-ordering in log files

Change-Id: I51e7293c8eeb5979a92e67f52f1c6416400d83c6
/external/qemu/vl-android.c
53eb66db4eba72d2e4fc951456be725e14243f25 01-Mar-2011 David 'Digit' Turner <digit@android.com> Move AVD name initialization to the core.

Use a hardware property to send the AVD name to the core.
The -android-avdname core option is still supported though.

Change-Id: I4daac5c9fb65ed5261b5c04c1e1a18daed057a3f
/external/qemu/vl-android.c
062dd6a8b90c7c553a6a7257e9c245276b1dd969 01-Mar-2011 David 'Digit' Turner <digit@android.com> Move some serial ports initialization to the core.

This moves the initialization of the ports used by qemud
and the "kmsg" component to the core.

+ Gets rid of the -old-system option used to suppot pre-1.4
Android system. We don't officially support anything before 1.5
anyway.

Change-Id: Ied7e284d952adfd3419d96c39a7c48761f1b3f5c
/external/qemu/vl-android.c
fd59c330bec77e7b9241e478efb1e1c508480d1d 01-Mar-2011 David 'Digit' Turner <digit@android.com> Move data partition initialization to core.

Change-Id: I3c2b4668593391026da028194503fc87246e44ba
/external/qemu/vl-android.c
40841b2d221273a08abfe20824e7631211ade31d 01-Mar-2011 David 'Digit' Turner <digit@android.com> Move system image initialization to core.

Change-Id: Ic8da3ccaed9bab7dbb44c0bb341b0dba20b90980
/external/qemu/vl-android.c
5f64b873605baa5519211b0d47a53c93df9d4868 28-Feb-2011 David 'Digit' Turner <digit@android.com> Move snapshot storage initialization to the core.

Change-Id: I2c2b782fe4711cc8c323433e7976222b878cf679
/external/qemu/vl-android.c
48a3c66361158678f476fc7c2eca2bef025eae62 01-Mar-2011 David 'Digit' Turner <digit@android.com> Move the SD Card initialization to the core.

Change-Id: I2c8fa2a7df3d79ed4222296a93b787994a8ee11d
/external/qemu/vl-android.c
c480cca8d2007f5df62a7431beda310911b963e6 25-Feb-2011 David 'Digit' Turner <digit@android.com> Move cache partition initialization to core.

Change-Id: I1f887e6f8fc38e43b1fff3f7bab3814b52542762
/external/qemu/vl-android.c
0b0194940523fa3f318c380d0693907bd522241c 01-Mar-2011 David 'Digit' Turner <digit@android.com> Move kernel/ramdisk initialization to the core.

The QEMU -kernel, -initrd and -append options are still supported for
overriding the hardware configuration.

Change-Id: I034d9e25d0a23341086aa052f449db5de50b2c8d
/external/qemu/vl-android.c
5f82411f73a9913588d8cef751db870b4239a6a4 01-Mar-2011 David 'Digit' Turner <digit@android.com> Simplify kernel parameters processing.

This change simplifies the code that deals with kernel parameters
in the core by using a stralloc_t (dynamic strings).

Change-Id: I73cf2d1461a3cb1aa4511d74fd34249f0f8b58a2
/external/qemu/vl-android.c
e5af8a259e619973538f393011b1c26a3e2f4afb 24-Feb-2011 David 'Digit' Turner <digit@android.com> Remove CONFIG_ANDROID_SNAPSHOTS macro.

The feature is no longer optional.

Change-Id: I4558f12e3804e42069e8a3e6bcf0837d350206ed
/external/qemu/vl-android.c
bdb6f2dd35a4c749186e665d55d7b76375d7e71d 23-Feb-2011 David 'Digit' Turner <digit@android.com> Remove android/main-ui.c

The differences between android/main.c and android/main-ui.c are now
minimal, so remove the latter source file by moving the corresponding
code into android/main-common.c

Also add a -snapshot-no-time-update core option to implement the
emulator-ui -no-snapshot-update-time option. We're probably going to
clean this up a little in the future, but this is enough for now.

Change-Id: I868bb4e47c3d106ae7436ee3f5b2c0ff5fb6ea5c
/external/qemu/vl-android.c
7339b55944e97077e4f74c4be34cd956ae44198b 16-Feb-2011 rich cannings <richc@google.com> Add user mode networking restrictions: a firewall

Command line options added and code is supported for:

QEMU_OPTION_drop_udp
QEMU_OPTION_drop_tcp
QEMU_OPTION_allow_tcp
QEMU_OPTION_drop_log
QEMU_OPTION_net_forward
QEMU_OPTION_max_dns_conns
QEMU_OPTION_allow_udp
QEMU_OPTION_dns_log

Also, this change makes the default max DNS connections unlimited.

Change-Id: I887213149956dda155ef514418365bd80d8f1236
/external/qemu/vl-android.c
5377c5bfde6ba62490417bb0a7d7c1be1151692e 10-Feb-2011 David 'Digit' Turner <digit@android.com> Correct auto-detection of default VM heap size.

This patch removes the need for the -m <memory> core option.
Instead, the RAM size is taken by default from qemu-hardware.ini.

Also, the default value of vm.heapSize is no longer 16MB, it is
now adjusted based on the RAM size (16/32/48 values)

+ Get rid of core -lcd-density option (use .ini file instead)

Change-Id: I93919926b61a132c7943a1bb2c41f7a3ab7f2d2f
/external/qemu/vl-android.c
2507cab8a78fb609461a2b9cc4708bab60fc53a4 10-Feb-2011 David 'Digit' Turner <digit@android.com> Get rid of -android-gui core option.

Instead, pass all LCD configuration in qemu-hardware.ini.

+ Make the latter file mandatory to launch a core. You can easily
generate one by launching "emulator <options>" though.

Change-Id: I81a1938217562517e4c2bbb828aef934033c29a5
/external/qemu/vl-android.c
334ab475d2f27dbf6fbf836c2d4fb86dbb02a15c 03-Feb-2011 Jun Nakajima <jnakajim@gmail.com> x86: Add x86 support. Rebase the change (20906/1) due to a minor conflict.

Change-Id: Ic73cca0fc6c6e5cf74f63daa6080d00aa7c392bb
Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
/external/qemu/vl-android.c
5758404ffd1be160efa303ff27eef645fc4e2c2d 21-Jan-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Remove unnecessary calls in UI <-> Core protocols.

Core port related calls are no longer needed, since UI is aware of
core's base port on attachment to the core

Change-Id: Ic211fc9b02cb652009360f80917e90c44d941878
/external/qemu/vl-android.c
94702b0dc4a9729b234c6f0265a9e43c72ef79ad 20-Jan-2011 David 'Digit' Turner <digit@android.com> Fix ui/core display depth mismatch.

This patch fixes a problem where the core's framebuffer was
incorrectly initialized to a pitch of width*4 by default
(instead of width*2 when using a 16-bit framebuffer).

The reason for this was complex, but essentially, when the
machine initialization was moved before the display one in
vl-android.c, this changed the way the DisplayState was
initialized.

Also get rid of the useless and confusing "display_state"
global in vl-android.c (not the same than "display_state" in
console.c)

Change-Id: If8e2b8baf7ccaeedcb66da0174cc529521d67a60
/external/qemu/vl-android.c
90c6235ce7bdc6f7afbcfe56ea6f2c3d2b128447 13-Jan-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Refining main-ui.c to better separate UI and core related initialization

The main reason for this is to clarify initialization for UI that starts core,
and UI that attaches to an existing core. In this CL I did:
- Removed -initdata option that seems obsolete (doesn't affect anything in the code)
- Passed through -timezone option that doesn't affect anything in the UI, and is needed
only in the core.
- Removed dependency on AVD info from the core (core needed only virtual device name)

Change-Id: Ie631249848a1b5b8d837c0c7b201a40ee7e4a367
/external/qemu/vl-android.c
cf755ea6f4b850a6afd12ef8308da8def7ba8941 12-Jan-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Hook up framebuffer changes with UI window

Change-Id: Ib2dff72c808614cd6ded096d62717afc1c41e667
/external/qemu/vl-android.c
cb42a1b1461e02efb034582ac5d8f71534723b92 23-Dec-2010 David 'Digit' Turner <digit@android.com> upstream: integrate block changes

This large patch upgrades the block support code to the upstream
version available in ba5e7f82169f32ab8163c707d97c799ca09f8924
dated 2010-08-08

Change-Id: I8b24df0c287e72f6620650a4d6a62e1bb315453e
/external/qemu/vl-android.c
707c8a8975842105dd04d61a416ee175d033b94d 22-Dec-2010 David 'Digit' Turner <digit@android.com> upstream: Move bottom-half handlers to async.c

Change-Id: Ibd4321edb2abe349d32483a60fdb94a282f22240
/external/qemu/vl-android.c
ca29fbbb188a1aab9b69776d5dc6bc3e7f812a0a 02-Jan-2011 David 'Digit' Turner <digit@android.com> Add -audio-test-out option to the core.

This option can be used to quickly check audio output (without
having to boot a full AVD and launch a sound-playing application).

Usage:
emulator <other-options> -qemu -audio-test-out
qemu-android <other-options> -audio-test-out

This simply generates an ugly saw signal, but that's enough for us.

Change-Id: I060300b4000b9705d181c6262de8d4d13c749e69
/external/qemu/vl-android.c
1306e385222558accba9a01fd93858f06dccf77e 02-Jan-2011 David 'Digit' Turner <digit@android.com> Remove obsolete -audio-in and -audio-out options.

Use -audio <backend> to select the audio driver.

Change-Id: I71c837e4c78241711be5f38ef9b03294a69145bd
/external/qemu/vl-android.c
e95660aadc669784406d5f5a867988b8ecc2ed0d 20-Dec-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Resubmit framebuffer service implementation

Change-Id: I184e27a1e8d88835bc9f0502eccfa3f64a7aaf9e
/external/qemu/vl-android.c
72d83df9865cf8f5393a41fc3f6e283ab6aaa81b 14-Dec-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Implement core display deriving it from android display

Core display is a framebuffer client that receives framebuffer updates and dispatches
them to the UI attached to the core.

Change-Id: Iff1e0609cbe66240031e3670934a6796a9ae3b15
/external/qemu/vl-android.c
24204cc964cf7d56b1a20c12ece08eecab1093fa 25-Nov-2010 Tim Baverstock <weasel@google.com> Augment the auto-loadvm behaviour with corresponding auto-savevm-on-exit behaviour.

Autosave fires when loadvm would have been tried - whether it succeeded or not - in
order to bootstrap from an empty snapshot file.

- New autosave behaviour inhibited with -no_snapshot_save flag.
- Underlying behaviour implemented with a new qemu option -savevm_on_exit

Change-Id: If64d89f004565ecbb431bc7e96ecc37e27876d67
/external/qemu/vl-android.c
dc46820125f5eaa0191193f5b71afba5f4915607 27-Oct-2010 David 'Digit' Turner <digit@android.com> Allow OS X emulator to open host /dev/ devices.

Only Win32 does not allow this, so simplify the tests in the source code
+ Remove compiler warning

Change-Id: I100dd59e4477edcd24dd94becfa3e3b83a2b92ab
/external/qemu/vl-android.c
6b512811e01d7c81348bfa9c29c21f788ccc0a8e 15-Oct-2010 David 'Digit' Turner <digit@android.com> Fix windows event loop handling.

This change fixes the windows emulator binary which got stuck
due to changes in the timer implementation that occured during
the last upstream integration.

Change-Id: I090ce4ac9c09b3b95e0df95513446922120b2d9a
/external/qemu/vl-android.c
871da2aa80687142bec00ef7c1112253c76c32bb 20-Sep-2010 Ot ten Thije <ottenthije@google.com> Added state snapshot support for QemuD.

With this patch, both modem and sensor functionality are correctly
restored when a state snapshot is loaded. This was not the case
previously because communication with either of these services is
done using the qemud daemon, which did not support snapshots.

The boot-properties and charpipe services have no specific save/load
functionality yet, since the framework itself should be reviewed
first. Adding support for bootproperties should not be difficult
though, and charpipe may not need it.

For a description of the high-level process for saving and loading,
consult section IV "State snapshots" in docs/ANDROID-QEMUD.TXT.

Change-Id: I5b06d88b911ca096e78060163174904c48a01c66
/external/qemu/vl-android.c
7746af04f1c7a44253ce49cf7cf1914757faaafe 07-Oct-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Make core initialization replying to the UI at the end of initialization.

Also, this CL contains a minor fix to formatting boot options passed to the kernel

Change-Id: I267172d82094a0cbbbced2cee7a2990bb7fa3793
/external/qemu/vl-android.c
4e024bb4f5c8aa8b07459f7fbd65c35122127fd1 22-Sep-2010 David 'Digit' Turner <digit@android.com> Remove compiler warnings when building the emulator.

This forces -Wall during the build. Note that this patch doesn't
remove all warnings, but most of the remaining ones are from upstream anyway.

Change-Id: I8808d8495e99866e156ce5780d2e3c305eab491f
/external/qemu/vl-android.c
c34e8dccc303243ff996aadcf3d7e407bb74e536 13-Sep-2010 David 'Digit' Turner <digit@android.com> Fix build and remove compiler warnings in vl-android.c

Change-Id: Ic8b1b067c8716a12a0d3b24c422865920b95c82a
/external/qemu/vl-android.c
f52506f4827dfa6da47730c4756a984b05db6dda 10-Sep-2010 David Turner <digit@android.com> upstream: console changes.
/external/qemu/vl-android.c
025c32ffcd9f682cd761a836fe8798738d1648f2 10-Sep-2010 David Turner <digit@android.com> upstream: console changes.
/external/qemu/vl-android.c
4143d8f4c302878923bde0cb2420f4ca27245bcd 10-Sep-2010 David Turner <digit@android.com> upstream: rename IOCanRWHandler into IOCanReadHandler
/external/qemu/vl-android.c
d06599430ac907d1a89bbfda4bf3621f909aac8e 10-Sep-2010 David Turner <digit@android.com> upstream: qemu-common.h updates.
/external/qemu/vl-android.c
6a9ef1773bf874dea493ff3861782a1e577b67dd 09-Sep-2010 David Turner <digit@android.com> upstream: move timer management code to qemu-timer.c
/external/qemu/vl-android.c
b25bf2a7477595aa54181874921086d4c0071c03 08-Sep-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Passed boot properties from main to core as -boot-property parameters.

Change-Id: I56955fb13a073b15ee2a41fdfbd6845bfe65edc5
/external/qemu/vl-android.c
a7f114bcbd85d71f59f716df5a38340bdfe30637 06-Sep-2010 Ot ten Thije <ottenthije@google.com> Fix suspending and resuming timers.

This brings the code for saving and restoring the vm clock up to
date with the current codebase. It also includes a workaround for an
issue that occurred when the state of a goldfish timer was restored.
For unexplained reasons, the compiler generated code to copy the
least significant 32 bits only when reading a 64 bit number,
dropping the remaining 32 bits.

In order to facilitate debugging, the variables in the goldfish
timer code have been suffixed with their units ("ns" for nanoseconds
or "tks" for ticks).
/external/qemu/vl-android.c
318f17a0050e729bce8545463b657c1d62835b5e 27-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Fixed dependency ob core data in android/help.c

Also moved along -tcpdump option

Change-Id: I9fc53e0dc6a86e9a880d6127bf2da3ac1d7ec58a
/external/qemu/vl-android.c
e13168648d5947955e0fd4fbf396f891ae53921f 26-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Moved nand and netspeed initialization from main to core.

Change-Id: Ide3914fa52f62f618d39ac20f02bce8185a6805a
/external/qemu/vl-android.c
13f3b6c53817255217f40db289abace42c3c31a6 25-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Cleaned up build script from rebuilding locally generated sources

Also passed along -show-kernel option to the emulator core

Change-Id: Ic606a7a9cdac677cbd5ce9ca1a9f1a2b16da4dfa
/external/qemu/vl-android.c
b2438402d16ee4a0bb4b077d0ad0ef1d82b2a08c 24-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Moved radio, gps and audio setup entirely into the core

Change-Id: I9d76bb3cd892b7b2b0713a27ff5477195c93ff36
/external/qemu/vl-android.c
7fbf49776a98847a5f95325646f7eb5ff787423f 12-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Cleanup stuff for the UI build

1. Move DNS server registration entirely to the core.
2. Move -memcheck option initialization entirely to the core.
3. Move qemu_help routine (used by both, Core and UI) to common qemu-help.c file.

Change-Id: I5e47e94bdc375f0e037ccc6bd88daeb5fa06d1cf
/external/qemu/vl-android.c
b5365f32d7b1dcc6c3e9be7584ce8d4f68b3e7e1 09-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Move memchecker initialization from main.c to vl-android.c (core)

Also move qemu-malloc.c to common CORE and UI sources

Change-Id: Ifd62ae247cc03700d85b5fc35072d73ac37cc570
/external/qemu/vl-android.c
074d1f955a15c19214cee92c627c8c4697e98cd3 06-Aug-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Added -android-hw option

Change-Id: I8dac387cd43c5eff7e9b6adf0d718261d0ab8d81
/external/qemu/vl-android.c
dd50f7d7d919dfa2a2cebd383635ba74c10e3777 30-Jul-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Added -android-gui command line option to qemu-android

Change-Id: I9fd9170f2b2e3ad7d80071888f7da2ead54c21cf
/external/qemu/vl-android.c
43552dc4fa64aad0c9fdb8f4c92ae7ac79406596 22-Jul-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Remove UI dependency from goldfish_event_device.c

Change-Id: Iea5edfbae0caff45161c814d631d35d2e6d61d1c
/external/qemu/vl-android.c
eb8382507c6b802f378cf940fae4775633c1d84e 15-Jul-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Move net-related routines from main.c to net-android.c

Change-Id: If102220e6db913f4a51bb1809ce60f4bf24bdd6a
/external/qemu/vl-android.c
7258f6b1539906849d02fa9f5e75360b0d01f48c 14-Jul-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Finished shuffling files.

Change-Id: Ifb0a1458fa9aa5c5143e876242e03e1eee2044b9
/external/qemu/vl-android.c
d81e6d1ce722d7e561d495bbd4b137e728e25b83 16-Jun-2010 Vladimir Chtchetkine <vchtchetkine@google.com> Pass core-specific options to emulator core as cmd-line options.

Change-Id: I7ed897ca92c1344505f982897e2f59cc68c42d89
/external/qemu/vl-android.c
34f2974ce7ec7c71beb47b5daf9089d5c8c40c79 26-May-2010 David 'Digit' Turner <digit@android.com> Add small user-event abstraction interface.

Preparation for future UI frontend/backend separation.

This is done to ensure that the code under android/skin/ does not depend
on any QEMU-specific header. We achieve this by adding a new abstract header
"user-events.h" and one QEMU-specific implementations for the functions
defined here.

This also modifies console.h and vl-android.c to make them closer to
upstream (by removing Android-specific changes).

+ fix Makefile.android to always build SDL from sources in standalone mode.

Change-Id: I0d152741e7bb2c9cd283f5c35bd054385c7c1eb3
/external/qemu/vl-android.c
a7fb77d6eca56e61e94f62e7deb4120b60b1e919 11-May-2010 David 'Digit' Turner <digit@android.com> Upstream: integrate timer/clock management changes.

Change-Id: I24acbdebe58d207352548f54dda1abf5be01e7d4
/external/qemu/vl-android.c
2910f183ddd5286911bc1e3499ea93cb57de8b75 11-May-2010 David 'Digit' Turner <digit@android.com> Upstream: Misc integration - includes qobject.h and related sources

Change-Id: Idfa93ab5c67c95a3bc1869eeaf3a84a75fe24cd6
/external/qemu/vl-android.c
3266b5118e1d9ac13ea87bc24f37b50d22a2b81f 11-May-2010 David 'Digit' Turner <digit@android.com> Upstream: Move ioport code to ioport.[hc]

Change-Id: I41aa30fff127338665a6a32fa66dcd43dd3bfe8b
/external/qemu/vl-android.c
a5d412078b8e7478d81df03710eacc7a21096ba2 11-May-2010 David 'Digit' Turner <digit@android.com> Upstream: Replace sys-queue.h with qemu-queue.h

Change-Id: I5c51f54a7fe2ea702420429bbf0c789ed6d8c534
/external/qemu/vl-android.c
20894ae3fa98f82da925fbeb72e616eef509758a 11-May-2010 David 'Digit' Turner <digit@android.com> Upstream: HOST_WORDS_ALIGNED -> WORDS_ALIGNED

Change-Id: Ica9022695d83fb48a8c25fdb1e1f0dc1c63747ff
/external/qemu/vl-android.c
2c538c86c15d597cc875dc926e4e39285c5625df 11-May-2010 David 'Digit' Turner <digit@android.com> Upstream: Use CONFIG_BSD instead of _BSD and HOST_BSD

Also fix OS X build, which failed with a link error.
Change-Id: Idd63f25dc1f46ea66da5727c7577def34f048c3c
/external/qemu/vl-android.c
92568958dd42bf35667cc6451b5edd7f7d1f73a1 16-Apr-2010 David 'Digit' Turner <digit@google.com> Revert previous patch to fix SD Card emulation

The previous patch modifies SD Card hardware emulation in a way that is
not backwards compatible with previous SDK platform releases. This has
the unfortunate effect of making SD Card emulation not work properly
when running existing AVDs.

Reverting the patch until we get a better one.

Change-Id: I82dac87709d88aa3bd292bf2ed0008ae74d95853
/external/qemu/vl-android.c
7ab6d35b98bc279a5fcd36965433a51a3c9aecd9 07-Dec-2009 San Mehat <san@google.com> qemu: android: Add support for hot-adding disks as well as swapping image files

Signed-off-by: San Mehat <san@google.com>
/external/qemu/vl-android.c
a577fcadc0b365ee629aec313f57a65d54fe5d89 16-Oct-2009 David 'Digit' Turner <digit@google.com> Fix the -trace emulator option.

A critical test in the execution loop was missed in the latest huge integration.
Also optimize slightly the basic-block start recording helper interface.
/external/qemu/vl-android.c
5d8f37ad78fc66901af50c762029a501561f3b23 14-Sep-2009 David 'Digit' Turner <digit@google.com> Merge upstream QEMU 10.0.50 into the Android source tree.

This change integrates many changes from the upstream QEMU sources.
Its main purpose is to enable correct ARMv6 and ARMv7 support to the
Android emulator. Due to the nature of the upstream code base, this
unfortunately also required changes to many other parts of the source.

Note that to ensure easier integrations in the future, some source files
and directories that have heavy Android-specific customization have been
renamed with an -android suffix. The original files are still there for
easier integration tracking, but *never* compiled. For example:

net.c net-android.c
qemu-char.c qemu-char-android.c
slirp/ slirp-android/
etc...

Tested on linux-x86, darwin-x86 and windows host machines.
/external/qemu/vl-android.c