aboutsummaryrefslogtreecommitdiff
path: root/kernel/sched/mcu/atmega2560/include/mcu/sched/context.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/mcu/atmega2560/include/mcu/sched/context.h')
-rw-r--r--kernel/sched/mcu/atmega2560/include/mcu/sched/context.h121
1 files changed, 0 insertions, 121 deletions
diff --git a/kernel/sched/mcu/atmega2560/include/mcu/sched/context.h b/kernel/sched/mcu/atmega2560/include/mcu/sched/context.h
deleted file mode 100644
index 437e7f3..0000000
--- a/kernel/sched/mcu/atmega2560/include/mcu/sched/context.h
+++ /dev/null
@@ -1,121 +0,0 @@
-#ifndef CONTEXT_H
-#define CONTEXT_H
-
-#include <avr/interrupt.h>
-
-/*
- * The macros SAVE_CONTEXT(), RESTORE_CONTEXT() as well as the code contained in
- * init_stack is adapted from the FreeRTOS kernel (http://www.freertos.org/).
- * Here by copyright, credits attributed to wherever they belong.
- */
-
-#define SAVE_CONTEXT() \
- asm volatile ( \
- "push r0 \n\t" \
- "in r0, __SREG__ \n\t" \
- "push r0 \n\t" \
- "push r1 \n\t" \
- "clr r1 \n\t" \
- "push r2 \n\t" \
- "push r3 \n\t" \
- "push r4 \n\t" \
- "push r5 \n\t" \
- "push r6 \n\t" \
- "push r7 \n\t" \
- "push r8 \n\t" \
- "push r9 \n\t" \
- "push r10 \n\t" \
- "push r11 \n\t" \
- "push r12 \n\t" \
- "push r13 \n\t" \
- "push r14 \n\t" \
- "push r15 \n\t" \
- "push r16 \n\t" \
- "push r17 \n\t" \
- "push r18 \n\t" \
- "push r19 \n\t" \
- "push r20 \n\t" \
- "push r21 \n\t" \
- "push r22 \n\t" \
- "push r23 \n\t" \
- "push r24 \n\t" \
- "push r25 \n\t" \
- "push r26 \n\t" \
- "push r27 \n\t" \
- "push r28 \n\t" \
- "push r29 \n\t" \
- "push r30 \n\t" \
- "push r31 \n\t" \
- "lds r26, current \n\t" \
- "lds r27, current +1 \n\t" \
- "in r0, __SP_L__ \n\t" \
- "st x+, r0 \n\t" \
- "in r0, __SP_H__ \n\t" \
- "st x+, r0 \n\t" \
- "lds r26, kstack \n\t" \
- "lds r27, kstack + 1 \n\t" \
- "ld r28, x+ \n\t" \
- "out __SP_L__, r28 \n\t" \
- "ld r29, x+ \n\t" \
- "out __SP_H__, r29 \n\t" \
- )
-
-#define RESTORE_CONTEXT() \
- asm volatile ( \
- "lds r26, kstack \n\t" \
- "lds r27, kstack +1 \n\t" \
- "in r0, __SP_L__ \n\t" \
- "st x+, r0 \n\t" \
- "in r0, __SP_H__ \n\t" \
- "st x+, r0 \n\t" \
- "lds r26, current \n\t" \
- "lds r27, current + 1 \n\t" \
- "ld r28, x+ \n\t" \
- "out __SP_L__, r28 \n\t" \
- "ld r29, x+ \n\t" \
- "out __SP_H__, r29 \n\t" \
- "pop r31 \n\t" \
- "pop r30 \n\t" \
- "pop r29 \n\t" \
- "pop r28 \n\t" \
- "pop r27 \n\t" \
- "pop r26 \n\t" \
- "pop r25 \n\t" \
- "pop r24 \n\t" \
- "pop r23 \n\t" \
- "pop r22 \n\t" \
- "pop r21 \n\t" \
- "pop r20 \n\t" \
- "pop r19 \n\t" \
- "pop r18 \n\t" \
- "pop r17 \n\t" \
- "pop r16 \n\t" \
- "pop r15 \n\t" \
- "pop r14 \n\t" \
- "pop r13 \n\t" \
- "pop r12 \n\t" \
- "pop r11 \n\t" \
- "pop r10 \n\t" \
- "pop r9 \n\t" \
- "pop r8 \n\t" \
- "pop r7 \n\t" \
- "pop r6 \n\t" \
- "pop r5 \n\t" \
- "pop r4 \n\t" \
- "pop r3 \n\t" \
- "pop r2 \n\t" \
- "pop r1 \n\t" \
- "pop r0 \n\t" \
- "out __SREG__, r0 \n\t" \
- "pop r0 \n\t" \
- )
-
-char* init_stack(const char* const mem_low, const char* const mem_high, void (*entry)(char), char args);
-
-static inline void init_kstack(char **kstack) {
- *kstack = (char*) SP;
-}
-
-#define RETURN() asm volatile("ret");
-
-#endif