| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| | |
Change-Id: I59c9e58c568a70855783e57514fec80b711d6a64
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed the following for the new compiler
1. android/camera/camera-capture-windows.c:
Added "#include <windows.h>"
2. SetClassLong() is deprecated. GCL_HICON doesn't exist in _WIN64.
Replacted it with SetClassLongPtr(h, GCLP_HICON, icon)
3. [v]asprintf now actually exisit in libray. Changed the prototype
to match the standard ones but will remove them later for GCC 4.5 and up.
4. Renamed _set_errno to set_errno because it exists in stdlib.h.
Renamed _fix_errno to fix_errno for consistency.
5. EAI_NODATA and EAI_NONAME become the same things.
6. ddk/*h don't exisit. tap-win32.c actually only needs winioctl.h which
provide constants. I have make sure they got the same constants in
both old and new mingw compilers
7. #undef DELETE before redefining it for KEY_CODE in hw-events.h because
DELETE is defined to be a constant in standard header.
The above don't break the old one (ie. /usr/bin/i586-mingw32msvc-*)
Change-Id: Ic7d13fd0fd237d433f923ee01c6ce50f5c02f095
|
|/
|
|
|
|
|
|
|
| |
When emulator is lunched from its own directory (ie. cd out/*/bin; ./emulator),
emulator fails to locate shared libraries lib*GL at out/*/lib because utility
function path_parent(".", 1) incorrectly returns NULL instead of "..".
Fixed that case.
Change-Id: I86f8e5d655107ae8cd2237d59518180ce6e69c53
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are cases when 'accept' message that guest adbd sends via qemu pipe to the emulator
get broken into pieces: once 4 bytes are delivered, and then the remaining two. This breaks
the protocol, as emulator assumes that all 6 bytes would be delivered in one chunk. This CL
adjusts that by accumulating messages in a buffer, and analyzing them only when collected
message length reaches certain point.
Change-Id: Ice25625f65bbaa2b07677c3285bf75e7bf46fbb7
|
|/
|
|
| |
Change-Id: I732fa0d756656ad9976eddd06b16644e208aa512
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I1be43697ee04f46c5839c4d23e461d54eefc450f
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
| |
GCC on OS X is flagging a duplicate declaration error even though GCC
on Linux isn't even warning about it. Not sure why. The declaration is
duplicated, but identical. Renaming one of the two.
Change-Id: I946b5f3a4e410b66e9ab2ae3160ff1bec4e0ddd7
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | | |
* commit 'c135d75d5ae774d7349f1cf346eee03072047179':
Reword -help-gpu text for clarity and accuracy
|
| |/
| |
| |
| | |
Change-Id: If950c52919039e85874fefe3415e59aa8ec02c96
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When launching the emulator with just -skin from the dev tree
the fake AVD was not using the hardware.ini config from the skin
due to creating it before resolving skinDir and skinName from the
command line options.
This change updates the AVD after doing so.
Change-Id: Ia0912d72775e26f080f763b29629a3691c253c43
|
|/
|
|
| |
Change-Id: I2996197e7ec4c36c7e46b35edab5b10d7f103c10
|
|
|
|
| |
Change-Id: I1fee7e9f70600da4540744aa11f927bfc9c759e1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
In addition, this CL contains some minor tweaks to async-socket, and
async-socket-connector that improve tracebility.
Change-Id: Ib1309b19dcd02e96379155fea7015019d93160e7
|
|
|
|
|
|
|
|
|
| |
Since it's hard to control lifespan of an object in asynchronous environment, we
should make all AsyncXxx objects a referenced objecst, that will self-destruct
when its reference count drops to zero, indicating that the last client that
used the object has abandoned it.
Change-Id: I6f8194aa14e52a23a8772d827583782989654504
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The initial implementation was a bit too complex in two ways:
1. Each component (the connector, and async socket) had its own set of state and
action enums, which was confusing, required value translation, and was not really
needed. So, all these enums have been combined into two common enums that are now
declared in android/async-io-common.h
2. Too many callbacks, which really complicated implementation of the clients. It is
much more efficient to have just two callbacks (one to monitor connection, and another
to monitor I/O), letting the client to dispatch on particular event (success/timeout/etc.)
This CL fixes these two issues.
Change-Id: I545c93dee2e9e9c72c1d25e6cd218c8680933ee3
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
When setting absolute time, the routine wrongly assumed that qemu_mod_timer takes
time in nanosec, while in reality, qemu_mod_timer takes time in millisec.
Change-Id: Ife707bb5d236457f65e7dc6ccfb3235e0b93f058
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | | |
platforms"
|
| | |
| | |
| | |
| | |
| | |
| | | |
Useful for both QA and trouble-shooting
Change-Id: I09eac8b94e29e8a201188bf17d3511c15cfee4b4
|
|\ \ \ |
|
| | | |
| | | |
| | | | |
This reverts commit 2f4361f1d63751f1f72e1a1f953acfb9c05727da
|
|\ \ \ \
| |/ / /
| | | /
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|/ /
| |
| |
| | |
Change-Id: I8a85de939a89d373724cfb977141ca01e7d1ff34
|
| |
| |
| |
| |
| |
| | |
'entry' type enumerates values that are allowed for the given type name.
Change-Id: Ic0f4021f761dfd78ff4dd9d2b58a2d811109b3c6
|
|/
|
| |
This reverts commit 1d57949ea5bae66b27febc2edcfc7ae0f10be716
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL adds new 'enum' type to the types supported by the script.
Enumerated types should be formatted as such:
enum(type: val1[, val2[, ..., valN])
where:
- 'type' defines type of enumerated values, and must be one of the types
listed in typesToMacros
- 'val1'... 'valN' lists enumerated values, separated with a comma.
- '...' is a special value indicating that AVD editor may set property
value that doesn't match values enumerated in the .ini file. However,
default value set for the property must match one of the enumerated
values.
Change-Id: Id5c1c2940a956002e9e01a2d2456b6218f1f3742
|
|
|
|
|
|
| |
This CL provides proper handling for event socket async I/O initialization.
Change-Id: If02894a63e943c7f3db8efbab0713ed2861ecb38
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
The issue was that on Mac there is a bug in select() implementation, that caused select()
to fail with EINVAL on condition that timeout exceeds 100000000 secods. So the real fix
was to clamp timout value to that limit when select() is called on Mac.
Change-Id: Icb9ead00a0060028957af1e6e22911d5e8e231c6
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
The reason for crash is that event socket's I/O looper has been used without
being properly initialized.
Change-Id: I4f6372a4c2e54d5ea80313eda5208da17fc84d1d
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This CL should fix external issue 26839, where system gets loaded from a snapshot
even it is explicitly disabled in config.ini.
The reason for that was a bug in autoconfig generator that didn't respect config.ini
settings for snapshot.
Change-Id: I617e9de7f7472f8d5b75d544f81c5b160f81c2f8
|
|/
|
|
|
|
|
|
|
|
|
| |
There is a (reasonable) demand from android development comunity to increase default
data partition size. It seems that 66MB doesn't match anymore user needs. So, with this
CL default data partition size will be increased to 12MB.
This CL also fixes a bug where data partition size set by the AVD manager has been wrongly
treated as an MB value, while it was a byte value.
Change-Id: I27c456a71299aff42bd4ca573d3660292a7d1d44
|
|\ |
|