Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/sys
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-02-02 11:09:04 +0000
committerStijn Buys <ingar@osirion.org>2008-02-02 11:09:04 +0000
commit365b0c6330ea607706b708d92da7a46b1ed1fb15 (patch)
tree67e8136d48e8e7f0c5bdc17b4a2c284dcf202641 /src/sys
parent6c8446cddb37df732fc9e5fc21f98e31968ce634 (diff)
introduced libsys
implemented signal handling
Diffstat (limited to 'src/sys')
-rw-r--r--src/sys/Makefile.am6
-rw-r--r--src/sys/sys.cc42
-rw-r--r--src/sys/sys.h19
3 files changed, 67 insertions, 0 deletions
diff --git a/src/sys/Makefile.am b/src/sys/Makefile.am
new file mode 100644
index 0000000..44f69c4
--- /dev/null
+++ b/src/sys/Makefile.am
@@ -0,0 +1,6 @@
+INCLUDES = -I$(top_srcdir)/src
+METASOURCES = AUTO
+libsys_la_LDFLAGS = -avoid-version -no-undefined
+noinst_LTLIBRARIES = libsys.la
+libsys_la_SOURCES = sys.cc
+noinst_HEADERS = sys.h
diff --git a/src/sys/sys.cc b/src/sys/sys.cc
new file mode 100644
index 0000000..97da23e
--- /dev/null
+++ b/src/sys/sys.cc
@@ -0,0 +1,42 @@
+/*
+ sys/sys.cc
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+// project headers
+#include "sys/sys.h"
+
+// system headers
+#include <signal.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+
+namespace sys {
+
+bool mkdir(const char *path)
+{
+#ifdef _WIN32
+ ::mkdir(path);
+ // FIXME check return value
+ return true;
+#else
+ return (::mkdir(path, 0777) == 0);
+#endif
+}
+
+void signal(int signum, signalfunc handler)
+{
+#ifndef _WIN32
+ struct sigaction sa;
+
+ sa.sa_handler = handler;
+ sa.sa_flags = 0;
+
+ sigaction(signum, &sa, 0);
+#endif
+}
+
+}
diff --git a/src/sys/sys.h b/src/sys/sys.h
new file mode 100644
index 0000000..0d05b67
--- /dev/null
+++ b/src/sys/sys.h
@@ -0,0 +1,19 @@
+/*
+ sys/sys.h
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+#ifndef __INCLUDED_SYS_H__
+#define __INCLUDED_SYS_H__
+
+/// contains operating system dependent functions
+namespace sys {
+ typedef void (* signalfunc)(int signum);
+
+ bool mkdir(const char *path);
+ void signal(int signum, signalfunc handler);
+}
+
+#endif // __INCLUDED_SYS_H__
+