Move minadb over to new API.

Change-Id: I889bcf2222245c7665287513669cae8831e37081
diff --git a/minadbd/Android.mk b/minadbd/Android.mk
index cbfd76e..8398cef 100644
--- a/minadbd/Android.mk
+++ b/minadbd/Android.mk
@@ -20,6 +20,7 @@
 LOCAL_CONLY_FLAGS := -Wimplicit-function-declaration
 LOCAL_C_INCLUDES := bootable/recovery system/core/adb
 LOCAL_WHOLE_STATIC_LIBRARIES := libadbd
+LOCAL_STATIC_LIBRARIES := libbase
 
 include $(BUILD_STATIC_LIBRARY)
 
@@ -31,6 +32,6 @@
 LOCAL_CFLAGS := $(minadbd_cflags)
 LOCAL_C_INCLUDES := $(LOCAL_PATH) system/core/adb
 LOCAL_STATIC_LIBRARIES := libminadbd
-LOCAL_SHARED_LIBRARIES := liblog
+LOCAL_SHARED_LIBRARIES := liblog libbase
 
 include $(BUILD_NATIVE_TEST)
diff --git a/minadbd/fuse_adb_provider.cpp b/minadbd/fuse_adb_provider.cpp
index 5da7fd7..d71807d 100644
--- a/minadbd/fuse_adb_provider.cpp
+++ b/minadbd/fuse_adb_provider.cpp
@@ -26,13 +26,10 @@
 #include "fuse_adb_provider.h"
 #include "fuse_sideload.h"
 
-int read_block_adb(void* cookie, uint32_t block, uint8_t* buffer,
-                   uint32_t fetch_size) {
-    struct adb_data* ad = (struct adb_data*)cookie;
+int read_block_adb(void* data, uint32_t block, uint8_t* buffer, uint32_t fetch_size) {
+    adb_data* ad = reinterpret_cast<adb_data*>(data);
 
-    char buf[10];
-    snprintf(buf, sizeof(buf), "%08u", block);
-    if (!WriteStringFully(ad->sfd, buf)) {
+    if (!WriteFdFmt(ad->sfd, "%08u", block)) {
         fprintf(stderr, "failed to write to adb host: %s\n", strerror(errno));
         return -EIO;
     }
@@ -45,20 +42,18 @@
     return 0;
 }
 
-static void close_adb(void* cookie) {
-    struct adb_data* ad = (struct adb_data*)cookie;
-
-    WriteStringFully(ad->sfd, "DONEDONE");
+static void close_adb(void* data) {
+    adb_data* ad = reinterpret_cast<adb_data*>(data);
+    WriteFdExactly(ad->sfd, "DONEDONE");
 }
 
 int run_adb_fuse(int sfd, uint64_t file_size, uint32_t block_size) {
-    struct adb_data ad;
-    struct provider_vtab vtab;
-
+    adb_data ad;
     ad.sfd = sfd;
     ad.file_size = file_size;
     ad.block_size = block_size;
 
+    provider_vtab vtab;
     vtab.read_block = read_block_adb;
     vtab.close = close_adb;