History log of /external/qemu/Makefile.common
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d174434fbf6fbfce54f7eabaa54b8296f55527b8 11-Jul-2014 David 'Digit' Turner <digit@google.com> android-constants.c: Move constants to single file.

This patch refactors the sources slightly to reduce dependency
drag between various functions and constant definitions. This
is general cleanup work for future patches.

Change-Id: I5fc0f53f5c933bc89ddf1a43d67a309d03a03c2d
/external/qemu/Makefile.common
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/Makefile.common
c8e89b5a1998ce74a4863989f0cde2e8925bed06 23-Jun-2014 David 'Digit' Turner <digit@google.com> android/filesystems/fstab_parser.h: New file.

This patch adds a tiny parser for Linux fstab files in order
to extract the format of a given partition. This will be used
in the future to extract from ramdisk.img the exact partition
format of each partitionm image, instead of trying to guess it
from API levels.

Change-Id: Ia9d986d1487ea092e05af567fd4abb42b58cc1f6
/external/qemu/Makefile.common
716e5e10b4f8c30c4195411e868aa8745d24f59c 21-Jun-2014 David 'Digit' Turner <digit@google.com> android/filesystems/ramdisk_extractor.h: new file.

This patch introduces a new function that can be used to
extract single data file content from an Android ramdisk.img
image.

This will be used to extract fstab.goldfish in a future patch
to reliably determine the format of each partition image before
the emulator is run.

Change-Id: I4e8178ce1cedf0e93b852c632003d089bcd41701
/external/qemu/Makefile.common
83942739a98f55db1e83ad39ddee6d294ad329f2 17-Jun-2014 David 'Digit' Turner <digit@google.com> android/filesystems/partition_types.h: new header

This patch introduces a new header to handle several types of
partition images through a simple common interface. This will be
used in a future patch to rework the way these images are setup
in vl-android.c

+ Move test support stuff to android/filesystems/testing/
+ Add unit tests.

Change-Id: Icc1c32258e37731283079adf0e5407fa2e48f661
/external/qemu/Makefile.common
dddfa6426c2a3385aea685a200a7a4df1932b207 12-Jun-2014 David 'Digit' Turner <digit@google.com> Add android_createEmptyExt4Image()

This patch adds a new function to the emulator to create an
empty EXT4 partition image of a given size in bytes.

+ Basic unit test.

Change-Id: I5b709c5697fe4a57be76b4344413aff3447b616a
/external/qemu/Makefile.common
6ddf87363d66cf12e3f7cd28f4f3b098e2f1078f 12-Jun-2014 David 'Digit' Turner <digit@google.com> distrib/zlib-1.2.8: Build as static libraries.

This small patches adds specific static library module
declarations for our zlib sources. This will be used later
as dependencies for the test programs of additional third-party
libraries like libsparse.

Change-Id: I45164dc067ea165aa78d091fbae8572297a386d8
/external/qemu/Makefile.common
74efb2c2aa3475d937f631eb8d81aa21e197c049 17-Jun-2014 David 'Digit' Turner <digit@google.com> resolve merge conflicts of c5f5903 to master.

Conflicts:
android/main-emulator.c

Change-Id: Iffc6f5aaa95a1cdfcc81a26c43172e6c5ba8111a
ee57375c96822790cc7f837b4fdf64a9c1d69b3a 17-Jun-2014 David 'Digit' Turner <digit@google.com> android/utils/host_bitness.c: android_getHostBitness()

This patch moves the host bitness detection code to android/utils/
and also improves it to work properly on Windows, in preparation for
Win64 executables.

+ Ensure 'emulator' launcher uses it.
+ Add basic unit test.

Change-Id: I7d55397efeb749b72c502241c4da4cd16696c082
/external/qemu/Makefile.common
bead081e026dc21d65afa0d8c024f0f4a748af9f 12-Jun-2014 David 'Digit' Turner <digit@google.com> resolve merge conflicts of 598e05b to master.

Change-Id: I1e393281f09fed776cf4d856f4858638287dd600
482dcac37d9f5915d958b07470e380fb02ebdb2c 11-Jun-2014 Greg Hackmann <ghackmann@google.com> Revert "android: split private zlib into its own library"

This reverts commit 7989f56658ba0ac8b2950f5aa1fae9aa4e4e6cbf.

Change-Id: I6d4956bbdb92268d504ad5dfecc02a753f99a6cb
/external/qemu/Makefile.common
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/Makefile.common
9669d49a5ebbd71870873c4d09fe40c7e184bade 12-Jun-2014 David 'Digit' Turner <digit@google.com> Simplify build of 64-bit binaries.

This slightly simplifies the build files when it comes to 64-bit
module declarations. This is a preliminary change to be able to
build Win64 binaries with the new prebuilt w64 toolchain.

Change-Id: I61a03b7a23cff24d96e2651c3d797ec233bf0ffc
/external/qemu/Makefile.common
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/Makefile.common
7989f56658ba0ac8b2950f5aa1fae9aa4e4e6cbf 10-Jun-2014 Greg Hackmann <ghackmann@google.com> android: split private zlib into its own library

In preparation for adding ext4_utils, which also depends on zlib

