summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/Android.mk2
-rw-r--r--[-rwxr-xr-x]camera/Android.mk4
-rwxr-xr-xcamera/EmulatedFakeCameraDevice.cpp7
-rw-r--r--gps/Android.mk2
-rw-r--r--init.goldfish.rc4
-rw-r--r--lights/Android.mk2
-rw-r--r--opengl/common.mk6
-rw-r--r--opengl/system/GLESv1/Android.mk2
-rw-r--r--opengl/system/GLESv2/Android.mk2
-rw-r--r--opengl/system/egl/Android.mk2
-rw-r--r--power/Android.mk2
-rw-r--r--sensors/Android.mk2
-rw-r--r--vibrator/Android.mk29
-rw-r--r--vibrator/vibrator_qemu.c91
14 files changed, 139 insertions, 18 deletions
diff --git a/audio/Android.mk b/audio/Android.mk
index 188fa21..8e21fe8 100644
--- a/audio/Android.mk
+++ b/audio/Android.mk
@@ -18,7 +18,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := audio.primary.goldfish
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE_TAGS := optional
LOCAL_SHARED_LIBRARIES := libcutils liblog
diff --git a/camera/Android.mk b/camera/Android.mk
index 7aa5856..d852e7f 100755..100644
--- a/camera/Android.mk
+++ b/camera/Android.mk
@@ -17,7 +17,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_CFLAGS += -fno-short-enums -DQEMU_HARDWARE
LOCAL_SHARED_LIBRARIES:= \
libbinder \
@@ -76,7 +76,7 @@ ifneq ($(TARGET_BUILD_PDK),true)
include $(CLEAR_VARS)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_CFLAGS += -fno-short-enums -DQEMU_HARDWARE
LOCAL_SHARED_LIBRARIES:= \
libcutils \
diff --git a/camera/EmulatedFakeCameraDevice.cpp b/camera/EmulatedFakeCameraDevice.cpp
index 0bc4c54..4afadc1 100755
--- a/camera/EmulatedFakeCameraDevice.cpp
+++ b/camera/EmulatedFakeCameraDevice.cpp
@@ -243,6 +243,13 @@ void EmulatedFakeCameraDevice::drawCheckerboard()
const int size = mFrameWidth / 10;
bool black = true;
+ if (size == 0) {
+ // When this happens, it happens at a very high rate,
+ // so don't log any messages and just return.
+ return;
+ }
+
+
if((mCheckX / size) & 1)
black = false;
if((mCheckY / size) & 1)
diff --git a/gps/Android.mk b/gps/Android.mk
index 6840f84..65b637c 100644
--- a/gps/Android.mk
+++ b/gps/Android.mk
@@ -24,7 +24,7 @@ LOCAL_PATH := $(call my-dir)
# hw/<GPS_HARDWARE_MODULE_ID>.<ro.hardware>.so
include $(CLEAR_VARS)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_CFLAGS += -DQEMU_HARDWARE
LOCAL_SHARED_LIBRARIES := liblog libcutils libhardware
LOCAL_SRC_FILES := gps_qemu.c
diff --git a/init.goldfish.rc b/init.goldfish.rc
index 9c08c6e..ead468d 100644
--- a/init.goldfish.rc
+++ b/init.goldfish.rc
@@ -14,10 +14,6 @@ on init
symlink /storage/sdcard /mnt/sdcard
on boot
- setsebool in_qemu 1
- restorecon /sys/qemu_trace/process_name
- restorecon /sys/qemu_trace/state
- restorecon /sys/qemu_trace/symbol
setprop ARGH ARGH
setprop net.eth0.gw 10.0.2.2
setprop net.eth0.dns1 10.0.2.3
diff --git a/lights/Android.mk b/lights/Android.mk
index 3fa04ed..49f2d76 100644
--- a/lights/Android.mk
+++ b/lights/Android.mk
@@ -18,7 +18,7 @@ LOCAL_PATH := $(call my-dir)
# hw/<LIGHTS_HARDWARE_MODULE_ID>.<ro.hardware>.so
include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_SRC_FILES := lights_qemu.c
LOCAL_MODULE := lights.goldfish
diff --git a/opengl/common.mk b/opengl/common.mk
index 6dd503e..a4ea7d7 100644
--- a/opengl/common.mk
+++ b/opengl/common.mk
@@ -234,7 +234,5 @@ endef
# $1: library sub-path,relative to /system/lib
# For example: $(call emugl-set-shared-library-subpath,egl)
emugl-set-shared-library-subpath = \
- $(eval LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$1)\
- $(eval LOCAL_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$1)\
- $(eval _emugl.$(LOCAL_MODULE).moved := true)\
- $(call emugl-export-outer,ADDITIONAL_DEPENDENCIES,$(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)$(TARGET_SHLIB_SUFFIX))
+ $(eval LOCAL_MODULE_RELATIVE_PATH := $1)\
+ $(eval _emugl.$(LOCAL_MODULE).moved := true)
diff --git a/opengl/system/GLESv1/Android.mk b/opengl/system/GLESv1/Android.mk
index 97356b7..8762c11 100644
--- a/opengl/system/GLESv1/Android.mk
+++ b/opengl/system/GLESv1/Android.mk
@@ -7,6 +7,6 @@ $(call emugl-import,libOpenglSystemCommon libGLESv1_enc lib_renderControl_enc)
LOCAL_CFLAGS += -DLOG_TAG=\"GLES_emulation\" -DGL_GLEXT_PROTOTYPES
LOCAL_SRC_FILES := gl.cpp
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+LOCAL_MODULE_RELATIVE_PATH := egl
$(call emugl-end-module)
diff --git a/opengl/system/GLESv2/Android.mk b/opengl/system/GLESv2/Android.mk
index c299522..5a23424 100644
--- a/opengl/system/GLESv2/Android.mk
+++ b/opengl/system/GLESv2/Android.mk
@@ -7,6 +7,6 @@ $(call emugl-import,libOpenglSystemCommon libGLESv2_enc lib_renderControl_enc)
LOCAL_CFLAGS += -DLOG_TAG=\"GLESv2_emulation\" -DGL_GLEXT_PROTOTYPES
LOCAL_SRC_FILES := gl2.cpp
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl
+LOCAL_MODULE_RELATIVE_PATH := egl
$(call emugl-end-module)
diff --git a/opengl/system/egl/Android.mk b/opengl/system/egl/Android.mk
index a979089..241cefe 100644
--- a/opengl/system/egl/Android.mk
+++ b/opengl/system/egl/Android.mk
@@ -26,7 +26,7 @@ $(call emugl-end-module)
# Other builds are device-specific and will provide their own
# version of this file to point to the appropriate HW EGL libraries.
#
-ifneq (,$(filter full full_x86 full_mips sdk sdk_x86 sdk_mips google_sdk google_sdk_x86 google_sdk_mips,$(TARGET_PRODUCT)))
+ifneq (,$(filter aosp_arm aosp_x86 aosp_mips full full_x86 full_mips sdk sdk_x86 sdk_mips google_sdk google_sdk_x86 google_sdk_mips,$(TARGET_PRODUCT)))
include $(CLEAR_VARS)
LOCAL_MODULE := egl.cfg
diff --git a/power/Android.mk b/power/Android.mk
index 30d21a3..0273f04 100644
--- a/power/Android.mk
+++ b/power/Android.mk
@@ -19,7 +19,7 @@ LOCAL_PATH := $(call my-dir)
# hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so
include $(CLEAR_VARS)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_CFLAGS += -DQEMU_HARDWARE
LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_SRC_FILES := power_qemu.c
diff --git a/sensors/Android.mk b/sensors/Android.mk
index a1b8967..214ead6 100644
--- a/sensors/Android.mk
+++ b/sensors/Android.mk
@@ -19,7 +19,7 @@ LOCAL_PATH := $(call my-dir)
# hw/<SENSORS_HARDWARE_MODULE_ID>.<ro.hardware>.so
include $(CLEAR_VARS)
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_SRC_FILES := sensors_qemu.c
ifeq ($(TARGET_PRODUCT),vbox_x86)
diff --git a/vibrator/Android.mk b/vibrator/Android.mk
new file mode 100644
index 0000000..6ab9c38
--- /dev/null
+++ b/vibrator/Android.mk
@@ -0,0 +1,29 @@
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := vibrator.goldfish
+
+# HAL module implemenation stored in
+# hw/<VIBRATOR_HARDWARE_MODULE_ID>.goldfish.so
+LOCAL_MODULE_RELATIVE_PATH := hw
+LOCAL_C_INCLUDES := hardware/libhardware hardware/libhardware_legacy
+LOCAL_SRC_FILES := vibrator_qemu.c
+LOCAL_SHARED_LIBRARIES := liblog libhardware libhardware_legacy
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/vibrator/vibrator_qemu.c b/vibrator/vibrator_qemu.c
new file mode 100644
index 0000000..1c1ffe0
--- /dev/null
+++ b/vibrator/vibrator_qemu.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdlib.h>
+
+#include <cutils/log.h>
+
+#include <qemu.h>
+#include <hardware/hardware.h>
+#include <hardware/vibrator.h>
+
+static int sendit(unsigned int timeout_ms)
+{
+ if (qemu_check()) {
+ if (qemu_control_command("vibrator:%u", timeout_ms) < 0) {
+ return -errno;
+ }
+ return 0;
+ }
+
+ return -ENOSYS;
+}
+
+static int qemu_vibra_on(vibrator_device_t* vibradev __unused, unsigned int timeout_ms)
+{
+ return sendit(timeout_ms);
+}
+
+static int qemu_vibra_off(vibrator_device_t* vibradev __unused)
+{
+ return sendit(0);
+}
+
+static int qemu_vibra_close(hw_device_t *device)
+{
+ free(device);
+ return 0;
+}
+
+static int qemu_vibra_open(const hw_module_t* module, const char* id __unused,
+ hw_device_t** device) {
+ vibrator_device_t *vibradev = calloc(1, sizeof(vibrator_device_t));
+
+ if (!vibradev) {
+ ALOGE("No memory available to create Goldfish vibrator device!");
+ return -ENOMEM;
+ }
+
+ vibradev->common.tag = HARDWARE_DEVICE_TAG;
+ vibradev->common.module = (hw_module_t *) module;
+ vibradev->common.version = HARDWARE_DEVICE_API_VERSION(1,0);
+ vibradev->common.close = qemu_vibra_close;
+
+ vibradev->vibrator_on = qemu_vibra_on;
+ vibradev->vibrator_off = qemu_vibra_off;
+
+ *device = (hw_device_t *) vibradev;
+
+ return 0;
+}
+
+/*===========================*/
+/* Emulator vibrator module */
+/*===========================*/
+
+static struct hw_module_methods_t qemu_vibrator_module_methods = {
+ .open = qemu_vibra_open,
+};
+
+struct hw_module_t HAL_MODULE_INFO_SYM = {
+ .tag = HARDWARE_MODULE_TAG,
+ .module_api_version = VIBRATOR_API_VERSION,
+ .hal_api_version = HARDWARE_HAL_API_VERSION,
+ .id = VIBRATOR_HARDWARE_MODULE_ID,
+ .name = "Goldfish vibrator module",
+ .author = "The Android Open Source Project",
+ .methods = &qemu_vibrator_module_methods,
+};