diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-03-30 22:38:35 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-03-30 22:38:35 +0200 |
commit | f93ab955074e213ad6f2bf60522cc86952d57d83 (patch) | |
tree | 65af07c02d6f0541f31cddef9cd564189395952b /kernel/sched/mcu/atmega2560/include/mcu | |
parent | 2500120f64db83fc682f38a83f7f9e03ed8a5123 (diff) | |
download | mux-f93ab955074e213ad6f2bf60522cc86952d57d83.tar.gz mux-f93ab955074e213ad6f2bf60522cc86952d57d83.tar.bz2 mux-f93ab955074e213ad6f2bf60522cc86952d57d83.zip |
major update
Diffstat (limited to 'kernel/sched/mcu/atmega2560/include/mcu')
-rw-r--r-- | kernel/sched/mcu/atmega2560/include/mcu/sched/context.h | 121 |
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 |