Switch minadb over to C++.
Change-Id: I5afaf70caa590525627c676c88b445d3162de33e
diff --git a/adb_install.cpp b/adb_install.cpp
index 9e605e2..ebd4cac 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 dc2982c..dbfbcd5 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 <sys/cdefs.h>
+
+__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 c0b16ef..f9e3bf0 100644
--- a/fuse_sideload.h
+++ b/fuse_sideload.h
@@ -17,6 +17,10 @@
#ifndef __FUSE_SIDELOAD_H
#define __FUSE_SIDELOAD_H
+#include <sys/cdefs.h>
+
+__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 @@
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 52d3fa4..cbfd76e 100644
--- a/minadbd/Android.mk
+++ b/minadbd/Android.mk
@@ -11,9 +11,9 @@
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 b88ce49..9941709 100644
--- a/minadbd/fuse_adb_provider.h
+++ b/minadbd/fuse_adb_provider.h
@@ -19,10 +19,6 @@
#include <stdint.h>
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct adb_data {
int sfd; // file descriptor for the adb channel
@@ -30,12 +26,7 @@
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 85%
rename from minadbd/services.c
rename to minadbd/services.cpp
index 581d847..a832567 100644
--- a/minadbd/services.c
+++ b/minadbd/services.cpp
@@ -36,19 +36,16 @@
void *cookie;
};
-
-void *service_bootstrap_func(void *x)
-{
- stinfo *sti = x;
+void* service_bootstrap_func(void* x) {
+ stinfo* sti = reinterpret_cast<stinfo*>(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<char*>(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 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<stinfo*>(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 @@
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 43a42ea..75534e7 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;