#ifndef __ASSEMBLER__
+#include <stdint.h>
+#include <errors/errno.h>
+
/// return type from a system call: two words
struct sysret {
errval_t error;
};
/// Macro used for constructing return values from single-value syscalls
-#define SYSRET(x) (struct sysret){ .error = x, .value = 0 }
+#define SYSRET(x) (struct sysret){ /*error*/ x, /*value*/ 0 }
#endif // __ASSEMBLER__
/*
#define SYSCALL_NOP 5 ///< No operation
#define SYSCALL_PRINT 6 ///< Write to console
-/* Architecture-specific syscalls
+/* Architecture-specific syscalls
* FIXME: shouldn't these be in an arch-specific header? -AB */
+#ifdef __ARM_ARCH_7M__ //cortex-m3 on pandaboard
+//overwrite unused syscall instead of creating yet another global one
+#define SYSCALL_RESUME_CONTEXT 7 ///< Resume a context that the dispatcher can't
+#else
#define SYSCALL_X86_FPU_TRAP_ON 7 ///< Turn FPU trap on (x86)
+#endif //__ARM_ARCH_7M__
+
+
#define SYSCALL_X86_RELOAD_LDT 8 ///< Reload the LDT register (x86_64)
+#define SYSCALL_SUSPEND 9 ///< Suspend the CPU
+#define SYSCALL_GET_ABS_TIME 10 ///< Get time elapsed since boot
+
+#define SYSCALL_DEBUG_PRINT_CAPABILITIES 11
-#define SYSCALL_COUNT 9 ///< Number of syscalls [0..SYSCALL_COUNT - 1]
+#define SYSCALL_COUNT 12 ///< Number of syscalls [0..SYSCALL_COUNT - 1]
/*
* To understand system calls it might be helpful to know that there