Remove gralloc

Change-Id: Iba39815f809388367d8297739c80fb5d1605900b
Reviewed-on: https://swiftshader-review.googlesource.com/3011
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Greg Hartman <ghartman@google.com>
diff --git a/src/gralloc/Android.mk b/src/gralloc/Android.mk
deleted file mode 100644
index 67f0137..0000000
--- a/src/gralloc/Android.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2008 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)
-
-# HAL module implemenation stored in
-# hw/<OVERLAY_HARDWARE_MODULE_ID>.<ro.product.board>.so
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
-LOCAL_INSTALLED_MODULE_STEM := gralloc.gce_x86.so
-
-LOCAL_SHARED_LIBRARIES := \
-    liblog \
-    libutils \
-    libcutils
-
-LOCAL_STATIC_LIBRARIES := \
-    libgceframebufferconfig \
-    libgcemetadata \
-    libyuv_static
-
-LOCAL_SRC_FILES := 	\
-	gralloc.cpp 	\
-	framebuffer.cpp \
-	mapper.cpp
-
-LOCAL_MODULE := gralloc_swiftshader.gce_x86
-LOCAL_CFLAGS:= -DLOG_TAG=\"gralloc_gce_x86\" -Wno-missing-field-initializers
-
-LOCAL_C_INCLUDES := \
-    device/google/gce/include \
-    external/libyuv/files/include
-
-include $(BUILD_SHARED_LIBRARY)
diff --git a/src/gralloc/framebuffer.cpp b/src/gralloc/framebuffer.cpp
deleted file mode 100644
index e72d614..0000000
--- a/src/gralloc/framebuffer.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * Copyright (C) 2008 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 <sys/mman.h>
-
-#include <dlfcn.h>
-
-#include <cutils/ashmem.h>
-#include <cutils/log.h>
-#include <cutils/properties.h>
-
-#include <sys/system_properties.h>
-
-#include <hardware/hardware.h>
-#include <hardware/gralloc.h>
-
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <cutils/log.h>
-#include <cutils/atomic.h>
-#include <cutils/sockets.h>
-#include <private/android_filesystem_config.h>
-
-#if HAVE_ANDROID_OS
-#include <linux/fb.h>
-#endif
-
-#include "gralloc_priv.h"
-#include "gr.h"
-
-#include <GceFrameBufferConfig.h>
-#include "remoter_framework_pkt.h"
-
-/*****************************************************************************/
-
-// numbers of buffers for page flipping
-#define NUM_BUFFERS 2
-
-enum {
-    PAGE_FLIP = 0x00000001,
-    LOCKED = 0x00000002
-};
-
-struct fb_context_t {
-    framebuffer_device_t  device;
-};
-
-/*****************************************************************************/
-
-static int fb_setSwapInterval(struct framebuffer_device_t* dev,
-            int interval)
-{
-    fb_context_t* ctx = (fb_context_t*)dev;
-    if (interval < dev->minSwapInterval || interval > dev->maxSwapInterval)
-        return -EINVAL;
-    // FIXME: implement fb_setSwapInterval
-    return 0;
-}
-
-static int fb_setUpdateRect(struct framebuffer_device_t* dev,
-        int l, int t, int w, int h)
-{
-    if (((w|h) <= 0) || ((l|t)<0))
-        return -EINVAL;
-        
-    fb_context_t* ctx = (fb_context_t*)dev;
-    private_module_t* m = reinterpret_cast<private_module_t*>(
-            dev->common.module);
-    if (m->remoter_socket != -1) {
-        struct remoter_request_packet pkt;
-        remoter_request_packet_init(&pkt, REMOTER_OP_FB_UPDATE_RECT, 0);
-        pkt.params.fb_update_rect_params.left = l;
-        pkt.params.fb_update_rect_params.top = t;
-        pkt.params.fb_update_rect_params.width = w;
-        pkt.params.fb_update_rect_params.height = h;
-        if (write(m->remoter_socket, &pkt, sizeof(pkt)) < 0) {
-            ALOGE("Remoter socket write failed (%s)", strerror(errno));
-        }
-    } else
-        ALOGW("Remoter socket not connected!");
-    return 0;
-}
-
-static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer)
-{
-    if (private_handle_t::validate(buffer) < 0)
-        return -EINVAL;
-
-    fb_context_t* ctx = (fb_context_t*)dev;
-
-    private_handle_t const* hnd = reinterpret_cast<private_handle_t const*>(buffer);
-    private_module_t* m = reinterpret_cast<private_module_t*>(
-            dev->common.module);
-
-    if (hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER) {
-        const size_t offset = uintptr_t(hnd->base) - uintptr_t(m->framebuffer->base);
-        m->info.yoffset = offset / m->finfo.line_length;
-        if (m->remoter_socket != -1) {
-            struct remoter_request_packet pkt;
-            remoter_request_packet_init(&pkt, REMOTER_OP_FB_POST, 0);
-            pkt.params.fb_post_params.y_offset  = m->info.yoffset;
-            if (write(m->remoter_socket, &pkt, sizeof(pkt)) < 0) {
-                ALOGE("Remoter socket write failed (%s)", strerror(errno));
-            }
-        } else
-            ALOGW("Remoter socket not connected!");
-        m->currentBuffer = buffer;
-    } else {
-        // If we can't do the page_flip, just copy the buffer to the front 
-        // FIXME: use copybit HAL instead of memcpy
-        
-        void* fb_vaddr;
-        void* buffer_vaddr;
-        
-        m->base.lock(&m->base, m->framebuffer, 
-                GRALLOC_USAGE_SW_WRITE_RARELY, 
-                0, 0, m->info.xres, m->info.yres,
-                &fb_vaddr);
-
-        m->base.lock(&m->base, buffer, 
-                GRALLOC_USAGE_SW_READ_RARELY, 
-                0, 0, m->info.xres, m->info.yres,
-                &buffer_vaddr);
-
-        memcpy(fb_vaddr, buffer_vaddr, m->finfo.line_length * m->info.yres);
-        
-        m->base.unlock(&m->base, buffer); 
-        m->base.unlock(&m->base, m->framebuffer); 
-    }
-    
-    return 0;
-}
-
-int wait_for_remoter() {
-    char prop_value[PROP_VALUE_MAX];
-    const char* prop_name = "ro.remoter_ready";
-    int retries = (60 * 5);
-
-    ALOGI("wait_for_remoter():");
-    while(retries--) {
-        if (property_get(prop_name, prop_value, NULL) <= 0) {
-            sleep(1);
-            continue;
-        } else {
-            ALOGI("wait_for_remoter(): Remoter ready");
-            break;
-        }
-    }
-    if (!retries) {
-        ALOGE("Timed out waiting for remoter");
-        return -1;
-    }
-    return 0;
-}
-
-/*****************************************************************************/
-int mapUserspaceFrameBufferLocked(struct private_module_t* module)
-{
-    if (module->framebuffer) {
-        return 0;
-    }
-
-    if (wait_for_remoter()) {
-        ALOGE("Remoter not available");
-        return -ENOENT;
-    }
-
-    int fd;
-    if ((fd = open(GceFrameBufferConfig::kFrameBufferPath, O_RDWR, 0)) < 0) {
-      ALOGE("Failed to open '%s' (%s)",
-            GceFrameBufferConfig::kFrameBufferPath, strerror(errno));
-      return -errno;
-    }
-
-    struct fb_fix_screeninfo finfo;
-    struct fb_var_screeninfo info;
-    memset(&info, 0, sizeof(info));
-
-    const GceFrameBufferConfig* config = GceFrameBufferConfig::getInstance();
-
-    info.xres = config->x_res();
-    info.yres = config->y_res();
-    info.bits_per_pixel = config->bits_per_pixel();
-
-    info.red.offset = GceFrameBufferConfig::kRedShift;
-    info.red.length = GceFrameBufferConfig::kRedBits;
-    info.green.offset = GceFrameBufferConfig::kGreenShift;
-    info.green.length = GceFrameBufferConfig::kGreenBits;
-    info.blue.offset = GceFrameBufferConfig::kBlueShift;
-    info.blue.length = GceFrameBufferConfig::kBlueBits;
-    info.xres_virtual = info.xres;
-    info.yres_virtual = config->y_res_virtual();
-    info.xoffset = 0;
-    info.yoffset = 0;
-    info.pixclock = 0;
-    info.vmode = FB_VMODE_NONINTERLACED;
-    info.width  = ((info.xres * 25.4f) / config->dpi() + 0.5f);
-    info.height = ((info.yres * 25.4f) / config->dpi() + 0.5f);
-
-    memset(&finfo, 0, sizeof(finfo));
-    strcpy(finfo.id, "Userspace FB");
-    finfo.type = FB_TYPE_PACKED_PIXELS;
-    finfo.line_length = info.xres * (info.bits_per_pixel / 8);
-    finfo.accel = FB_ACCEL_NONE;
-
-    module->flags = PAGE_FLIP;
-    module->info = info;
-    module->finfo = finfo;
-    module->xdpi = (info.xres * 25.4f) / info.width;
-    module->ydpi = (info.yres * 25.4f) / info.height;
-    module->fps = (60 * 1000) / 1000.0f;
-
-    /*
-     * map the framebuffer
-     */
-
-    size_t fbSize = roundUpToPageSize(finfo.line_length * info.yres_virtual);
-    module->framebuffer = new private_handle_t(
-        dup(fd), fbSize,
-        config->hal_format(), config->x_res(), config->y_res(), 0);
-    module->numBuffers = info.yres_virtual / info.yres;
-    module->bufferMask = 0;
-
-    void* vaddr = mmap(0, fbSize, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-    if (vaddr == MAP_FAILED) {
-        ALOGE("Error mapping the framebuffer (%s)", strerror(errno));
-        return -errno;
-    }
-    module->framebuffer->base = vaddr;
-    memset(vaddr, 0, fbSize);
-
-    // Connect to the remoter so we can notify it of posted buffers and updated
-    // regions.
-    if ((module->remoter_socket = socket_local_client(
-        "remoter", ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM)) < 0) {
-        ALOGE("Error connecting to remoter (%s)", strerror(errno));
-        return -errno;
-    }
-    
-    return 0;
-}
-
-static int mapUserspaceFrameBuffer(struct private_module_t* module)
-{
-    pthread_mutex_lock(&module->lock);
-    int err = mapUserspaceFrameBufferLocked(module);
-    pthread_mutex_unlock(&module->lock);
-    return err;
-}
-
-
-/*****************************************************************************/
-
-static int fb_close(struct hw_device_t *dev)
-{
-    fb_context_t* ctx = (fb_context_t*)dev;
-    if (ctx) {
-        free(ctx);
-    }
-    return 0;
-}
-
-int fb_device_open(hw_module_t const* module, const char* name,
-        hw_device_t** device)
-{
-    int status = -EINVAL;
-    if (!strcmp(name, GRALLOC_HARDWARE_FB0)) {
-        char prop_value[PATH_MAX];
-        /* initialize our state here */
-        fb_context_t *dev = (fb_context_t*)malloc(sizeof(*dev));
-        memset(dev, 0, sizeof(*dev));
-
-        /* initialize the procs */
-        dev->device.common.tag = HARDWARE_DEVICE_TAG;
-        dev->device.common.version = 0;
-        dev->device.common.module = const_cast<hw_module_t*>(module);
-        dev->device.common.close = fb_close;
-        dev->device.setSwapInterval = fb_setSwapInterval;
-        dev->device.post            = fb_post;
-        dev->device.setUpdateRect   = fb_setUpdateRect;
-
-        private_module_t* m = (private_module_t*)module;
-
-        status = mapUserspaceFrameBuffer(m);
-
-        if (status >= 0) {
-            int stride = m->finfo.line_length / (m->info.bits_per_pixel >> 3);
-            int format =
-                GceFrameBufferConfig::getInstance()->hal_format();
-            const_cast<uint32_t&>(dev->device.flags) = 0;
-            const_cast<uint32_t&>(dev->device.width) = m->info.xres;
-            const_cast<uint32_t&>(dev->device.height) = m->info.yres;
-            const_cast<int&>(dev->device.stride) = stride;
-            const_cast<int&>(dev->device.format) = format;
-            const_cast<float&>(dev->device.xdpi) = m->xdpi;
-            const_cast<float&>(dev->device.ydpi) = m->ydpi;
-            const_cast<float&>(dev->device.fps) = m->fps;
-            const_cast<int&>(dev->device.minSwapInterval) = 1;
-            const_cast<int&>(dev->device.maxSwapInterval) = 1;
-            *device = &dev->device.common;
-        }
-    }
-    return status;
-}
diff --git a/src/gralloc/gr.h b/src/gralloc/gr.h
deleted file mode 100644
index 7e9b5ff..0000000
--- a/src/gralloc/gr.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2008 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.
- */
-
-#ifndef GR_H_
-#define GR_H_
-
-#include <stdint.h>
-#include <limits.h>
-#include <sys/cdefs.h>
-#include <hardware/gralloc.h>
-#include <pthread.h>
-#include <errno.h>
-
-#include <cutils/native_handle.h>
-
-/*****************************************************************************/
-
-struct private_module_t;
-struct private_handle_t;
-
-inline size_t roundUpToPageSize(size_t x) {
-    return (x + (PAGE_SIZE-1)) & ~(PAGE_SIZE-1);
-}
-
-int mapUserspaceFrameBufferLocked(struct private_module_t* module);
-int terminateBuffer(gralloc_module_t const* module, private_handle_t* hnd);
-int mapBuffer(gralloc_module_t const* module, private_handle_t* hnd);
-
-/*****************************************************************************/
-
-class Locker {
-    pthread_mutex_t mutex;
-public:
-    class Autolock {
-        Locker& locker;
-    public:
-        inline Autolock(Locker& locker) : locker(locker) {  locker.lock(); }
-        inline ~Autolock() { locker.unlock(); }
-    };
-    inline Locker()        { pthread_mutex_init(&mutex, 0); }
-    inline ~Locker()       { pthread_mutex_destroy(&mutex); }
-    inline void lock()     { pthread_mutex_lock(&mutex); }
-    inline void unlock()   { pthread_mutex_unlock(&mutex); }
-};
-
-#endif /* GR_H_ */
diff --git a/src/gralloc/gralloc.cpp b/src/gralloc/gralloc.cpp
deleted file mode 100644
index fd65822..0000000
--- a/src/gralloc/gralloc.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (C) 2008 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 <limits.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-
-#include <cutils/ashmem.h>
-#include <cutils/log.h>
-#include <cutils/atomic.h>
-#include <utils/String8.h>
-
-#include <hardware/hardware.h>
-#include <hardware/gralloc.h>
-
-#include <api_level_fixes.h>
-
-#include "GceFrameBufferConfig.h"
-#include "gralloc_priv.h"
-#include "gr.h"
-
-/*****************************************************************************/
-
-struct gralloc_context_t {
-  alloc_device_t  device;
-  /* our private data here */
-};
-
-static int gralloc_alloc_buffer(
-    alloc_device_t* dev, int format, int w, int h,
-    buffer_handle_t* pHandle, int* pStrideInPixels);
-
-/*****************************************************************************/
-
-static int gralloc_device_open(
-    const hw_module_t* module, const char* name, hw_device_t** device);
-
-
-/*****************************************************************************/
-
-static struct hw_module_methods_t gralloc_module_methods = {
-  .open = gralloc_device_open
-};
-
-struct private_module_t HAL_MODULE_INFO_SYM = {
-  .base = {
-    .common = {
-      .tag = HARDWARE_MODULE_TAG,
-      .version_major = 1,
-      .version_minor = 0,
-#ifdef GCE_CONVERTING_GRALLOC
-      .id = "converting_gralloc",
-#else
-      .id = GRALLOC_HARDWARE_MODULE_ID,
-#endif
-      .name = "GCE X86 Graphics Memory Allocator Module",
-      .author = "The Android Open Source Project",
-      .methods = &gralloc_module_methods
-    },
-    .registerBuffer = gralloc_register_buffer,
-    .unregisterBuffer = gralloc_unregister_buffer,
-#ifdef GCE_CONVERTING_GRALLOC
-    .lock = gralloc_converting_lock,
-    .unlock = gralloc_converting_unlock,
-#else
-    .lock = gralloc_lock,
-    .unlock = gralloc_unlock,
-#endif
-    },
-  .framebuffer = 0,
-  .remoter_socket = -1,
-  .flags = 0,
-  .numBuffers = 0,
-  .bufferMask = 0,
-  .lock = PTHREAD_MUTEX_INITIALIZER,
-  .currentBuffer = 0,
-};
-
-/*****************************************************************************/
-
-static int gralloc_alloc_framebuffer_locked(
-    alloc_device_t* dev,
-    buffer_handle_t* pHandle, int* pStrideInPixels) {
-  static const GceFrameBufferConfig* config =
-      GceFrameBufferConfig::getInstance();
-
-  private_module_t* m = reinterpret_cast<private_module_t*>(
-      dev->common.module);
-  // allocate the framebuffer
-  if (m->framebuffer == NULL) {
-    // The framebuffer is mapped once and forever.
-    int err = mapUserspaceFrameBufferLocked(m);
-    if (err < 0) {
-      ALOGE("Failed to map framebuffer (%d)", errno);
-      return err;
-    }
-  }
-
-  const uint32_t bufferMask = m->bufferMask;
-  const uint32_t numBuffers = m->numBuffers;
-  const size_t bufferSize = m->finfo.line_length * m->info.yres;
-  if (numBuffers == 1) {
-    // If we have only one buffer, we never use page-flipping. Instead,
-    // we return a regular buffer which will be memcpy'ed to the main
-    // screen when post is called.
-    return gralloc_alloc_buffer(
-        dev, config->hal_format(), config->x_res(), config->y_res(),
-        pHandle, pStrideInPixels);
-  }
-
-  if (bufferMask >= ((1LU<<numBuffers)-1)) {
-    // We ran out of buffers.
-    return -ENOMEM;
-  }
-
-  // create a "fake" handles for it
-  intptr_t vaddr = intptr_t(m->framebuffer->base);
-  private_handle_t* hnd = new private_handle_t(
-      dup(m->framebuffer->fd), bufferSize,
-      config->hal_format(), config->x_res(), config->y_res(),
-      private_handle_t::PRIV_FLAGS_FRAMEBUFFER);
-
-  // find a free slot
-  for (uint32_t i=0 ; i<numBuffers ; i++) {
-    if ((bufferMask & (1LU << i)) == 0) {
-      m->bufferMask |= (1LU << i);
-      break;
-    }
-    vaddr += bufferSize;
-  }
-
-  hnd->base = reinterpret_cast<void*>(vaddr);
-  hnd->frame_offset = vaddr - intptr_t(m->framebuffer->base);
-  *pHandle = hnd;
-  *pStrideInPixels = config->line_length() / (config->bits_per_pixel() / 8);
-
-  return 0;
-}
-
-static int gralloc_alloc_framebuffer(
-    alloc_device_t* dev,
-    buffer_handle_t* pHandle, int* pStrideInPixels) {
-  private_module_t* m = reinterpret_cast<private_module_t*>(
-      dev->common.module);
-  pthread_mutex_lock(&m->lock);
-  int err = gralloc_alloc_framebuffer_locked(dev, pHandle, pStrideInPixels);
-  pthread_mutex_unlock(&m->lock);
-  return err;
-}
-
-static int gralloc_alloc_buffer(
-    alloc_device_t* dev, int format, int w, int h,
-    buffer_handle_t* pHandle, int* pStrideInPixels) {
-  int err = 0;
-  int fd = -1;
-  static int sequence = 0;
-
-  int bytes_per_pixel = formatToBytesPerPixel(format);
-  int bytes_per_line = GceFrameBufferConfig::align(bytes_per_pixel * w);
-  int size = GceFrameBufferConfig::align(sizeof(gralloc_buffer_control_t));
-  int primary_offset = size;
-  size = roundUpToPageSize(size + bytes_per_line * h);
-  size += PAGE_SIZE;
-  int secondary_offset = 0;
-  if (bytes_per_pixel != 4) {
-    secondary_offset = size;
-    size += roundUpToPageSize(GceFrameBufferConfig::align(4 * w) * h);
-    size += PAGE_SIZE;
-  }
-
-  fd = ashmem_create_region(
-      android::String8::format(
-          "gralloc-%d.%d", getpid(), sequence++).string(),
-      size);
-  if (fd < 0) {
-    ALOGE("couldn't create ashmem (%s)", strerror(-errno));
-    err = -errno;
-  }
-
-  if (err == 0) {
-    private_handle_t* hnd = new private_handle_t(fd, size, format, w, h, 0);
-    hnd->primary_offset = primary_offset;
-    hnd->secondary_offset = secondary_offset;
-    gralloc_module_t* module = reinterpret_cast<gralloc_module_t*>(
-        dev->common.module);
-    err = mapBuffer(module, hnd);
-    if (err == 0) {
-      reinterpret_cast<gralloc_buffer_control_t*>(hnd->base)->last_locked =
-          gralloc_buffer_control_t::PRIMARY;
-      *pHandle = hnd;
-      *pStrideInPixels = bytes_per_line / bytes_per_pixel;
-    }
-  }
-
-  ALOGE_IF(err, "gralloc failed err=%s", strerror(-err));
-
-  return err;
-}
-
-/*****************************************************************************/
-
-static int gralloc_alloc(
-    alloc_device_t* dev, int w, int h, int format, int usage,
-    buffer_handle_t* pHandle, int* pStrideInPixels) {
-  if (!pHandle || !pStrideInPixels)
-    return -EINVAL;
-
-  int err;
-  if (usage & GRALLOC_USAGE_HW_FB) {
-    err = gralloc_alloc_framebuffer(dev, pHandle, pStrideInPixels);
-  } else {
-    err = gralloc_alloc_buffer(dev, format, w, h, pHandle, pStrideInPixels);
-  }
-
-  if (err < 0) {
-    return err;
-  }
-  return 0;
-}
-
-static int gralloc_free(alloc_device_t* dev,
-        buffer_handle_t handle) {
-  if (private_handle_t::validate(handle) < 0)
-    return -EINVAL;
-
-  private_handle_t const* hnd = reinterpret_cast<private_handle_t const*>(handle);
-  if (hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER) {
-    // free this buffer
-    private_module_t* m = reinterpret_cast<private_module_t*>(
-        dev->common.module);
-    const size_t bufferSize = m->finfo.line_length * m->info.yres;
-    int index = (uintptr_t(hnd->base) - uintptr_t(m->framebuffer->base)) / bufferSize;
-    m->bufferMask &= ~(1 << index);
-  } else {
-    gralloc_module_t* module = reinterpret_cast<gralloc_module_t*>(
-        dev->common.module);
-    terminateBuffer(module, const_cast<private_handle_t*>(hnd));
-  }
-
-  close(hnd->fd);
-  delete hnd;
-  return 0;
-}
-
-/*****************************************************************************/
-
-static int gralloc_close(struct hw_device_t *dev) {
-  gralloc_context_t* ctx = reinterpret_cast<gralloc_context_t*>(dev);
-  if (ctx) {
-    /* TODO: keep a list of all buffer_handle_t created, and free them
-     * all here.
-     */
-    free(ctx);
-  }
-  return 0;
-}
-
-int gralloc_device_open(const hw_module_t* module, const char* name,
-        hw_device_t** device) {
-  int status = -EINVAL;
-  if (!strcmp(name, GRALLOC_HARDWARE_GPU0)) {
-    gralloc_context_t *dev;
-    dev = (gralloc_context_t*)malloc(sizeof(*dev));
-
-    /* initialize our state here */
-    memset(dev, 0, sizeof(*dev));
-
-    /* initialize the procs */
-    dev->device.common.tag = HARDWARE_DEVICE_TAG;
-    dev->device.common.version = 0;
-    dev->device.common.module = const_cast<hw_module_t*>(module);
-    dev->device.common.close = gralloc_close;
-
-    dev->device.alloc   = gralloc_alloc;
-    dev->device.free    = gralloc_free;
-
-    *device = &dev->device.common;
-    status = 0;
-  } else {
-    status = fb_device_open(module, name, device);
-  }
-  return status;
-}
diff --git a/src/gralloc/mapper.cpp b/src/gralloc/mapper.cpp
deleted file mode 100644
index 4e74947..0000000
--- a/src/gralloc/mapper.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2008 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 <limits.h>
-#include <errno.h>
-#include <pthread.h>
-#include <unistd.h>
-#include <string.h>
-
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include <cutils/log.h>
-#include <cutils/atomic.h>
-
-#include <utils/ashmem.h>
-
-#include <hardware/hardware.h>
-#include <hardware/gralloc.h>
-#include <system/graphics.h>
-
-#include <libyuv/convert_argb.h>
-#include <libyuv/convert_from.h>
-
-#include "GceFrameBufferConfig.h"
-
-#include "gralloc_priv.h"
-
-
-/* desktop Linux needs a little help with gettid() */
-#if defined(ARCH_X86) && !defined(HAVE_ANDROID_OS)
-#define __KERNEL__
-# include <linux/unistd.h>
-pid_t gettid() { return syscall(__NR_gettid);}
-#undef __KERNEL__
-#endif
-
-static const char* buffer_name(
-    private_handle_t* hnd, char output[ASHMEM_NAME_LEN]) {
-  output[0] = '\0';
-  if (!hnd) {
-    ALOGE("Attempted to log gralloc name hnd=NULL");
-    return output;
-  }
-  if (hnd->fd == -1) {
-    ALOGE("Attempted to log gralloc name hnd=%p with fd == -1", hnd);
-    return output;
-  }
-  int rval = ioctl(hnd->fd, ASHMEM_GET_NAME, output);
-  if (rval == -1) {
-    ALOGE("ASHMEM_GET_NAME failed, hnd=%p fd=%d (%s)", hnd, hnd->fd,
-        strerror(errno));
-  }
-  return output;
-}
-
-/*****************************************************************************/
-
-static int gralloc_map(gralloc_module_t const* /*module*/,
-        buffer_handle_t handle,
-        void** vaddr) {
-  char name_buf[ASHMEM_NAME_LEN];
-  private_handle_t* hnd = (private_handle_t*)handle;
-  if (!(hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER)) {
-    size_t size = hnd->total_size;
-    void* mappedAddress = mmap(
-        0, size, PROT_READ|PROT_WRITE, MAP_SHARED, hnd->fd, 0);
-    if (mappedAddress == MAP_FAILED) {
-      ALOGE("Could not mmap %s", strerror(errno));
-      return -errno;
-    }
-    // Set up the guard pages. The last page is always a guard
-    uintptr_t base = uintptr_t(mappedAddress);
-    uintptr_t addr = base + hnd->total_size - PAGE_SIZE;
-    if (mprotect((void*)addr, PAGE_SIZE, PROT_NONE) == -1) {
-      ALOGE("mprotect base=%p, pg=%p failed (%s)",
-            (void*)base, (void*)addr, strerror(errno));
-    }
-    // If we have a secondary buffer, then the page before it is also
-    // a guard page.
-    if (hnd->secondary_offset) {
-      addr = base + hnd->secondary_offset - PAGE_SIZE;
-      if (mprotect((void*)addr, PAGE_SIZE, PROT_NONE) == -1) {
-        ALOGE("mprotect base=%p, sec_pg=%p failed (%s)",
-              (void*)base, (void*)addr, strerror(errno));
-      }
-    }
-    hnd->base = reinterpret_cast<void*>(
-        uintptr_t(mappedAddress) + hnd->frame_offset);
-    ALOGI("Mapped %s hnd=%p fd=%d base=%p", buffer_name(hnd, name_buf), hnd,
-          hnd->fd, hnd->base);
-    ALOGI("... %s format=%d width=%d height=%d", name_buf, hnd->format,
-          hnd->x_res, hnd->y_res);
-    //ALOGD("gralloc_map() succeeded fd=%d, off=%d, size=%d, vaddr=%p",
-    //        hnd->fd, hnd->offset, hnd->size, mappedAddress);
-  } else {
-    ALOGI("Mapped framebuffer hnd=%p base=%p", hnd, hnd->base);
-  }
-  *vaddr = (void*)hnd->base;
-  return 0;
-}
-
-static int gralloc_unmap(gralloc_module_t const* /*module*/,
-        buffer_handle_t handle) {
-  char name_buf[ASHMEM_NAME_LEN];
-
-  private_handle_t* hnd = (private_handle_t*)handle;
-  if (!(hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER)) {
-    ALOGI("Unmapped %s hnd=%p fd=%d base=%p", buffer_name(hnd, name_buf), hnd,
-          hnd->fd, hnd->base);
-    if (munmap(hnd->base, hnd->total_size) < 0) {
-      ALOGE("Could not unmap %s", strerror(errno));
-    }
-  }
-  hnd->base = 0;
-  return 0;
-}
-
-/*****************************************************************************/
-
-int gralloc_register_buffer(gralloc_module_t const* module,
-        buffer_handle_t handle) {
-  char name_buf[ASHMEM_NAME_LEN];
-
-  if (private_handle_t::validate(handle) < 0)
-    return -EINVAL;
-
-  // *** WARNING WARNING WARNING ***
-  //
-  // If a buffer handle is passed from the process that allocated it to a
-  // different process, and then back to the allocator process, we will
-  // create a second mapping of the buffer. If the process reads and writes
-  // through both mappings, normal memory ordering guarantees may be
-  // violated, depending on the processor cache implementation*.
-  //
-  // If you are deriving a new gralloc implementation from this code, don't
-  // do this. A "real" gralloc should provide a single reference-counted
-  // mapping for each buffer in a process.
-  //
-  // In the current system, there is one case that needs a buffer to be
-  // registered in the same process that allocated it. The SurfaceFlinger
-  // process acts as the IGraphicBufferAlloc Binder provider, so all gralloc
-  // allocations happen in its process. After returning the buffer handle to
-  // the IGraphicBufferAlloc client, SurfaceFlinger free's its handle to the
-  // buffer (unmapping it from the SurfaceFlinger process). If
-  // SurfaceFlinger later acts as the producer end of the buffer queue the
-  // buffer belongs to, it will get a new handle to the buffer in response
-  // to IGraphicBufferProducer::requestBuffer(). Like any buffer handle
-  // received through Binder, the SurfaceFlinger process will register it.
-  // Since it already freed its original handle, it will only end up with
-  // one mapping to the buffer and there will be no problem.
-  //
-  // Currently SurfaceFlinger only acts as a buffer producer for a remote
-  // consumer when taking screenshots and when using virtual displays.
-  //
-  // Eventually, each application should be allowed to make its own gralloc
-  // allocations, solving the problem. Also, this ashmem-based gralloc
-  // should go away, replaced with a real ion-based gralloc.
-  //
-  // * Specifically, associative virtually-indexed caches are likely to have
-  //   problems. Most modern L1 caches fit that description.
-
-  private_handle_t* hnd = (private_handle_t*)handle;
-   ALOGI("Registered %s hnd=%p fd=%d", buffer_name(hnd, name_buf), hnd,
-          hnd->fd);
-   ALOGD_IF(hnd->allocating_pid == getpid(),
-           "Registering a buffer in the process that created it. "
-           "This may cause memory ordering problems.");
-
-  void *vaddr;
-  return gralloc_map(module, handle, &vaddr);
-}
-
-int gralloc_unregister_buffer(gralloc_module_t const* module,
-        buffer_handle_t handle) {
-  char name_buf[ASHMEM_NAME_LEN];
-
-  if (private_handle_t::validate(handle) < 0)
-    return -EINVAL;
-
-  private_handle_t* hnd = (private_handle_t*)handle;
-  ALOGI("Unregistered %s hnd=%p fd=%d", buffer_name(hnd, name_buf), hnd,
-        hnd->fd);
-  if (hnd->base)
-    gralloc_unmap(module, handle);
-
-  return 0;
-}
-
-int mapBuffer(gralloc_module_t const* module,
-        private_handle_t* hnd) {
-  void* vaddr;
-  return gralloc_map(module, hnd, &vaddr);
-}
-
-int terminateBuffer(gralloc_module_t const* module,
-        private_handle_t* hnd) {
-  if (hnd->base) {
-    // this buffer was mapped, unmap it now
-    gralloc_unmap(module, hnd);
-  }
-
-  return 0;
-}
-
-#ifdef GCE_CONVERTING_GRALLOC
-int gralloc_converting_lock(
-    gralloc_module_t const* module, buffer_handle_t handle, int usage,
-    int l, int t, int w, int h, void** vaddr) {
-  char name_buf[ASHMEM_NAME_LEN];
-
-  if (private_handle_t::validate(handle) < 0) {
-    return -EINVAL;
-  }
-
-  private_handle_t* hnd = (private_handle_t*)handle;
-  buffer_name(hnd, name_buf);
-  gralloc_buffer_control_t* control = NULL;
-  if (hnd->primary_offset) {
-    control = reinterpret_cast<gralloc_buffer_control_t*>(hnd->base);
-  }
-  unsigned char* primary_buffer = reinterpret_cast<unsigned char*>(
-      uintptr_t(hnd->base) + hnd->primary_offset);
-  unsigned char* secondary_buffer = hnd->secondary_offset ?
-      reinterpret_cast<unsigned char*>(
-          uintptr_t(hnd->base) + hnd->secondary_offset) : primary_buffer;
-
-  if (hnd->format == HAL_PIXEL_FORMAT_RGB_565) {
-    if (control &&
-        (control->last_locked == gralloc_buffer_control_t::PRIMARY)) {
-      ALOGI("Converting RGB16 to RGB32 %s", name_buf);
-      libyuv::RGB565ToARGB(
-          primary_buffer,  GceFrameBufferConfig::align(hnd->x_res * 2),
-          secondary_buffer, GceFrameBufferConfig::align(hnd->x_res * 4),
-          hnd->x_res, hnd->y_res);
-      control->last_locked = gralloc_buffer_control_t::SECONDARY;
-    } else {
-      ALOGE("Can't convert: RGB16, but no control structure %s", name_buf);
-    }
-    *vaddr = secondary_buffer;
-  } else {
-    *vaddr = primary_buffer;
-  }
-  ALOGI("Locking buffer %s hnd=%p secondary=%d at=%p",
-        name_buf, hnd, (control ? control->last_locked : 0), *vaddr);
-  return 0;
-}
-
-int gralloc_converting_unlock(gralloc_module_t const* module,
-        buffer_handle_t handle) {
-  if (private_handle_t::validate(handle) < 0)
-    return -EINVAL;
-  return 0;
-}
-#else
-int gralloc_lock(gralloc_module_t const* /*module*/,
-        buffer_handle_t handle, int /*usage*/,
-        int /*l*/, int /*t*/, int /*w*/, int /*h*/,
-        void** vaddr) {
-  char name_buf[ASHMEM_NAME_LEN];
-  // this is called when a buffer is being locked for software
-  // access. in thin implementation we have nothing to do since
-  // not synchronization with the h/w is needed.
-  // typically this is used to wait for the h/w to finish with
-  // this buffer if relevant. the data cache may need to be
-  // flushed or invalidated depending on the usage bits and the
-  // hardware.
-
-  if (private_handle_t::validate(handle) < 0)
-    return -EINVAL;
-
-  private_handle_t* hnd = (private_handle_t*)handle;
-  buffer_name(hnd, name_buf);
-  gralloc_buffer_control_t* control = NULL;
-  if (hnd->primary_offset) {
-    control = reinterpret_cast<gralloc_buffer_control_t*>(hnd->base);
-  }
-  unsigned char* primary_buffer = reinterpret_cast<unsigned char*>(
-      uintptr_t(hnd->base) + hnd->primary_offset);
-  unsigned char* secondary_buffer = hnd->secondary_offset ?
-      reinterpret_cast<unsigned char*>(
-          uintptr_t(hnd->base) + hnd->secondary_offset) : primary_buffer;
-  if (control &&
-      (control->last_locked == gralloc_buffer_control_t::SECONDARY)) {
-    ALOGI("Converting RGB32 to RGB16 %s", name_buf);
-    libyuv::ARGBToRGB565(
-        secondary_buffer, GceFrameBufferConfig::align(hnd->x_res * 4),
-        primary_buffer, GceFrameBufferConfig::align(hnd->x_res * 2),
-        hnd->x_res, hnd->y_res);
-    control->last_locked = gralloc_buffer_control_t::PRIMARY;
-  }
-  *vaddr = primary_buffer;
-  return 0;
-}
-
-int gralloc_unlock(gralloc_module_t const* /*module*/,
-        buffer_handle_t handle) {
-  // we're done with a software buffer. nothing to do in this
-  // implementation. typically this is used to flush the data cache.
-
-  if (private_handle_t::validate(handle) < 0)
-    return -EINVAL;
-  return 0;
-}
-
-#endif