README.md
Rendering markdown...
#ifndef HWBINDER_H_
#define hwbinder_h_
#include "base.h"
#include "binder.h"
#include "uapi_binder.h"
#include "utils.h"
#define HWBINDER_DEVICE "/dev/hwbinder"
#define HWSERVICE_MANAGER "[email protected]::IServiceManager"
#define TOKEN_MANAGER "[email protected]::ITokenManager"
#define MOV_PTR(p, o) p += (o)
#define ALIGN_32(p) \
while (((uint64_t)p) % sizeof(uint32_t)){ p++; }
#define ALIGN_64(p) \
while(((unsigned long long)p) % sizeof(8)){ p++; }
typedef void * hidl_pointer;
typedef struct _hidl_string{
hidl_pointer buffer_;
uint32_t size_;
BOOL owns_buffer_;
}hidl_string, phidl_string;
typedef struct hidl_vec {
hidl_pointer buffer;
uint32_t size;
BOOL owns_buffer;
} hidl_vec;
typedef struct service_list {
struct service_list *next;
const char *service_name;
hidl_vec *token;
} service_list_t;
uint32_t find_hwservice(
PBINDER_INFO info,
hidl_string* name,
hidl_string* instance
);
uint32_t get_handle_by_token(
PBINDER_INFO info,
uint32_t tm,
hidl_vec* tk
);
BOOL create_token(
PBINDER_INFO info,
uint32_t tm,
uint32_t svc,
hidl_vec* tk
);
BOOL unregister_token(
PBINDER_INFO info,
uint32_t tm,
const hidl_vec* token
);
uint32_t get_token_manager(PBINDER_INFO info);
/* Create wrapper for hidl_strings. */
hidl_string *hidl_string_new(const char *str);
hidl_vec hidl_vec_new(BYTE* token, size_t size);
int hwbinder_open(PBINDER_INFO info, size_t mapsize);
#endif