Merge "Move minadb over to new API."
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user