#include <unistd.h>
#include <string.h>
#include <sys/types.h>
-#include <pwd.h>
#include <unistd.h>
#include <assert.h>
#include <ctype.h>
#include <glib.h>
+#include <stdlib.h>
#include <babeltrace/babeltrace-internal.h>
#include <babeltrace/common-internal.h>
+#include <babeltrace/compat/unistd-internal.h>
+
+#ifndef __MINGW32__
+#include <pwd.h>
+#endif
#define SYSTEM_PLUGIN_PATH INSTALL_LIBDIR "/babeltrace/plugins"
#define HOME_ENV_VAR "HOME"
return SYSTEM_PLUGIN_PATH;
}
+#ifdef __MINGW32__
+BT_HIDDEN
+bool bt_common_is_setuid_setgid(void)
+{
+ return false;
+}
+#else /* __MINGW32__ */
BT_HIDDEN
bool bt_common_is_setuid_setgid(void)
{
return (geteuid() != getuid() || getegid() != getgid());
}
+#endif /* __MINGW32__ */
-static char *bt_secure_getenv(const char *name)
+static
+char *bt_secure_getenv(const char *name)
{
if (bt_common_is_setuid_setgid()) {
printf_error("Disregarding %s environment variable for setuid/setgid binary",
return getenv(name);
}
-static const char *get_home_dir(void)
+#ifdef __MINGW32__
+static
+const char *bt_get_home_dir(void)
+{
+ return g_get_home_dir();
+}
+#else /* __MINGW32__ */
+static
+const char *bt_get_home_dir(void)
{
char *val = NULL;
struct passwd *pwd;
end:
return val;
}
+#endif /* __MINGW32__ */
BT_HIDDEN
char *bt_common_get_home_plugin_path(void)
char *path = NULL;
const char *home_dir;
- home_dir = get_home_dir();
+ home_dir = bt_get_home_dir();
if (!home_dir) {
goto end;
}
return norm_path;
}
+
+BT_HIDDEN
+size_t bt_common_get_page_size(void)
+{
+ int page_size;
+
+ page_size = bt_sysconf(_SC_PAGESIZE);
+ if (page_size < 0) {
+ printf_error("Cannot get system page size.");
+ abort();
+ }
+
+ return page_size;
+}