Move minadb over to new API.

Change-Id: I889bcf2222245c7665287513669cae8831e37081
This commit is contained in:
Elliott Hughes 2015-05-01 17:07:44 -07:00
parent 34c7731a0b
commit 4039933c62
2 changed files with 10 additions and 14 deletions

View file

@ -20,6 +20,7 @@ LOCAL_CFLAGS := $(minadbd_cflags)
LOCAL_CONLY_FLAGS := -Wimplicit-function-declaration LOCAL_CONLY_FLAGS := -Wimplicit-function-declaration
LOCAL_C_INCLUDES := bootable/recovery system/core/adb LOCAL_C_INCLUDES := bootable/recovery system/core/adb
LOCAL_WHOLE_STATIC_LIBRARIES := libadbd LOCAL_WHOLE_STATIC_LIBRARIES := libadbd
LOCAL_STATIC_LIBRARIES := libbase
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)
@ -31,6 +32,6 @@ LOCAL_SRC_FILES := fuse_adb_provider_test.cpp
LOCAL_CFLAGS := $(minadbd_cflags) LOCAL_CFLAGS := $(minadbd_cflags)
LOCAL_C_INCLUDES := $(LOCAL_PATH) system/core/adb LOCAL_C_INCLUDES := $(LOCAL_PATH) system/core/adb
LOCAL_STATIC_LIBRARIES := libminadbd LOCAL_STATIC_LIBRARIES := libminadbd
LOCAL_SHARED_LIBRARIES := liblog LOCAL_SHARED_LIBRARIES := liblog libbase
include $(BUILD_NATIVE_TEST) include $(BUILD_NATIVE_TEST)

View file

@ -26,13 +26,10 @@
#include "fuse_adb_provider.h" #include "fuse_adb_provider.h"
#include "fuse_sideload.h" #include "fuse_sideload.h"
int read_block_adb(void* cookie, uint32_t block, uint8_t* buffer, int read_block_adb(void* data, uint32_t block, uint8_t* buffer, uint32_t fetch_size) {
uint32_t fetch_size) { adb_data* ad = reinterpret_cast<adb_data*>(data);
struct adb_data* ad = (struct adb_data*)cookie;
char buf[10]; if (!WriteFdFmt(ad->sfd, "%08u", block)) {
snprintf(buf, sizeof(buf), "%08u", block);
if (!WriteStringFully(ad->sfd, buf)) {
fprintf(stderr, "failed to write to adb host: %s\n", strerror(errno)); fprintf(stderr, "failed to write to adb host: %s\n", strerror(errno));
return -EIO; return -EIO;
} }
@ -45,20 +42,18 @@ int read_block_adb(void* cookie, uint32_t block, uint8_t* buffer,
return 0; return 0;
} }
static void close_adb(void* cookie) { static void close_adb(void* data) {
struct adb_data* ad = (struct adb_data*)cookie; adb_data* ad = reinterpret_cast<adb_data*>(data);
WriteFdExactly(ad->sfd, "DONEDONE");
WriteStringFully(ad->sfd, "DONEDONE");
} }
int run_adb_fuse(int sfd, uint64_t file_size, uint32_t block_size) { int run_adb_fuse(int sfd, uint64_t file_size, uint32_t block_size) {
struct adb_data ad; adb_data ad;
struct provider_vtab vtab;
ad.sfd = sfd; ad.sfd = sfd;
ad.file_size = file_size; ad.file_size = file_size;
ad.block_size = block_size; ad.block_size = block_size;
provider_vtab vtab;
vtab.read_block = read_block_adb; vtab.read_block = read_block_adb;
vtab.close = close_adb; vtab.close = close_adb;