]> rtime.felk.cvut.cz Git - arc.git/blob - arch/ppc/mpc55xx/kernel/arch_offset.c
Added SPE support.
[arc.git] / arch / ppc / mpc55xx / kernel / arch_offset.c
1 /* -------------------------------- Arctic Core ------------------------------\r
2  * Arctic Core - the open source AUTOSAR platform http://arccore.com\r
3  *\r
4  * Copyright (C) 2009  ArcCore AB <contact@arccore.com>\r
5  *\r
6  * This source code is free software; you can redistribute it and/or modify it\r
7  * under the terms of the GNU General Public License version 2 as published by the\r
8  * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.\r
9  *\r
10  * This program is distributed in the hope that it will be useful, but\r
11  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
13  * for more details.\r
14  * -------------------------------- Arctic Core ------------------------------*/\r
15 \r
16 \r
17 #include <stddef.h>\r
18 \r
19 #define DECLARE(sym,val) \\r
20         __asm("#define " #sym " %0" : : "i" ((val)))\r
21 \r
22 #include "Os.h"\r
23 #include "kernel.h"\r
24 #include "pcb.h"\r
25 //#include "app_i.h"\r
26 #include "sys.h"\r
27 #include "arch_stack.h"\r
28 \r
29 \r
30 \r
31 void  oil_foo(void) {\r
32 \r
33 /* Exceptions */\r
34         DECLARE(EXC_FRM_SIZE,   sizeof(Os_ExceptionFrameType));\r
35         DECLARE(EXC_FRM_SP,             offsetof(Os_ExceptionFrameType, sp));\r
36         DECLARE(EXC_FRM_SRR0,   offsetof(Os_ExceptionFrameType, srr0));\r
37         DECLARE(EXC_FRM_SRR1,   offsetof(Os_ExceptionFrameType, srr1));\r
38         DECLARE(EXC_FRM_LR,             offsetof(Os_ExceptionFrameType, lr));\r
39         DECLARE(EXC_FRM_CTR,    offsetof(Os_ExceptionFrameType, ctr));\r
40         DECLARE(EXC_FRM_XER,    offsetof(Os_ExceptionFrameType, xer));\r
41         DECLARE(EXC_FRM_CR,             offsetof(Os_ExceptionFrameType, cr));\r
42         DECLARE(EXC_FRM_R3,             offsetof(Os_ExceptionFrameType, r3));\r
43         DECLARE(EXC_FRM_VECTOR, offsetof(Os_ExceptionFrameType, vector));\r
44 \r
45 \r
46         DECLARE(FUNC_FRM_SIZE,  sizeof(Os_FuncFrameType));\r
47         DECLARE(FUNC_FRM_CR, offsetof(Os_FuncFrameType,cr));\r
48         DECLARE(FUNC_FRM_LR, offsetof(Os_FuncFrameType,lr));\r
49         DECLARE(FUNC_FRM_PATTERN, offsetof(Os_FuncFrameType,pattern));\r
50         DECLARE(FUNC_FRM_R14, offsetof(Os_FuncFrameType,r14));\r
51         DECLARE(FUNC_FRM_R15, offsetof(Os_FuncFrameType,r15));\r
52         DECLARE(FUNC_FRM_R16, offsetof(Os_FuncFrameType,r16));\r
53         DECLARE(FUNC_FRM_R17, offsetof(Os_FuncFrameType,r17));\r
54         DECLARE(FUNC_FRM_R18, offsetof(Os_FuncFrameType,r18));\r
55         DECLARE(FUNC_FRM_R19, offsetof(Os_FuncFrameType,r19));\r
56         DECLARE(FUNC_FRM_R20, offsetof(Os_FuncFrameType,r20));\r
57         DECLARE(FUNC_FRM_R21, offsetof(Os_FuncFrameType,r21));\r
58         DECLARE(FUNC_FRM_R22, offsetof(Os_FuncFrameType,r22));\r
59         DECLARE(FUNC_FRM_R23, offsetof(Os_FuncFrameType,r23));\r
60         DECLARE(FUNC_FRM_R24, offsetof(Os_FuncFrameType,r24));\r
61         DECLARE(FUNC_FRM_R25, offsetof(Os_FuncFrameType,r25));\r
62         DECLARE(FUNC_FRM_R26, offsetof(Os_FuncFrameType,r26));\r
63         DECLARE(FUNC_FRM_R27, offsetof(Os_FuncFrameType,r27));\r
64         DECLARE(FUNC_FRM_R28, offsetof(Os_FuncFrameType,r28));\r
65         DECLARE(FUNC_FRM_R29, offsetof(Os_FuncFrameType,r29));\r
66         DECLARE(FUNC_FRM_R30, offsetof(Os_FuncFrameType,r30));\r
67         DECLARE(FUNC_FRM_R31, offsetof(Os_FuncFrameType,r31));\r
68 \r
69 #if defined(CFG_SPE)\r
70         DECLARE(ISR_FRM_SPE_FSCR, offsetof(Os_IsrFrameType,fscr));\r
71         DECLARE(ISR_FRM_SPE_ACC, offsetof(Os_IsrFrameType,acc));\r
72         DECLARE(ISR_FRM_R3, offsetof(Os_IsrFrameType,acc));\r
73 #endif\r
74 \r
75         DECLARE(ISR_FRM_SIZE,   sizeof(Os_IsrFrameType));\r
76         DECLARE(ISR_FRM_R0, offsetof(Os_IsrFrameType,r0));\r
77         DECLARE(ISR_FRM_R4, offsetof(Os_IsrFrameType,r4));\r
78         DECLARE(ISR_FRM_R5, offsetof(Os_IsrFrameType,r5));\r
79         DECLARE(ISR_FRM_R6, offsetof(Os_IsrFrameType,r6));\r
80         DECLARE(ISR_FRM_R7, offsetof(Os_IsrFrameType,r7));\r
81         DECLARE(ISR_FRM_R8, offsetof(Os_IsrFrameType,r8));\r
82         DECLARE(ISR_FRM_R9, offsetof(Os_IsrFrameType,r9));\r
83         DECLARE(ISR_FRM_R10, offsetof(Os_IsrFrameType,r10));\r
84         DECLARE(ISR_FRM_R11, offsetof(Os_IsrFrameType,r11));\r
85         DECLARE(ISR_FRM_R12, offsetof(Os_IsrFrameType,r12));\r
86         DECLARE(ISR_FRM_R14, offsetof(Os_IsrFrameType,r14));\r
87         DECLARE(ISR_FRM_R15, offsetof(Os_IsrFrameType,r15));\r
88         DECLARE(ISR_FRM_R16, offsetof(Os_IsrFrameType,r16));\r
89         DECLARE(ISR_FRM_R17, offsetof(Os_IsrFrameType,r17));\r
90         DECLARE(ISR_FRM_R18, offsetof(Os_IsrFrameType,r18));\r
91         DECLARE(ISR_FRM_R19, offsetof(Os_IsrFrameType,r19));\r
92         DECLARE(ISR_FRM_R20, offsetof(Os_IsrFrameType,r20));\r
93         DECLARE(ISR_FRM_R21, offsetof(Os_IsrFrameType,r21));\r
94         DECLARE(ISR_FRM_R22, offsetof(Os_IsrFrameType,r22));\r
95         DECLARE(ISR_FRM_R23, offsetof(Os_IsrFrameType,r23));\r
96         DECLARE(ISR_FRM_R24, offsetof(Os_IsrFrameType,r24));\r
97         DECLARE(ISR_FRM_R25, offsetof(Os_IsrFrameType,r25));\r
98         DECLARE(ISR_FRM_R26, offsetof(Os_IsrFrameType,r26));\r
99         DECLARE(ISR_FRM_R27, offsetof(Os_IsrFrameType,r27));\r
100         DECLARE(ISR_FRM_R28, offsetof(Os_IsrFrameType,r28));\r
101         DECLARE(ISR_FRM_R29, offsetof(Os_IsrFrameType,r29));\r
102         DECLARE(ISR_FRM_R30, offsetof(Os_IsrFrameType,r30));\r
103         DECLARE(ISR_FRM_R31, offsetof(Os_IsrFrameType,r31));\r
104         DECLARE(ISR_FRM_PATTERN, offsetof(Os_IsrFrameType,pattern));\r
105 }\r
106 \r