Change-Id: I99d8db12be95ba06c7ff647aa01c1ec16ab83ecd
Signed-off-by: Greg Hackmann <ghackmann@google.com>
/external/qemu/Makefile.common
52e9ecfca07fab590243832d8de0467b34af724d 24-Apr-2014 Ying Wang <wangying@google.com> With host mulitilib build now we have HOST_IS_64_BIT.

Bug: 13751317
Change-Id: Ic5779fbeebfca5cff59012ccaeeec89f5973740e
/external/qemu/Makefile.common
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
425c53b9015b8f3fa9011a421b2c9d56450ba0c8 02-May-2014 David 'Digit' Turner <digit@google.com> Fix 64-bit host platform builds.

When performing a 64-bit host platform build, do not pick the 32-bit
SDL prebuilt libraries. This relies on the fact that BUILD_HOST_64bit
will be set in this case.

NOTE: This requires the X11 development headers/libraries to be
installed on the machine, since SDL will be rebuilt directly
from sources.

BUG=14489102

Change-Id: Ia36f73f8477059ea1a0d4c48c42fbe2d60595530
/external/qemu/Makefile.common
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/Makefile.common
97502faffa2e99bf717749a2d249ba3e57d7da4d 28-Apr-2014 David 'Digit' Turner <digit@google.com> Add misc android/base/ helper classes.

This patch adds a few new helper classes under android/base/ that
will be used by future patches.

- Add a 'clear' method to String class.

- Add StringFormat() function to generated String instances
from formatted string input, and StringAppendFormat() to
append some to an existing instance.

- Add ScopedFd to implement a scoped file descriptor wrapper.

- Add ScopedHandle to implement a scoped Win32 HANDLE wrapper.

Change-Id: I0ae2a1de1123586b23e4faca8f394c6b4dff622e
/external/qemu/Makefile.common
fafd1faa7dbc12f2831eac98bbf4739c1a56953b 14-Apr-2014 David 'Digit' Turner <digit@google.com> block: Remove obsolete files.

The Android emulator doesn't use the COW and QCOW block formats.
QCOW2 is required for snapshot support at the moment though, so
keep it here.

Change-Id: Ic27c7d4c45d67e8c71b3b495348ad4d843a7e9b8
/external/qemu/Makefile.common
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/Makefile.common
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/Makefile.common
f8f7375ff1f9101ebd22e4bc61109e50bab124e6 14-Mar-2014 David 'Digit' Turner <digit@google.com> Move elff to distrib/elff/

The library is mostly generic and is actually also used to build
the Android NDK's 'ndk-stack' program, so treat it as a third-party
even if the main implementation lives here.

Change-Id: I4248c1f3d248207f2f8cfaf5ecc65b28e1681fa3
/external/qemu/Makefile.common
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/Makefile.common
af061c540b1fe78626ef7d3923bb98e98483f0fd 28-Feb-2014 David 'Digit' Turner <digit@google.com> Build system refinements.

This patch contains changes to the standalone build system
that are preparing for the ability to build the GPU emulation
libraries directly from sources with it.

This requires several patches to said GPU emulation sources
though.

+ Add support for auto-generated C++ files.
+ Add support for host shared libraries.
+ Cleanup 64-bit build conditionals.
+ Build SDL and SDLmain as their own static libraries.

Change-Id: I88dca965d47432dc6b41428d39869f628632d33d
/external/qemu/Makefile.common
c7702eb5df5f3e72ceedfcd5fb60b94c0a945934 26-Feb-2014 David 'Digit' Turner <digit@google.com> Upgrade libpng to version 1.2.46 (from 1.2.19)

Change-Id: Icea84eaf147266915c90b03bcd798df668365d2b
/external/qemu/Makefile.common
17b20e6f38ad2263e47a6884c4f68ce9773d8b29 26-Feb-2014 David 'Digit' Turner <digit@google.com> Upgrade Zlib to 1.2.8 (from 1.2.3)

Change-Id: Ib08f21dddffef4a63bc8f7691c155557ed83ba3d
/external/qemu/Makefile.common
d3f2c27ff9f611e5047a35cb20ed53f548214fed 19-Feb-2014 David 'Digit' Turner <digit@google.com> New C++ helper classes.

This adds a few useful C++ helper classes to android/base/
that will be used in the future by other patches.

+ Add android/base/String.h, a slightly more efficient version
of std::string.

+ Add android/base/containers/StringVector.h, an optimized
vector of strings that is much more efficient than
std::vector<std::string> and should use less memory.

+ Add android/base/containers/PodVector.h which defines
an efficient std::vector<> equivalent for POD-struct
compatible types.

+ Modify PathUtils.h to use StringVector instead of
std::vector<std::string>.

+ Modify android/utils/file_data.c to get rid of valgrind
complaints when running the unit test suite.

+ Add android/base/Limits.h to get reliable integer
limit macros in C++.

Change-Id: Id9374aec658383c29be70a798ba17867664f69d3
/external/qemu/Makefile.common
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/Makefile.common
6aff02b9b67f734329c58db3c2da6304aeb770bf 18-Feb-2014 David 'Digit' Turner <digit@google.com> opengl: Simplify emulator build.

This patch simplifies the emulator build configuration to support
OpenGLES emulation. More precisely:

- Remove the include of <libOpenGLRender/render_api.h> and provide
the corresponding declarations in android/opengles.c in a way
that make them easy to call indirectly after using dlopen()/dlsym()
to resolve the symbols.

