Move minadb over to new API.
Change-Id: I889bcf2222245c7665287513669cae8831e37081
This commit is contained in:
parent
34c7731a0b
commit
4039933c62
2 changed files with 10 additions and 14 deletions
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue