source: asp_ewarm/asp-1.7.0/extension/dcre/kernel/kernel_check.tf@ 61

Last change on this file since 61 was 61, checked in by ertl-honda, 11 years ago

ASP for EWARM のコミット.

File size: 7.5 KB
Line 
1$ ======================================================================
2$
3$ TOPPERS/ASP Kernel
4$ Toyohashi Open Platform for Embedded Real-Time Systems/
5$ Advanced Standard Profile Kernel
6$
7$ Copyright (C) 2008-2010 by Embedded and Real-Time Systems Laboratory
8$ Graduate School of Information Science, Nagoya Univ., JAPAN
9$
10$ ã‹L’˜ìŒ ŽÒ‚́CˆÈ‰º‚Ì(1)`(4)‚ÌðŒ‚ð–ž‚½‚·ê‡‚ÉŒÀ‚èC–{ƒ\ƒtƒgƒEƒF
11$ ƒAi–{ƒ\ƒtƒgƒEƒFƒA‚ð‰ü•Ï‚µ‚½‚à‚Ì‚ðŠÜ‚ށDˆÈ‰º“¯‚¶j‚ðŽg—pE•¡»E‰ü
12$ •ÏEÄ”z•ziˆÈ‰ºC—˜—p‚ƌĂԁj‚·‚邱‚Ƃ𖳏ž‚Å‹–‘ø‚·‚éD
13$ (1) –{ƒ\ƒtƒgƒEƒFƒA‚ðƒ\[ƒXƒR[ƒh‚ÌŒ`‚Å—˜—p‚·‚éê‡‚ɂ́Cã‹L‚Ì’˜ì
14$ Œ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’肪C‚»‚Ì‚Ü‚Ü‚ÌŒ`‚Ń\[
15$ ƒXƒR[ƒh’†‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚邱‚ƁD
16$ (2) –{ƒ\ƒtƒgƒEƒFƒA‚ðCƒ‰ƒCƒuƒ‰ƒŠŒ`Ž®‚ȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
17$ —p‚Å‚«‚éŒ`‚ōĔz•z‚·‚éê‡‚ɂ́CÄ”z•z‚É”º‚¤ƒhƒLƒ…
18ƒƒ“ƒgi—˜—p
19$ ŽÒƒ}ƒjƒ…
20ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L
21$ ‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
22$ (3) –{ƒ\ƒtƒgƒEƒFƒA‚ðC‹@Ší‚É‘g‚ݍž‚ނȂǁC‘¼‚̃\ƒtƒgƒEƒFƒAŠJ”­‚ÉŽg
23$ —p‚Å‚«‚È‚¢Œ`‚ōĔz•z‚·‚éê‡‚ɂ́CŽŸ‚Ì‚¢‚¸‚ê‚©‚ÌðŒ‚ð–ž‚½‚·‚±
24$ ‚ƁD
25$ (a) Ä”z•z‚É”º‚¤ƒhƒLƒ…
26ƒƒ“ƒgi—˜—pŽÒƒ}ƒjƒ…
27ƒAƒ‹‚Ȃǁj‚ɁCã‹L‚Ì’˜
28$ ìŒ •\Ž¦C‚±‚Ì—˜—pðŒ‚¨‚æ‚щº‹L‚Ì–³•ÛØ‹K’è‚ðŒfÚ‚·‚邱‚ƁD
29$ (b) Ä”z•z‚ÌŒ`‘Ô‚ðC•Ê‚É’è‚ß‚é•û–@‚É‚æ‚Á‚āCTOPPERSƒvƒƒWƒFƒNƒg‚É
30$ •ñ‚·‚邱‚ƁD
31$ (4) –{ƒ\ƒtƒgƒEƒFƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚é‚¢‚©‚Ȃ鑹
32$ ŠQ‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð–Ɛӂ·‚邱‚ƁD
33$ ‚Ü‚½C–{ƒ\ƒtƒgƒEƒFƒA‚̃†[ƒU‚Ü‚½‚̓Gƒ“ƒhƒ†[ƒU‚©‚ç‚Ì‚¢‚©‚Ȃ闝
34$ —R‚ÉŠî‚­¿‹‚©‚ç‚àCã‹L’˜ìŒ ŽÒ‚¨‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚ð
35$ –Ɛӂ·‚邱‚ƁD
36$
37$ –{ƒ\ƒtƒgƒEƒFƒA‚́C–³•ÛØ‚Å’ñ‹Ÿ‚³‚ê‚Ä‚¢‚é‚à‚Ì‚Å‚ ‚éDã‹L’˜ìŒ ŽÒ‚¨
38$ ‚æ‚ÑTOPPERSƒvƒƒWƒFƒNƒg‚́C–{ƒ\ƒtƒgƒEƒFƒA‚ÉŠÖ‚µ‚āC“Á’è‚ÌŽg—p–Ú“I
39$ ‚ɑ΂·‚é“K‡«‚àŠÜ‚߂āC‚¢‚©‚È‚é•ÛØ‚às‚í‚È‚¢D‚Ü‚½C–{ƒ\ƒtƒgƒEƒF
40$ ƒA‚Ì—˜—p‚É‚æ‚è’¼Ú“I‚Ü‚½‚͊ԐړI‚ɐ¶‚¶‚½‚¢‚©‚Ȃ鑹ŠQ‚ÉŠÖ‚µ‚Ä‚àC‚»
41$ ‚̐ӔC‚𕉂í‚È‚¢D
42$
43$ @(#) $Id: kernel_check.tf 2062 2011-04-10 16:27:41Z ertl-hiro $
44$
45$ =====================================================================
46
47$
48$ ŠÖ”‚̐擪”Ô’n‚̃`ƒFƒbƒN
49$
50$IF CHECK_FUNC_ALIGN || CHECK_FUNC_NONNULL$
51$ // ƒ^ƒXƒN‚ƃ^ƒXƒN—áŠOˆ—ƒ‹[ƒ`ƒ“‚̐擪”Ô’n‚̃`ƒFƒbƒN
52 $tinib = SYMBOL("_kernel_tinib_table")$
53 $FOREACH tskid TSK.ID_LIST$
54 $task = PEEK(tinib + offsetof_TINIB_task, sizeof_FP)$
55 $IF CHECK_FUNC_ALIGN && (task & (CHECK_FUNC_ALIGN - 1)) != 0$
56 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
57 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
58 "task", TSK.TASK[tskid], tskid, "CRE_TSK")$$END$
59 $END$
60 $IF CHECK_FUNC_NONNULL && task == 0$
61 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
62 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
63 "task", TSK.TASK[tskid], tskid, "CRE_TSK")$$END$
64 $END$
65 $texrtn = PEEK(tinib + offsetof_TINIB_texrtn, sizeof_FP)$
66 $IF CHECK_FUNC_ALIGN && (texrtn & (CHECK_FUNC_ALIGN - 1)) != 0$
67 $ERROR DEF_TEX.TEXT_LINE[tskid]$E_PAR:
68 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
69 "texrtn", TSK.TEXRTN[tskid], tskid, "DEF_TEX")$$END$
70 $END$
71 $tinib = tinib + sizeof_TINIB$
72 $END$
73
74$ // ŽüŠúƒnƒ“ƒhƒ‰‚̐擪”Ô’n‚̃`ƒFƒbƒN
75 $cycinib = SYMBOL("_kernel_cycinib_table")$
76 $FOREACH cycid CYC.ID_LIST$
77 $cychdr = PEEK(cycinib + offsetof_CYCINIB_cychdr, 4)$
78 $IF CHECK_FUNC_ALIGN && (cychdr & (CHECK_FUNC_ALIGN - 1)) != 0$
79 $ERROR CYC.TEXT_LINE[cycid]$E_PAR:
80 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
81 "cychdr", CYC.CYCHDR[cycid], cycid, "CRE_CYC")$$END$
82 $END$
83 $IF CHECK_FUNC_NONNULL && cychdr == 0$
84 $ERROR CYC.TEXT_LINE[cycid]$E_PAR:
85 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
86 "cychdr", CYC.CYCHDR[cycid], cycid, "CRE_CYC")$$END$
87 $END$
88 $cycinib = cycinib + sizeof_CYCINIB$
89 $END$
90
91$ // ƒAƒ‰[ƒ€ƒnƒ“ƒhƒ‰‚̐擪”Ô’n‚̃`ƒFƒbƒN
92 $alminib = SYMBOL("_kernel_alminib_table")$
93 $FOREACH almid ALM.ID_LIST$
94 $almhdr = PEEK(alminib + offsetof_ALMINIB_almhdr, 4)$
95 $IF CHECK_FUNC_ALIGN && (almhdr & (CHECK_FUNC_ALIGN - 1)) != 0$
96 $ERROR ALM.TEXT_LINE[almid]$E_PAR:
97 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
98 "almhdr", ALM.ALMHDR[almid], almid, "CRE_ALM")$$END$
99 $END$
100 $IF CHECK_FUNC_NONNULL && almhdr == 0$
101 $ERROR ALM.TEXT_LINE[almid]$E_PAR:
102 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
103 "almhdr", ALM.ALMHDR[almid], almid, "CRE_ALM")$$END$
104 $END$
105 $alminib = alminib + sizeof_ALMINIB$
106 $END$
107
108$ // Š„ž‚݃T[ƒrƒXƒ‹[ƒ`ƒ“‚̐擪”Ô’n‚̃`ƒFƒbƒN
109 $isrinib = SYMBOL("_kernel_sisrinib_table")$
110 $FOREACH order ISR.ORDER_LIST$
111 $isr = PEEK(isrinib + offsetof_ISRINIB_isr, 4)$
112 $IF CHECK_FUNC_ALIGN && (isr & (CHECK_FUNC_ALIGN - 1)) != 0$
113 $ERROR ISR.TEXT_LINE[order]$E_PAR:
114 $FORMAT(_("%1% `%2%\' in %4% is not aligned"),
115 "isr", ISR.ISR[order], "ATT_ISR")$$END$
116 $END$
117 $IF CHECK_FUNC_NONNULL && isr == 0$
118 $ERROR ISR.TEXT_LINE[order]$E_PAR:
119 $FORMAT(_("%1% `%2%\' in %4% is null"),
120 "isr", ISR.ISR[order], "ATT_ISR")$$END$
121 $END$
122 $isrinib = isrinib + sizeof_ISRINIB$
123 $END$
124$END$
125
126$
127$ ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
128$
129$IF CHECK_STACK_ALIGN || CHECK_STACK_NONNULL$
130$ // ƒ^ƒXƒN‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
131 $tinib = SYMBOL("_kernel_tinib_table")$
132 $FOREACH tskid TSK.ID_LIST$
133 $IF USE_TSKINICTXB$
134 $stk = GET_STK_TSKINICTXB(tinib)$
135 $ELSE$
136 $stk = PEEK(tinib + offsetof_TINIB_stk, sizeof_void_ptr)$
137 $END$
138 $IF CHECK_STACK_ALIGN && (stk & (CHECK_STACK_ALIGN - 1)) != 0$
139 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
140 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
141 "stk", TSK.STK[tskid], tskid, "CRE_TSK")$$END$
142 $END$
143 $IF CHECK_STACK_NONNULL && stk == 0$
144 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
145 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
146 "stk", TSK.STK[tskid], tskid, "CRE_TSK")$$END$
147 $END$
148 $tinib = tinib + sizeof_TINIB$
149 $END$
150
151$ // ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
152 $istk = PEEK(SYMBOL("_kernel_istk"), sizeof_void_ptr)$
153 $IF CHECK_STACK_ALIGN && (istk & (CHECK_STACK_ALIGN - 1)) != 0$
154 $ERROR ICE.TEXT_LINE[1]$E_PAR:
155 $FORMAT(_("%1% `%2%\' in %3% is not aligned"),
156 "istk", ICS.ISTK[1], "DEF_ICS")$$END$
157 $END$
158 $IF CHECK_STACK_NONNULL && istk == 0$
159 $ERROR ICE.TEXT_LINE[1]$E_PAR:
160 $FORMAT(_("%1% `%2%\' in %3% is null"),
161 "istk", ICS.ISTK[1], "DEF_ICS")$$END$
162 $END$
163$END$
164
165$
166$ ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
167$
168$IF CHECK_MPF_ALIGN || CHECK_MPF_NONNULL$
169$ // ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
170 $mpfinib = SYMBOL("_kernel_mpfinib_table")$
171 $FOREACH mpfid MPF.ID_LIST$
172 $mpf = PEEK(mpfinib + offsetof_MPFINIB_mpf, sizeof_void_ptr)$
173 $IF CHECK_MPF_ALIGN && (mpf & (CHECK_MPF_ALIGN - 1)) != 0$
174 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR:
175 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
176 "mpf", MPF.MPF[mpfid], mpfid, "CRE_MPF")$$END$
177 $END$
178 $IF CHECK_MPF_NONNULL && mpf == 0$
179 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR:
180 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
181 "mpf", MPF.MPF[mpfid], mpfid, "CRE_MPF")$$END$
182 $END$
183 $mpfinib = mpfinib + sizeof_MPFINIB$
184 $END$
185$END$
186
187$
188$ ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
189$
190$IF CHECK_MB_ALIGN$
191$ // ƒJ[ƒlƒ‹‚ªŠ„‚è•t‚¯‚郁ƒ‚ƒŠ—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
192 $kmm = PEEK(SYMBOL("_kernel_kmm"), sizeof_void_ptr)$
193 $IF CHECK_MB_ALIGN && (kmm & (CHECK_MB_ALIGN - 1)) != 0$
194 $ERROR KMM.TEXT_LINE[1]$E_PAR:
195 $FORMAT(_("%1% `%2%\' in %3% is not aligned"),
196 "kmm", KMM.KMM[1], "DEF_KMM")$$END$
197 $END$
198$END$
Note: See TracBrowser for help on using the repository browser.