This makes the emulator much easier to build as a standalone
program (it now only depends on external/gtest, and that's only
for unit tests).

- Fix android-configure.sh to properly detect the location of
host libraries (it was broken for Windows). Also do not error
if the libraries cannot be found, since the emulator will simply
not enable GPU emulation if they are not available at runtime.

- Remove CONFIG_ANDROID_OPENGLES, QEMU_OPENGLES_INCLUDE and
QEMU_OPENGLES_LIBS from the build, since they are not needed
anymore.

Change-Id: Ifd300400df5833091e1f06e56d0507de2b973390
/external/qemu/Makefile.common
4403db3f183398aa4cfc252c3b22441f43f41b09 17-Feb-2014 David 'Digit' Turner <digit@google.com> Merge aosp/master into aosp/idea133

Get latest refactoring changes into our stable tree.
Should not alter performance or features at this point.

Change-Id: I6af284e7bba7fbbbb969752c97571d772ec1dc4c
5ea914899e5dbef4e8a7454b40a3c6648173f086 13-Feb-2014 David 'Digit' Turner <digit@google.com> Add boot.prop support.

This patch allows one to specify a custom list of boot properties that
will be injected into the guest system at boot time. The properties
must be placed in a file named 'boot.prop', which can appear in the
following locations:

For AVDs:

1) In the AVD's content directory.
2) Otherwise in the system image's directory.

For Android platform builds:

1) In the $ANDROID_BUILD_OUT directory.
Note that this is different from build.prop which will be read
from $ANDROID_BUILD_OUT/system/ instead (and isn't used to
inject any properties).

Note that any '-boot-property <name>=<value>' on the command-line will
be injected after the content of 'boot.prop', overriding it unless it
begins with a 'ro.' prefix.

The patch refactors a little how information is retrieved for builds
and AVD configurations. It also fixes a few bugs in the auto-detection
logic for the target architecture / ABI.

BUG=12819077

Change-Id: I9f41f21d9de3e4d25de427f0e5a6bb517f34c5ba
/external/qemu/Makefile.common
76bc27e498ecd8e75885308f81cf7b61c8aadfe7 12-Feb-2014 David 'Digit' Turner <digit@google.com> Fix the emulator build.

This patch solves many compilation issues that were not detected locally:

- <sys/syscall.h> cannot always be included, so add a _GNU_SOURCE=1 definition
and ensure it is only included with CONFIG_SIGNALFD (which is currently
undefined).

- Remove from the Win32 build. For some reason, this compiled fine with
./android-rebuild.sh --mingw.

Change-Id: If572852d0b40fff53a8a9e97456b4d6a42de0426
/external/qemu/Makefile.common
11823980b127b345cac5fdf1e2ef0a3bb6c951cb 11-Feb-2014 David 'Digit' Turner <digit@google.com> android/base/files/PathUtils.h: add new header.

This patch adds a new header containing utility routines used
to manage file system paths in a consistent way.

Change-Id: I77bac2ca1834ab08a500d0f786fb800d0cd97b93
/external/qemu/Makefile.common
74f2ec66c299bf9706d209d3fca597afd733a8e1 05-Feb-2014 David 'Digit' Turner <digit@android.com> Remove unused util/acl.c

Change-Id: Ifdffdcd22b9053d14c1852918807123088662693
/external/qemu/Makefile.common
494b129f77a2254e235244c605fe8a21f7188edd 05-Feb-2014 David 'Digit' Turner <digit@android.com> util/compatfd.c: upstream implementation.

Change-Id: I1b4eceddfe65d1112e007f9a440eeb2349e7d396
/external/qemu/Makefile.common
086e66e13d37c79da0cd90b92f0127c869aa7b9d 04-Feb-2014 David 'Digit' Turner <digit@android.com> qemu-thread: use upstream version.

Note: some code in cpus.c still uses functions like qemu_thread_signal()
that are not implemented anymore, but this is ok as long as CONFIG_IOTHREAD
is not defined in our configurations. This will have to be address in a
future patch.

Change-Id: I74def50e3f3cfba69352072efc467cf23e025f36
/external/qemu/Makefile.common
40022d753d452bac40c3df682a37aa34b4af72a3 04-Feb-2014 David 'Digit' Turner <digit@android.com> block: Remove unused block drivers.

These block drivers were never used, removing the sources will
simplify upstream change integration in future patches.

Change-Id: I3614027976a5836f087ccad6ee7a35b05868e09b
/external/qemu/Makefile.common
aa1180ca05774398245953deb306c0e25829afee 28-Jan-2014 David 'Digit' Turner <digit@android.com> stub monitor implementation.

This removes monitor.c and replaces it with a smaller monitor-android.c
which implements only the minimum stubs required for the Android emulator
(really snapshot support).

NOTE: After this change, the 'monitor' command in the Android console
will always return with a KO.

Change-Id: I8b631b017d7418cbc3fd3ba36e55147ce2630459
/external/qemu/Makefile.common
dc7a2b61b139c3593587fe48a77bbc8735f5daba 28-Jan-2014 David 'Digit' Turner <digit@android.com> migration: Remove unused sources.

Remove most of the migration-related sources, since they're completely
unused by the Android emulator build. So much less to actually refactor
to upstream level.

