Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4039933c authored by Elliott Hughes's avatar Elliott Hughes
Browse files

Move minadb over to new API.

Change-Id: I889bcf2222245c7665287513669cae8831e37081
parent 34c7731a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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)

@@ -31,6 +32,6 @@ LOCAL_SRC_FILES := fuse_adb_provider_test.cpp
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)
+8 −13
Original line number Diff line number Diff line
@@ -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;