source: asp_ewarm/asp-1.7.0/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: 6.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-2011 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$END$
108
109$
110$ ƒXƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
111$
112$IF CHECK_STACK_ALIGN || CHECK_STACK_NONNULL$
113$ // ƒ^ƒXƒN‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
114 $tinib = SYMBOL("_kernel_tinib_table")$
115 $FOREACH tskid TSK.ID_LIST$
116 $IF USE_TSKINICTXB$
117 $stk = GET_STK_TSKINICTXB(tinib)$
118 $ELSE$
119 $stk = PEEK(tinib + offsetof_TINIB_stk, sizeof_void_ptr)$
120 $END$
121 $IF CHECK_STACK_ALIGN && (stk & (CHECK_STACK_ALIGN - 1)) != 0$
122 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
123 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
124 "stk", TSK.STK[tskid], tskid, "CRE_TSK")$$END$
125 $END$
126 $IF CHECK_STACK_NONNULL && stk == 0$
127 $ERROR TSK.TEXT_LINE[tskid]$E_PAR:
128 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
129 "stk", TSK.STK[tskid], tskid, "CRE_TSK")$$END$
130 $END$
131 $tinib = tinib + sizeof_TINIB$
132 $END$
133
134$ // ”ñƒ^ƒXƒNƒRƒ“ƒeƒLƒXƒg—p‚̃Xƒ^ƒbƒN—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
135 $istk = PEEK(SYMBOL("_kernel_istk"), sizeof_void_ptr)$
136 $IF CHECK_STACK_ALIGN && (istk & (CHECK_STACK_ALIGN - 1)) != 0$
137 $ERROR ICE.TEXT_LINE[1]$E_PAR:
138 $FORMAT(_("%1% `%2%\' in %3% is not aligned"),
139 "istk", ICS.ISTK[1], "DEF_ICS")$$END$
140 $END$
141 $IF CHECK_STACK_NONNULL && istk == 0$
142 $ERROR ICE.TEXT_LINE[1]$E_PAR:
143 $FORMAT(_("%1% `%2%\' in %3% is null"),
144 "istk", ICS.ISTK[1], "DEF_ICS")$$END$
145 $END$
146$END$
147
148$
149$ ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
150$
151$IF CHECK_MPF_ALIGN || CHECK_MPF_NONNULL$
152$ // ŒÅ’è’·ƒƒ‚ƒŠƒv[ƒ‹—̈æ‚̐擪”Ô’n‚̃`ƒFƒbƒN
153 $mpfinib = SYMBOL("_kernel_mpfinib_table")$
154 $FOREACH mpfid MPF.ID_LIST$
155 $mpf = PEEK(mpfinib + offsetof_MPFINIB_mpf, sizeof_void_ptr)$
156 $IF CHECK_MPF_ALIGN && (mpf & (CHECK_MPF_ALIGN - 1)) != 0$
157 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR:
158 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is not aligned"),
159 "mpf", MPF.MPF[mpfid], mpfid, "CRE_MPF")$$END$
160 $END$
161 $IF CHECK_MPF_NONNULL && mpf == 0$
162 $ERROR MPF.TEXT_LINE[mpfid]$E_PAR:
163 $FORMAT(_("%1% `%2%\' of `%3%\' in %4% is null"),
164 "mpf", MPF.MPF[mpfid], mpfid, "CRE_MPF")$$END$
165 $END$
166 $mpfinib = mpfinib + sizeof_MPFINIB$
167 $END$
168$END$
Note: See TracBrowser for help on using the repository browser.