1 |
|
---|
2 | TOPPERS/ASP3ã«ã¼ãã«
|
---|
3 | æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ã
|
---|
4 |
|
---|
5 | 対å¿ãã¼ã¸ã§ã³: Release 3.B.0
|
---|
6 | æçµæ´æ°: 2015å¹´8æ21æ¥
|
---|
7 |
|
---|
8 | ãã®ããã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«3ãï¼æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ãã
|
---|
9 | ããã®æ¹æ³ï¼ã¾ãã¯ãã³ãï¼ã説æãããã®ã§ããï¼
|
---|
10 |
|
---|
11 | ----------------------------------------------------------------------
|
---|
12 | TOPPERS/ASP Kernel
|
---|
13 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
14 | Advanced Standard Profile Kernel
|
---|
15 |
|
---|
16 | Copyright (C) 2005-2015 by Embedded and Real-Time Systems Laboratory
|
---|
17 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
18 |
|
---|
19 | ä¸è¨èä½æ¨©è
|
---|
20 | ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
|
---|
21 | ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹
|
---|
22 | å¤ã»åé
|
---|
23 | å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
24 | (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
|
---|
25 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
|
---|
26 | ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
27 | (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
28 | ç¨ã§ããå½¢ã§åé
|
---|
29 | å¸ããå ´åã«ã¯ï¼åé
|
---|
30 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨
|
---|
31 | è
|
---|
32 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
|
---|
33 | ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
34 | (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
35 | ç¨ã§ããªãå½¢ã§åé
|
---|
36 | å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
|
---|
37 | ã¨ï¼
|
---|
38 | (a) åé
|
---|
39 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
40 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
|
---|
41 | ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
42 | (b) åé
|
---|
43 | å¸ã®å½¢æ
|
---|
44 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã«
|
---|
45 | å ±åãããã¨ï¼
|
---|
46 | (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
|
---|
47 | 害ãããï¼ä¸è¨èä½æ¨©è
|
---|
48 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
49 | 責ãããã¨ï¼
|
---|
50 | ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
|
---|
51 | ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
|
---|
52 | ããã³TOPPERSããã¸ã§ã¯ãã
|
---|
53 | å
|
---|
54 | 責ãããã¨ï¼
|
---|
55 |
|
---|
56 | æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
|
---|
57 | ã
|
---|
58 | ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
|
---|
59 | ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
|
---|
60 | ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã
|
---|
61 | ã®è²¬ä»»ãè² ããªãï¼
|
---|
62 |
|
---|
63 | $Id: extension.txt 458 2015-08-21 14:59:09Z ertl-hiro $
|
---|
64 | ----------------------------------------------------------------------
|
---|
65 |
|
---|
66 | âç®æ¬¡
|
---|
67 |
|
---|
68 | ã»ã¨ã©ã¼ãã§ãã¯ã®çç¥
|
---|
69 | ã»ç¹æ®ç®çã®ã¬ã¸ã¹ã¿ã®æ±ã
|
---|
70 | ã»æ¡å¼µããã±ã¼ã¸ã®ä½¿ãæ¹
|
---|
71 | - ããªãã調æ´æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
72 | - ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
73 | - ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
74 | - ã¿ã¹ã¯åªå
|
---|
75 | 度æ¡å¼µããã±ã¼ã¸
|
---|
76 | - å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
|
---|
77 | - ãµãåªå
|
---|
78 | 度æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
79 | - åççææ©è½æ¡å¼µããã±ã¼ã¸
|
---|
80 | ã»CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºã
|
---|
81 | - TA_DIRECTå±æ§ã®å°å
|
---|
82 | ¥
|
---|
83 | - ã¿ã¼ã²ããä¾åé¨ã®ä¿®æ£ç®æ
|
---|
84 |
|
---|
85 |
|
---|
86 | âã¨ã©ã¼ãã§ãã¯ã®çç¥
|
---|
87 |
|
---|
88 | ãµã¼ãã¹ã³ã¼ã«ã®ãªã¼ãããããåæ¸ããããã«ï¼éçãªã¨ã©ã¼ã®ãã§ãã¯ã
|
---|
89 | çç¥ããæ¹æ³ãããï¼ASP3ã«ã¼ãã«ã«ããã¦ã¯ï¼éçãªã¨ã©ã¼ã®ãã§ãã¯ã¯ã
|
---|
90 | ã¹ã¦CHECKãã¯ããç¨ãã¦è¡ã£ã¦ããããï¼kernel/check.hä¸ã®CHECKãã¯ãã
|
---|
91 | å¤æ´ãããã¨ã§ï¼éçãªã¨ã©ã¼ã®ãã§ãã¯ãçç¥ãããã¨ãã§ããï¼
|
---|
92 |
|
---|
93 | ä¾ãã°ï¼ãªãã¸ã§ã¯ãIDã®ãã§ãã¯ãçç¥ãããå ´åã«ã¯ï¼CHECK_IDãã¯ãã®
|
---|
94 | å®ç¾©ãï¼æ¬¡ã®ããã«å¤æ´ããã°ããï¼
|
---|
95 |
|
---|
96 | #define CHECK_ID(exp) ((void)(exp))
|
---|
97 |
|
---|
98 | ãã®ãã¯ãã®å®ç¾©ã空ã«ããæ¹æ³ããããï¼ãã©ã¡ã¼ã¿ã«å¯ä½ç¨ã®ããå¼ãæ¸
|
---|
99 | ããã¦ããå¯è½æ§ãèããã¨ï¼å¯ä½ç¨ã®ããå¼ã¯æ¸ãã¹ãã§ã¯ãªããï¼æ¸ãã
|
---|
100 | ã¦ããã³ã¼ããå
|
---|
101 | ¥ã£ã¦ããå¯è½æ§ãå
|
---|
102 | ¨ããªãã¨ã¯è¨ããªãï¼ï¼ä¸ã®å®ç¾©ã®æ¹ã
|
---|
103 | å®å
|
---|
104 | ¨ã§ããï¼å¯ä½ç¨ã®ãªãå¼ã§ããã°ï¼æé©åã«ãã£ã¦åé¤ãããã¨ãã§ãã
|
---|
105 | ããï¼å®è¡æå¹çã«ã¯å½±é¿ããªãã¨æå¾
|
---|
106 | ã§ããï¼ãã ãï¼æé©åã«ãã£ã¦åé¤
|
---|
107 | ãããªãå ´åã«ã¯ï¼å¯ä½ç¨ã®ããå¼ãæ¸ããã¦ããªããã¨ã確èªããä¸ã§ï¼ã
|
---|
108 | ã¯ãã®å®ç¾©ã空ã«ãã¦ãããï¼
|
---|
109 |
|
---|
110 | ããå°ãå°ããç²åº¦ã§ã¨ã©ã¼ãã§ãã¯ãçç¥ãããå ´åã«ã¯ï¼kernel/check.h
|
---|
111 | ä¸ã®VALIDãã¯ããå¤æ´ããæ¹æ³ãããï¼ä¾ãã°ï¼ã¿ã¹ã¯IDã®ä¸ã§ãã§ãã¯ãç
|
---|
112 | ç¥ãããå ´åã«ã¯ï¼VALID_TSKIDãã¯ãã®å®ç¾©ãï¼æ¬¡ã®ããã«å¤æ´ããã°ããï¼
|
---|
113 |
|
---|
114 | #define VALID_TSKID(tskid) (true)
|
---|
115 |
|
---|
116 |
|
---|
117 | âç¹æ®ç®çã®ã¬ã¸ã¹ã¿ã®æ±ã
|
---|
118 |
|
---|
119 | FPUã¬ã¸ã¹ã¿ãDSPã¬ã¸ã¹ã¿ãªã©ã®ç¹æ®ç®çã®ã¬ã¸ã¹ã¿ï¼ä»¥ä¸ï¼ç¹æ®ã¬ã¸ã¹ã¿ï¼
|
---|
120 | ãæã¤ããã»ããµã§ã¯ï¼ã¬ã¸ã¹ã¿ã®æ±ãã«ã¤ãã¦å¤§ãã次ã®3ã¤ã®æ¹æ³ãèãã
|
---|
121 | ããï¼
|
---|
122 |
|
---|
123 | (1) ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®ã³ã³ããã¹ãã«å«ããªã
|
---|
124 |
|
---|
125 | 1ã¤ã®ã¿ã¹ã¯ã®ã¿ãç¹æ®ã¬ã¸ã¹ã¿ã使ç¨ããå ´åã«ã¯ï¼ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®
|
---|
126 | ã³ã³ããã¹ãã«å«ããå¿
|
---|
127 | è¦ããªãï¼ã«ã¼ãã«ã§ç®¡çããå¿
|
---|
128 | è¦ããªãï¼
|
---|
129 |
|
---|
130 | (2) ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®ã³ã³ããã¹ãã«å«ãã
|
---|
131 |
|
---|
132 | è¤æ°ã®ã¿ã¹ã¯ãç¹æ®ã¬ã¸ã¹ã¿ã使ç¨ããå ´åã«ã¯ï¼ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®ã³
|
---|
133 | ã³ããã¹ãã«å«ããæ¹æ³ãæãåç´ã§ããï¼ãã®ããã«ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãã
|
---|
134 | ãã£ã¨å²è¾¼ã¿ãã³ãã©/CPUä¾å¤ãã³ãã©ã®åºå
|
---|
135 | ¥å£ã§ï¼ç¹æ®ã¬ã¸ã¹ã¿ãä¿å/復帰
|
---|
136 | ããã³ã¼ãã追å ããå¿
|
---|
137 | è¦ãããï¼å®éã®ä¿å/å¾©å¸°å ´æã¯ï¼ã¹ã¯ã©ããã¬ã¸ã¹
|
---|
138 | ã¿ã¨ãã以å¤ã®ã¬ã¸ã¹ã¿ã§ç°ãªãããï¼æ³¨æãå¿
|
---|
139 | è¦ã§ããï¼
|
---|
140 |
|
---|
141 | (3) ç¹æ®ã¬ã¸ã¹ã¿ãã³ã³ããã¹ãã«å«ãããã©ãããã¿ã¹ã¯æ¯ã«æå®ãã
|
---|
142 |
|
---|
143 | ç¹æ®ã¬ã¸ã¹ã¿ã使ç¨ããã¿ã¹ã¯ã¨ä½¿ç¨ããªãã¿ã¹ã¯ãããå ´åã§ï¼ãã¹ã¦ã®ã¿
|
---|
144 | ã¹ã¯ã®ã³ã³ããã¹ãã«ç¹æ®ã¬ã¸ã¹ã¿ãå«ããæ¹æ³ã§ã¯ãªã¼ãããããåé¡ã«ãª
|
---|
145 | ãå ´åã«ã¯ï¼ç¹æ®ã¬ã¸ã¹ã¿ãã³ã³ããã¹ãã«å«ãããã©ãããã¿ã¹ã¯æ¯ã«æå®
|
---|
146 | ããæ¹æ³ãæåã§ããï¼ãããå®ç¾ããæ¹æ³ã¯æ¬¡ã®éãã§ããï¼
|
---|
147 |
|
---|
148 | ã¾ãï¼ç¹æ®ã¬ã¸ã¹ã¿ãã³ã³ããã¹ãã«å«ãããã©ãããæå®ããã¿ã¹ã¯å±æ§ã
|
---|
149 | è¨ããï¼ä¾ãã°ï¼FPUã¬ã¸ã¹ã¿ã§ããã°ï¼ã¿ã¹ã¯å±æ§ã«TA_FPUãè¨ããï¼ã¿ã¹ã¯
|
---|
150 | ãã£ã¹ãããã£ã§ã¯ï¼ã¿ã¹ã¯å±æ§ãè¦ã¦ï¼ãã®å±æ§ãè¨å®ããã¦ããã°ç¹æ®ã¬
|
---|
151 | ã¸ã¹ã¿ãä¿å/復帰ããï¼
|
---|
152 |
|
---|
153 | ãã¼ãã¦ã§ã¢çã«ç¹æ®ã¬ã¸ã¹ã¿ããã£ã¹ã¨ã¼ãã«ã§ããå ´åã«ã¯ï¼ãã®å±æ§ã
|
---|
154 | è¨å®ããã¦ããªãã¿ã¹ã¯ã«åãæããæã«ç¹æ®ã¬ã¸ã¹ã¿ããã£ã¹ã¨ã¼ãã«ãã
|
---|
155 | ã¨ï¼èª¤ã£ã¦ç¹æ®ã¬ã¸ã¹ã¿ã使ã£ãå ´åãæ¤åºã§ããï¼
|
---|
156 |
|
---|
157 | ããã«ï¼å²è¾¼ã¿ãã³ãã©ï¼ISRï¼å¨æãã³ãã©ï¼ã¢ã©ã¼ã ãã³ãã©ãå«ãï¼ã
|
---|
158 | CPUä¾å¤ãã³ãã©ã§ç¹æ®ã¬ã¸ã¹ã¿ã使ç¨ããå ´åã«ã¯ï¼ãããã®å¦çåä½ã«ã
|
---|
159 | ç¹æ®ã¬ã¸ã¹ã¿ã使ç¨ãããã©ããã®å±æ§ãè¨ããæ¹æ³ãèããããï¼
|
---|
160 |
|
---|
161 | ããã§ï¼ã¿ã¹ã¯ï¼ã¾ãã¯ä»ã®å¦çåä½ï¼ãç¹æ®ã¬ã¸ã¹ã¿ã使ç¨ãããã©ããã¯ï¼
|
---|
162 | ã³ã³ãã¤ã©ãã©ã¤ãã©ãªã«ä¾åããå ´åãããããï¼æ³¨æãå¿
|
---|
163 | è¦ã§ããï¼ä¾ã
|
---|
164 | ã°ï¼æµ®åå°æ°ç¹æ¼ç®ãå«ã¾ãªãããã°ã©ã ã§ãã£ã¦ãï¼ã³ã³ãã¤ã©ããã®æ¹ã
|
---|
165 | æ§è½ãé«ãã¨å¤æããã°ï¼æµ®åå°æ°ç¹å½ä»¤ãçæããå ´åãããï¼
|
---|
166 |
|
---|
167 |
|
---|
168 | âæ¡å¼µããã±ã¼ã¸ã®ä½¿ãæ¹
|
---|
169 |
|
---|
170 | ASP3ã«ã¼ãã«ã§ã¯ï¼ããã¤ãã®æ¡å¼µæ©è½ãå®è£
|
---|
171 | ããããã«ï¼æ¡å¼µããã±ã¼ã¸ã
|
---|
172 | ãµãã¼ããã¦ããï¼æ¡å¼µããã±ã¼ã¸ã¯ï¼extensionãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
|
---|
173 |
|
---|
174 | æ¡å¼µããã±ã¼ã¸ã使ç¨ããå ´åã«ã¯ï¼UNIXã§ããã°ï¼ASP3ã«ã¼ãã«ã®ã½ã¼ã¹ãã¡
|
---|
175 | ã¤ã«ã®ããããã£ã¬ã¯ããªã§ï¼
|
---|
176 |
|
---|
177 | % cp -r extension/<æ¡å¼µããã±ã¼ã¸ã®ãã£ã¬ã¯ããªå>/* .
|
---|
178 |
|
---|
179 | ãå®è¡ããï¼ãã®æï¼å
|
---|
180 | ã®ï¼æ¡å¼µåã®ï¼ã½ã¼ã¹ãã¡ã¤ã«ã¯ä¸æ¸ãããã¦ãã¾ã
|
---|
181 | ããï¼æ¡å¼µããªãã«ã¼ãã«ã使ç¨ãããå ´åã«ã¯ï¼å¥ã®ãã£ã¬ã¯ããªã«ã½ã¼ã¹
|
---|
182 | ãã¡ã¤ã«ãå±éãã¦ï¼ä¸ã®ã³ãã³ããå®è¡ãããã¨ï¼
|
---|
183 |
|
---|
184 | è¤æ°ã®æ¡å¼µããã±ã¼ã¸ã使ããã¨ã¯èæ
|
---|
185 | ®ãã¦ããªããï¼æ¡å¼µããã±ã¼ã¸ã®çµã¿
|
---|
186 | åããã«ãã£ã¦ã¯ï¼æä½æ¥ã«ããè¤æ°ã®æ¡å¼µããã±ã¼ã¸ããã¼ã¸ãããã¨ã¯å¯
|
---|
187 | è½ã§ããï¼
|
---|
188 |
|
---|
189 | âããªãã調æ´æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
190 |
|
---|
191 | ããªãã調æ´æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ããªããã®èª¿æ´æ©è½ã追å ããããã®æ¡
|
---|
192 | å¼µããã±ã¼ã¸ã§ããï¼ããªãã調æ´æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/driftãã£
|
---|
193 | ã¬ã¯ããªã«ç½®ãã¦ããï¼
|
---|
194 |
|
---|
195 | ããªãã調æ´æ©è½æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_DRIFTãkernel.hä¸ã§
|
---|
196 | å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ããªãã調æ´æ©è½ã使ç¨ã§ãããã©ããã
|
---|
197 | å¤å¥ãããã¨ãã§ããï¼
|
---|
198 |
|
---|
199 | ããªãã調æ´æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ããããµã¼ãã¹ã³ã¼ã«
|
---|
200 |
|
---|
201 | ER ercd = set_dft(int32_t drift)
|
---|
202 |
|
---|
203 | âã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
204 |
|
---|
205 | ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ã¡ãã»ã¼ã¸ãããã¡æ©è½ã追å ã
|
---|
206 | ãããã®æ¡å¼µããã±ã¼ã¸ã§ããï¼ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼
|
---|
207 | extension/messagebufãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
|
---|
208 |
|
---|
209 | ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_MESSAGEBUFã
|
---|
210 | kernel.hä¸ã§å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ã¡ãã»ã¼ã¸ãããã¡æ©è½ã使
|
---|
211 | ç¨ã§ãããã©ãããå¤å¥ãããã¨ãã§ããï¼
|
---|
212 |
|
---|
213 | ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ããããµã¼ãã¹ã³ã¼ã«
|
---|
214 |
|
---|
215 | ER ercd = snd_mbf(ID mbfid, const void *msg, uint_t msgsz)
|
---|
216 | ER ercd = psnd_mbf(ID mbfid, const void *msg, uint_t msgsz)
|
---|
217 | ER ercd = tsnd_mbf(ID mbfid, const void *msg, uint_t msgsz, TMO tmout)
|
---|
218 | ER_UINT msgsz = rcv_mbf(ID mbfid, void *msg)
|
---|
219 | ER_UINT msgsz = prcv_mbf(ID mbfid, void *msg)
|
---|
220 | ER_UINT msgsz = trcv_mbf(ID mbfid, void *msg, TMO tmout)
|
---|
221 | ER ercd = ini_mbf(ID mbfid)
|
---|
222 | ER ercd = ref_mbf(ID mbfid, T_RMBF *pk_rmbf)
|
---|
223 |
|
---|
224 | ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ãããéçAPI
|
---|
225 |
|
---|
226 | CRE_MBF(ID mbfid, { ATR mbfatr, uint_t maxmsz, size_t mbfsz, void *mbfmb })
|
---|
227 |
|
---|
228 | âãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
229 |
|
---|
230 | ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ãªã¼ãã©ã³ãã³ãã©æ©è½ã追å ã
|
---|
231 | ãããã®æ¡å¼µããã±ã¼ã¸ã§ããï¼ãã ãï¼ãã®æ¡å¼µããã±ã¼ã¸ã使ãããã«ã¯ï¼
|
---|
232 | ã¿ã¼ã²ããä¾åé¨ã対å¿ãã¦ããå¿
|
---|
233 | è¦ãããï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µãã
|
---|
234 | ã±ã¼ã¸ã¯ï¼extension/ovrhdrãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
|
---|
235 |
|
---|
236 | ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã§ï¼ã¿ã¼ã²ããä¾åé¨ãæ¡å¼µããã±ã¼
|
---|
237 | ã¸ã«å¯¾å¿ãã¦ããå ´åã«ã¯ï¼TOPPERS_SUPPORT_OVRHDRãkernel.hä¸ã§å®ç¾©ãã
|
---|
238 | ãã®ã§ï¼ãããç¨ãã¦ãªã¼ãã©ã³ã¿ã¤ãæ©è½ã使ç¨ã§ãããã©ãããå¤å¥ãã
|
---|
239 | ãã¨ãã§ããï¼
|
---|
240 |
|
---|
241 | ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ããããµã¼ãã¹ã³ã¼ã«
|
---|
242 |
|
---|
243 | ER ercd = sta_ovr(ID tskid, PRCTIM ovrtim)
|
---|
244 | ER ercd = stp_ovr(ID tskid)
|
---|
245 | ER ercd = ref_ovr(ID tskid, T_ROVR *pk_rovr)
|
---|
246 |
|
---|
247 | ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ãããéçAPI
|
---|
248 |
|
---|
249 | DEF_OVR({ ATR ovratr, OVRHDR ovrhdr })
|
---|
250 |
|
---|
251 | âã¿ã¹ã¯åªå
|
---|
252 | 度æ¡å¼µããã±ã¼ã¸
|
---|
253 |
|
---|
254 | ã¿ã¹ã¯åªå
|
---|
255 | 度æ¡å¼µããã±ã¼ã¸ã¯ï¼ã¿ã¹ã¯åªå
|
---|
256 | 度ãæ大256段éã«æ¡å¼µããããã®
|
---|
257 | æ¡å¼µããã±ã¼ã¸ã§ããï¼ãã®æ¡å¼µããã±ã¼ã¸ã¯ï¼ã¿ã¹ã¯åªå
|
---|
258 | 度ã«å ãã¦ï¼ãã¼
|
---|
259 | ã¿åªå
|
---|
260 | 度ï¼ã¡ãã»ã¼ã¸åªå
|
---|
261 | 度ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
|
---|
262 | 度ã256段éã«æ¡å¼µ
|
---|
263 | ããï¼ã¿ã¹ã¯åªå
|
---|
264 | 度æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/pri_levelãã£ã¬ã¯ããªã«ç½®
|
---|
265 | ãã¦ããï¼
|
---|
266 |
|
---|
267 | ã¿ã¹ã¯åªå
|
---|
268 | 度æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_PRI_LEVELãkernel.hä¸ã§
|
---|
269 | å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ã¿ã¹ã¯åªå
|
---|
270 | 度ã®ç¯å²ãæ¡å¼µããã¦ãããã©
|
---|
271 | ãããå¤å¥ãããã¨ãã§ããï¼
|
---|
272 |
|
---|
273 | âå¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
|
---|
274 |
|
---|
275 | å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã¯ï¼å¶ç´ã¿ã¹ã¯ã®æ©è½ã追å ããããã®æ¡å¼µããã±ã¼
|
---|
276 | ã¸ã§ããï¼å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/rstr_taskãã£ã¬ã¯ããªã«
|
---|
277 | ç½®ãã¦ããï¼
|
---|
278 |
|
---|
279 | å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_RSTR_TASKãkernel.hä¸ã§å®
|
---|
280 | 義ããã¦ããã®ã§ï¼ãããç¨ãã¦å¶ç´ã¿ã¹ã¯ã®æ©è½ã使ç¨ã§ãããã©ãããå¤
|
---|
281 | å¥ãããã¨ãã§ããï¼
|
---|
282 |
|
---|
283 | âãµãåªå
|
---|
284 | 度æ©è½æ¡å¼µããã±ã¼ã¸
|
---|
285 |
|
---|
286 | ãµãåªå
|
---|
287 | 度æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ãµãåªå
|
---|
288 | 度æ©è½ã追å ããããã®æ¡å¼µãã
|
---|
289 | ã±ã¼ã¸ã§ããï¼ãµãåªå
|
---|
290 | 度æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/subprioãã£ã¬ã¯
|
---|
291 | ããªã«ç½®ãã¦ããï¼
|
---|
292 |
|
---|
293 | ãµãåªå
|
---|
294 | 度æ©è½æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_SUBPRIOãkernel.hä¸ã§
|
---|
295 | å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ãµãåªå
|
---|
296 | 度æ©è½ã使ç¨ã§ãããã©ãããå¤
|
---|
297 | å¥ãããã¨ãã§ããï¼
|
---|
298 |
|
---|
299 | ãµãåªå
|
---|
300 | 度æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ããããµã¼ãã¹ã³ã¼ã«
|
---|
301 |
|
---|
302 | ER ercd = chg_spr(ID tskid, uint_t subpri)
|
---|
303 |
|
---|
304 | ãµãåªå
|
---|
305 | 度æ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ããããµã¼ãã¹ã³ã¼ã«
|
---|
306 |
|
---|
307 | ENA_SPR(PRI tskpri)
|
---|
308 |
|
---|
309 | âåççææ©è½æ¡å¼µããã±ã¼ã¸
|
---|
310 |
|
---|
311 | åççææ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ãªãã¸ã§ã¯ãã®åççææ©è½ã追å ãããã
|
---|
312 | ã®æ¡å¼µããã±ã¼ã¸ã§ããï¼TOPPERS第3ä¸ä»£ã«ã¼ãã«ï¼ITRONç³»ï¼çµ±åä»æ§æ¸ã«è¦
|
---|
313 | å®ããã以ä¸ã®ãªãã¸ã§ã¯ãçæï¼åé¤ã®ããã®ãµã¼ãã¹ã³ã¼ã«ï¼å²ä»ãå¯è½
|
---|
314 | ãªIDçªå·ã®æ°ãæå®ããéçAPIã«å ãã¦ï¼ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã
|
---|
315 | è¨å®ããéçAPI DEF_KMMãå®è£
|
---|
316 | ãã¦ããï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼
|
---|
317 | extension/dcreãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
|
---|
318 |
|
---|
319 | ãã ãï¼ã«ã¼ãã«å
|
---|
320 | ã§ã®åçã¡ã¢ãªç®¡çã«é¢ãã¦ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã§ã¯ï¼
|
---|
321 | ã¡ã¢ãªé åãå
|
---|
322 | é ããé ã«å²ãå½ã¦ï¼è§£æ¾ãããã¡ã¢ãªé åãåå©ç¨ããªãã¡
|
---|
323 | ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã®ã¿ãå®è£
|
---|
324 | ãã¦ããï¼æ¬æ ¼çãªåçã¡ã¢ãªç®¡çãè¡ããã
|
---|
325 | å ´åã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã¾ãã¯ã¦ã¼ã¶å´ã§ï¼ãã®ããã®é¢æ°ãç¨æããå¿
|
---|
326 |
|
---|
327 | è¦ãããï¼ç¨æããé¢æ°çã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASP3ã«ã¼ãã« ã¿ã¼ã²ããä¾
|
---|
328 | åé¨ ãã¼ãã£ã³ã°ã¬ã¤ããã®ã6.15 åçã¡ã¢ãªç®¡çãã®ç¯ãåç
|
---|
329 | §ãããã¨ï¼
|
---|
330 |
|
---|
331 | åçæ©è½æ¡å¼µæ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_DYNAMIC_CREãkernel.hä¸
|
---|
332 | ã§å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦åççææ©è½ã使ç¨ã§ãããã©ãããå¤
|
---|
333 | å¥ãããã¨ãã§ããï¼
|
---|
334 |
|
---|
335 | åççææ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ããããµã¼ãã¹ã³ã¼ã«
|
---|
336 |
|
---|
337 | ER_ID tskid = acre_tsk(const T_CTSK *pk_ctsk)
|
---|
338 | ER ercd = del_tsk(ID tskid)
|
---|
339 | ER_ID semid = acre_sem(const T_CSEM *pk_csem)
|
---|
340 | ER ercd = del_sem(ID semid)
|
---|
341 | ER_ID flgid = acre_flg(const T_CFLG *pk_cflg)
|
---|
342 | ER ercd = del_flg(ID flgid)
|
---|
343 | ER_ID dtqid = acre_dtq(const T_CDTQ *pk_cdtq)
|
---|
344 | ER ercd = del_dtq(ID dtqid)
|
---|
345 | ER_ID pdqid = acre_pdq(const T_CPDQ *pk_cpdq)
|
---|
346 | ER ercd = del_pdq(ID pdqid)
|
---|
347 | ER_ID mtxid = acre_mtx(const T_CMTX *pk_cmtx)
|
---|
348 | ER ercd = del_mtx(ID mtxid)
|
---|
349 | ER_ID mpfid = acre_mpf(const T_CMPF *pk_cmpf)
|
---|
350 | ER ercd = del_mpf(ID mpfid)
|
---|
351 | ER_ID cycid = acre_cyc(const T_CCYC *pk_ccyc)
|
---|
352 | ER ercd = del_cyc(ID cycid)
|
---|
353 | ER_ID almid = acre_alm(const T_CALM *pk_calm)
|
---|
354 | ER ercd = del_alm(ID almid)
|
---|
355 | ER_ID isrid = acre_isr(const T_CISR *pk_cisr)
|
---|
356 | ER ercd = del_isr(ID isrid)
|
---|
357 |
|
---|
358 | åççææ©è½æ¡å¼µããã±ã¼ã¸ã«ãã追å ãããéçAPI
|
---|
359 |
|
---|
360 | AID_TSK(uint_t notsk)
|
---|
361 | AID_SEM(uint_t nosem)
|
---|
362 | AID_FLG(uint_t noflg)
|
---|
363 | AID_DTQ(uint_t nodtq)
|
---|
364 | AID_PDQ(uint_t nopdq)
|
---|
365 | AID_MTX(uint_t nomtx)
|
---|
366 | AID_MPF(uint_t nompf)
|
---|
367 | AID_CYC(uint_t nocyc)
|
---|
368 | AID_ALM(uint_t noalm)
|
---|
369 | AID_ISR(uint_t noisr)
|
---|
370 | DEF_KMM({ SIZE kmmsz, STK_T *kmm })
|
---|
371 |
|
---|
372 | ----------------------------------------------------------------------
|
---|
373 | DEF_KMM ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®è¨å®ãSDã
|
---|
374 |
|
---|
375 | ãéçAPIã
|
---|
376 | DEF_KMM({ SIZE kmmsz, STK_T *kmm })
|
---|
377 |
|
---|
378 | ããã©ã¡ã¼ã¿ã
|
---|
379 | ãï¼ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®è¨å®æ
|
---|
380 | å ±
|
---|
381 | SIZE kmmsz ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãºï¼ãã¤ãæ°ï¼
|
---|
382 | STK_T kmm ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
|
---|
383 | é çªå°
|
---|
384 |
|
---|
385 | ãã¨ã©ã¼ã³ã¼ãã
|
---|
386 | E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼
|
---|
387 | ã»kmmszã0以ä¸
|
---|
388 | ã»ãã®ä»ã®æ¡ä»¶ã«ã¤ãã¦ã¯æ©è½ã®é
|
---|
389 | ãåç
|
---|
390 | §
|
---|
391 | E_OBJ ãªãã¸ã§ã¯ãç¶æ
|
---|
392 | ã¨ã©ã¼
|
---|
393 | ã»ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨å®æ¸ã¿
|
---|
394 |
|
---|
395 | ãæ©è½ã
|
---|
396 |
|
---|
397 | åãã©ã¡ã¼ã¿ã§æå®ããã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®è¨å®æ
|
---|
398 | å ±ã«å¾ã£ã¦ï¼
|
---|
399 | ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨å®ããï¼
|
---|
400 |
|
---|
401 | kmmszã¯æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿ï¼kmmã¯ä¸è¬å®æ°å¼ãã©ã¡ã¼ã¿ã§ããï¼
|
---|
402 |
|
---|
403 | kmmãNULLã¨ããå ´åï¼kmmszã§æå®ãããµã¤ãºã®ã¡ã¢ãªé åãï¼ã³ã³ãã£ã®ã¥
|
---|
404 | ã¬ã¼ã¿ã確ä¿ããï¼kmmszã«ã¿ã¼ã²ããå®ç¾©ã®å¶ç´ã«åè´ããªããµã¤ãºãæå®ã
|
---|
405 | ãæã«ã¯ï¼ã¿ã¼ã²ããå®ç¾©ã®å¶ç´ã«åè´ããããã«ãµã¤ãºã大ããæ¹ã«ä¸¸ãã¦
|
---|
406 | 確ä¿ããï¼
|
---|
407 |
|
---|
408 | ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãã¢ããªã±ã¼ã·ã§ã³ã§ç¢ºä¿ããå ´åã«ã¯ï¼
|
---|
409 | kmmszã§æå®ãããµã¤ãºã®ã¡ã¢ãªé åã確ä¿ãï¼kmmã«ãã®å
|
---|
410 | é çªå°ãæå®ããï¼
|
---|
411 |
|
---|
412 | DEF_KMMã«ããã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨å®ããªãå ´åï¼ã«ã¼ãã«ã
|
---|
413 | å²ãä»ããã¡ã¢ãªé åã¯ç¢ºä¿ãããªãï¼
|
---|
414 |
|
---|
415 | kmmãkmmszã«ã¿ã¼ã²ããå®ç¾©ã®å¶ç´ã«åè´ããªãå
|
---|
416 | é çªå°ããµã¤ãºãæå®ãã
|
---|
417 | æã«ã¯ï¼E_PARã¨ã©ã¼ã¨ãªãï¼
|
---|
418 | ----------------------------------------------------------------------
|
---|
419 |
|
---|
420 |
|
---|
421 | âCPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºã
|
---|
422 |
|
---|
423 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
424 | ¥å£å¦çã¯ï¼CPUä¾å¤ãçºçããªãããã«å®è£
|
---|
425 | ããªããã°
|
---|
426 | ãªããªããï¼ãããé²ããªãã¿ã¼ã²ããã«ããã¦ã¯ï¼CPUä¾å¤ãã³ãã©ã®åºå
|
---|
427 | ¥å£
|
---|
428 | å¦çãçµç±ããã«ï¼ã¢ããªã±ã¼ã·ã§ã³ãç¨æããCPUä¾å¤ãã³ãã©ãç´æ¥å®è¡ã
|
---|
429 | ãæ¹æ³ãç¨æããã®ãæã¾ããï¼ãããï¼CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºãã¨å¼ã¶ï¼
|
---|
430 |
|
---|
431 | ããã§ã¯ï¼ãã¼ãã¦ã§ã¢ã§ãã¯ã¿ãã¼ãã«ãæã¤ããã»ããµã«ããã¦ï¼ã¿ã¼ã²ã
|
---|
432 | ãéä¾åé¨ã«å«ã¾ããæ¨æºã®CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãç¨ãã¦ããå ´å
|
---|
433 | ï¼OMIT_INITILIZE_EXCEPTIONããã¯ãå®ç¾©ãã¦ããªãå ´åï¼ã«ï¼ã¿ã¼ã²ããä¾
|
---|
434 | åé¨ã®ã¿ã®ä¿®æ£ã«ããï¼CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºãã®æ©è½ã追å ããæ¹æ³ã«
|
---|
435 | ã¤ãã¦èª¬æããï¼
|
---|
436 |
|
---|
437 | âTA_DIRECTå±æ§ã®å°å
|
---|
438 | ¥
|
---|
439 |
|
---|
440 | CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºããæå®ããããã«ï¼CPUä¾å¤ãã³ãã©å±æ§ã«ï¼
|
---|
441 | TA_DIRECTå±æ§ãå°å
|
---|
442 | ¥ããï¼
|
---|
443 |
|
---|
444 | âã¿ã¼ã²ããä¾åé¨ã®ä¿®æ£ç®æ
|
---|
445 |
|
---|
446 | TA_DIRECTã®å¤ãï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡
|
---|
447 | ã¤ã«ï¼ã§å®ç¾©ãï¼ãã®å¤ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãåãåºããããã«ï¼
|
---|
448 | target_def.csvï¼ã¾ãã¯ï¼ããã«ä»£ãããã¡ã¤ã«ï¼ã«æ¬¡ã®è¡ã追å ããï¼
|
---|
449 |
|
---|
450 | TA_DIRECT,TA_DIRECT
|
---|
451 |
|
---|
452 | 次ã«ï¼target.tfï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã§ï¼
|
---|
453 | TARGET_EXCATRã«è¨å®ãããå¤ã«ï¼TA_DIRECTã追å ããï¼ä¾ãã°ï¼ä»ã®ã¿ã¼ã²ã
|
---|
454 | ãä¾åã®CPUä¾å¤ãã³ãã©å±æ§ããªãå ´åã«ã¯ï¼æ¬¡ã®ããã«è¨å®ããï¼
|
---|
455 |
|
---|
456 | $TARGET_EXCATR = TA_DIRECT$
|
---|
457 |
|
---|
458 | 次ã«ï¼OMIT_INITILIZE_EXCEPTIONããã¯ãå®ç¾©ãã¦ï¼CPUä¾å¤ãã³ãã©ã®åºå
|
---|
459 | ¥å£
|
---|
460 | å¦çãçæããããã®è¨è¿°ã¨CPUä¾å¤ãã³ãã©åæåãããã¯ã®æ¨æºã®å®ç¾©ãç
|
---|
461 | æãããã®ãææ¢ãï¼ããã«ãã£ã¦ææ¢ãããé¨åãtarget.tfã«ã³ãã¼ããä¸
|
---|
462 | ã§ï¼ä»¥ä¸ã®ä¿®æ£ãå ããï¼
|
---|
463 |
|
---|
464 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
465 | ¥å£å¦çãçæããããã®è¨è¿°ï¼EXCHDR_ENTRYã®ãªã¹ãï¼
|
---|
466 | ãçæããé¨åã¯ï¼æ¬¡ã®ããã«ä¿®æ£ããï¼
|
---|
467 |
|
---|
468 | ----------------------------------------
|
---|
469 | $FOREACH excno EXC.ORDER_LIST$
|
---|
470 | $IF (EXC.EXCATR[excno] & TA_DIRECT) == 0$
|
---|
471 | EXCHDR_ENTRY($EXC.EXCNO[excno]$, $+EXC.EXCNO[excno]$,$SPC$
|
---|
472 | $EXC.EXCHDR[excno]$)$NL$
|
---|
473 | $END$
|
---|
474 | $END$$NL$
|
---|
475 | ----------------------------------------
|
---|
476 |
|
---|
477 | ã¾ãï¼CPUä¾å¤ãã³ãã©åæåãããã¯ã®å®ç¾©ãçæããé¨åã¯ï¼æ¬¡ã®ããã«ä¿®
|
---|
478 | æ£ããï¼
|
---|
479 |
|
---|
480 | ----------------------------------------
|
---|
481 | $IF LENGTH(EXC.ORDER_LIST)$
|
---|
482 | const EXCINIB _kernel_excinib_table[TNUM_DEF_EXCNO] = {$NL$
|
---|
483 | $JOINEACH excno EXC.ORDER_LIST ",\n"$
|
---|
484 | $IF (EXC.EXCATR[excno] & TA_DIRECT) == 0$
|
---|
485 | $TAB${$SPC$
|
---|
486 | ($EXC.EXCNO[excno]$),$SPC$
|
---|
487 | ($EXC.EXCATR[excno]$),$SPC$
|
---|
488 | (FP)(EXC_ENTRY($EXC.EXCNO[excno]$, $EXC.EXCHDR[excno]$))$SPC$
|
---|
489 | }
|
---|
490 | $ELSE$
|
---|
491 | $TAB${$SPC$
|
---|
492 | ($EXC.EXCNO[excno]$),$SPC$
|
---|
493 | ($EXC.EXCATR[excno]$),$SPC$
|
---|
494 | (FP)($EXC.EXCHDR[excno]$)
|
---|
495 | }
|
---|
496 | $END$$NL$
|
---|
497 | $END$
|
---|
498 | };$NL$
|
---|
499 | $ELSE$
|
---|
500 | TOPPERS_EMPTY_LABEL(const EXCINIB, _kernel_excinib_table);$NL$
|
---|
501 | $END$$NL$
|
---|
502 | ----------------------------------------
|
---|
503 |
|
---|
504 | 以ä¸
|
---|