Change-Id: I1e8ad55366bb220a3da182e7b5cfb8db94f2974b
/external/qemu/Makefile.common
c79de3c66b3506a1c6b00daedaea9b616b3e140c 23-Jan-2014 David 'Digit' Turner <digit@android.com> Get QEMUFile implementation to upstream level.

Change-Id: I0c5003876c7df0246118cb903cf6b834fac82687
/external/qemu/Makefile.common
73dd5fc7da33280597dc6302ad8116d3723ebf3e 04-Feb-2014 David 'Digit' Turner <digit@android.com> Rename android/config.h to android/config-file.h

This is to avoid naming conflicts later when including
"config.h" in android/main.c to get the correct definition
of TARGET_X86 and other macros.

Change-Id: I4743bf207597721612386213208efe0c7e2f41c5
/external/qemu/Makefile.common
67c355655125676a70926c8557a27e79e2d68a18 16-Jan-2014 David 'Digit' Turner <digit@android.com> qemu-log.c: upstream integration.

Change-Id: I3d999f5ec0ed9cef6c88ce8a21246974251cea09
/external/qemu/Makefile.common
2e36f0569aaef439327309aebcf16dfbfac52a9a 16-Jan-2014 David 'Digit' Turner <digit@android.com> Add a few QOM sources to the build.

Change-Id: Ie0cd27c4426978338e0d2f9b1ea60aa604b1e09d
/external/qemu/Makefile.common
1befd3440439e8181a31140674e847f2d3e1481e 15-Jan-2014 David 'Digit' Turner <digit@android.com> Bring <qemu/iov.h> and <qemu/typedefs.h>

The location of qemu_iovec_xxx functions has moved from util/cutils.c
to a new file util/iov.c, with a few changes in the function's
interface, so update all callers.

+ Bring in <qemu/typedefs.h> and fix the few conflicts there.

Change-Id: I851ad31c3e15a0e8a23266cbfd5d1a52630a66b7
/external/qemu/Makefile.common
910aea96b67d7f0357f586c47f20848ec435aa1b 15-Jan-2014 David 'Digit' Turner <digit@android.com> qapi: First integration of qapi definitions.

Brings headers (and some sources) related to the QEMU object
model up to date with regards to upstream. Note that this misses
several implementation files which are currently not used.

Also misses qemu/cpu.h since it defines CPUState in a completely
different way than our current sources.

Change-Id: I8ece10ff9fcab28cb2e7de3493be21b793b3c98a
/external/qemu/Makefile.common
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/Makefile.common
af81d7432594d8459c4fb9f76c5e8a981f69a94c 03-Feb-2014 David 'Digit' Turner <digit@google.com> Add android/utils/eintr_wrapper.h

Add a new Android-specific header that defines two macros to
handle EINTR in a consistent way, as well as allow detecting
when a system call loops too many times and exit with a fatal
error message when that happens.

+ Unit tests.

+ Update existing code under android/ which uses to deal directly
with EINTR to use the new HANDLE_EINTR() and IGNORE_EINTR()

+ Remove EINTR checks for functions that call socket_xxx() functions
which already loop around EINTR.

Change-Id: I1d2ee64d9743a2edc506f616465ea091878db620
/external/qemu/Makefile.common
7745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4 22-Jan-2014 David 'Digit' Turner <digit@google.com> Fix Windows command-line quoting.

When the 'emulator.exe' program invokes the real emulation program
(e.g. 'emulator-arm.exe' or 'emulator-x86.exe'), it passes its own
command-line arguments through execv().

Unfortunately, on Windows this doesn't work, as the command-line
arguments must be quoted in a special way. This is describ
is described in detail in the MSDN blog post named
"Everyone quotes command line arguments the wrong way" [1]

The code under android/main-emulator.c had several problems:

- It only quoted the first parameter (the program name), but
not any other one.

- The quoting was too naive to work in the general case.

This patch adds a utility function named win32_cmdline_quote()
to perform correct quoting, and changes android/main-emulator.c
to use it.

Fix for http://b.android.com/18317

[1] http://blogs.msdn.com/b/twistylittlepassagesallalike/archive/2011/04/23/everyone-quotes-arguments-the-wrong-way.aspx

Change-Id: I7cfd6ddd10706c7aeb6c7df56e20398277d78409
/external/qemu/Makefile.common
f6f50078e3261143aba759697bc2787f9855a51f 14-Jan-2014 David 'Digit' Turner <digit@android.com> Build both 32-bit and 64-bit binaries in standalone build.

This only works for Linux and OS X builds for now, until
Windows 64-bit compilation is fixed.

+ Remove --arch=<name> and --try-64 flags to android-configure.sh
and android-rebuild.sh, since they're not needed anymore.

+ Remove the build of obsolete 'emulator-ui' and 'qemu-android-xxx'
programs. We don't need them for now, and it's likely things will
change a lot once we want to work on remote display / UI.

http://b.android.com/64805

Change-Id: I70be38d53650648f74323eb33284661a8bb77c88
/external/qemu/Makefile.common
ef457d2a39ce5f164b1b95c10181e4a99f620a19 07-Feb-2014 David 'Digit' Turner <digit@google.com> android/base/StringView.h: Another C++ helper class.

Change-Id: I744ad9de0c088238655c786c75261baf9c9c9deb
/external/qemu/Makefile.common
7a41eef6b64b2a07cf170844c897e4ae1cda998e 07-Feb-2014 David 'Digit' Turner <digit@google.com> android/base/Log.h: Add C++ Logging helper class.

