summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-05-02 03:12:37 +0200
committerAndroid Git Automerger <android-git-automerger@android.com>2015-05-02 03:12:37 +0200
commitddc79a95375157bc011d2f902ad6c3de84e26ea8 (patch)
treee121a86fe799b6f6b96932cc6f76bdd81009f681
parentam ea874f8f: am c67e89ad: am 30cea3dc: Merge "Fix minadb_test build breakage." (diff)
parentam c0537d68: am 6bc2d538: Merge "Move minadb over to new API." (diff)
downloadandroid_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.tar
android_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.tar.gz
android_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.tar.bz2
android_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.tar.lz
android_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.tar.xz
android_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.tar.zst
android_bootable_recovery-ddc79a95375157bc011d2f902ad6c3de84e26ea8.zip
-rw-r--r--minadbd/Android.mk1
-rw-r--r--minadbd/fuse_adb_provider.cpp21
2 files changed, 9 insertions, 13 deletions
diff --git a/minadbd/Android.mk b/minadbd/Android.mk
index 083063be1..8398cefe4 100644
--- a/minadbd/Android.mk
+++ b/minadbd/Android.mk
@@ -20,6 +20,7 @@ LOCAL_CFLAGS := $(minadbd_cflags)
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)
diff --git a/minadbd/fuse_adb_provider.cpp b/minadbd/fuse_adb_provider.cpp
index 5da7fd76c..d71807dfb 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 @@ int read_block_adb(void* cookie, uint32_t block, uint8_t* buffer,
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;