Loading graphics/allocator/2.0/default/Android.bp +15 −0 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,21 @@ cc_library_shared { ], ], } } cc_binary { name: "android.hardware.graphics.allocator@2.0-service", relative_install_path: "hw", srcs: ["service.cpp"], init_rc: ["android.hardware.graphics.allocator@2.0-service.rc"], shared_libs: [ "android.hardware.graphics.allocator@2.0", "libhidl", "libhwbinder", "liblog", "libutils", ], } cc_library_static { cc_library_static { name: "libgralloc1-adapter", name: "libgralloc1-adapter", srcs: ["gralloc1-adapter.c"], srcs: ["gralloc1-adapter.c"], Loading graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc 0 → 100644 +5 −0 Original line number Original line Diff line number Diff line service gralloc-2-0 /system/bin/hw/android.hardware.graphics.allocator@2.0-service class hal user system group graphics drmrpc readproc onrestart restart surfaceflinger graphics/allocator/2.0/default/service.cpp 0 → 100644 +51 −0 Original line number Original line Diff line number Diff line /* * Copyright 2016 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. */ #define LOG_TAG "GrallocService" #include <android/hardware/graphics/allocator/2.0/IAllocator.h> #include <hwbinder/IPCThreadState.h> #include <hwbinder/ProcessState.h> #include <utils/StrongPointer.h> using android::sp; using android::hardware::IPCThreadState; using android::hardware::ProcessState; using android::hardware::graphics::allocator::V2_0::IAllocator; int main() { const char instance[] = "gralloc"; ALOGI("Service is starting."); sp<IAllocator> service = IAllocator::getService(instance, true /* getStub */); if (service == nullptr) { ALOGI("getService returned NULL"); return -1; } LOG_FATAL_IF(service->isRemote(), "Service is REMOTE!"); service->registerAsService(instance); ProcessState::self()->setThreadPoolMaxThreadCount(0); ProcessState::self()->startThreadPool(); IPCThreadState::self()->joinThreadPool(); return 0; } graphics/composer/2.1/default/Android.bp +21 −0 Original line number Original line Diff line number Diff line Loading @@ -14,3 +14,24 @@ cc_library_shared { "libutils", "libutils", ], ], } } cc_binary { name: "android.hardware.graphics.composer@2.1-service", relative_install_path: "hw", srcs: ["service.cpp", "Hwc.cpp"], cppflags: ["-DBINDERIZED"], init_rc: ["android.hardware.graphics.composer@2.1-service.rc"], shared_libs: [ "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.composer@2.1", "libbase", "libbinder", "libcutils", "libhardware", "libhidl", "libhwbinder", "liblog", "libutils", ], } graphics/composer/2.1/default/Hwc.cpp +8 −0 Original line number Original line Diff line number Diff line Loading @@ -698,6 +698,14 @@ Return<void> HwcHal::createLayer(Display display, createLayer_cb hidl_cb) Return<Error> HwcHal::destroyLayer(Display display, Layer layer) Return<Error> HwcHal::destroyLayer(Display display, Layer layer) { { auto error = mDispatch.destroyLayer(mDevice, display, layer); auto error = mDispatch.destroyLayer(mDevice, display, layer); if (error == HWC2_ERROR_NONE) { std::lock_guard<std::mutex> lock(mDisplayMutex); auto dpy = mDisplays.find(display); dpy->second.LayerBuffers.erase(layer); dpy->second.LayerSidebandStreams.erase(layer); } return static_cast<Error>(error); return static_cast<Error>(error); } } Loading Loading
graphics/allocator/2.0/default/Android.bp +15 −0 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,21 @@ cc_library_shared { ], ], } } cc_binary { name: "android.hardware.graphics.allocator@2.0-service", relative_install_path: "hw", srcs: ["service.cpp"], init_rc: ["android.hardware.graphics.allocator@2.0-service.rc"], shared_libs: [ "android.hardware.graphics.allocator@2.0", "libhidl", "libhwbinder", "liblog", "libutils", ], } cc_library_static { cc_library_static { name: "libgralloc1-adapter", name: "libgralloc1-adapter", srcs: ["gralloc1-adapter.c"], srcs: ["gralloc1-adapter.c"], Loading
graphics/allocator/2.0/default/android.hardware.graphics.allocator@2.0-service.rc 0 → 100644 +5 −0 Original line number Original line Diff line number Diff line service gralloc-2-0 /system/bin/hw/android.hardware.graphics.allocator@2.0-service class hal user system group graphics drmrpc readproc onrestart restart surfaceflinger
graphics/allocator/2.0/default/service.cpp 0 → 100644 +51 −0 Original line number Original line Diff line number Diff line /* * Copyright 2016 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. */ #define LOG_TAG "GrallocService" #include <android/hardware/graphics/allocator/2.0/IAllocator.h> #include <hwbinder/IPCThreadState.h> #include <hwbinder/ProcessState.h> #include <utils/StrongPointer.h> using android::sp; using android::hardware::IPCThreadState; using android::hardware::ProcessState; using android::hardware::graphics::allocator::V2_0::IAllocator; int main() { const char instance[] = "gralloc"; ALOGI("Service is starting."); sp<IAllocator> service = IAllocator::getService(instance, true /* getStub */); if (service == nullptr) { ALOGI("getService returned NULL"); return -1; } LOG_FATAL_IF(service->isRemote(), "Service is REMOTE!"); service->registerAsService(instance); ProcessState::self()->setThreadPoolMaxThreadCount(0); ProcessState::self()->startThreadPool(); IPCThreadState::self()->joinThreadPool(); return 0; }
graphics/composer/2.1/default/Android.bp +21 −0 Original line number Original line Diff line number Diff line Loading @@ -14,3 +14,24 @@ cc_library_shared { "libutils", "libutils", ], ], } } cc_binary { name: "android.hardware.graphics.composer@2.1-service", relative_install_path: "hw", srcs: ["service.cpp", "Hwc.cpp"], cppflags: ["-DBINDERIZED"], init_rc: ["android.hardware.graphics.composer@2.1-service.rc"], shared_libs: [ "android.hardware.graphics.allocator@2.0", "android.hardware.graphics.composer@2.1", "libbase", "libbinder", "libcutils", "libhardware", "libhidl", "libhwbinder", "liblog", "libutils", ], }
graphics/composer/2.1/default/Hwc.cpp +8 −0 Original line number Original line Diff line number Diff line Loading @@ -698,6 +698,14 @@ Return<void> HwcHal::createLayer(Display display, createLayer_cb hidl_cb) Return<Error> HwcHal::destroyLayer(Display display, Layer layer) Return<Error> HwcHal::destroyLayer(Display display, Layer layer) { { auto error = mDispatch.destroyLayer(mDevice, display, layer); auto error = mDispatch.destroyLayer(mDevice, display, layer); if (error == HWC2_ERROR_NONE) { std::lock_guard<std::mutex> lock(mDisplayMutex); auto dpy = mDisplays.find(display); dpy->second.LayerBuffers.erase(layer); dpy->second.LayerSidebandStreams.erase(layer); } return static_cast<Error>(error); return static_cast<Error>(error); } } Loading