From 20531ef60524e6205b1d9a6c12a8335c5d97e311 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Fri, 10 Apr 2015 13:59:19 -0700 Subject: [PATCH] Switch minadb over to C++. Change-Id: I5afaf70caa590525627c676c88b445d3162de33e --- adb_install.cpp | 2 -- fuse_sdcard_provider.h | 6 +++++ fuse_sideload.h | 6 +++++ minadbd/Android.mk | 6 ++--- minadbd/{adb_main.c => adb_main.cpp} | 0 ...e_adb_provider.c => fuse_adb_provider.cpp} | 0 minadbd/fuse_adb_provider.h | 11 +--------- minadbd/{services.c => services.cpp} | 22 +++++++------------ recovery.cpp | 2 -- 9 files changed, 24 insertions(+), 31 deletions(-) rename minadbd/{adb_main.c => adb_main.cpp} (100%) rename minadbd/{fuse_adb_provider.c => fuse_adb_provider.cpp} (100%) rename minadbd/{services.c => services.cpp} (86%) diff --git a/adb_install.cpp b/adb_install.cpp index 9e605e2d..ebd4cac0 100644 --- a/adb_install.cpp +++ b/adb_install.cpp @@ -30,10 +30,8 @@ #include "install.h" #include "common.h" #include "adb_install.h" -extern "C" { #include "minadbd/fuse_adb_provider.h" #include "fuse_sideload.h" -} static RecoveryUI* ui = NULL; diff --git a/fuse_sdcard_provider.h b/fuse_sdcard_provider.h index dc2982ca..dbfbcd52 100644 --- a/fuse_sdcard_provider.h +++ b/fuse_sdcard_provider.h @@ -17,7 +17,13 @@ #ifndef __FUSE_SDCARD_PROVIDER_H #define __FUSE_SDCARD_PROVIDER_H +#include + +__BEGIN_DECLS + void* start_sdcard_fuse(const char* path); void finish_sdcard_fuse(void* token); +__END_DECLS + #endif diff --git a/fuse_sideload.h b/fuse_sideload.h index c0b16efb..f9e3bf0d 100644 --- a/fuse_sideload.h +++ b/fuse_sideload.h @@ -17,6 +17,10 @@ #ifndef __FUSE_SIDELOAD_H #define __FUSE_SIDELOAD_H +#include + +__BEGIN_DECLS + // define the filenames created by the sideload FUSE filesystem #define FUSE_SIDELOAD_HOST_MOUNTPOINT "/sideload" #define FUSE_SIDELOAD_HOST_FILENAME "package.zip" @@ -35,4 +39,6 @@ struct provider_vtab { int run_fuse_sideload(struct provider_vtab* vtab, void* cookie, uint64_t file_size, uint32_t block_size); +__END_DECLS + #endif diff --git a/minadbd/Android.mk b/minadbd/Android.mk index 52d3fa4e..cbfd76e4 100644 --- a/minadbd/Android.mk +++ b/minadbd/Android.mk @@ -11,9 +11,9 @@ minadbd_cflags := \ include $(CLEAR_VARS) LOCAL_SRC_FILES := \ - adb_main.c \ - fuse_adb_provider.c \ - services.c \ + adb_main.cpp \ + fuse_adb_provider.cpp \ + services.cpp \ LOCAL_MODULE := libminadbd LOCAL_CFLAGS := $(minadbd_cflags) diff --git a/minadbd/adb_main.c b/minadbd/adb_main.cpp similarity index 100% rename from minadbd/adb_main.c rename to minadbd/adb_main.cpp diff --git a/minadbd/fuse_adb_provider.c b/minadbd/fuse_adb_provider.cpp similarity index 100% rename from minadbd/fuse_adb_provider.c rename to minadbd/fuse_adb_provider.cpp diff --git a/minadbd/fuse_adb_provider.h b/minadbd/fuse_adb_provider.h index b88ce497..9941709b 100644 --- a/minadbd/fuse_adb_provider.h +++ b/minadbd/fuse_adb_provider.h @@ -19,10 +19,6 @@ #include -#ifdef __cplusplus -extern "C" { -#endif - struct adb_data { int sfd; // file descriptor for the adb channel @@ -30,12 +26,7 @@ struct adb_data { uint32_t block_size; }; -int read_block_adb(void* cookie, uint32_t block, uint8_t* buffer, - uint32_t fetch_size); +int read_block_adb(void* cookie, uint32_t block, uint8_t* buffer, uint32_t fetch_size); int run_adb_fuse(int sfd, uint64_t file_size, uint32_t block_size); -#ifdef __cplusplus -} -#endif - #endif diff --git a/minadbd/services.c b/minadbd/services.cpp similarity index 86% rename from minadbd/services.c rename to minadbd/services.cpp index 581d847f..a8325679 100644 --- a/minadbd/services.c +++ b/minadbd/services.cpp @@ -36,19 +36,16 @@ struct stinfo { void *cookie; }; - -void *service_bootstrap_func(void *x) -{ - stinfo *sti = x; +void* service_bootstrap_func(void* x) { + stinfo* sti = reinterpret_cast(x); sti->func(sti->fd, sti->cookie); free(sti); return 0; } -static void sideload_host_service(int sfd, void* cookie) -{ +static void sideload_host_service(int sfd, void* cookie) { char* saveptr; - const char* s = adb_strtok_r(cookie, ":", &saveptr); + const char* s = adb_strtok_r(reinterpret_cast(cookie), ":", &saveptr); uint64_t file_size = strtoull(s, NULL, 10); s = adb_strtok_r(NULL, ":", &saveptr); uint32_t block_size = strtoul(s, NULL, 10); @@ -65,22 +62,20 @@ static void sideload_host_service(int sfd, void* cookie) static int create_service_thread(void (*func)(int, void *), void *cookie) { - stinfo *sti; - adb_thread_t t; int s[2]; - if(adb_socketpair(s)) { printf("cannot create service socket pair\n"); return -1; } - sti = malloc(sizeof(stinfo)); + stinfo* sti = reinterpret_cast(malloc(sizeof(stinfo))); if(sti == 0) fatal("cannot allocate stinfo"); sti->func = func; sti->cookie = cookie; sti->fd = s[1]; - if(adb_thread_create( &t, service_bootstrap_func, sti)){ + adb_thread_t t; + if (adb_thread_create( &t, service_bootstrap_func, sti)){ free(sti); adb_close(s[0]); adb_close(s[1]); @@ -92,8 +87,7 @@ static int create_service_thread(void (*func)(int, void *), void *cookie) return s[0]; } -int service_to_fd(const char *name) -{ +int service_to_fd(const char* name) { int ret = -1; if (!strncmp(name, "sideload:", 9)) { diff --git a/recovery.cpp b/recovery.cpp index 43a42eab..75534e74 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -43,11 +43,9 @@ #include "screen_ui.h" #include "device.h" #include "adb_install.h" -extern "C" { #include "adb.h" #include "fuse_sideload.h" #include "fuse_sdcard_provider.h" -} struct selabel_handle *sehandle;