Android-specific portions of the emulator are going to gradually
switch to C++ to make the code easier to structure, test and
refactor. This shall not impact anything that QEMU depends on.

This is the first patch in a series that will gradually operate
these changes. It introduces "android/base/Log.h", which provides
useful macros to perform logging and error checks.

Change-Id: I3d25bd029009d3e428ed2b5b3a02ac41313325c0
/external/qemu/Makefile.common
cef730bbc330b4a0ad84d12c71fdcb010ddb3772 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/Makefile.common
52e9942c2e0ffac6f7ccc2d2c916c855ad62c33d 03-Feb-2014 David 'Digit' Turner <digit@google.com> Add android/utils/eintr_wrapper.h

Add a new Android-specific header that defines two macros to
handle EINTR in a consistent way, as well as allow detecting
when a system call loops too many times and exit with a fatal
error message when that happens.

+ Unit tests.

+ Update existing code under android/ which uses to deal directly
with EINTR to use the new HANDLE_EINTR() and IGNORE_EINTR()

+ Remove EINTR checks for functions that call socket_xxx() functions
which already loop around EINTR.

Change-Id: I1d2ee64d9743a2edc506f616465ea091878db620
/external/qemu/Makefile.common
60d0a1536e4e75cee039c09da65a2e994be2e106 22-Jan-2014 David 'Digit' Turner <digit@google.com> Fix Windows command-line quoting.

When the 'emulator.exe' program invokes the real emulation program
(e.g. 'emulator-arm.exe' or 'emulator-x86.exe'), it passes its own
command-line arguments through execv().

Unfortunately, on Windows this doesn't work, as the command-line
arguments must be quoted in a special way. This is describ
is described in detail in the MSDN blog post named
"Everyone quotes command line arguments the wrong way" [1]

The code under android/main-emulator.c had several problems:

- It only quoted the first parameter (the program name), but
not any other one.

- The quoting was too naive to work in the general case.

This patch adds a utility function named win32_cmdline_quote()
to perform correct quoting, and changes android/main-emulator.c
to use it.

Fix for http://b.android.com/18317

[1] http://blogs.msdn.com/b/twistylittlepassagesallalike/archive/2011/04/23/everyone-quotes-arguments-the-wrong-way.aspx

Change-Id: I7cfd6ddd10706c7aeb6c7df56e20398277d78409
/external/qemu/Makefile.common
8be0af88999fd0c96e70b7872ce7a9af03905c0a 14-Jan-2014 David 'Digit' Turner <digit@android.com> Build both 32-bit and 64-bit binaries in standalone build.

This only works for Linux and OS X builds for now, until
Windows 64-bit compilation is fixed.

+ Remove --arch=<name> and --try-64 flags to android-configure.sh
and android-rebuild.sh, since they're not needed anymore.

+ Remove the build of obsolete 'emulator-ui' and 'qemu-android-xxx'
programs. We don't need them for now, and it's likely things will
change a lot once we want to work on remote display / UI.

http://b.android.com/64805

Change-Id: I70be38d53650648f74323eb33284661a8bb77c88
/external/qemu/Makefile.common
99c07e706aa20eed774d3c19915197351d37df07 13-Jan-2014 David 'Digit' Turner <digit@android.com> Really fix the build. Damn.

Change-Id: I692c172e30cd374d93edf1c7d5ba3eedf9ba4b2f
/external/qemu/Makefile.common
e8d34ee7b651f75127c7234c0404184b1b65c7ef 13-Jan-2014 David 'Digit' Turner <digit@android.com> Fix emulator build.

Change-Id: Ia71146d7e9780a684e9f7b2a8c98c5504b8fbc87
/external/qemu/Makefile.common
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/Makefile.common
1d1a2af599bfd91357cbc44b3cf20b1ab104f4ab 10-Jan-2014 David 'Digit' Turner <digit@android.com> glib: Add mini GLib library sources.

Upstream QEMU now depends on GLib, this patch adds a tiny version
of the library instead, because integrating the real one in the
emulator build is going to be challenging.

Change-Id: I4b178547280247310197599a854bb53e2072a865
/external/qemu/Makefile.common
d471c920763164fa1cf0d75a5ccecb98ec8c918f 17-Dec-2013 David 'Digit' Turner <digit@android.com> usb-*.c -> hw/usb/

Change-Id: I5b07162013d6d3bb0f8dfbf026a016058ca32af6
/external/qemu/Makefile.common
d7088e94adddcae9dc20db86ce7a69780b54ac4d 17-Dec-2013 David 'Digit' Turner <digit@android.com> input.c -> ui/

Change-Id: I3a248542d7a521f804fcf3348b0117bbe00e1f49
/external/qemu/Makefile.common
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/Makefile.common
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/Makefile.common
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/Makefile.common
d413fa5f2916a2a46494edb320340486b262644c 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move iolooper.h to include/android/

+ Move iolooper-select.c to android/

Change-Id: I5154aa491132b43c3b80c248bb8dd968f4d41c2a
/external/qemu/Makefile.common
1634ff531961026312bec4b66463bbd8a689c6ea 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move dynlink.h to include/android/

+ Move dynlink-static.c to android/
+ Move loadpng.c to android/
+ Move linux_keycodes.h to android/

