summaryrefslogtreecommitdiffstats
path: root/src/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/platform.h7
-rw-r--r--src/platform/unix.c5
-rw-r--r--src/platform/windows.c6
3 files changed, 17 insertions, 1 deletions
diff --git a/src/platform/platform.h b/src/platform/platform.h
index 688d851..55ed242 100644
--- a/src/platform/platform.h
+++ b/src/platform/platform.h
@@ -24,7 +24,11 @@
#define cc4group_mkdir(path, mode) mkdir((path))
#define SET_BINARY(fd) setmode(fd, O_BINARY)
#else
+ #ifndef _XOPEN_SOURCE
+ #define _XOPEN_SOURCE 700
+ #endif
#include <sys/mman.h>
+ #include <stdlib.h>
#define cc4group_mkdir(path, mode) mkdir((path), (mode))
#define O_BINARY 0
@@ -32,4 +36,5 @@
#endif
void *cc4group_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
-int cc4group_munmap(void *addr, size_t length); \ No newline at end of file
+int cc4group_munmap(void *addr, size_t length);
+char* cc4group_absolutePath(const char* path); \ No newline at end of file
diff --git a/src/platform/unix.c b/src/platform/unix.c
index 9bd8f57..01161fc 100644
--- a/src/platform/unix.c
+++ b/src/platform/unix.c
@@ -9,3 +9,8 @@ int cc4group_munmap(void *addr, size_t length)
{
return munmap(addr, length);
}
+
+char* cc4group_absolutePath(const char* path)
+{
+ return realpath(path, NULL);
+}
diff --git a/src/platform/windows.c b/src/platform/windows.c
index 53d5038..96678ab 100644
--- a/src/platform/windows.c
+++ b/src/platform/windows.c
@@ -97,5 +97,11 @@ int cc4group_munmap(void *addr, size_t length)
return 0;
}
+char* cc4group_absolutePath(const char* path)
+{
+ return _fullpath(NULL, path, 0);
+}
+
+
#undef DWORD_HI
#undef DWORD_LO