summaryrefslogtreecommitdiffstats
path: root/src/H5PLpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5PLpath.c')
-rw-r--r--src/H5PLpath.c166
1 files changed, 75 insertions, 91 deletions
diff --git a/src/H5PLpath.c b/src/H5PLpath.c
index ba23fd3..0aaa5b1 100644
--- a/src/H5PLpath.c
+++ b/src/H5PLpath.c
@@ -5,7 +5,7 @@
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
- * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -30,34 +30,30 @@
/* Module Setup */
/****************/
-#include "H5PLmodule.h" /* This source code file is part of the H5PL module */
-
+#include "H5PLmodule.h" /* This source code file is part of the H5PL module */
/***********/
/* Headers */
/***********/
-#include "H5private.h" /* Generic Functions */
-#include "H5Eprivate.h" /* Error handling */
-#include "H5MMprivate.h" /* Memory management */
-#include "H5PLpkg.h" /* Plugin */
-
+#include "H5private.h" /* Generic Functions */
+#include "H5Eprivate.h" /* Error handling */
+#include "H5MMprivate.h" /* Memory management */
+#include "H5PLpkg.h" /* Plugin */
/****************/
/* Local Macros */
/****************/
/* Initial capacity of the path table */
-#define H5PL_INITIAL_PATH_CAPACITY 16
+#define H5PL_INITIAL_PATH_CAPACITY 16
/* The amount to add to the capacity when the table is full */
-#define H5PL_PATH_CAPACITY_ADD 16
-
+#define H5PL_PATH_CAPACITY_ADD 16
/******************/
/* Local Typedefs */
/******************/
-
/********************/
/* Local Prototypes */
/********************/
@@ -66,33 +62,30 @@ static herr_t H5PL__insert_at(const char *path, unsigned int idx);
static herr_t H5PL__make_space_at(unsigned int idx);
static herr_t H5PL__replace_at(const char *path, unsigned int idx);
static herr_t H5PL__expand_path_table(void);
-static herr_t H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *found, const char *dir, const void **plugin_info);
+static herr_t H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *found,
+ const char *dir, const void **plugin_info);
/*********************/
/* Package Variables */
/*********************/
-
/*****************************/
/* Library Private Variables */
/*****************************/
-
/*******************/
/* Local Variables */
/*******************/
/* Stored plugin paths to search */
-static char **H5PL_paths_g = NULL;
+static char **H5PL_paths_g = NULL;
/* The number of stored paths */
-static unsigned H5PL_num_paths_g = 0;
+static unsigned H5PL_num_paths_g = 0;
/* The capacity of the path table */
-static unsigned H5PL_path_capacity_g = H5PL_INITIAL_PATH_CAPACITY;
-
+static unsigned H5PL_path_capacity_g = H5PL_INITIAL_PATH_CAPACITY;
-
/*-------------------------------------------------------------------------
* Function: H5PL__insert_at()
*
@@ -107,8 +100,8 @@ static unsigned H5PL_path_capacity_g = H5PL_INITIAL_PATH_CAPACITY;
static herr_t
H5PL__insert_at(const char *path, unsigned int idx)
{
- char *path_copy = NULL; /* copy of path string (for storing) */
- herr_t ret_value = SUCCEED; /* Return value */
+ char * path_copy = NULL; /* copy of path string (for storing) */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -127,7 +120,7 @@ H5PL__insert_at(const char *path, unsigned int idx)
#ifdef H5_HAVE_WIN32_API
/* Clean up Microsoft Windows environment variables in the path string */
- if(H5_expand_windows_env_vars(&path_copy))
+ if (H5_expand_windows_env_vars(&path_copy))
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTCONVERT, FAIL, "can't expand environment variable string")
#endif /* H5_HAVE_WIN32_API */
@@ -144,7 +137,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__insert_at() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__make_space_at()
*
@@ -158,8 +150,8 @@ done:
static herr_t
H5PL__make_space_at(unsigned int idx)
{
- unsigned u; /* iterator */
- herr_t ret_value = SUCCEED; /* Return value */
+ unsigned u; /* iterator */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC_NOERR
@@ -168,14 +160,13 @@ H5PL__make_space_at(unsigned int idx)
/* Copy the paths back to make a space */
for (u = H5PL_num_paths_g; u > idx; u--)
- H5PL_paths_g[u] = H5PL_paths_g[u-1];
+ H5PL_paths_g[u] = H5PL_paths_g[u - 1];
H5PL_paths_g[idx] = NULL;
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__make_space_at() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__replace_at()
*
@@ -190,8 +181,8 @@ H5PL__make_space_at(unsigned int idx)
static herr_t
H5PL__replace_at(const char *path, unsigned int idx)
{
- char *path_copy = NULL; /* copy of path string (for storing) */
- herr_t ret_value = SUCCEED; /* Return value */
+ char * path_copy = NULL; /* copy of path string (for storing) */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_STATIC
@@ -208,9 +199,9 @@ H5PL__replace_at(const char *path, unsigned int idx)
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't make internal copy of path")
#ifdef H5_HAVE_WIN32_API
- /* Clean up Microsoft Windows environment variables in the path string */
- if (H5_expand_windows_env_vars(&path_copy))
- HGOTO_ERROR(H5E_PLUGIN, H5E_CANTCONVERT, FAIL, "can't expand environment variable string")
+ /* Clean up Microsoft Windows environment variables in the path string */
+ if (H5_expand_windows_env_vars(&path_copy))
+ HGOTO_ERROR(H5E_PLUGIN, H5E_CANTCONVERT, FAIL, "can't expand environment variable string")
#endif /* H5_HAVE_WIN32_API */
/* Free the existing path entry */
@@ -223,7 +214,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__replace_at() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__create_path_table
*
@@ -237,18 +227,18 @@ done:
herr_t
H5PL__create_path_table(void)
{
- char *env_var= NULL; /* Path string from environment variable */
- char *paths = NULL; /* Delimited paths string. Either from the
- * environment variable or the default.
- */
- char *next_path = NULL; /* A path tokenized from the paths string */
- char *lasts = NULL; /* Context pointer for strtok_r() call */
- herr_t ret_value = SUCCEED; /* Return value */
+ char *env_var = NULL; /* Path string from environment variable */
+ char *paths = NULL; /* Delimited paths string. Either from the
+ * environment variable or the default.
+ */
+ char * next_path = NULL; /* A path tokenized from the paths string */
+ char * lasts = NULL; /* Context pointer for strtok_r() call */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
/* Allocate memory for the path table */
- H5PL_num_paths_g = 0;
+ H5PL_num_paths_g = 0;
H5PL_path_capacity_g = H5PL_INITIAL_PATH_CAPACITY;
if (NULL == (H5PL_paths_g = (char **)H5MM_calloc((size_t)H5PL_path_capacity_g * sizeof(char *))))
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't allocate memory for path table")
@@ -291,7 +281,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__create_path_table() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__close_path_table
*
@@ -305,8 +294,8 @@ done:
herr_t
H5PL__close_path_table(void)
{
- unsigned u; /* iterator */
- herr_t ret_value = SUCCEED; /* Return value */
+ unsigned u; /* iterator */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE_NOERR
@@ -325,7 +314,6 @@ H5PL__close_path_table(void)
} /* end H5PL__close_path_table() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__get_num_paths
*
@@ -344,7 +332,6 @@ H5PL__get_num_paths(void)
} /* end H5PL__get_num_paths() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__expand_path_table
*
@@ -357,7 +344,7 @@ H5PL__get_num_paths(void)
static herr_t
H5PL__expand_path_table(void)
{
- herr_t ret_value = SUCCEED;
+ herr_t ret_value = SUCCEED;
FUNC_ENTER_STATIC
@@ -365,7 +352,8 @@ H5PL__expand_path_table(void)
H5PL_path_capacity_g += H5PL_PATH_CAPACITY_ADD;
/* Resize the array */
- if(NULL == (H5PL_paths_g = (char **)H5MM_realloc(H5PL_paths_g, (size_t)H5PL_path_capacity_g * sizeof(char *))))
+ if (NULL ==
+ (H5PL_paths_g = (char **)H5MM_realloc(H5PL_paths_g, (size_t)H5PL_path_capacity_g * sizeof(char *))))
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "allocating additional memory for path table failed")
/* Initialize the new memory */
@@ -379,7 +367,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__expand_path_table() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__append_path
*
@@ -392,7 +379,7 @@ done:
herr_t
H5PL__append_path(const char *path)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -408,7 +395,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__append_path() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__prepend_path
*
@@ -421,7 +407,7 @@ done:
herr_t
H5PL__prepend_path(const char *path)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -437,7 +423,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__prepend_path() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__replace_path
*
@@ -450,7 +435,7 @@ done:
herr_t
H5PL__replace_path(const char *path, unsigned int idx)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -467,7 +452,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__replace_path() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__insert_path
*
@@ -481,7 +465,7 @@ done:
herr_t
H5PL__insert_path(const char *path, unsigned int idx)
{
- herr_t ret_value = SUCCEED; /* Return value */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -498,7 +482,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__insert_path() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__remove_path
*
@@ -512,8 +495,8 @@ done:
herr_t
H5PL__remove_path(unsigned int idx)
{
- unsigned u; /* iterator */
- herr_t ret_value = SUCCEED; /* Return value */
+ unsigned u; /* iterator */
+ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_PACKAGE
@@ -530,7 +513,7 @@ H5PL__remove_path(unsigned int idx)
/* Shift the paths down to close the gap */
for (u = idx; u < H5PL_num_paths_g; u++)
- H5PL_paths_g[u] = H5PL_paths_g[u+1];
+ H5PL_paths_g[u] = H5PL_paths_g[u + 1];
/* Set the (former) last path to NULL */
H5PL_paths_g[H5PL_num_paths_g] = NULL;
@@ -539,7 +522,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__remove_path() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__get_path
*
@@ -553,7 +535,7 @@ done:
const char *
H5PL__get_path(unsigned int idx)
{
- char *ret_value = NULL; /* Return value */
+ char *ret_value = NULL; /* Return value */
FUNC_ENTER_PACKAGE
@@ -566,7 +548,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__replace_path() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__find_plugin_in_path_table
*
@@ -580,10 +561,11 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5PL__find_plugin_in_path_table(const H5PL_search_params_t *search_params, hbool_t *found, const void **plugin_info)
+H5PL__find_plugin_in_path_table(const H5PL_search_params_t *search_params, hbool_t *found,
+ const void **plugin_info)
{
- unsigned int u; /* iterator */
- herr_t ret_value = SUCCEED;
+ unsigned int u; /* iterator */
+ herr_t ret_value = SUCCEED;
FUNC_ENTER_PACKAGE
@@ -593,7 +575,7 @@ H5PL__find_plugin_in_path_table(const H5PL_search_params_t *search_params, hbool
HDassert(plugin_info);
/* Initialize output parameters */
- *found = FALSE;
+ *found = FALSE;
*plugin_info = NULL;
/* Loop over the paths in the table, checking for an appropriate plugin */
@@ -601,7 +583,8 @@ H5PL__find_plugin_in_path_table(const H5PL_search_params_t *search_params, hbool
/* Search for the plugin in this path */
if (H5PL__find_plugin_in_path(search_params, found, H5PL_paths_g[u], plugin_info) < 0)
- HGOTO_ERROR(H5E_PLUGIN, H5E_CANTGET, FAIL, "search in path %s encountered an error", H5PL_paths_g[u])
+ HGOTO_ERROR(H5E_PLUGIN, H5E_CANTGET, FAIL, "search in path %s encountered an error",
+ H5PL_paths_g[u])
/* Break out if found */
if (*found) {
@@ -615,7 +598,6 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__find_plugin_in_path_table() */
-
/*-------------------------------------------------------------------------
* Function: H5PL__find_plugin_in_path
*
@@ -633,11 +615,12 @@ done:
*/
#ifndef H5_HAVE_WIN32_API
static herr_t
-H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *found, const char *dir, const void **plugin_info)
+H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *found, const char *dir,
+ const void **plugin_info)
{
- char *path = NULL;
- DIR *dirp = NULL; /* Directory stream */
- struct dirent *dp = NULL; /* Directory entry */
+ char * path = NULL;
+ DIR * dirp = NULL; /* Directory stream */
+ struct dirent *dp = NULL; /* Directory entry */
herr_t ret_value = SUCCEED;
FUNC_ENTER_STATIC
@@ -663,17 +646,17 @@ H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *fo
*/
#ifndef __CYGWIN__
if (!HDstrncmp(dp->d_name, "lib", (size_t)3) &&
- (HDstrstr(dp->d_name, ".so") || HDstrstr(dp->d_name, ".dylib"))) {
+ (HDstrstr(dp->d_name, ".so") || HDstrstr(dp->d_name, ".dylib"))) {
#else
- if (!HDstrncmp(dp->d_name, "cyg", (size_t)3) &&
- HDstrstr(dp->d_name, ".dll") ) {
+ if (!HDstrncmp(dp->d_name, "cyg", (size_t)3) && HDstrstr(dp->d_name, ".dll")) {
#endif
- h5_stat_t my_stat;
- size_t len;
+ h5_stat_t my_stat;
+ size_t len;
/* Allocate & initialize the path name */
- len = HDstrlen(dir) + HDstrlen(H5PL_PATH_SEPARATOR) + HDstrlen(dp->d_name) + 1 /*\0*/ + 4; /* Extra "+4" to quiet GCC warning - 2019/07/05, QAK */
+ len = HDstrlen(dir) + HDstrlen(H5PL_PATH_SEPARATOR) + HDstrlen(dp->d_name) + 1 /*\0*/ +
+ 4; /* Extra "+4" to quiet GCC warning - 2019/07/05, QAK */
if (NULL == (path = (char *)H5MM_calloc(len)))
HGOTO_ERROR(H5E_PLUGIN, H5E_CANTALLOC, FAIL, "can't allocate memory for path")
@@ -682,7 +665,8 @@ H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *fo
/* Get info for directory entry */
if (HDstat(path, &my_stat) == -1)
- HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't stat file %s -- error was: %s", path, HDstrerror(errno))
+ HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't stat file %s -- error was: %s", path,
+ HDstrerror(errno))
/* If it is a directory, skip it */
if (S_ISDIR(my_stat.st_mode))
@@ -696,7 +680,7 @@ H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *fo
path = (char *)H5MM_xfree(path);
} /* end if */
- } /* end while */
+ } /* end while */
done:
if (dirp)
@@ -707,15 +691,16 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__find_plugin_in_path() */
-#else /* H5_HAVE_WIN32_API */
+#else /* H5_HAVE_WIN32_API */
static herr_t
-H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *found, const char *dir, const void **plugin_info)
+H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *found, const char *dir,
+ const void **plugin_info)
{
- WIN32_FIND_DATAA fdFile;
- HANDLE hFind = INVALID_HANDLE_VALUE;
- char *path = NULL;
- char service[2048];
- herr_t ret_value = SUCCEED;
+ WIN32_FIND_DATAA fdFile;
+ HANDLE hFind = INVALID_HANDLE_VALUE;
+ char * path = NULL;
+ char service[2048];
+ herr_t ret_value = SUCCEED;
FUNC_ENTER_STATIC
@@ -740,7 +725,7 @@ H5PL__find_plugin_in_path(const H5PL_search_params_t *search_params, hbool_t *fo
/* XXX: Probably just continue here and move the code below over one tab */
- size_t len;
+ size_t len;
/* Allocate & initialize the path name */
len = HDstrlen(dir) + HDstrlen(H5PL_PATH_SEPARATOR) + HDstrlen(fdFile.cFileName) + 1;
@@ -773,4 +758,3 @@ done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5PL__find_plugin_in_path() */
#endif /* H5_HAVE_WIN32_API */
-