Change-Id: Ibaede71e37223e86393cecc5bc86ac97ea1c97e6
/external/qemu/Makefile.common
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/Makefile.common
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/Makefile.common
e90d665cd63a0bc5c3306e1ee3e98ad362546b16 14-Dec-2013 David 'Digit' Turner <digit@android.com> Move more stuff to include/qemu/ and util/

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

Change-Id: I79e70241894e8bbeea2de711ff9de742583c23b1
/external/qemu/Makefile.common
845691383dd6a0ff71acf7aee0736adba350f6a9 13-Dec-2013 David 'Digit' Turner <digit@android.com> Move osdeps.h to include/qemu/osdep.h

and osdep.c to util/osdep.c

Change-Id: Icaf5cd7dfc8f75cbe7eb324cc9ca91a976f35d57
/external/qemu/Makefile.common
9e319a9b83008d7f7a34afb51a548d948bd88672 28-Nov-2012 Raphael Moll <ralf@android.com> SDK: fix emulator to build under Cygwin.

This focuses on fixing a gcc warning that does not
exists on GCC 3.4 (as used by my install of cygwin).

There are other compilation issues not resolved here.

Change-Id: If6e3f9565b665a716425dd3f90d044a41761557c
/external/qemu/Makefile.common
6eb25c716f097615f3c975c22b1b1bfaff914c34 24-Aug-2012 Andrew Hsieh <andrewhsieh@google.com> Fix mac build

Change-Id: Ic80b84d7b29134c9dfad4163321f61302961d179
/external/qemu/Makefile.common
33da99a33cab75287d483c2602bb2e40b34b666a 22-Aug-2012 Lars Poeschel <poeschel@lemonage.de> Fix double optimization on buildsystem for emulator

Building the emulator was done with two optimization flags
supplied to the compiler. This prevented to do debug
builds with unoptimized compilation.
This is fixed now.

Change-Id: Ie64747fd45fa9a3e2de37ba094b223ef52ef0f19
/external/qemu/Makefile.common
83df59cef8e9bb631efec48c8baedce1647e90c1 25-Jul-2012 Andrew Hsieh <andrewhsieh@google.com> Enable 64-bit emulator for MacOSX host

64-bit emulator can now be enabled for MacOSX host because the newly
upgraded sdl-1.2.15 no longer depends on NSQuickDrawView lacking
64-bit implementation.

Also rename makefile variable MSDK to OSX_VERSION

Change-Id: Ia36863f7708d281f90f5fa40a1507b52b1b68a79
/external/qemu/Makefile.common
c60b11434975c424e937fad75275840ef5ec3e81 18-Jul-2012 Jesse Hall <jessehall@google.com> Switch to sdl 1.2.15 and build from source on osx

Change-Id: I036eefd9789bfe346e9ee5acc15c1d9ffe995c94
/external/qemu/Makefile.common
7136b053b7fc7840ec64e01d1d19ab822e1f949a 10-Apr-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Use new SdkController communication protocol for emulation ports

android/sdk-control-socket.* has replaced android/android-device.* as the back-bone
of communicating with SDK controller on the device. The major differences are:

- New communication protocol uses just one (async) socket connection to communicate
with the device (the old one used two sockets: one sync, and another - async).
- New communication protocol connects to one TCP port (1970 in this CL) for all emulation
ports. Channel multiplexing is done by using port names, and assigning a separate socket
for communication inside each separate port. The old protocol had separate TCP ports for
each emulation ports (1968 for sensors, and 1969 for multi-touch)

Change-Id: I779fcbdfba2f9b4c433a9d76a567975708b00469
/external/qemu/Makefile.common
183e927350a14945e13ab217e16ab5dce20349f3 27-Apr-2012 Jesse Hall <jessehall@google.com> Fix standalone emulator build.

- Allow building with OpenGL ES acceleration disabled, avoiding a
dependency on stuff outside the QEMU project.
- Allow the standalone configure.sh to provide the include/lib path
for the OpenGL ES libraries.
- Update the default OpenGL ES include path for standalone builds.

Change-Id: I03f4627af4c271783b65a116ceb5934385c68cdc
/external/qemu/Makefile.common
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/Makefile.common
cb9b2e8dfe8021bc5bae01c7ad7442eb9bb93f9e 06-Apr-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Merge "Implements SDKCtlSocket that implements communication protocol wih SdkController"
c8aa2c570d30098da59f1967d5158024ed28570d 06-Apr-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Implements SDKCtlSocket that implements communication protocol wih SdkController

In addition, this CL contains some minor tweaks to async-socket, and
async-socket-connector that improve tracebility.

Change-Id: Ib1309b19dcd02e96379155fea7015019d93160e7
/external/qemu/Makefile.common
20821320ad10844e916ab1096f883db4f58165d7 04-Apr-2012 Xavier Ducrohet <xav@android.com> Move stuff from prebuilt to prebuilts/tools

Change-Id: I4090d12fc173af3d11cd3e1a449425ed134c5aed
/external/qemu/Makefile.common
a7383ef4eb8d3863c8d582ea0d6b2ddb42125cba 29-Mar-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Implements asynchronous socket API

This is pretty basic API that allows to asynchronously connect to a socket, and
perform asynchronous read from / write to the connected socket.

Since all the operations (including connection) are asynchronous, all the
operation results are reported back to the client of this API via set of
callbacks that client supplied to this API.

