fs-sink: fix handling static notifications
[babeltrace.git] / common / common.c
index 032a1e06294b65aeed59a34f4276fdd543603808..609975f7ec749bc9436f0b7889d257a7433dde9d 100644 (file)
 #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"
@@ -87,13 +92,22 @@ const char *bt_common_get_system_plugin_path(void)
        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",
@@ -103,7 +117,15 @@ static char *bt_secure_getenv(const char *name)
        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;
@@ -121,6 +143,7 @@ static const char *get_home_dir(void)
 end:
        return val;
 }
+#endif /* __MINGW32__ */
 
 BT_HIDDEN
 char *bt_common_get_home_plugin_path(void)
@@ -128,7 +151,7 @@ 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;
        }
@@ -1125,3 +1148,17 @@ 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;
+}
This page took 0.025504 seconds and 4 git commands to generate.