aboutsummaryrefslogtreecommitdiffstats
path: root/os/various/cpp_wrappers/syscalls_cpp.cpp
diff options
context:
space:
mode:
authorbarthess <barthess@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-08-03 20:23:16 +0000
committerbarthess <barthess@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-08-03 20:23:16 +0000
commita5ba02231106d70330e8b01dd60edba922e11f86 (patch)
tree8d953ab4824a1d825e3df0247be27d04852452c5 /os/various/cpp_wrappers/syscalls_cpp.cpp
parentfb723a1e3deb67e6ab722ee1a912560d2367ba18 (diff)
downloadChibiOS-a5ba02231106d70330e8b01dd60edba922e11f86.tar.gz
ChibiOS-a5ba02231106d70330e8b01dd60edba922e11f86.tar.bz2
ChibiOS-a5ba02231106d70330e8b01dd60edba922e11f86.zip
CPP wrappers ported to Chibios v3.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7118 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/various/cpp_wrappers/syscalls_cpp.cpp')
-rw-r--r--os/various/cpp_wrappers/syscalls_cpp.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/os/various/cpp_wrappers/syscalls_cpp.cpp b/os/various/cpp_wrappers/syscalls_cpp.cpp
new file mode 100644
index 000000000..84a449a9f
--- /dev/null
+++ b/os/various/cpp_wrappers/syscalls_cpp.cpp
@@ -0,0 +1,78 @@
+#include <stdio.h>
+#include <errno.h>
+
+#include "osal.h"
+
+#include "syscalls_cpp.hpp"
+
+/**
+ *
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+void _exit(int status){
+ (void) status;
+ osalSysHalt("Unrealized");
+ while(TRUE){}
+}
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ *
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+pid_t _getpid(void){
+ return 1;
+}
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ *
+ */
+#undef errno
+extern int errno;
+#ifdef __cplusplus
+extern "C" {
+#endif
+int _kill(int pid, int sig) {
+ (void)pid;
+ (void)sig;
+ errno = EINVAL;
+ return -1;
+}
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ *
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+void _open_r(void){
+ return;
+}
+#ifdef __cplusplus
+}
+#endif
+
+/**
+ *
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+ void __cxa_pure_virtual() {
+ osalSysHalt("Pure virtual function call.");
+ }
+#ifdef __cplusplus
+}
+#endif