Change-Id: I2a18f5b9c575ab7825c9e5a086f4cd9fb6b130ec
/external/qemu/Makefile.common
9d36fe7e6f0c5ece4de1b29ec78a15c37c158b1d 26-Mar-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Implements an asynchronous socket connector with retries

The typical usage of the API is as such:

1. The client creates an async connector instance by calling async_socket_connector_new
routine, supplying there address of the socket to connect, and a callback
to invoke on connection events.
2. The client then proceeds with calling async_socket_connector_connect that
would initiate connection attempts.

The main job on the client side falls on the client's callback routine that
serves the connection events. Once connection has been initiated, the connector
will invoke that callback to report current connection status.

In general, there are three connection events passed to the callback:
1. Success.
2. Failure.
3. Retry.

Typically, when client's callback is called for successful connection, the
client will pull connected socket's FD from the connector, and then this FD
will be used by the client for I/O on the connected socket. If socket's FD
is pulled by the client, it must return ASC_CB_KEEP from the callback.

When client's callback is invoked with an error (ASC_CONNECTION_FAILED event),
the client has an opportunity to review the error (available in 'errno'), and
either abort the connection by returning ASC_CB_ABORT, or schedule a retry
by returning ASC_CB_RETRY from the callback. If client returns ASC_CB_ABORT
from the callback, the connector will stop connection attempts, and will
self-destruct. If ASC_CB_RETRY is returned from the callback, the connector
will retry connection attempt after timeout that was set by the caller in the
call to async_socket_connector_new routine.

When client's callback is invoked with ASC_CONNECTION_RETRY, the client has an
opportunity to cancel further connection attempts by returning ASC_CB_ABORT,
or it can allow another connection attempt by returning ASC_CB_RETRY.

The client has no control over the lifespan of initialized connector instance.
It always self-destructs after client's cllback returns with a status other
than ASC_CB_RETRY.

Change-Id: I39b0057013e45ee10d1ef98905b8a5210656a26c
/external/qemu/Makefile.common
d0f2ab6936edd2601fe5edac934a1af63d0715ae 23-Mar-2012 Andrew Hsieh <andrewhsieh@google.com> Re-enable Linux 64-bit emulator

Restore rules in Makefiles for Linux 64-bit emulator, now that
all the dependencies are merged (toolchain, lib64*.{a,so}, etc)

Change-Id: I25ecc53837ad9f10ceafb89d9e1d7a3124ce2d71
/external/qemu/Makefile.common
c69169a69fc72867717eb1f3c09aa57d9ed405c7 17-Mar-2012 Andrew Hsieh <andrewhsieh@google.com> Revert to previous prebuilt toolchain until new ones are available in AOSP

The new prebuilt toolchains prebuilts/tools/gcc-sdk points to aren't
available in AOSP yet (*). Without it, 64-bit emulator can't be built.
Revert to previous prebuilt toochain and disable 64-bit emulator for now.

(*) This git auto-sync to AOSP in short-time

Change-Id: I7301bcbcbc1d4505d34ad69b562d0b9e5968093a
/external/qemu/Makefile.common
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/Makefile.common
8dd31e8e10fc3ca10192368acf19d2345eeddde7 16-Feb-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Multi-touch emulation support

Change-Id: I311dc55fe10f41637775baa330a7c732ff317f51
/external/qemu/Makefile.common
70a18cd874a22452aca9e39e22275ed4538ed20b 01-Feb-2012 Vladimir Chtchetkine <vchtchetkine@google.com> Include JPEG compression / decompression library into emulator build

We are going to need JPEG compression for transferring emulator's framebuffers to
the multi-touch supporting application running on an android device. The source
for JPEG compressor has been copied over from external/jpeg

To that I've added distrib/jpeg-6b/sources.make containing build instruction for
JPEG compressor. That file gets included into Makefile.common to compile JPEG
compressor sources along with the emulator sources.

Change-Id: I7bfccb7a10f873f90edabab5d3b1b2ca4dd57449
/external/qemu/Makefile.common
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/Makefile.common
d86c724b74e6c04a89219d87559d0b580e100445 10-Dec-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Implement ADB communication over QEMU pipe

Change-Id: I62ff5898c7a955aaaa8af8f7ee7ed018af860f80
/external/qemu/Makefile.common
db611d57e0da9acd7ecf2a4a9b2a63e7620fe54d 02-Nov-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Implements sensors emulation using a connected Android device

There are three major things in this CL:
1. Abstract a connection with an Android device that is connected to the host via
USB, and there is a TCP port forwarding to this device via 'adb forward' command.
This abstraction is implemented in android/android-device.*
2. A client for android device API that talks to an app on the connected device that
provides values for sensors available on the device. This is implemented in
android/sensors-port.*
3. Changes to the sensor emulation code in android/hw-sensors.c to use sensors port
(when available) for sensors emulation.

Change-Id: I12901e8db6b6a6262fc1703ed96a9f714335d666
/external/qemu/Makefile.common
955a99781dd7af82e7a55525a4e51ce5d0814021 13-Oct-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Implemented Mac camera emulation

Change-Id: I01609e8bfcdd8ee5ef876344d0a334ecd69a2b7a
/external/qemu/Makefile.common
b92b303b5f52b8d71687eef6eeee78dbae9d1d17 13-Sep-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Fix Mac build

Add dummy rutines implementing public camera API on Mac

