update surfaceflinger, libui and libagl to the new gralloc api

- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.
- factor all the lock/unlock code in SurfaceBuffer.
- fixed "showupdate" so it works even when we don't have preserving eglSwapBuffers().
- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.
- make use of LightRefBase() where needed, instead of duplicating its implementation
- add LightRefBase::getStrongCount()
- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp

- disabled copybits test, since it clashes with the new gralloc api

- Camera/Video will be fixed later when we rework the overlay apis
diff --git a/libs/ui/BufferMapper.cpp b/libs/ui/BufferMapper.cpp
index 85a029b..1a75c5d 100644
--- a/libs/ui/BufferMapper.cpp
+++ b/libs/ui/BufferMapper.cpp
@@ -17,14 +17,9 @@
 #define LOG_TAG "BufferMapper"
 
 #include <stdint.h>
-#include <unistd.h>
-#include <fcntl.h>
 #include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 #include <utils/Errors.h>
-#include <utils/threads.h>
 #include <utils/Log.h>
 
 #include <ui/BufferMapper.h>
@@ -34,12 +29,6 @@
 
 #include <hardware/gralloc.h>
 
-// ---------------------------------------------------------------------------
-// enable mapping debugging
-#define DEBUG_MAPPINGS           0
-// never remove mappings from the list
-#define DEBUG_MAPPINGS_KEEP_ALL  0
-// ---------------------------------------------------------------------------
 
 namespace android {
 // ---------------------------------------------------------------------------
@@ -57,34 +46,27 @@
     }
 }
 
-status_t BufferMapper::map(buffer_handle_t handle, void** addr, const void* id)
+status_t BufferMapper::registerBuffer(buffer_handle_t handle)
 {
-    Mutex::Autolock _l(mLock);
-    status_t err = mAllocMod->map(mAllocMod, handle, addr);
-    LOGW_IF(err, "map(...) failed %d (%s)", err, strerror(-err));
-#if DEBUG_MAPPINGS
-    if (err == NO_ERROR)
-        logMapLocked(handle, id);
-#endif
+    status_t err = mAllocMod->registerBuffer(mAllocMod, handle);
+    LOGW_IF(err, "registerBuffer(%p) failed %d (%s)",
+            handle, err, strerror(-err));
     return err;
 }
 
-status_t BufferMapper::unmap(buffer_handle_t handle, const void* id)
+status_t BufferMapper::unregisterBuffer(buffer_handle_t handle)
 {
-    Mutex::Autolock _l(mLock);
-    status_t err = mAllocMod->unmap(mAllocMod, handle);
-    LOGW_IF(err, "unmap(...) failed %d (%s)", err, strerror(-err));
-#if DEBUG_MAPPINGS
-    if (err == NO_ERROR)
-        logUnmapLocked(handle, id);
-#endif
+    status_t err = mAllocMod->unregisterBuffer(mAllocMod, handle);
+    LOGW_IF(err, "unregisterBuffer(%p) failed %d (%s)",
+            handle, err, strerror(-err));
     return err;
 }
 
-status_t BufferMapper::lock(buffer_handle_t handle, int usage, const Rect& bounds)
+status_t BufferMapper::lock(buffer_handle_t handle, 
+        int usage, const Rect& bounds, void** vaddr)
 {
     status_t err = mAllocMod->lock(mAllocMod, handle, usage,
-            bounds.left, bounds.top, bounds.width(), bounds.height());
+            bounds.left, bounds.top, bounds.width(), bounds.height(), vaddr);
     LOGW_IF(err, "unlock(...) failed %d (%s)", err, strerror(-err));
     return err;
 }
@@ -96,65 +78,5 @@
     return err;
 }
 
-void BufferMapper::logMapLocked(buffer_handle_t handle, const void* id)
-{
-    CallStack stack;
-    stack.update(2);
-    
-    map_info_t info;
-    info.id = id;
-    info.stack = stack;
-    
-    ssize_t index = mMapInfo.indexOfKey(handle);
-    if (index >= 0) {
-        Vector<map_info_t>& infos = mMapInfo.editValueAt(index);
-        infos.add(info);
-    } else {
-        Vector<map_info_t> infos;
-        infos.add(info);
-        mMapInfo.add(handle, infos);
-    }
-}
-
-void BufferMapper::logUnmapLocked(buffer_handle_t handle, const void* id)
-{    
-    ssize_t index = mMapInfo.indexOfKey(handle);
-    if (index < 0) {
-        LOGE("unmapping %p which doesn't exist in our map!", handle);
-        return;
-    }
-    
-    Vector<map_info_t>& infos = mMapInfo.editValueAt(index);
-    ssize_t count = infos.size();
-    for (int i=0 ; i<count ; ) {
-        if (infos[i].id == id) {
-            infos.removeAt(i);
-            --count;
-        } else {
-            ++i;
-        }
-    }
-    if (count == 0) {
-        mMapInfo.removeItemsAt(index, 1);
-    }
-}
-
-void BufferMapper::dump(buffer_handle_t handle)
-{
-    Mutex::Autolock _l(mLock);
-    ssize_t index = mMapInfo.indexOfKey(handle);
-    if (index < 0) {
-        LOGD("handle %p is not mapped through BufferMapper", handle);
-        return;
-    }
-    
-    const Vector<map_info_t>& infos = mMapInfo.valueAt(index);
-    ssize_t count = infos.size();
-    for (int i=0 ; i<count ; i++) {
-        LOGD("#%d", i);
-        infos[i].stack.dump();
-    }
-}
-
 // ---------------------------------------------------------------------------
 }; // namespace android