diff options
-rw-r--r-- | docs/filescan-utils.md | 32 | ||||
-rw-r--r-- | filescan-utils.c | 11 | ||||
-rw-r--r-- | filescan-utils.h | 42 |
3 files changed, 69 insertions, 16 deletions
diff --git a/docs/filescan-utils.md b/docs/filescan-utils.md index 4a4c2d2..d91ff1c 100644 --- a/docs/filescan-utils.md +++ b/docs/filescan-utils.md @@ -26,13 +26,37 @@ Scan a directory searching all files matching pattern: 'prefix*extention'. Returns a json_object array of object with 2 parts a 'fullpath' describing the fullpath to reach the file and 'filename' containing the matched files. -## char *GetBindingDirPath_(afb_api_t api) +## char *GetAFBRootDirPathUsingFd(int fd) -For binding with a version >= 3, get the root directory path. +Get the binder root directory path (the path specified with '--rootdir' option +at binder launch, if the option is not used, the path from where the binder +is launched) using binder root directory file descriptor. -* `api` : pointer to the AFB API. +* `fd` : Binder root directory file descriptor. -Returns a string representing the path to binding root directory. +Returns a string representing the path to binder root directory. + +## char *GetAFBRootDirPath(afb_api_t apiHandle) + +For binding with a version >= 3, same as 'GetAFBRootDirPathUsingFd' function, +but use pointer to the AFB API as parameter instead of +binder root directory file descriptor. + +* `apiHandle` : pointer to the AFB API. + +Returns a string representing the path to binder root directory. + +## char* GetBindingDirPath() + +For binding with a version <= 2, same as 'GetAFBRootDirPath' function, +but the pointer to the AFB API is not needed. +Kept for compatibility issues. + +## char* GetBindingDirPath(afb_api_t api) + +For binding with a version >= 3, same as 'GetAFBRootDirPath' function. +Deprecated, please use 'GetAFBRootDirPath' function. +Kept for compatibility issues. ## const char *getEnvDirList(const char *prefix, const char *suffix) diff --git a/filescan-utils.c b/filescan-utils.c index 6c6cf84..236e192 100644 --- a/filescan-utils.c +++ b/filescan-utils.c @@ -151,7 +151,7 @@ const char* GetBinderName() return binderName; } -char *GetBindingDirPath_(int fd) +char *GetAFBRootDirPathUsingFd(int fd) { // A file description should not be greater than 999.999.999 char fd_link[CONTROL_MAXPATH_LEN]; @@ -170,6 +170,15 @@ char *GetBindingDirPath_(int fd) return strndup(retdir, sizeof(retdir)); } +char *GetAFBRootDirPath(afb_api_t apiHandle) +{ + int fd; + + fd = afb_api_rootdir_get_fd(apiHandle); + + return GetAFBRootDirPathUsingFd(fd); +} + diff --git a/filescan-utils.h b/filescan-utils.h index d6c645f..f96d903 100644 --- a/filescan-utils.h +++ b/filescan-utils.h @@ -80,27 +80,47 @@ extern const char *GetBinderName(); extern json_object* ScanForConfig (const char* searchPath, CtlScanDirModeT mode, const char *prefix, const char *extension); /** - * @brief Get the Binding root directory file descriptor object + * @brief Get the Binder root directory path using root directory fd. * - * @param dynapi : Could be NULL if you don't use dynamic api + * @param fd : Binder root directory file descriptor. * - * @return char* string representing the path to binding root directory. + * @return char* string representing the path to the binder root directory. */ -extern char *GetBindingDirPath_(int fd); +extern char *GetAFBRootDirPathUsingFd(int fd); + +/** + * @brief Get the Binder root directory path using AFB API. + * + * @param apiHandle : pointer to the AFB API. + * + * @return char* string representing the path to binder root directory. + */ +extern char *GetAFBRootDirPath(afb_api_t apiHandle); + +/** + * For compatibility issues : + * 'GetBindingDirPath_' is linked to 'GetAFBRootDirPathUsingFd' + */ +#define GetBindingDirPath_ GetAFBRootDirPathUsingFd + +/** + * For compatibility issues : + * 'GetBindingDirPath' is linked to 'GetAFBRootDirPathUsingFd' +*/ #if(AFB_BINDING_VERSION == 2) -static inline char *GetBindingDirPath_v2() +static inline char *GetAFBRootDirPath_v2() { - return GetBindingDirPath_(afb_daemon_rootdir_get_fd_v2()); + return GetAFBRootDirPathUsingFd(afb_daemon_rootdir_get_fd()); } -__attribute__((alias("GetBindingDirPath_v2"))) +__attribute__((alias("GetAFBRootDirPath_v2"))) static char *GetBindingDirPath(); #else -static char *GetBindingDirPath_v3(struct afb_api_x3* api) +static char *GetAFBRootDirPath_v3(afb_api_t api) { - return GetBindingDirPath_(afb_api_x3_rootdir_get_fd(api)); + return GetAFBRootDirPathUsingFd(afb_api_rootdir_get_fd(api)); } -__attribute__((alias("GetBindingDirPath_v3"))) -static char *GetBindingDirPath(struct afb_api_x3* api); +__attribute__((alias("GetAFBRootDirPath_v3"))) +static char *GetBindingDirPath(afb_api_t api); #endif /** |