Change-Id: Id3c9d99d863785b0e00d1bdf6deb0a1af49ce91c
/external/qemu/Makefile.common
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/Makefile.common
a40266822068c89910567a91801247a24b08a46c 24-Aug-2011 David 'Digit' Turner <digit@android.com> Avoid conflicts with SDL_CONFIG variable.

Other Android.mk parsed before this one may define SDL_CONFIG
in an unexpected way. We only use this variable as input when
want to implement the --sdl-config option in ./android-configure.sh

Use QEMU_SDL_CONFIG instead to avoid issues.

Change-Id: I89d56284017c696227d7c66ea7d7b0acaa73a9ca
/external/qemu/Makefile.common
816e53ca385b64c18c9c7cfca569c4d747634e97 17-Aug-2011 David 'Digit' Turner <digit@android.com> Add DLL-loading head <android/utils/dll.h>

This patch adds several functions to make loading shared libraries
dynamically easier. This will be used to load the GLES emulation
libraries.

Change-Id: Ib401af339530bc647bfa86fb23a2840fe0a201dd
/external/qemu/Makefile.common
4ed09fd35085c96ae8edbda87757187f75eeac8d 18-Aug-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Video capturing code for Linux, and Windows

Contains API that connects to a camera device, and pulls video frames from it
on request from the client.

Change-Id: If1d80c57611afff637a7734ce5c3a2c874cfc85a
/external/qemu/Makefile.common
66241a6d9487c854e0a4a7cd5a211c176cdfc974 06-Jul-2011 David 'Digit' Turner <digit@android.com> Fix build

Change-Id: Ic830748a627ffccfb4642cc56ea76496c6a8fb25
/external/qemu/Makefile.common
42fc4496541acdcaf49bcdf3fcffe247be985fe0 29-Jun-2011 David 'Digit' Turner <digit@android.com> hw-config-defs.h: Remove from source tree + auto-generate

This patch modifies the emulator's build system to place the
auto-generated file android/avd/hw-config-defs.h into the build
directory. Before that, the file was placed in the source tree.

+ Fix the standalone build system to properly deal with
generated source file dependencies + LOCAL_C_INCLUDES

Change-Id: I4e77cd20bf4ca21f79d5dd19f27724bd8be53a79
/external/qemu/Makefile.common
3b2846ad9f156e62574a0abc5ec489f8f13f1121 11-May-2011 David 'Digit' Turner <digit@android.com> qemu-char-android.c: rename to qemu-char.c

+ convert to QemuOpts* initialization functions.

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

Change-Id: I28d2025dfa1f7bfc1ab2318f5ff6c0fd56f4b658
/external/qemu/Makefile.common
95a83ce7ee413954ba6325584ea659c6685edfd5 10-May-2011 David 'Digit' Turner <digit@android.com> savevm: Remove OutputBuffer hack.

It's easier to provide a fake Monitor object instead.

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

Change-Id: I6856ded73b4dcd10fe4831697c8518f958aeffbb
/external/qemu/Makefile.common
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/Makefile.common
0a879bf9ba318562e41a1bd4a6f9547f124a9831 12-May-2011 David 'Digit' Turner <digit@android.com> Dump hardware config. with -verbose option.

This patch dumps the content of the hardware configuration
file when the -verbose option (or equivalent -debug-init)
is used.

This is useful to determine exactly what is launched when
debugging emulator issues.

Change-Id: I101b87cddb12c603b43420ea72bb357fc33f327d
/external/qemu/Makefile.common
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/Makefile.common
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/Makefile.common
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/Makefile.common
9b4029807c91ea42ff5e84e3616c90e2ce42d6f8 05-Apr-2011 David 'Digit' Turner <digit@android.com> Add OpenGLES pipe implementation.

Change-Id: I3ad498380de8438dbf430316af2d4391876057cc
/external/qemu/Makefile.common
bbb81047a39e39021b3b10e2d86af146d514bf8c 17-Mar-2011 David 'Digit' Turner <digit@android.com> Add <android/utils/intmap.h> which implements an integer-keyed map of pointers.

This will be used later to support QEMUD fast pipes.
/external/qemu/Makefile.common
aff94b88c4ec057f20950d5e7a88b90cc4d97dce 07-Feb-2011 David 'Digit' Turner <digit@android.com> Build arm and x86 binaries at the same time.

This patch modifies the way we build the emulator's various programs.
It reduces the number of static libraries generated, and better segregates
between common, ui, qemu and target-specific code.

Note that we build both the arm and x86 binaries at the same time in all
build scenarios for now. This is done to catch build regressions as soon as
possible.

Change-Id: I6240705041e137e32f207e1e2444c614c52aaf05
/external/qemu/Makefile.common
fc8ed80ba1362d2ce500003625e1c9c39f765661 10-Feb-2011 Xavier Ducrohet <xav@android.com> Revert "Build arm and x86 binaries at the same time."

This fails to build on MacOS X

This reverts commit a39b10bd2574825a815d6ad854499dd127cfa9cb.
/external/qemu/Makefile.common
a39b10bd2574825a815d6ad854499dd127cfa9cb 07-Feb-2011 David 'Digit' Turner <digit@android.com> Build arm and x86 binaries at the same time.

Change-Id: I105c5a097c988cb964b47b40b71c7a08af0d9210
/external/qemu/Makefile.common