]> rtime.felk.cvut.cz Git - arc.git/blob - scripts/req-os.xml
Fixed warning in Code Composer terminal code.
[arc.git] / scripts / req-os.xml
1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
2 <ns1:Requirements xmlns:ns1="http://Employees" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
3         <ns1:Req id="OS242">\r
4                 <ns1:Class>1,2,3,4</ns1:Class>\r
5                 <ns1:Component>code</ns1:Component>\r
6                 <ns1:Verification>code</ns1:Verification>\r
7                 <ns1:Description>The Operating System shall only allow Alarm Callbacks in Scalability Class\r
8 1.</ns1:Description>\r
9         </ns1:Req>\r
10         <ns1:Req id="OS398">\r
11                 <ns1:Class>1,2,3,4</ns1:Class>\r
12                 <ns1:Component>code</ns1:Component>\r
13                 <ns1:Verification>code</ns1:Verification>\r
14                 <ns1:Description>The OS shall not define the symbol LOCALMESSAGESONLY</ns1:Description>\r
15         </ns1:Req>\r
16         <ns1:Req id="OS304">\r
17                 <ns1:Class>1,2,3,4</ns1:Class>\r
18                 <ns1:Component>code</ns1:Component>\r
19                 <ns1:Verification>code</ns1:Verification>\r
20                 <ns1:Description>If in a call to SetRelAlarm() the parameter “increment” is set to zero, the\r
21 service shall return E_OS_VALUE in standard and extended status .</ns1:Description>\r
22         </ns1:Req>\r
23         <ns1:Req id="OS424">\r
24                 <ns1:Class>1,2,3,4</ns1:Class>\r
25                 <ns1:Component>code</ns1:Component>\r
26                 <ns1:Verification>code</ns1:Verification>\r
27                 <ns1:Description>The first call to  StartOS() (for starting the Operating System) shall not\r
28 return.</ns1:Description>\r
29         </ns1:Req>\r
30         <ns1:Req id="OS425">\r
31                 <ns1:Class>1,2,3,4</ns1:Class>\r
32                 <ns1:Component>code</ns1:Component>\r
33                 <ns1:Verification>code</ns1:Verification>\r
34                 <ns1:Description>If ShutdownOS() is called and ShutdownHook() returns then the operating\r
35 system shall disable all interrupts and enter an endless loop.</ns1:Description>\r
36         </ns1:Req>\r
37         <ns1:Req id="OS299">\r
38                 <ns1:Class>1,2,3,4</ns1:Class>\r
39                 <ns1:Component>code</ns1:Component>\r
40                 <ns1:Verification>code</ns1:Verification>\r
41                 <ns1:Description>The Operating System shall provide the services DisableAllInterrupts(), EnableAllInterrupts(),  SuspendAllInterrupts(),  ResumeAllInterrupts()\r
42 prior to calling StartOS() and after calling ShutdownOS(). (It is assumed that the static variables of these functions are initialized).</ns1:Description>\r
43         </ns1:Req>\r
44         <ns1:Req id="OS301">\r
45                 <ns1:Class>1,2,3,4</ns1:Class>\r
46                 <ns1:Component>code</ns1:Component>\r
47                 <ns1:Verification>code</ns1:Verification>\r
48                 <ns1:Description>The Operating System  shall provide the ability  to increment a software\r
49 counter as an alternative action on alarm expiry.</ns1:Description>\r
50         </ns1:Req>\r
51         <ns1:Req id="OS399">\r
52                 <ns1:Class>1,2,3,4</ns1:Class>\r
53                 <ns1:Component>code</ns1:Component>\r
54                 <ns1:Verification>code</ns1:Verification>\r
55                 <ns1:Description>The OS shall provide an API call to increment a software counter.</ns1:Description>\r
56         </ns1:Req>\r
57         <ns1:Req id="OS374">\r
58                 <ns1:Class>1,2,3,4</ns1:Class>\r
59                 <ns1:Component>code</ns1:Component>\r
60                 <ns1:Verification>code</ns1:Verification>\r
61                 <ns1:Description>The Operating System shall handle all the initialization and configuration of\r
62 timers used directly by the OS and not handled by the GPT driver.</ns1:Description>\r
63         </ns1:Req>\r
64         <ns1:Req id="OS383">\r
65                 <ns1:Class>1,2,3,4</ns1:Class>\r
66                 <ns1:Component>code</ns1:Component>\r
67                 <ns1:Verification>code</ns1:Verification>\r
68                 <ns1:Description>The Operating System shall provide a service to read the current count value\r
69 of a counter (returning either the hardware timer ticks if counter is driven by hardware\r
70 or the software ticks when user drives counter).</ns1:Description>\r
71         </ns1:Req>\r
72         <ns1:Req id="OS392">\r
73                 <ns1:Class>1,2,3,4</ns1:Class>\r
74                 <ns1:Component>code</ns1:Component>\r
75                 <ns1:Verification>code</ns1:Verification>\r
76                 <ns1:Description>The Operating System shall provide a service to get the number of ticks\r
77 between the current tick value and a previously read tick value.</ns1:Description>\r
78         </ns1:Req>\r
79         <ns1:Req id="OS384">\r
80                 <ns1:Class>1,2,3,4</ns1:Class>\r
81                 <ns1:Component>code</ns1:Component>\r
82                 <ns1:Verification>code</ns1:Verification>\r
83                 <ns1:Description>The Operating System shall adjust the read out values of hardware timers\r
84 (which drive counters) in such that the lowest value is zero and consecutive reads\r
85 return an increasing count value until the timer wraps at its modulus.</ns1:Description>\r
86         </ns1:Req>\r
87         <ns1:Req id="OS401">\r
88                 <ns1:Class>1,2,3,4</ns1:Class>\r
89                 <ns1:Component>code,generator</ns1:Component>\r
90                 <ns1:Verification>code</ns1:Verification>\r
91                 <ns1:Description>A schedule table shall have at least one expiry point</ns1:Description>\r
92         </ns1:Req>\r
93         <ns1:Req id="OS402">\r
94                 <ns1:Class>1,2,3,4</ns1:Class>\r
95                 <ns1:Component>code,generator</ns1:Component>\r
96                 <ns1:Verification>code</ns1:Verification>\r
97                 <ns1:Description>An expiry point shall contain a (possibly empty) set of tasks to activate.</ns1:Description>\r
98         </ns1:Req>\r
99         <ns1:Req id="OS403">\r
100                 <ns1:Class>1,2,3,4</ns1:Class>\r
101                 <ns1:Component>code,generator</ns1:Component>\r
102                 <ns1:Verification>code</ns1:Verification>\r
103                 <ns1:Description>An expiry point shall contain a (possibly empty) set of events to set.</ns1:Description>\r
104         </ns1:Req>\r
105         <ns1:Req id="OS404">\r
106                 <ns1:Class>1,2,3,4</ns1:Class>\r
107                 <ns1:Component>code,generator</ns1:Component>\r
108                 <ns1:Verification>code</ns1:Verification>\r
109                 <ns1:Description>An expiry point shall contain an offset in ticks from the start of the schedule\r
110 table.</ns1:Description>\r
111         </ns1:Req>\r
112         <ns1:Req id="OS407">\r
113                 <ns1:Class>1,2,3,4</ns1:Class>\r
114                 <ns1:Component>code,generator</ns1:Component>\r
115                 <ns1:Verification>code</ns1:Verification>\r
116                 <ns1:Description>An expiry point shall activate at least one task OR set at least one event</ns1:Description>\r
117         </ns1:Req>\r
118         <ns1:Req id="OS442">\r
119                 <ns1:Class>1,2,3,4</ns1:Class>\r
120                 <ns1:Component>code,generator</ns1:Component>\r
121                 <ns1:Verification>code</ns1:Verification>\r
122                 <ns1:Description>Each expiry point on a given schedule table shall have a unique offset.</ns1:Description>\r
123         </ns1:Req>\r
124         <ns1:Req id="OS443">\r
125                 <ns1:Class>1,2,3,4</ns1:Class>\r
126                 <ns1:Component>code,generator</ns1:Component>\r
127                 <ns1:Verification>code</ns1:Verification>\r
128                 <ns1:Description>The Initial Offset shall be zero OR in the range  OsCounterMinCycle  ..\r
129 OsCounterMaxAllowedValue of the underlying counter.</ns1:Description>\r
130         </ns1:Req>\r
131         <ns1:Req id="OS408">\r
132                 <ns1:Class>1,2,3,4</ns1:Class>\r
133                 <ns1:Component>code,generator</ns1:Component>\r
134                 <ns1:Verification>code</ns1:Verification>\r
135                 <ns1:Description>The delay between adjacent expiry points shall be in the range\r
136 OsCounterMinCycle .. OsCounterMaxAllowedValue of the underlying counter.</ns1:Description>\r
137         </ns1:Req>\r
138         <ns1:Req id="OS444">\r
139                 <ns1:Class>1,2,3,4</ns1:Class>\r
140                 <ns1:Component>code,generator</ns1:Component>\r
141                 <ns1:Verification>code</ns1:Verification>\r
142                 <ns1:Description>The value of Final Delay shall be in the range  OsCounterMinCycle  ..\r
143 OsCounterMaxAllowedValue of the underlying counter.</ns1:Description>\r
144         </ns1:Req>\r
145         <ns1:Req id="OS002">\r
146                 <ns1:Class>1,2,3,4</ns1:Class>\r
147                 <ns1:Component>code</ns1:Component>\r
148                 <ns1:Verification>code</ns1:Verification>\r
149                 <ns1:Description>The OS shall drive an iterator over schedule table expiry points, processing\r
150 each expiry point from the InitialExpiryPoint to the FinalExpiryPoint in order of\r
151 increasing offset.</ns1:Description>\r
152         </ns1:Req>\r
153         <ns1:Req id="OS007">\r
154                 <ns1:Class>1,2,3,4</ns1:Class>\r
155                 <ns1:Component>code</ns1:Component>\r
156                 <ns1:Verification>code</ns1:Verification>\r
157                 <ns1:Description>The Operating System shall permit multiple schedule tables to be processed\r
158 concurrently.</ns1:Description>\r
159         </ns1:Req>\r
160         <ns1:Req id="OS409">\r
161                 <ns1:Class>1,2,3,4</ns1:Class>\r
162                 <ns1:Component>code</ns1:Component>\r
163                 <ns1:Verification>code</ns1:Verification>\r
164                 <ns1:Description>A schedule table shall be driven by exactly one counter.</ns1:Description>\r
165         </ns1:Req>\r
166         <ns1:Req id="OS410">\r
167                 <ns1:Class>1,2,3,4</ns1:Class>\r
168                 <ns1:Component>code</ns1:Component>\r
169                 <ns1:Verification>code</ns1:Verification>\r
170                 <ns1:Description>The Operating System shall be able to process at least one schedule table\r
171 per counter at any given time.</ns1:Description>\r
172         </ns1:Req>\r
173         <ns1:Req id="OS411">\r
174                 <ns1:Class>1,2,3,4</ns1:Class>\r
175                 <ns1:Component>code</ns1:Component>\r
176                 <ns1:Verification>code</ns1:Verification>\r
177                 <ns1:Description>One tick on the counter shall correspond to one tick on the schedule table.</ns1:Description>\r
178         </ns1:Req>\r
179         <ns1:Req id="OS412">\r
180                 <ns1:Class>1,2,3,4</ns1:Class>\r
181                 <ns1:Component>code</ns1:Component>\r
182                 <ns1:Verification>code</ns1:Verification>\r
183                 <ns1:Description>The OS shall process all task activations on an expiry point first and then set\r
184 events.</ns1:Description>\r
185         </ns1:Req>\r
186         <ns1:Req id="OS413">\r
187                 <ns1:Class>1,2,3,4</ns1:Class>\r
188                 <ns1:Component>code,generator</ns1:Component>\r
189                 <ns1:Verification>code</ns1:Verification>\r
190                 <ns1:Description>The schedule table shall be configurable as either single-shot or repeating.</ns1:Description>\r
191         </ns1:Req>\r
192         <ns1:Req id="OS009">\r
193                 <ns1:Class>1,2,3,4</ns1:Class>\r
194                 <ns1:Component>code</ns1:Component>\r
195                 <ns1:Verification>code</ns1:Verification>\r
196                 <ns1:Description>If the schedule table is single-shot,  the Operating System shall stop the\r
197 processing of the schedule table Final Delay ticks after the Final Expiry Point is processed.</ns1:Description>\r
198         </ns1:Req>\r
199         <ns1:Req id="OS427">\r
200                 <ns1:Class>1,2,3,4</ns1:Class>\r
201                 <ns1:Component>code</ns1:Component>\r
202                 <ns1:Verification>code</ns1:Verification>\r
203                 <ns1:Description>The Operating System shall allow the Final Delay for a single-shot schedule\r
204 table to be zero.</ns1:Description>\r
205         </ns1:Req>\r
206         <ns1:Req id="OS194">\r
207                 <ns1:Class>1,2,3,4</ns1:Class>\r
208                 <ns1:Component>code</ns1:Component>\r
209                 <ns1:Verification>code</ns1:Verification>\r
210                 <ns1:Description>If the schedule table is repeating, the Operating System shall process the\r
211 Initial Expiry Point Final Delay plus Initial Offset ticks have elapsed after processing\r
212 the Final Expiry Point.</ns1:Description>\r
213         </ns1:Req>\r
214         <ns1:Req id="OS358">\r
215                 <ns1:Class>1,2,3,4</ns1:Class>\r
216                 <ns1:Component>code</ns1:Component>\r
217                 <ns1:Verification>code</ns1:Verification>\r
218                 <ns1:Description>The Operating System shall provide a service to start the processing of a\r
219 schedule table at an absolute value “Start” on the underlying counter. (The Initial Expiry Point shall be processed when the value of the underlying counter equals Start + InitialOffset).</ns1:Description>\r
220         </ns1:Req>\r
221         <ns1:Req id="OS347">\r
222                 <ns1:Class>1,2,3,4</ns1:Class>\r
223                 <ns1:Component>code</ns1:Component>\r
224                 <ns1:Verification>code</ns1:Verification>\r
225                 <ns1:Description>The Operating System shall provide a service to  start the processing of a\r
226 schedule table at “Offset” relative to the “Now” value on the underlying counter (The\r
227 Initial Expiry Point shall be processed  when the value of the underlying counter\r
228 equals Now + Offset + InitialOffset).</ns1:Description>\r
229         </ns1:Req>\r
230         <ns1:Req id="OS006">\r
231                 <ns1:Class>1,2,3,4</ns1:Class>\r
232                 <ns1:Component>code</ns1:Component>\r
233                 <ns1:Verification>code</ns1:Verification>\r
234                 <ns1:Description>The Operating System shall provide a service to cancel the processing of a\r
235 schedule table immediately at any point while the schedule table is running.</ns1:Description>\r
236         </ns1:Req>\r
237         <ns1:Req id="OS428">\r
238                 <ns1:Class>1,2,3,4</ns1:Class>\r
239                 <ns1:Component>code</ns1:Component>\r
240                 <ns1:Verification>code</ns1:Verification>\r
241                 <ns1:Description>If schedule table processing has been cancelled before reaching the Final\r
242 Expiry Point and is subsequently restarted then OS358/OS347 means that the re-start occurs from the start of the schedule table.</ns1:Description>\r
243         </ns1:Req>\r
244         <ns1:Req id="OS191">\r
245                 <ns1:Class>1,2,3,4</ns1:Class>\r
246                 <ns1:Component>code</ns1:Component>\r
247                 <ns1:Verification>code</ns1:Verification>\r
248                 <ns1:Description>The Operating System shall provide a service to switch the processing from\r
249 one schedule table to another schedule table.</ns1:Description>\r
250         </ns1:Req>\r
251         <ns1:Req id="OS414">\r
252                 <ns1:Class>1,2,3,4</ns1:Class>\r
253                 <ns1:Component>code</ns1:Component>\r
254                 <ns1:Verification>code</ns1:Verification>\r
255                 <ns1:Description>When a schedule table switch is requested, the OS shall continue to process\r
256 expiry points on the current schedule table up and including the Final Expiry Point hen delay for Final Delay ticks before processing the Initial Expiry Point on the switched-to schedule table (after the initial offset).</ns1:Description>\r
257         </ns1:Req>\r
258         <ns1:Req id="OS359">\r
259                 <ns1:Class>1,2,3,4</ns1:Class>\r
260                 <ns1:Component>code</ns1:Component>\r
261                 <ns1:Verification>code</ns1:Verification>\r
262                 <ns1:Description>The Operating System shall provide a service to query the state of a\r
263 schedule table</ns1:Description>\r
264         </ns1:Req>\r
265         <ns1:Req id="OS013">\r
266                 <ns1:Class>2,4</ns1:Class>\r
267                 <ns1:Component>code</ns1:Component>\r
268                 <ns1:Verification>code</ns1:Verification>\r
269                 <ns1:Description>The Operating System shall provide the ability to synchronize the processing\r
270 of schedule table to known counter values.</ns1:Description>\r
271         </ns1:Req>\r
272         <ns1:Req id="OS429">\r
273                 <ns1:Class>2,4</ns1:Class>\r
274                 <ns1:Component>code</ns1:Component>\r
275                 <ns1:Verification>code</ns1:Verification>\r
276                 <ns1:Description>A schedule table that is implicitly synchronized shall have a Duration equal to\r
277 OsCounterMaxAllowedValue + 1 of its associated OSEK OS counter.</ns1:Description>\r
278         </ns1:Req>\r
279         <ns1:Req id="OS430">\r
280                 <ns1:Class>2,4</ns1:Class>\r
281                 <ns1:Component>code</ns1:Component>\r
282                 <ns1:Verification>code</ns1:Verification>\r
283                 <ns1:Description>The OS shall prevent a schedule table  that is implicitly synchronized from\r
284 being started at a relative count value.</ns1:Description>\r
285         </ns1:Req>\r
286         <ns1:Req id="OS431">\r
287                 <ns1:Class>2,4</ns1:Class>\r
288                 <ns1:Component>code</ns1:Component>\r
289                 <ns1:Verification>code</ns1:Verification>\r
290                 <ns1:Description>A schedule table that is explicitly synchronized shall have a duration\r
291 no greater than modulus of the drive counter.</ns1:Description>\r
292         </ns1:Req>\r
293         <ns1:Req id="OS462">\r
294                 <ns1:Class>2,4</ns1:Class>\r
295                 <ns1:Component>code</ns1:Component>\r
296                 <ns1:Verification>code</ns1:Verification>\r
297                 <ns1:Description>A schedule table that is explicitly synchronized shall have a duration\r
298 equal to the modulus of the synchronization counter.</ns1:Description>\r
299         </ns1:Req>\r
300         <ns1:Req id="OS463">\r
301                 <ns1:Class>2,4</ns1:Class>\r
302                 <ns1:Component>code</ns1:Component>\r
303                 <ns1:Verification>code</ns1:Verification>\r
304                 <ns1:Description>The synchronization counter shall have the same resolution as the\r
305 drive counter associated with the schedule table. This means that a tick on the schedule table has the same duration as a tick on the synchronization counter.</ns1:Description>\r
306         </ns1:Req>\r
307         <ns1:Req id="OS434">\r
308                 <ns1:Class>2,4</ns1:Class>\r
309                 <ns1:Component>code</ns1:Component>\r
310                 <ns1:Verification>code</ns1:Verification>\r
311                 <ns1:Description>An explicitly synchronized schedule table started at an absolute or relative\r
312 counter value shall have state “running” when the service call returns.</ns1:Description>\r
313         </ns1:Req>\r
314         <ns1:Req id="OS201">\r
315                 <ns1:Class>2,4</ns1:Class>\r
316                 <ns1:Component>code</ns1:Component>\r
317                 <ns1:Verification>code</ns1:Verification>\r
318                 <ns1:Description>The Operating system shall provide  a service to start an explicitly\r
319 synchronized schedule table. The Initial Expiry Point will be processed after (Duration – Value) + Initial Offset ticks of the driver counter have elapsed where Value is the absolute value of the synchronization count provided to the schedule table.</ns1:Description>\r
320         </ns1:Req>\r
321         <ns1:Req id="OS435">\r
322                 <ns1:Class>2,4</ns1:Class>\r
323                 <ns1:Component>code</ns1:Component>\r
324                 <ns1:Verification>code</ns1:Verification>\r
325                 <ns1:Description>An explicitly synchronized schedule table started synchronously shall have\r
326 state “waiting” when the service call returns.</ns1:Description>\r
327         </ns1:Req>\r
328         <ns1:Req id="OS199">\r
329                 <ns1:Class>2,4</ns1:Class>\r
330                 <ns1:Component>code</ns1:Component>\r
331                 <ns1:Verification>code</ns1:Verification>\r
332                 <ns1:Description>The Operating System shall provide a service to provide the schedule table\r
333 with a synchronization count and start synchronization.</ns1:Description>\r
334         </ns1:Req>\r
335         <ns1:Req id="OS415">\r
336                 <ns1:Class>2,4</ns1:Class>\r
337                 <ns1:Component>code</ns1:Component>\r
338                 <ns1:Verification>code</ns1:Verification>\r
339                 <ns1:Description>An expiry point shall permit the configuration of a OsScheduleTableMaxRetard that defines the maximum number of ticks that can be subtracted from expiry point offset.</ns1:Description>\r
340         </ns1:Req>\r
341         <ns1:Req id="OS416">\r
342                 <ns1:Class>2,4</ns1:Class>\r
343                 <ns1:Component>code</ns1:Component>\r
344                 <ns1:Verification>code</ns1:Verification>\r
345                 <ns1:Description>An expiry point shall permit the configuration of a OsScheduleTableMaxAdvance that defines the maximum number of ticks that can be added to expiry point offset.</ns1:Description>\r
346         </ns1:Req>\r
347         <ns1:Req id="OS436">\r
348                 <ns1:Class>2,4</ns1:Class>\r
349                 <ns1:Component>code</ns1:Component>\r
350                 <ns1:Verification>code</ns1:Verification>\r
351                 <ns1:Description>The value of (Offset - OsScheduleTableMaxRetard ) of an expiry point shall\r
352 be greater than (Offset + OsCounterMinCycle) of the pervious expiry point.</ns1:Description>\r
353         </ns1:Req>\r
354         <ns1:Req id="OS437">\r
355                 <ns1:Class>2,4</ns1:Class>\r
356                 <ns1:Component>code</ns1:Component>\r
357                 <ns1:Verification>code</ns1:Verification>\r
358                 <ns1:Description>The value of (Offset+OsScheduleTableMaxAdvance) of an expiry point shall\r
359 be less than the duration of the schedule table.</ns1:Description>\r
360         </ns1:Req>\r
361         <ns1:Req id="OS438">\r
362                 <ns1:Class>2,4</ns1:Class>\r
363                 <ns1:Component>code</ns1:Component>\r
364                 <ns1:Verification>code</ns1:Verification>\r
365                 <ns1:Description>A schedule table shall define a precision bound with a value in the range 0\r
366 to duration.</ns1:Description>\r
367         </ns1:Req>\r
368         <ns1:Req id="OS206">\r
369                 <ns1:Class>2,4</ns1:Class>\r
370                 <ns1:Component>code</ns1:Component>\r
371                 <ns1:Verification>code</ns1:Verification>\r
372                 <ns1:Description>When a new synchronization count is provided, the Operating System shall\r
373 calculate the current deviation between the explicitly synchronized scheduled table and the synchronization count.</ns1:Description>\r
374         </ns1:Req>\r
375         <ns1:Req id="OS417">\r
376                 <ns1:Class>2,4</ns1:Class>\r
377                 <ns1:Component>code</ns1:Component>\r
378                 <ns1:Verification>code</ns1:Verification>\r
379                 <ns1:Description>The OS shall start to synchronise an explicitly synchronized schedule table\r
380 after a synchronization count is provided.</ns1:Description>\r
381         </ns1:Req>\r
382         <ns1:Req id="OS418">\r
383                 <ns1:Class>2,4</ns1:Class>\r
384                 <ns1:Component>code</ns1:Component>\r
385                 <ns1:Verification>code</ns1:Verification>\r
386                 <ns1:Description>The OS shall set the state of an explicitly synchronized  schedule table to\r
387 “running and synchronous” if the absolute value of the deviation between schedule table value the synchronization count is less than the configured\r
388 OsScheduleTblExplicitPrecision threshold.</ns1:Description>\r
389         </ns1:Req>\r
390         <ns1:Req id="OS419">\r
391                 <ns1:Class>2,4</ns1:Class>\r
392                 <ns1:Component>code</ns1:Component>\r
393                 <ns1:Verification>code</ns1:Verification>\r
394                 <ns1:Description>The OS shall set the state of an explicitly synchronized schedule table to\r
395 “running” if the absolute value of the deviation between  schedule table value the synchronization count is greater  than or equal to the configured\r
396 OsScheduleTblExplicitPrecision threshold.</ns1:Description>\r
397         </ns1:Req>\r
398         <ns1:Req id="OS420">\r
399                 <ns1:Class>2,4</ns1:Class>\r
400                 <ns1:Component>code</ns1:Component>\r
401                 <ns1:Verification>code</ns1:Verification>\r
402                 <ns1:Description>If the deviation is negative and the next expiry point is adjustable then the\r
403 OS shall set the delay to the next expiry point to\r
404 Delay+min(OsScheduleTableMaxAdvance,Deviation)</ns1:Description>\r
405         </ns1:Req>\r
406         <ns1:Req id="OS421">\r
407                 <ns1:Class>2,4</ns1:Class>\r
408                 <ns1:Component>code</ns1:Component>\r
409                 <ns1:Verification>code</ns1:Verification>\r
410                 <ns1:Description>If the deviation is positive and the next expiry point is adjustable then the OS\r
411 shall set the delay to the next expiry point to Delay-\r
412 min(OsScheduleTableMaxRetard, Deviation)</ns1:Description>\r
413         </ns1:Req>\r
414         <ns1:Req id="OS422">\r
415                 <ns1:Class>2,4</ns1:Class>\r
416                 <ns1:Component>code</ns1:Component>\r
417                 <ns1:Verification>code</ns1:Verification>\r
418                 <ns1:Description>The OS shall provide a service to cancel synchronization being performed at\r
419 adjustable expiry points on a schedule table.</ns1:Description>\r
420         </ns1:Req>\r
421         <ns1:Req id="OS227">\r
422                 <ns1:Class>2,4</ns1:Class>\r
423                 <ns1:Component>code</ns1:Component>\r
424                 <ns1:Verification>code</ns1:Verification>\r
425                 <ns1:Description>The Operating System shall extend the service from OS359 to query the\r
426 state of a schedule table with respect to synchronization.</ns1:Description>\r
427         </ns1:Req>\r
428         <ns1:Req id="OS067">\r
429                 <ns1:Class>1,2,3,4</ns1:Class>\r
430                 <ns1:Component>code,generator</ns1:Component>\r
431                 <ns1:Verification>code</ns1:Verification>\r
432                 <ns1:Description>The Operating System shall offer a stack monitoring which detects possible\r
433 stack faults of Task(s)/Category 2 OsIsr(s).</ns1:Description>\r
434         </ns1:Req>\r
435         <ns1:Req id="OS068">\r
436                 <ns1:Class>1,2</ns1:Class>\r
437                 <ns1:Component>code</ns1:Component>\r
438                 <ns1:Verification>code</ns1:Verification>\r
439                 <ns1:Description>If a stack fault is detected by stack monitoring AND the configured scalability\r
440 class is 1 or 2, the Operating System shall call the ShutdownOS() service with the status E_OS_STACKFAULT.</ns1:Description>\r
441         </ns1:Req>\r
442         <ns1:Req id="OS396">\r
443                 <ns1:Class>3,4</ns1:Class>\r
444                 <ns1:Component>code</ns1:Component>\r
445                 <ns1:Verification>code</ns1:Verification>\r
446                 <ns1:Description>If a stack fault is detected by stack monitoring AND the configured scalability\r
447 class is 3 or 4, the Operating System shall call the  ProtectionHook() with the\r
448 status E_OS_STACKFAULT.</ns1:Description>\r
449         </ns1:Req>\r
450         <ns1:Req id="OS445">\r
451                 <ns1:Class>3,4</ns1:Class>\r
452                 <ns1:Component>code</ns1:Component>\r
453                 <ns1:Verification>code</ns1:Verification>\r
454                 <ns1:Description>The Operating System shall support OS-Applications which are a\r
455 composition of (at least one Task OR OsIsr) AND (zero or more Alarms, Schedule tables, Counters or Resources) AND (zero or one hooks for startup, error and shutdown).</ns1:Description>\r
456         </ns1:Req>\r
457         <ns1:Req id="OS446">\r
458                 <ns1:Class>3,4</ns1:Class>\r
459                 <ns1:Component>code</ns1:Component>\r
460                 <ns1:Verification>code</ns1:Verification>\r
461                 <ns1:Description>The Operating System shall support the notion of trusted and not trustet OS-\r
462 Applications.</ns1:Description>\r
463         </ns1:Req>\r
464         <ns1:Req id="OS464">\r
465                 <ns1:Class>,3,4</ns1:Class>\r
466                 <ns1:Component>code</ns1:Component>\r
467                 <ns1:Verification>code</ns1:Verification>\r
468                 <ns1:Description>Trusted OS-Applications may offer services (“trusted services”) to other\r
469 (even non-trusted) OS-Applications.</ns1:Description>\r
470         </ns1:Req>\r
471         <ns1:Req id="OS016">\r
472                 <ns1:Class>3,4</ns1:Class>\r
473                 <ns1:Component>code</ns1:Component>\r
474                 <ns1:Verification>code</ns1:Verification>\r
475                 <ns1:Description>The Operating System shall provide a service to determine the currently\r
476 running OS-Application (a unique identifier shall be allocated to each application).</ns1:Description>\r
477         </ns1:Req>\r
478         <ns1:Req id="OS017">\r
479                 <ns1:Class>3,4</ns1:Class>\r
480                 <ns1:Component>code</ns1:Component>\r
481                 <ns1:Verification>code</ns1:Verification>\r
482                 <ns1:Description>The Operating System shall provide a service to determine to which OS-\r
483 Application a given Task, OsIsr, Resource, Counter, Alarm or Schedule Table\r
484 belongs.</ns1:Description>\r
485         </ns1:Req>\r
486         <ns1:Req id="OS256">\r
487                 <ns1:Class>3,4</ns1:Class>\r
488                 <ns1:Component>code</ns1:Component>\r
489                 <ns1:Verification>code</ns1:Verification>\r
490                 <ns1:Description>The Operating System shall provide a service to determine which OS-\r
491 Applications are allowed to use the IDs of a Task, OsIsr, Resource, Counter, Alarm or Schedule Table in API calls.</ns1:Description>\r
492         </ns1:Req>\r
493         <ns1:Req id="OS258">\r
494                 <ns1:Class>3,4</ns1:Class>\r
495                 <ns1:Component>code</ns1:Component>\r
496                 <ns1:Verification>code</ns1:Verification>\r
497                 <ns1:Description>The Operating System shall provide a service to terminate the OS-\r
498 Application to which the calling Task/Category 2 OsIsr/application specific error hook belongs. (This is an OS-Application level variant of the TerminateTask() service)</ns1:Description>\r
499         </ns1:Req>\r
500         <ns1:Req id="OS447">\r
501                 <ns1:Class>3,4</ns1:Class>\r
502                 <ns1:Component>code</ns1:Component>\r
503                 <ns1:Verification>code</ns1:Verification>\r
504                 <ns1:Description>Terminating an OS-Application means to:\r
505 - terminate all running, ready and waiting Tasks/OsIsrs of the OS-Application\r
506 AND\r
507 - disabling all interrupts of the OS-Application AND\r
508 - stop all active alarms of the OS-Applications AND\r
509 - stop all schedule tables of the OS-Application.</ns1:Description>\r
510         </ns1:Req>\r
511         <ns1:Req id="OS448">\r
512                 <ns1:Class>3,4</ns1:Class>\r
513                 <ns1:Component>code</ns1:Component>\r
514                 <ns1:Verification>code</ns1:Verification>\r
515                 <ns1:Description>OS-Applications, trusted or non-trusted, shall by default have only access\r
516 rights to objects belonging to this OS-Application. Access rights from other OS-Applications shall be granted explicitely by configuration.</ns1:Description>\r
517         </ns1:Req>\r
518         <ns1:Req id="OS198">\r
519                 <ns1:Class>3,4</ns1:Class>\r
520                 <ns1:Component>code</ns1:Component>\r
521                 <ns1:Verification>code</ns1:Verification>\r
522                 <ns1:Description>The Operating System shall prevent write access to its  own data sections\r
523 and its own stack from non-trusted OS-Applications.</ns1:Description>\r
524         </ns1:Req>\r
525         <ns1:Req id="OS026">\r
526                 <ns1:Class>3,4</ns1:Class>\r
527                 <ns1:Component>code</ns1:Component>\r
528                 <ns1:Verification>code</ns1:Verification>\r
529                 <ns1:Description>The Operating System may prevent read access to an OS-Application’s data\r
530 section attempted by other non-trusted OS-Applications.</ns1:Description>\r
531         </ns1:Req>\r
532         <ns1:Req id="OS086">\r
533                 <ns1:Class>3,4</ns1:Class>\r
534                 <ns1:Component>code</ns1:Component>\r
535                 <ns1:Verification>code</ns1:Verification>\r
536                 <ns1:Description>The Operating System shall permit an OS-Application read and write access\r
537 to that OS-Application’s own private data sections.</ns1:Description>\r
538         </ns1:Req>\r
539         <ns1:Req id="OS207">\r
540                 <ns1:Class>3,4</ns1:Class>\r
541                 <ns1:Component>code</ns1:Component>\r
542                 <ns1:Verification>code</ns1:Verification>\r
543                 <ns1:Description>The Operating System shall prevent write access to the OS-Application’s\r
544 private data sections from other non-trusted OS-Applications.</ns1:Description>\r
545         </ns1:Req>\r
546         <ns1:Req id="OS196">\r
547                 <ns1:Class>3,4</ns1:Class>\r
548                 <ns1:Component>code</ns1:Component>\r
549                 <ns1:Verification>code</ns1:Verification>\r
550                 <ns1:Description>The Operating System shall permit a Task/Category 2 OsIsr read and write\r
551 access to that Task’s/Category 2 OsIsr’s own private stack.</ns1:Description>\r
552         </ns1:Req>\r
553         <ns1:Req id="OS208">\r
554                 <ns1:Class>3,4</ns1:Class>\r
555                 <ns1:Component>code</ns1:Component>\r
556                 <ns1:Verification>code</ns1:Verification>\r
557                 <ns1:Description>The Operating System may prevent write access to the private stack of\r
558 Tasks/Category 2 OsIsrs of a non-trusted application from all other Tasks/OsIsrs in the same OS-Application.</ns1:Description>\r
559         </ns1:Req>\r
560         <ns1:Req id="OS355">\r
561                 <ns1:Class>3,4</ns1:Class>\r
562                 <ns1:Component>code</ns1:Component>\r
563                 <ns1:Verification>code</ns1:Verification>\r
564                 <ns1:Description>The Operating System shall prevent  write access to all private stacks of\r
565 Tasks/Category 2 OsIsrs of an OS-Application from other non-trusted OS-\r
566 Applications.</ns1:Description>\r
567         </ns1:Req>\r
568         <ns1:Req id="OS087">\r
569                 <ns1:Class>3,4</ns1:Class>\r
570                 <ns1:Component>code</ns1:Component>\r
571                 <ns1:Verification>code</ns1:Verification>\r
572                 <ns1:Description>The Operating System shall permit a Task/Category 2 OsIsr read and write\r
573 access to that Task’s/Category 2 OsIsr’s own private data sections.</ns1:Description>\r
574         </ns1:Req>\r
575         <ns1:Req id="OS195">\r
576                 <ns1:Class>3,4</ns1:Class>\r
577                 <ns1:Component>code</ns1:Component>\r
578                 <ns1:Verification>code</ns1:Verification>\r
579                 <ns1:Description>The Operating System may prevent write access to the private data sections\r
580 of a Task/Category 2 OsIsr of a non-trusted application from all other Tasks/OsIsrs in the same OS-Application.</ns1:Description>\r
581         </ns1:Req>\r
582         <ns1:Req id="OS356">\r
583                 <ns1:Class>3,4</ns1:Class>\r
584                 <ns1:Component>code</ns1:Component>\r
585                 <ns1:Verification>code</ns1:Verification>\r
586                 <ns1:Description>The Operating System shall prevent write access to all private data sections\r
587 of a Task/Category 2 OsIsr of an OS-Application from other non-trusted OS-\r
588 Applications.</ns1:Description>\r
589         </ns1:Req>\r
590         <ns1:Req id="OS027">\r
591                 <ns1:Class>3,4</ns1:Class>\r
592                 <ns1:Component>code</ns1:Component>\r
593                 <ns1:Verification>code</ns1:Verification>\r
594                 <ns1:Description>The Operating System may provide an OS-Application the ability to protect\r
595 its code sections against executing by non-trusted OS-Applications.</ns1:Description>\r
596         </ns1:Req>\r
597         <ns1:Req id="OS081">\r
598                 <ns1:Class>3,4</ns1:Class>\r
599                 <ns1:Component>code</ns1:Component>\r
600                 <ns1:Verification>code</ns1:Verification>\r
601                 <ns1:Description>The Operating System shall provide the ability to provide shared library code\r
602 in sections that are executable by all OS-Applications.</ns1:Description>\r
603         </ns1:Req>\r
604         <ns1:Req id="OS209">\r
605                 <ns1:Class>3,4</ns1:Class>\r
606                 <ns1:Component>code</ns1:Component>\r
607                 <ns1:Verification>code</ns1:Verification>\r
608                 <ns1:Description>The Operating System shall permit trusted OS-Applications read and write\r
609 access to peripherals.</ns1:Description>\r
610         </ns1:Req>\r
611         <ns1:Req id="OS083">\r
612                 <ns1:Class>3,4</ns1:Class>\r
613                 <ns1:Component>code</ns1:Component>\r
614                 <ns1:Verification>code</ns1:Verification>\r
615                 <ns1:Description>The Operating System shall allow non-trusted OS-Applications to write to\r
616 their assigned peripherals only (incl. reads that have the  side effect of writing to a memory location).</ns1:Description>\r
617         </ns1:Req>\r
618         <ns1:Req id="OS044">\r
619                 <ns1:Class>3,4</ns1:Class>\r
620                 <ns1:Component>code</ns1:Component>\r
621                 <ns1:Verification>code</ns1:Verification>\r
622                 <ns1:Description>If a memory access violation is detected, the Operating System shall call the\r
623 Protection Hook with status code E_OS_PROTECTION_MEMORY.</ns1:Description>\r
624         </ns1:Req>\r
625         <ns1:Req id="OS028">\r
626                 <ns1:Class>3,4</ns1:Class>\r
627                 <ns1:Component>code</ns1:Component>\r
628                 <ns1:Verification>code</ns1:Verification>\r
629                 <ns1:Description>In a non-trusted OS-Application, the Operating System shall apply timing\r
630 protection to every Task/Category 2 OsIsr of this non-trusted OS-Application.</ns1:Description>\r
631         </ns1:Req>\r
632         <ns1:Req id="OS089">\r
633                 <ns1:Class>2,4</ns1:Class>\r
634                 <ns1:Component>code</ns1:Component>\r
635                 <ns1:Verification>code</ns1:Verification>\r
636                 <ns1:Description>In a trusted OS-Application, the Operating System shall offer the ability to\r
637 apply timing protection to Tasks/Category 2 OsIsrs of this OS-Application.</ns1:Description>\r
638         </ns1:Req>\r
639         <ns1:Req id="OS397">\r
640                 <ns1:Class>2</ns1:Class>\r
641                 <ns1:Component>code</ns1:Component>\r
642                 <ns1:Verification>code</ns1:Verification>\r
643                 <ns1:Description>If no OS-Application is configured, the Operating System shall be able to\r
644 apply timing protection to Tasks/Category 2 OsIsrs.</ns1:Description>\r
645         </ns1:Req>\r
646         <ns1:Req id="OS064">\r
647                 <ns1:Class>2,4</ns1:Class>\r
648                 <ns1:Component>code</ns1:Component>\r
649                 <ns1:Verification>code</ns1:Verification>\r
650                 <ns1:Description>If a task’s OsTaskExecutionBudget is reached then the Operating System\r
651 shall call the ProtectionHook() with E_OS_PROTECTION_TIME.</ns1:Description>\r
652         </ns1:Req>\r
653         <ns1:Req id="OS473">\r
654                 <ns1:Class>2,4</ns1:Class>\r
655                 <ns1:Component>code</ns1:Component>\r
656                 <ns1:Verification>code</ns1:Verification>\r
657                 <ns1:Description>The Operating System shall reset a task’s OsTaskExecutionBudget on a\r
658 transition to the SUSPENDED or WAITING states.</ns1:Description>\r
659         </ns1:Req>\r
660         <ns1:Req id="OS465">\r
661                 <ns1:Class>2,4</ns1:Class>\r
662                 <ns1:Component>code</ns1:Component>\r
663                 <ns1:Verification>code</ns1:Verification>\r
664                 <ns1:Description>The Operating System shall limit the inter-arrival time of tasks to one per\r
665 OsTaskTimeFrame.</ns1:Description>\r
666         </ns1:Req>\r
667         <ns1:Req id="OS469">\r
668                 <ns1:Class>2,4</ns1:Class>\r
669                 <ns1:Component>code</ns1:Component>\r
670                 <ns1:Verification>code</ns1:Verification>\r
671                 <ns1:Description>The Operating System shall start an OsTaskTimeFrame when a task is\r
672 activated successfully.</ns1:Description>\r
673         </ns1:Req>\r
674         <ns1:Req id="OS472">\r
675                 <ns1:Class>2,4</ns1:Class>\r
676                 <ns1:Component>code</ns1:Component>\r
677                 <ns1:Verification>code</ns1:Verification>\r
678                 <ns1:Description>The Operating System shall start an OsTaskTimeFrame when a task is\r
679 released successfully.</ns1:Description>\r
680         </ns1:Req>\r
681         <ns1:Req id="OS466">\r
682                 <ns1:Class>2,4</ns1:Class>\r
683                 <ns1:Component>code</ns1:Component>\r
684                 <ns1:Verification>code</ns1:Verification>\r
685                 <ns1:Description>If an attempt is made to activate a task before the end of an\r
686 OsTaskTimeFrame then the Operating System shall not perform the activation AND\r
687 shall call the ProtectionHook() with E_OS_PROTECTION_ARRIVAL.</ns1:Description>\r
688         </ns1:Req>\r
689         <ns1:Req id="OS467">\r
690                 <ns1:Class>2,4</ns1:Class>\r
691                 <ns1:Component>code</ns1:Component>\r
692                 <ns1:Verification>code</ns1:Verification>\r
693                 <ns1:Description>If an attempt is made to release a task before the end of an\r
694 OsTaskTimeFrame then the Operating System shall not perform the release AND\r
695 shall call the ProtectionHook() with E_OS_PROTECTION_ARRIVAL.</ns1:Description>\r
696         </ns1:Req>\r
697         <ns1:Req id="OS210">\r
698                 <ns1:Class>2,4</ns1:Class>\r
699                 <ns1:Component>code</ns1:Component>\r
700                 <ns1:Verification>code</ns1:Verification>\r
701                 <ns1:Description>If a Category 2 OsIsr’s OsIsrExecutionBudget is reached then the Operating\r
702 System shall call the ProtectionHook() with E_OS_PROTECTION_TIME.</ns1:Description>\r
703         </ns1:Req>\r
704         <ns1:Req id="OS474">\r
705                 <ns1:Class>2,4</ns1:Class>\r
706                 <ns1:Component>code</ns1:Component>\r
707                 <ns1:Verification>code</ns1:Verification>\r
708                 <ns1:Description>The Operating System shall rest an OsIsr’s OsIsrExecutionBudget when the\r
709 OsIsr returns control to the Operating terminates.</ns1:Description>\r
710         </ns1:Req>\r
711         <ns1:Req id="OS470">\r
712                 <ns1:Class>2,4</ns1:Class>\r
713                 <ns1:Component>code</ns1:Component>\r
714                 <ns1:Verification>code</ns1:Verification>\r
715                 <ns1:Description>The Operating System shall limit the inter-arrival time of Category 2 OsIsrs to\r
716 one per OsIsrTimeFrame.</ns1:Description>\r
717         </ns1:Req>\r
718         <ns1:Req id="OS471">\r
719                 <ns1:Class>2,4</ns1:Class>\r
720                 <ns1:Component>code</ns1:Component>\r
721                 <ns1:Verification>code</ns1:Verification>\r
722                 <ns1:Description>The Operating System shall measure the start of an OsIsrTimeFrame from\r
723 the point at which it recognises the interrupt (i.e. in the Operating System interrupt\r
724 wrapper).</ns1:Description>\r
725         </ns1:Req>\r
726         <ns1:Req id="OS048">\r
727                 <ns1:Class>2,3,4</ns1:Class>\r
728                 <ns1:Component>code</ns1:Component>\r
729                 <ns1:Verification>code</ns1:Verification>\r
730                 <ns1:Description>If Category 2 interrupt occurs before the end of the OsIsrTimeFrame then the\r
731 Operating System shall not  execute the user provided OsIsr AND shall call the ProtectionHook() with E_OS_PROTECTION_ARRIVAL.</ns1:Description>\r
732         </ns1:Req>\r
733         <ns1:Req id="OS033">\r
734                 <ns1:Class>2,3,4</ns1:Class>\r
735                 <ns1:Component>code</ns1:Component>\r
736                 <ns1:Verification>code</ns1:Verification>\r
737                 <ns1:Description>If a Task/Category 2 OsIsr holds an  OSEK Resource and exceeds the\r
738 Os[Task|Isr]ResourceLockBudget, the  Operating System  shall call the\r
739 ProtectionHook() with E_OS_PROTECTION_LOCKED.</ns1:Description>\r
740         </ns1:Req>\r
741         <ns1:Req id="OS037">\r
742                 <ns1:Class>2,3,4</ns1:Class>\r
743                 <ns1:Component>code</ns1:Component>\r
744                 <ns1:Verification>code</ns1:Verification>\r
745                 <ns1:Description>If a Task/Category 2 OsIsr disables interrupts (via\r
746 Suspend/Disable|All/OS|Interrupts()) and exceeds the configured\r
747 Os[Task|Isr][All|OS]InterruptLockBudget, the Operating  System shall call the\r
748 ProtectionHook() with E_OS_PROTECTION_LOCKED.</ns1:Description>\r
749         </ns1:Req>\r
750         <ns1:Req id="OS051">\r
751                 <ns1:Class>3,4</ns1:Class>\r
752                 <ns1:Component>code</ns1:Component>\r
753                 <ns1:Verification>code</ns1:Verification>\r
754                 <ns1:Description>If an invalid address (address is not writable by this OS-Application) is\r
755 passed as an out-parameter to an OS service, the Operating System shall return the\r
756 status code E_OS_ILLEGAL_ADDRESS.</ns1:Description>\r
757         </ns1:Req>\r
758         <ns1:Req id="OS088">\r
759                 <ns1:Class>3,4</ns1:Class>\r
760                 <ns1:Component>code</ns1:Component>\r
761                 <ns1:Verification>code</ns1:Verification>\r
762                 <ns1:Description>If an OS-Application makes a service  call from the wrong context AND is\r
763 currently not inside a Category 1 OsIsr the Operating System shall not perform the requested action (the service call shall have no effect), and return E_OS_CALLEVEL or the “invalid value” of the service.</ns1:Description>\r
764         </ns1:Req>\r
765         <ns1:Req id="OS052">\r
766                 <ns1:Class>1,2,3,4</ns1:Class>\r
767                 <ns1:Component>code</ns1:Component>\r
768                 <ns1:Verification>code</ns1:Verification>\r
769                 <ns1:Description>If a task returns from its entry function without making a TerminateTask()\r
770 or  ChainTask() call, the Operating System shall terminate the task (and call the\r
771 PostTaskHook() if configured).</ns1:Description>\r
772         </ns1:Req>\r
773         <ns1:Req id="OS069">\r
774                 <ns1:Class>1,2,3,4</ns1:Class>\r
775                 <ns1:Component>code</ns1:Component>\r
776                 <ns1:Verification>code</ns1:Verification>\r
777                 <ns1:Description>If a task returns from its entry function without making a TerminateTask() or\r
778 ChainTask() call AND the error hook is configured, the Operating System shall call the ErrorHook() (this is done regardless of whether the task causes other errors, e.g.  E_OS_RESOURCE) with status  E_OS_MISSINGEND before the task leaves the RUNNING state.</ns1:Description>\r
779         </ns1:Req>\r
780         <ns1:Req id="OS070">\r
781                 <ns1:Class>1,2,3,4</ns1:Class>\r
782                 <ns1:Component>code</ns1:Component>\r
783                 <ns1:Verification>code</ns1:Verification>\r
784                 <ns1:Description>If a task returns from the entry function without making a TerminateTask()\r
785 or  ChainTask() call and still holds OSEK Resources, the Operating System shall release them.</ns1:Description>\r
786         </ns1:Req>\r
787         <ns1:Req id="OS239">\r
788                 <ns1:Class>1,2,3,4</ns1:Class>\r
789                 <ns1:Component>code</ns1:Component>\r
790                 <ns1:Verification>code</ns1:Verification>\r
791                 <ns1:Description>If a task returns from the entry function without making a TerminateTask()\r
792 or  ChainTask() call and interrupts are still disabled, the Operating System shall enable them.</ns1:Description>\r
793         </ns1:Req>\r
794         <ns1:Req id="OS368">\r
795                 <ns1:Class>1,2,3,4</ns1:Class>\r
796                 <ns1:Component>code</ns1:Component>\r
797                 <ns1:Verification>code</ns1:Verification>\r
798                 <ns1:Description>If a Category 2 OsIsr calls  DisableAllInterupts() /\r
799 SuspendAllInterrupts() /  SuspendOSInterrupts()  and ends (returns) without\r
800 calling the corresponding  EnableAllInterrupts() /  ResumeAllInterrupts() /\r
801 ResumeOSInterrupts(), the Operating System shall  perform the missing service and shall call the ErrorHook() (if configured) with the status E_OS_DISABLEDINT.</ns1:Description>\r
802         </ns1:Req>\r
803         <ns1:Req id="OS369">\r
804                 <ns1:Class>1,2,3,4</ns1:Class>\r
805                 <ns1:Component>code</ns1:Component>\r
806                 <ns1:Verification>code</ns1:Verification>\r
807                 <ns1:Description>If a Category 2 OsIsr calls GetResource() and ends (returns) without calling\r
808 the corresponding  ReleaseResource(), the Operating System shall perform the ReleaseResource() call and shall call the  ErrorHook() (if configured) with the status E_OS_RESOURCE.</ns1:Description>\r
809         </ns1:Req>\r
810         <ns1:Req id="OS071">\r
811                 <ns1:Class>1,2,3,4</ns1:Class>\r
812                 <ns1:Component>code</ns1:Component>\r
813                 <ns1:Verification>code</ns1:Verification>\r
814                 <ns1:Description>If the PostTaskHook() is configured, the Operating System shall not call the\r
815 hook if ShutdownOS() is called</ns1:Description>\r
816         </ns1:Req>\r
817         <ns1:Req id="OS092">\r
818                 <ns1:Class>1,2,3,4</ns1:Class>\r
819                 <ns1:Component>code</ns1:Component>\r
820                 <ns1:Verification>code</ns1:Verification>\r
821                 <ns1:Description>If  EnableAllInterrupts() /  ResumeAllInterrupts() /\r
822 ResumeOSInterrupts() are called and no corresponding DisableAllInterupts()\r
823 /  SuspendAllInterrupts() /  SuspendOSInterrupts() was done before, the\r
824 Operating System shall not perform this OS service.</ns1:Description>\r
825         </ns1:Req>\r
826         <ns1:Req id="OS093">\r
827                 <ns1:Class>1,2,3,4</ns1:Class>\r
828                 <ns1:Component>code</ns1:Component>\r
829                 <ns1:Verification>code</ns1:Verification>\r
830                 <ns1:Description>If interrupts are disabled/suspended  by a Task/OsIsr and the Task/OsIsr\r
831 calls any OS service (excluding the interrupt services) then the Operating System shall ignore the service AND shall return E_OS_DISABLEDINT if the service returns a StatusType value.</ns1:Description>\r
832         </ns1:Req>\r
833         <ns1:Req id="OS054">\r
834                 <ns1:Class>3,4</ns1:Class>\r
835                 <ns1:Component>code</ns1:Component>\r
836                 <ns1:Verification>code</ns1:Verification>\r
837                 <ns1:Description>The Operating System shall ignore calls to ShutdownOS() from non-trusted\r
838 OS-Applications.</ns1:Description>\r
839         </ns1:Req>\r
840         <ns1:Req id="OS056">\r
841                 <ns1:Class>3,4</ns1:Class>\r
842                 <ns1:Component>code</ns1:Component>\r
843                 <ns1:Verification>code</ns1:Verification>\r
844                 <ns1:Description>If an OS-object identifier is the parameter of a system service, and no\r
845 sufficient access rights have been assigned  at configuration time (Parameter\r
846 Os[...]AccessingApplication) to the calling Task/Category 2 OsIsr, the system\r
847 service shall return E_OS_ACCESS.</ns1:Description>\r
848         </ns1:Req>\r
849         <ns1:Req id="OS449">\r
850                 <ns1:Class>3,4</ns1:Class>\r
851                 <ns1:Component>code</ns1:Component>\r
852                 <ns1:Verification>code</ns1:Verification>\r
853                 <ns1:Description>CheckTaskMemoryAccess and CheckIsrMemoryAccess check the memory\r
854 access. Memory access checking is possible for all OS-Applications and from all OS-\r
855 Applications and does not need granted rights (This is an exception to OS056).</ns1:Description>\r
856         </ns1:Req>\r
857         <ns1:Req id="OS550">\r
858                 <ns1:Class>3,4</ns1:Class>\r
859                 <ns1:Component>code</ns1:Component>\r
860                 <ns1:Verification>code</ns1:Verification>\r
861                 <ns1:Description>CheckObjectAccess checks the access rights for OS objects. Checking\r
862 object access is possible for all OS-Applications and from all OS-Applications and\r
863 does not need granted rights (This is an exception to OS056).</ns1:Description>\r
864         </ns1:Req>\r
865         <ns1:Req id="OS058">\r
866                 <ns1:Class>3,4</ns1:Class>\r
867                 <ns1:Component>code</ns1:Component>\r
868                 <ns1:Verification>code</ns1:Verification>\r
869                 <ns1:Description>If supported by hardware,  the Operating System shall execute non-trusted\r
870 OS-Applications in non-privileged mode.</ns1:Description>\r
871         </ns1:Req>\r
872         <ns1:Req id="OS096">\r
873                 <ns1:Class>3,4</ns1:Class>\r
874                 <ns1:Component>code</ns1:Component>\r
875                 <ns1:Verification>code</ns1:Verification>\r
876                 <ns1:Description>As far as supported by hardware, the Operating System shall not allow non-\r
877 trusted OS-Applications to access control registers managed  by the Operating\r
878 System.</ns1:Description>\r
879         </ns1:Req>\r
880         <ns1:Req id="OS245">\r
881                 <ns1:Class>3,4</ns1:Class>\r
882                 <ns1:Component>code</ns1:Component>\r
883                 <ns1:Verification>code</ns1:Verification>\r
884                 <ns1:Description>If an instruction exception occurs (e.g. division by zero) the operating system\r
885 shall call the protection hook with E_OS_PROTECTION_EXCEPTION.</ns1:Description>\r
886         </ns1:Req>\r
887         <ns1:Req id="OS451">\r
888                 <ns1:Class>3,4</ns1:Class>\r
889                 <ns1:Component>code</ns1:Component>\r
890                 <ns1:Verification>code</ns1:Verification>\r
891                 <ns1:Description>The Operating System shall allow to export services from trusted OS-\r
892 Applications.</ns1:Description>\r
893         </ns1:Req>\r
894         <ns1:Req id="OS097">\r
895                 <ns1:Class>3,4</ns1:Class>\r
896                 <ns1:Component>code</ns1:Component>\r
897                 <ns1:Verification>code</ns1:Verification>\r
898                 <ns1:Description>The Operating System shall provide a mechanism to call a trusted function\r
899 from a (trusted or non-trusted) OS-Application.</ns1:Description>\r
900         </ns1:Req>\r
901         <ns1:Req id="OS100">\r
902                 <ns1:Class>3,4</ns1:Class>\r
903                 <ns1:Component>code</ns1:Component>\r
904                 <ns1:Verification>code</ns1:Verification>\r
905                 <ns1:Description>If a called trusted function is not configured the Operating System shall call\r
906 the ErrorHook with E_OS_SERVICEID.</ns1:Description>\r
907         </ns1:Req>\r
908         <ns1:Req id="OS099">\r
909                 <ns1:Class>3,4</ns1:Class>\r
910                 <ns1:Component>code</ns1:Component>\r
911                 <ns1:Verification>code</ns1:Verification>\r
912                 <ns1:Description>The Operating System shall offer OS-Applications a service to check if a\r
913 memory region is write/read/execute accessible from a Task/Category 2 OsIsr and\r
914 also return information if the memory region is part of the stack space.</ns1:Description>\r
915         </ns1:Req>\r
916         <ns1:Req id="OS211">\r
917                 <ns1:Class>3,4</ns1:Class>\r
918                 <ns1:Component>code</ns1:Component>\r
919                 <ns1:Verification>code</ns1:Verification>\r
920                 <ns1:Description>The Operating System shall execute the ProtectionHook() with the same\r
921 permissions as the Operating System.</ns1:Description>\r
922         </ns1:Req>\r
923         <ns1:Req id="OS106">\r
924                 <ns1:Class>2,3,4</ns1:Class>\r
925                 <ns1:Component>code</ns1:Component>\r
926                 <ns1:Verification>code</ns1:Verification>\r
927                 <ns1:Description>The Operating System shall perform one of the following reactions\r
928 depending on the return value of the ProtectionHook():\r
929 o Do nothing\r
930 o Forcibly terminate the faulty Task/Category 2 OsIsr OR\r
931 o Forcibly terminate the faulty OS-Application OR\r
932 o Forcibly terminate the faulty OS-Application and restart the OS-\r
933 Application. OR\r
934 o Call ShutdownOS().</ns1:Description>\r
935         </ns1:Req>\r
936         <ns1:Req id="OS107">\r
937                 <ns1:Class>2,3,4</ns1:Class>\r
938                 <ns1:Component>code</ns1:Component>\r
939                 <ns1:Verification>code</ns1:Verification>\r
940                 <ns1:Description>If no  ProtectionHook() is configured and a protection error occurs, the\r
941 Operating System shall call ShutdownOS().</ns1:Description>\r
942         </ns1:Req>\r
943         <ns1:Req id="OS475">\r
944                 <ns1:Class>2,3,4</ns1:Class>\r
945                 <ns1:Component>code</ns1:Component>\r
946                 <ns1:Verification>code</ns1:Verification>\r
947                 <ns1:Description>If the reaction is to do nothing and the ProtectionHook() was not called with\r
948 E_OS_PROTECTION_ARRIVAL then the Operating System shall call ShutdownOS()</ns1:Description>\r
949         </ns1:Req>\r
950         <ns1:Req id="OS243">\r
951                 <ns1:Class>3,4</ns1:Class>\r
952                 <ns1:Component>code</ns1:Component>\r
953                 <ns1:Verification>code</ns1:Verification>\r
954                 <ns1:Description>If the reaction is to forcibly terminate the Task/Category 2 OsIsr and no Task\r
955 or OsIsr can be associated with the error, the running OS-Application is forcibly\r
956 terminated by the Operating System.</ns1:Description>\r
957         </ns1:Req>\r
958         <ns1:Req id="OS244">\r
959                 <ns1:Class>3,4</ns1:Class>\r
960                 <ns1:Component>code</ns1:Component>\r
961                 <ns1:Verification>code</ns1:Verification>\r
962                 <ns1:Description>If the reaction is to forcibly terminate the faulty OS-Application and no OS-\r
963 Application can be assigned, ShutdownOS()is called.</ns1:Description>\r
964         </ns1:Req>\r
965         <ns1:Req id="OS108">\r
966                 <ns1:Class>3,4</ns1:Class>\r
967                 <ns1:Component>code</ns1:Component>\r
968                 <ns1:Verification>code</ns1:Verification>\r
969                 <ns1:Description>If the Operating System forcibly terminates a task, it terminates the task (no\r
970 PostTaskHook() for the task will be called), releases all allocated OSEK resources\r
971 and calls  EnableAllInterrupts()/  ResumeOSInterrupts() /\r
972 ResumeAllInterrupts() if the Task called  DisableAllInterrupts()  /\r
973 SuspendOSInterrupts()  / SuspendAllInterrupts() before without the\r
974 corresponding  EnableAllInterrupts()/  ResumeOSInterrupts() /\r
975 ResumeAllInterrupts() call.</ns1:Description>\r
976         </ns1:Req>\r
977         <ns1:Req id="OS109">\r
978                 <ns1:Class>3,4</ns1:Class>\r
979                 <ns1:Component>code</ns1:Component>\r
980                 <ns1:Verification>code</ns1:Verification>\r
981                 <ns1:Description>If the Operating System forcibly terminates an interrupt service routine, it\r
982 clears the interrupt request, aborts the interrupt service routine (The interrupt source\r
983 stays in the current state.) and releases  all OSEK resources the interrupt service\r
984 routine has allocated and calls EnableAllInterrupts() / ResumeOSInterrupts() /\r
985 ResumeAllInterrupts() if the interrupt called  DisableAllInterrupts()  /\r
986 SuspendOSInterrupts()  / SuspendAllInterrupts() before without the\r
987 corresponding  EnableAllInterrupts()/  ResumeOSInterrupts() /\r
988 ResumeAllInterrupts() call.</ns1:Description>\r
989         </ns1:Req>\r
990         <ns1:Req id="OS110">\r
991                 <ns1:Class>3,4</ns1:Class>\r
992                 <ns1:Component>code</ns1:Component>\r
993                 <ns1:Verification>code</ns1:Verification>\r
994                 <ns1:Description>If the Operating System forcibly terminates an OS-Application, it:\r
995 o forcibly terminates all Tasks/OsIsrs of the OS-Application AND\r
996 o cancels all alarms of the OS-Application AND\r
997 o stops schedule tables of the OS-Application AND\r
998 o disables interrupt sources of Category 2 OsIsrs belonging to the OS-\r
999 Application</ns1:Description>\r
1000         </ns1:Req>\r
1001         <ns1:Req id="OS111">\r
1002                 <ns1:Class>3,4</ns1:Class>\r
1003                 <ns1:Component>code</ns1:Component>\r
1004                 <ns1:Verification>code</ns1:Verification>\r
1005                 <ns1:Description>When the Operating System restarts an OS-Application it activates the\r
1006 configured OsRestartTask.</ns1:Description>\r
1007         </ns1:Req>\r
1008         <ns1:Req id="OS240">\r
1009                 <ns1:Class>1,2,3,4</ns1:Class>\r
1010                 <ns1:Component>none</ns1:Component>\r
1011                 <ns1:Verification>inspection</ns1:Verification>\r
1012                 <ns1:Description>If an implementation of a lower scalability class supports features of higher\r
1013 classes then the interfaces for the features must comply with this specification.</ns1:Description>\r
1014         </ns1:Req>\r
1015         <ns1:Req id="OS241">\r
1016                 <ns1:Class>1,2,3,4</ns1:Class>\r
1017                 <ns1:Component>none</ns1:Component>\r
1018                 <ns1:Verification>inspection</ns1:Verification>\r
1019                 <ns1:Description>The operating system shall support the features according to the configured\r
1020 scalability class. (See Tab. 2)</ns1:Description>\r
1021         </ns1:Req>\r
1022         <ns1:Req id="OS327">\r
1023                 <ns1:Class>1,2,3,4</ns1:Class>\r
1024                 <ns1:Component>code</ns1:Component>\r
1025                 <ns1:Verification>code</ns1:Verification>\r
1026                 <ns1:Description>The operating system shall always use extended status in Scalability Class 3\r
1027 and 4.</ns1:Description>\r
1028         </ns1:Req>\r
1029         <ns1:Req id="OS439">\r
1030                 <ns1:Class>1,2,3,4</ns1:Class>\r
1031                 <ns1:Component>code</ns1:Component>\r
1032                 <ns1:Verification>code</ns1:Verification>\r
1033                 <ns1:Description>The Operating System shall offer the OSEK error macros (OSError…()) to all\r
1034 configured error hooks AND there shall be two (like in OIL) global configuration\r
1035 parameter to switch these macros on or off.</ns1:Description>\r
1036         </ns1:Req>\r
1037         <ns1:Req id="OS060">\r
1038                 <ns1:Class>3,4</ns1:Class>\r
1039                 <ns1:Component>code</ns1:Component>\r
1040                 <ns1:Verification>code</ns1:Verification>\r
1041                 <ns1:Description>If an application-specific  startup hook is configured for an OS-Application\r
1042 &lt;App&gt;, the Operating System shall call StartupHook_&lt;App&gt; on startup of the OS.</ns1:Description>\r
1043         </ns1:Req>\r
1044         <ns1:Req id="OS226">\r
1045                 <ns1:Class>3,4</ns1:Class>\r
1046                 <ns1:Component>code</ns1:Component>\r
1047                 <ns1:Verification>code</ns1:Verification>\r
1048                 <ns1:Description>The Operating System shall execute an application-specific startup hook with\r
1049 the access rights of the associated OS-Application.</ns1:Description>\r
1050         </ns1:Req>\r
1051         <ns1:Req id="OS236">\r
1052                 <ns1:Class>3,4</ns1:Class>\r
1053                 <ns1:Component>code</ns1:Component>\r
1054                 <ns1:Verification>code</ns1:Verification>\r
1055                 <ns1:Description>If both a system-specific and one (or more) application specific startup\r
1056 hook(s) are configured, the Operating System shall call the system-specific startup\r
1057 hook before the application-specific startup hook(s).</ns1:Description>\r
1058         </ns1:Req>\r
1059         <ns1:Req id="OS112">\r
1060                 <ns1:Class>3,4</ns1:Class>\r
1061                 <ns1:Component>code</ns1:Component>\r
1062                 <ns1:Verification>code</ns1:Verification>\r
1063                 <ns1:Description>If an application-specific shutdown hook is configured for an OS-Application\r
1064 &lt;App&gt;, the Operating System shall call  ShutdownHook_&lt;App&gt; on shutdown of the\r
1065 OS.</ns1:Description>\r
1066         </ns1:Req>\r
1067         <ns1:Req id="OS225">\r
1068                 <ns1:Class>3,4</ns1:Class>\r
1069                 <ns1:Component>code</ns1:Component>\r
1070                 <ns1:Verification>code</ns1:Verification>\r
1071                 <ns1:Description>The Operating System shall execute an application-specific shutdown hook\r
1072 with the access rights of the associated OS-Application.</ns1:Description>\r
1073         </ns1:Req>\r
1074         <ns1:Req id="OS237">\r
1075                 <ns1:Class>3,4</ns1:Class>\r
1076                 <ns1:Component>code</ns1:Component>\r
1077                 <ns1:Verification>code</ns1:Verification>\r
1078                 <ns1:Description>If both a system-specific and one (or more) application specific shutdown\r
1079 hook(s) are configured, the Operating System shall call the system-specific shutdown\r
1080 hook after the application-specific shutdown hook(s).</ns1:Description>\r
1081         </ns1:Req>\r
1082         <ns1:Req id="OS246">\r
1083                 <ns1:Class>3,4</ns1:Class>\r
1084                 <ns1:Component>code</ns1:Component>\r
1085                 <ns1:Verification>code</ns1:Verification>\r
1086                 <ns1:Description>When an error occurs AND an application-specific error hook is configured\r
1087 for the faulty OS-Application &lt;App&gt;, the Operating System shall call that application-\r
1088 specific error hook ErrorHook_&lt;App&gt; after the system specific error hook is called (if\r
1089 configured).</ns1:Description>\r
1090         </ns1:Req>\r
1091         <ns1:Req id="OS085">\r
1092                 <ns1:Class>3,4</ns1:Class>\r
1093                 <ns1:Component>code</ns1:Component>\r
1094                 <ns1:Verification>code</ns1:Verification>\r
1095                 <ns1:Description>The Operating System shall execute an application-specific error hook with\r
1096 the access rights of the associated OS-Application.</ns1:Description>\r
1097         </ns1:Req>\r
1098         <ns1:Req id="OS367">\r
1099                 <ns1:Class>1,2,3,4</ns1:Class>\r
1100                 <ns1:Component>code</ns1:Component>\r
1101                 <ns1:Verification>code</ns1:Verification>\r
1102                 <ns1:Description>Operating System services which do not return a StatusType shall not raise\r
1103 the error hook(s).</ns1:Description>\r
1104         </ns1:Req>\r
1105         <ns1:Req id="OS261">\r
1106                 <ns1:Class>3,4</ns1:Class>\r
1107                 <ns1:Component>code</ns1:Component>\r
1108                 <ns1:Verification>code</ns1:Verification>\r
1109                 <ns1:Description>GetApplicationID() shall return the application identifier to which\r
1110 the executing Task/OsIsr/hook belongs.</ns1:Description>\r
1111         </ns1:Req>\r
1112         <ns1:Req id="OS262">\r
1113                 <ns1:Class>3,4</ns1:Class>\r
1114                 <ns1:Component>code</ns1:Component>\r
1115                 <ns1:Verification>code</ns1:Verification>\r
1116                 <ns1:Description>If no OS-Application is running, GetApplicationID() shall return\r
1117 INVALID_OSAPPLICATION.</ns1:Description>\r
1118         </ns1:Req>\r
1119         <ns1:Req id="OS263">\r
1120                 <ns1:Class>1,2,3,4</ns1:Class>\r
1121                 <ns1:Component>code</ns1:Component>\r
1122                 <ns1:Verification>code</ns1:Verification>\r
1123                 <ns1:Description>If called from category 2 OsIsr (or Hook routines called inside a category\r
1124 2 OsIsr), GetISRID() shall return the identifier of the currently executing OsIsr.</ns1:Description>\r
1125         </ns1:Req>\r
1126         <ns1:Req id="OS264">\r
1127                 <ns1:Class>1,2,3,4</ns1:Class>\r
1128                 <ns1:Component>code</ns1:Component>\r
1129                 <ns1:Verification>code</ns1:Verification>\r
1130                 <ns1:Description>If its caller is not a category 2 OsIsr (or Hook routines called inside a category 2 OsIsr),\r
1131 GetISRID() shall return INVALID_ISR.</ns1:Description>\r
1132         </ns1:Req>\r
1133         <ns1:Req id="OS265">\r
1134                 <ns1:Class>3,4</ns1:Class>\r
1135                 <ns1:Component>code</ns1:Component>\r
1136                 <ns1:Verification>code</ns1:Verification>\r
1137                 <ns1:Description>If &lt;FunctionIndex&gt; is a defined function index,\r
1138 CallTrustedFunction() shall switch the processor into privileged mode AND\r
1139 shall call the function &lt;FunctionIndex&gt; out of a list of implementation specific\r
1140 trusted functions AND shall return E_OK after completion.</ns1:Description>\r
1141         </ns1:Req>\r
1142         <ns1:Req id="OS312">\r
1143                 <ns1:Class>3,4</ns1:Class>\r
1144                 <ns1:Component>code</ns1:Component>\r
1145                 <ns1:Verification>code</ns1:Verification>\r
1146                 <ns1:Description>The called trusted function must conform to the following C prototype:\r
1147 void TRUSTED_&lt;name_of_the_trusted_service&gt;(\r
1148 TrustedFunctionIndexType,TrustedFunctionParameterRefType);\r
1149 (The arguments are the same as the arguments of CallTrustedFunction).</ns1:Description>\r
1150         </ns1:Req>\r
1151         <ns1:Req id="OS266">\r
1152                 <ns1:Class>3,4</ns1:Class>\r
1153                 <ns1:Component>code</ns1:Component>\r
1154                 <ns1:Verification>code</ns1:Verification>\r
1155                 <ns1:Description>When the function &lt;FunctionIndex&gt; is called, it shall get the same\r
1156 permissions (access rights) as the associated trusted OS-Application.</ns1:Description>\r
1157         </ns1:Req>\r
1158         <ns1:Req id="OS364">\r
1159                 <ns1:Class>3,4</ns1:Class>\r
1160                 <ns1:Component>code</ns1:Component>\r
1161                 <ns1:Verification>code</ns1:Verification>\r
1162                 <ns1:Description>If the trusted function is called from a Category 2 OsIsr context it shall\r
1163 continue to run on the same interrupt priority and be allowed to call all system\r
1164 services defined for Category 2 OsIsr (see table in chapter 7.7.3.2).</ns1:Description>\r
1165         </ns1:Req>\r
1166         <ns1:Req id="OS365">\r
1167                 <ns1:Class>3,4</ns1:Class>\r
1168                 <ns1:Component>code</ns1:Component>\r
1169                 <ns1:Verification>code</ns1:Verification>\r
1170                 <ns1:Description>If the trusted function is called from a task context it shall continue to run\r
1171 on the same priority and be allowed to call all system services defined for tasks\r
1172 (see table in chapter 7.7.3.2).</ns1:Description>\r
1173         </ns1:Req>\r
1174         <ns1:Req id="OS292">\r
1175                 <ns1:Class>3,4</ns1:Class>\r
1176                 <ns1:Component>code</ns1:Component>\r
1177                 <ns1:Verification>code</ns1:Verification>\r
1178                 <ns1:Description>If the function index &lt;FunctionIndex&gt; is undefined,\r
1179 CallTrustedFunction() shall return E_OS_SERVICEID.</ns1:Description>\r
1180         </ns1:Req>\r
1181         <ns1:Req id="OS267">\r
1182                 <ns1:Class>3,4</ns1:Class>\r
1183                 <ns1:Component>code</ns1:Component>\r
1184                 <ns1:Verification>code</ns1:Verification>\r
1185                 <ns1:Description>If the OsIsr reference &lt;ISRID&gt; is valid, CheckISRMemoryAccess() shall\r
1186 return the access rights of the OsIsr on the specified memory area.</ns1:Description>\r
1187         </ns1:Req>\r
1188         <ns1:Req id="OS313">\r
1189                 <ns1:Class>3,4</ns1:Class>\r
1190                 <ns1:Component>code</ns1:Component>\r
1191                 <ns1:Verification>code</ns1:Verification>\r
1192                 <ns1:Description>If an access right (e.g. “read”) is not valid for the whole specified memory\r
1193 area   CheckISRMemoryAccess() shall yield no access regarding this right.</ns1:Description>\r
1194         </ns1:Req>\r
1195         <ns1:Req id="OS268">\r
1196                 <ns1:Class>3,4</ns1:Class>\r
1197                 <ns1:Component>code</ns1:Component>\r
1198                 <ns1:Verification>code</ns1:Verification>\r
1199                 <ns1:Description>If the OsIsr reference &lt;ISRID&gt; is not valid, CheckISRMemoryAccess()\r
1200 shall yield no access rights.</ns1:Description>\r
1201         </ns1:Req>\r
1202         <ns1:Req id="OS269">\r
1203                 <ns1:Class>3,4</ns1:Class>\r
1204                 <ns1:Component>code</ns1:Component>\r
1205                 <ns1:Verification>code</ns1:Verification>\r
1206                 <ns1:Description>If the Task reference &lt;TaskID&gt; is valid, CheckTaskMemoryAccess()\r
1207 shall return the access rights of the task on the specified memory area.</ns1:Description>\r
1208         </ns1:Req>\r
1209         <ns1:Req id="OS314">\r
1210                 <ns1:Class>3,4</ns1:Class>\r
1211                 <ns1:Component>code</ns1:Component>\r
1212                 <ns1:Verification>code</ns1:Verification>\r
1213                 <ns1:Description>If an access right (e.g. “read”) is not valid for the whole specified memory\r
1214 area   CheckTaskMemoryAccess() shall yield no access regarding this right.</ns1:Description>\r
1215         </ns1:Req>\r
1216         <ns1:Req id="OS270">\r
1217                 <ns1:Class>3,4</ns1:Class>\r
1218                 <ns1:Component>code</ns1:Component>\r
1219                 <ns1:Verification>code</ns1:Verification>\r
1220                 <ns1:Description>If the Task reference &lt;TaskID&gt; is not valid, CheckTaskMemoryAccess()\r
1221 shall yield no access rights.</ns1:Description>\r
1222         </ns1:Req>\r
1223         <ns1:Req id="OS271">\r
1224                 <ns1:Class>3,4</ns1:Class>\r
1225                 <ns1:Component>code</ns1:Component>\r
1226                 <ns1:Verification>code</ns1:Verification>\r
1227                 <ns1:Description>If the OS-Application &lt;ApplID&gt; has access to the queried object,\r
1228 CheckObjectAccess() shall return ACCESS.</ns1:Description>\r
1229         </ns1:Req>\r
1230         <ns1:Req id="OS272">\r
1231                 <ns1:Class>3,4</ns1:Class>\r
1232                 <ns1:Component>code</ns1:Component>\r
1233                 <ns1:Verification>code</ns1:Verification>\r
1234                 <ns1:Description>If the OS-Application &lt;ApplID&gt; has no access to the queried object,\r
1235 CheckObjectAccess() shall return NO_ACCESS.</ns1:Description>\r
1236         </ns1:Req>\r
1237         <ns1:Req id="OS423">\r
1238                 <ns1:Class>3,4</ns1:Class>\r
1239                 <ns1:Component>code</ns1:Component>\r
1240                 <ns1:Verification>code</ns1:Verification>\r
1241                 <ns1:Description>If the object to be examined is not a valid object OR &lt;ApplID&gt;  is invalid\r
1242 OR &lt;ObjectType&gt; is invalid THEN the  the CheckObjectAccess() shall return\r
1243 NO_ACCESS.</ns1:Description>\r
1244         </ns1:Req>\r
1245         <ns1:Req id="OS318">\r
1246                 <ns1:Class>3,4</ns1:Class>\r
1247                 <ns1:Component>code</ns1:Component>\r
1248                 <ns1:Verification>code</ns1:Verification>\r
1249                 <ns1:Description>If the object type is OBJECT_RESOURCE AND the object to be examined is\r
1250 the RES_SCHEDULER CheckObjectAccess() shall always return ACCESS.</ns1:Description>\r
1251         </ns1:Req>\r
1252         <ns1:Req id="OS273">\r
1253                 <ns1:Class>3,4</ns1:Class>\r
1254                 <ns1:Component>code</ns1:Component>\r
1255                 <ns1:Verification>code</ns1:Verification>\r
1256                 <ns1:Description>If the specified object ObjectType exists, CheckObjectOwnership()\r
1257 shall return the identifier of the OS-Application to which the object belongs.</ns1:Description>\r
1258         </ns1:Req>\r
1259         <ns1:Req id="OS274">\r
1260                 <ns1:Class>3,4</ns1:Class>\r
1261                 <ns1:Component>code</ns1:Component>\r
1262                 <ns1:Verification>code</ns1:Verification>\r
1263                 <ns1:Description>If the specified object ObjectType is invalid OR the argument of the type\r
1264 (the “…”) is invalid , CheckObjectOwnership() shall return\r
1265 INVALID_OSAPPLICATION.</ns1:Description>\r
1266         </ns1:Req>\r
1267         <ns1:Req id="OS319">\r
1268                 <ns1:Class>3,4</ns1:Class>\r
1269                 <ns1:Component>code</ns1:Component>\r
1270                 <ns1:Verification>code</ns1:Verification>\r
1271                 <ns1:Description>If the object to be examined is the RES_SCHEDULER\r
1272 CheckObjectOwnership() shall always return INVALID_OSAPPLICATION.</ns1:Description>\r
1273         </ns1:Req>\r
1274         <ns1:Req id="OS275">\r
1275                 <ns1:Class>1,2,3,4</ns1:Class>\r
1276                 <ns1:Component>code</ns1:Component>\r
1277                 <ns1:Verification>code</ns1:Verification>\r
1278                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is not valid,\r
1279 StartScheduleTableRel() shall return E_OS_ID.</ns1:Description>\r
1280         </ns1:Req>\r
1281         <ns1:Req id="OS452">\r
1282                 <ns1:Class>2,4</ns1:Class>\r
1283                 <ns1:Component>code</ns1:Component>\r
1284                 <ns1:Verification>code</ns1:Verification>\r
1285                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is implicitely synchronized\r
1286 (OsScheduleTblSyncStrategy   = IMPLICIT),\r
1287 StartScheduleTableRel() shall return E_OS_ID.</ns1:Description>\r
1288         </ns1:Req>\r
1289         <ns1:Req id="OS332">\r
1290                 <ns1:Class>1,2,3,4</ns1:Class>\r
1291                 <ns1:Component>code</ns1:Component>\r
1292                 <ns1:Verification>code</ns1:Verification>\r
1293                 <ns1:Description>If &lt;Offset&gt; is zero StartScheduleTableRel() shall return\r
1294 E_OS_VALUE.</ns1:Description>\r
1295         </ns1:Req>\r
1296         <ns1:Req id="OS276">\r
1297                 <ns1:Class>1,2,3,4</ns1:Class>\r
1298                 <ns1:Component>code</ns1:Component>\r
1299                 <ns1:Verification>code</ns1:Verification>\r
1300                 <ns1:Description>If the offset &lt;Offset&gt; is greater than OsCounterMaxAllowedValue of\r
1301 the underlying counter minus the Initial Offset, StartScheduleTableRel()\r
1302 shall return E_OS_VALUE.</ns1:Description>\r
1303         </ns1:Req>\r
1304         <ns1:Req id="OS277">\r
1305                 <ns1:Class>1,2,3,4</ns1:Class>\r
1306                 <ns1:Component>code</ns1:Component>\r
1307                 <ns1:Verification>code</ns1:Verification>\r
1308                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is not in the state\r
1309 SCHEDULETABLE_STOPPED, StartScheduleTableRel() shall return\r
1310 E_OS_STATE.</ns1:Description>\r
1311         </ns1:Req>\r
1312         <ns1:Req id="OS278">\r
1313                 <ns1:Class>1,2,3,4</ns1:Class>\r
1314                 <ns1:Component>code</ns1:Component>\r
1315                 <ns1:Verification>code</ns1:Verification>\r
1316                 <ns1:Description>If its input parameters are valid and the state of schedule table\r
1317 &lt;ScheduleTableID&gt; is SCHEDULETABLE_STOPPED, then\r
1318 StartScheduleTableRel() shall start the processing of a schedule table\r
1319 &lt;ScheduleTableID&gt;. The Initial Expiry Point shall be processed after &lt;Offset&gt; +\r
1320 Initial Offset ticks have elapsed on the underlying counter. The state of\r
1321 &lt;ScheduleTableID&gt; to SCHEDULETABLE_RUNNING.</ns1:Description>\r
1322         </ns1:Req>\r
1323         <ns1:Req id="OS348">\r
1324                 <ns1:Class>1,2,3,4</ns1:Class>\r
1325                 <ns1:Component>code</ns1:Component>\r
1326                 <ns1:Verification>code</ns1:Verification>\r
1327                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is not valid,\r
1328 StartScheduleTableAbs() shall return E_OS_ID.</ns1:Description>\r
1329         </ns1:Req>\r
1330         <ns1:Req id="OS349">\r
1331                 <ns1:Class>1,2,3,4</ns1:Class>\r
1332                 <ns1:Component>code</ns1:Component>\r
1333                 <ns1:Verification>code</ns1:Verification>\r
1334                 <ns1:Description>If the &lt;Tickvalue&gt; is greater than the OsCounterMaxAllowedValue of\r
1335 the underlying counter, StartScheduleTableAbs() shall return E_OS_VALUE.</ns1:Description>\r
1336         </ns1:Req>\r
1337         <ns1:Req id="OS350">\r
1338                 <ns1:Class>1,2,3,4</ns1:Class>\r
1339                 <ns1:Component>code</ns1:Component>\r
1340                 <ns1:Verification>code</ns1:Verification>\r
1341                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is not in the state\r
1342 SCHEDULETABLE_STOPPED, StartScheduleTableAbs() shall return\r
1343 E_OS_STATE.</ns1:Description>\r
1344         </ns1:Req>\r
1345         <ns1:Req id="OS351">\r
1346                 <ns1:Class>1,2,3,4</ns1:Class>\r
1347                 <ns1:Component>code</ns1:Component>\r
1348                 <ns1:Verification>code</ns1:Verification>\r
1349                 <ns1:Description>If its input parameters are valid and &lt;ScheduleTableID&gt; is in the state\r
1350 SCHEDULETABLE_STOPPED, StartScheduleTableAbs() shall start the\r
1351 processing of schedule table &lt;ScheduleTableID&gt; at count value &lt;Start&gt; and shall\r
1352 set the state of &lt;ScheduleTableID&gt; to SCHEDULETABLE_RUNNING. The Initial\r
1353 Expiry Point will be processed when the underlying counter equals &lt;Start&gt;+Initial\r
1354 Offset.</ns1:Description>\r
1355         </ns1:Req>\r
1356         <ns1:Req id="OS279">\r
1357                 <ns1:Class>1,2,3,4</ns1:Class>\r
1358                 <ns1:Component>code</ns1:Component>\r
1359                 <ns1:Verification>code</ns1:Verification>\r
1360                 <ns1:Description>If the schedule table identifier &lt;ScheduleTableID&gt; is not valid,\r
1361 StopScheduleTable() shall return E_OS_ID.</ns1:Description>\r
1362         </ns1:Req>\r
1363         <ns1:Req id="OS280">\r
1364                 <ns1:Class>1,2,3,4</ns1:Class>\r
1365                 <ns1:Component>code</ns1:Component>\r
1366                 <ns1:Verification>code</ns1:Verification>\r
1367                 <ns1:Description>If the schedule table with identifier &lt;ScheduleTableID&gt; is in state\r
1368 SCHEDULETABLE_STOPPED, StopScheduleTable() shall return\r
1369 E_OS_NOFUNC.</ns1:Description>\r
1370         </ns1:Req>\r
1371         <ns1:Req id="OS281">\r
1372                 <ns1:Class>1,2,3,4</ns1:Class>\r
1373                 <ns1:Component>code</ns1:Component>\r
1374                 <ns1:Verification>code</ns1:Verification>\r
1375                 <ns1:Description>If its input parameters are valid, StopScheduleTable()shall set the\r
1376 state of &lt;ScheduleTableID&gt; to SCHEDULETABLE_STOPPED and (stop the\r
1377 schedule table &lt;ScheduleTableID&gt; from processing any further expiry points and)\r
1378 shall return E_OK.</ns1:Description>\r
1379         </ns1:Req>\r
1380         <ns1:Req id="OS282">\r
1381                 <ns1:Class>1,2,3,4</ns1:Class>\r
1382                 <ns1:Component>code</ns1:Component>\r
1383                 <ns1:Verification>code</ns1:Verification>\r
1384                 <ns1:Description>If the input parameter &lt;ScheduleTableID_From&gt; or\r
1385 &lt;ScheduleTableID_To&gt; is not valid, NextScheduleTable() shall return\r
1386 E_OS_ID.</ns1:Description>\r
1387         </ns1:Req>\r
1388         <ns1:Req id="OS330">\r
1389                 <ns1:Class>1,2,3,4</ns1:Class>\r
1390                 <ns1:Component>code</ns1:Component>\r
1391                 <ns1:Verification>code</ns1:Verification>\r
1392                 <ns1:Description>If schedule table &lt;ScheduleTableID_To&gt; is driven by different counter than\r
1393 schedule table &lt;ScheduleTableID_From&gt; then NextScheduleTable() shall\r
1394 return an error E_OS_ID.</ns1:Description>\r
1395         </ns1:Req>\r
1396         <ns1:Req id="OS283">\r
1397                 <ns1:Class>1,2,3,4</ns1:Class>\r
1398                 <ns1:Component>code</ns1:Component>\r
1399                 <ns1:Verification>code</ns1:Verification>\r
1400                 <ns1:Description>: If the schedule table &lt;ScheduleTableID_From&gt; is in state\r
1401 SCHEDULETABLE_STOPPED OR in state SCHEDULETABLE_NEXT,\r
1402 NextScheduleTable() shall leave the state of &lt;ScheduleTable_From&gt; and\r
1403 &lt;ScheduleTable_To&gt; unchanged and return E_OS_NOFUNC..</ns1:Description>\r
1404         </ns1:Req>\r
1405         <ns1:Req id="OS309">\r
1406                 <ns1:Class>1,2,3,4</ns1:Class>\r
1407                 <ns1:Component>code</ns1:Component>\r
1408                 <ns1:Verification>code</ns1:Verification>\r
1409                 <ns1:Description>: If the schedule table &lt;ScheduleTableID_To&gt; is not in state\r
1410 SCHEDULETABLE_STOPPED, NextScheduleTable() shall leave the state of\r
1411 &lt;ScheduleTable_From&gt; and &lt;ScheduleTable_To&gt; unchanged and return\r
1412 E_OS_STATE.</ns1:Description>\r
1413         </ns1:Req>\r
1414         <ns1:Req id="OS284">\r
1415                 <ns1:Class>1,2,3,4</ns1:Class>\r
1416                 <ns1:Component>code</ns1:Component>\r
1417                 <ns1:Verification>code</ns1:Verification>\r
1418                 <ns1:Description>If the input parameters are valid then  NextScheduleTable() shall start\r
1419 the processing of schedule table &lt;ScheduleTableID_To&gt;\r
1420 &lt;ScheduleTableID_From&gt;.FinalDelay ticks after the Final Expiry Point on\r
1421 &lt;ScheduleTableID_From&gt; is processed and shall return E_OK. The Initial Expiry\r
1422 Point on &lt;ScheduleTableID_To&gt; shall be processed at\r
1423 &lt;ScheduleTableID_From&gt;.Final Delay + &lt;ScheduleTable_To&gt;.Initial Offset ticks\r
1424 after the Final Expiry Point on &lt;ScheduleTableID_From&gt; is processed .</ns1:Description>\r
1425         </ns1:Req>\r
1426         <ns1:Req id="OS324">\r
1427                 <ns1:Class>1,2,3,4</ns1:Class>\r
1428                 <ns1:Component>code</ns1:Component>\r
1429                 <ns1:Verification>code</ns1:Verification>\r
1430                 <ns1:Description>If the input parameters are valid AND the &lt;ScheduleTableID_From&gt;\r
1431 already has a “next” schedule table then the &lt;ScheduleTableID_To&gt; shall replace\r
1432 the previous “next” schedule table and the old “next” schedule table state becomes\r
1433 SCHEDULETABLE_STOPPED.</ns1:Description>\r
1434         </ns1:Req>\r
1435         <ns1:Req id="OS363">\r
1436                 <ns1:Class>2,4</ns1:Class>\r
1437                 <ns1:Component>code</ns1:Component>\r
1438                 <ns1:Verification>code</ns1:Verification>\r
1439                 <ns1:Description>The synchronization strategy of the &lt;ScheduleTableID_To&gt; shall come into\r
1440 effect when the Operating System processes the first expiry point of\r
1441 &lt;ScheduleTableID_To&gt;.</ns1:Description>\r
1442         </ns1:Req>\r
1443         <ns1:Req id="OS453">\r
1444                 <ns1:Class>1,2,3,4</ns1:Class>\r
1445                 <ns1:Component>code</ns1:Component>\r
1446                 <ns1:Verification>code</ns1:Verification>\r
1447                 <ns1:Description>If the &lt;ScheduleTableID_From&gt; is stopped, the “next” schedule table\r
1448 does not start and its state changes to SCHEDULETABLE_STOPPED.</ns1:Description>\r
1449         </ns1:Req>\r
1450         <ns1:Req id="OS387">\r
1451                 <ns1:Class>2,4</ns1:Class>\r
1452                 <ns1:Component>code</ns1:Component>\r
1453                 <ns1:Verification>code</ns1:Verification>\r
1454                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is not valid OR the schedule\r
1455 table &lt;ScheduleTableID&gt; is not explicitly synchronized\r
1456 (OsScheduleTblSyncStrategy   = EXPLICIT)\r
1457 StartScheduleTableSynchron() shall return E_OS_ID.</ns1:Description>\r
1458         </ns1:Req>\r
1459         <ns1:Req id="OS388">\r
1460                 <ns1:Class>2,4</ns1:Class>\r
1461                 <ns1:Component>code</ns1:Component>\r
1462                 <ns1:Verification>code</ns1:Verification>\r
1463                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is not in the state\r
1464 SCHEDULETABLE_STOPPED, the service shall return E_OS_STATE.</ns1:Description>\r
1465         </ns1:Req>\r
1466         <ns1:Req id="OS389">\r
1467                 <ns1:Class>2,4</ns1:Class>\r
1468                 <ns1:Component>code</ns1:Component>\r
1469                 <ns1:Verification>code</ns1:Verification>\r
1470                 <ns1:Description>If &lt;ScheduleTableID&gt; is valid, StartScheduleTableSynchron()\r
1471 shall set the state of &lt;ScheduleTableID&gt; to SCHEDULETABLE_WAITING and\r
1472 start the processing of schedule table &lt;ScheduleTableID&gt; after the\r
1473 synchronization count of the schedule table is set via SyncScheduleTable().\r
1474 The Initial Expiry Point shall processed when (Duration-SyncValue)+InitialOffset\r
1475 ticks have elapsed on the synchronization counter where:\r
1476 - Duration is &lt;ScheduleTableID&gt;.OsScheduleTableDuration\r
1477 - SyncValue is the &lt;Value&gt; parameter passed to the SyncScheduleTable()\r
1478 - InitialOffset is the shortest expiry point offset in &lt;ScheduleTableID&gt;</ns1:Description>\r
1479         </ns1:Req>\r
1480         <ns1:Req id="OS454">\r
1481                 <ns1:Class>2,4</ns1:Class>\r
1482                 <ns1:Component>code</ns1:Component>\r
1483                 <ns1:Verification>code</ns1:Verification>\r
1484                 <ns1:Description>If the &lt;ScheduleTableID&gt; is not valid OR schedule table can not be\r
1485 explicitely synchronized (OsScheduleTblSyncStrategy is not equal to\r
1486 EXPLICIT) the service shall return E_OS_ID.</ns1:Description>\r
1487         </ns1:Req>\r
1488         <ns1:Req id="OS455">\r
1489                 <ns1:Class>2,4</ns1:Class>\r
1490                 <ns1:Component>code</ns1:Component>\r
1491                 <ns1:Verification>code</ns1:Verification>\r
1492                 <ns1:Description>If the &lt;Value&gt; is greater than the OsScheduleTableDuration,\r
1493 SyncScheduleTableAbs() shall return E_OS_VALUE.</ns1:Description>\r
1494         </ns1:Req>\r
1495         <ns1:Req id="OS456">\r
1496                 <ns1:Class>2,4</ns1:Class>\r
1497                 <ns1:Component>code</ns1:Component>\r
1498                 <ns1:Verification>code</ns1:Verification>\r
1499                 <ns1:Description>If the state of the schedule table &lt;ScheduleTableID&gt; is equal to\r
1500 SCHEDULETABLE_STOPPED or SCHEDULETABLE_NEXT the service shall return\r
1501 E_OS_STATE.</ns1:Description>\r
1502         </ns1:Req>\r
1503         <ns1:Req id="OS457">\r
1504                 <ns1:Class>2,4</ns1:Class>\r
1505                 <ns1:Component>code</ns1:Component>\r
1506                 <ns1:Verification>code</ns1:Verification>\r
1507                 <ns1:Description>If the parameters are valid, the service provides the operating system with\r
1508 the current synchronization count for the given schedule table. (It is used to\r
1509 synchronize the processing of the schedule table to the synchronization counter.)</ns1:Description>\r
1510         </ns1:Req>\r
1511         <ns1:Req id="OS300">\r
1512                 <ns1:Class>2,4</ns1:Class>\r
1513                 <ns1:Component>code</ns1:Component>\r
1514                 <ns1:Verification>code</ns1:Verification>\r
1515                 <ns1:Description>If OsScheduleTblSyncStrategy  of &lt;ScheduleTableID&gt; equals to\r
1516 EXPLICIT then SetScheduleTableAsync() shall set the status of\r
1517 &lt;ScheduleTableID&gt; to SCHEDULETABLE_RUNNING.</ns1:Description>\r
1518         </ns1:Req>\r
1519         <ns1:Req id="OS362">\r
1520                 <ns1:Class>2,4</ns1:Class>\r
1521                 <ns1:Component>code</ns1:Component>\r
1522                 <ns1:Verification>code</ns1:Verification>\r
1523                 <ns1:Description>If  SetScheduleTableAsync() is called for a running schedule table\r
1524 the OS shall stop further synchronization until a SyncScheduleTable() call is\r
1525 made.</ns1:Description>\r
1526         </ns1:Req>\r
1527         <ns1:Req id="OS323">\r
1528                 <ns1:Class>2,4</ns1:Class>\r
1529                 <ns1:Component>code</ns1:Component>\r
1530                 <ns1:Verification>code</ns1:Verification>\r
1531                 <ns1:Description>If SetScheduleTableAsync() is called for a running schedule table\r
1532 the OS shall continue to process expiry points on the schedule table.</ns1:Description>\r
1533         </ns1:Req>\r
1534         <ns1:Req id="OS458">\r
1535                 <ns1:Class>2,4</ns1:Class>\r
1536                 <ns1:Component>code</ns1:Component>\r
1537                 <ns1:Verification>code</ns1:Verification>\r
1538                 <ns1:Description>If OsScheduleTblSyncStrategy of &lt;ScheduleTableID&gt; is not equal\r
1539 to EXPLICIT then the service call shall return E_OS_ID</ns1:Description>\r
1540         </ns1:Req>\r
1541         <ns1:Req id="OS289">\r
1542                 <ns1:Class>1,2,3,4</ns1:Class>\r
1543                 <ns1:Component>code</ns1:Component>\r
1544                 <ns1:Verification>code</ns1:Verification>\r
1545                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is NOT started,\r
1546 GetScheduleTableStatus() shall pass back SCHEDULETABLE_STOPPED via\r
1547 the reference parameter &lt;ScheduleStatus&gt; AND shall return E_OK.</ns1:Description>\r
1548         </ns1:Req>\r
1549         <ns1:Req id="OS353">\r
1550                 <ns1:Class>1,2,3,4</ns1:Class>\r
1551                 <ns1:Component>code</ns1:Component>\r
1552                 <ns1:Verification>code</ns1:Verification>\r
1553                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; was used in a\r
1554 NextScheduleTable() call AND waits for the end of the current schedule\r
1555 table, GetScheduleTableStatus() shall return SCHEDULETABLE_NEXT via\r
1556 the reference parameter &lt;ScheduleStatus&gt; AND shall return E_OK</ns1:Description>\r
1557         </ns1:Req>\r
1558         <ns1:Req id="OS354">\r
1559                 <ns1:Class>2,4</ns1:Class>\r
1560                 <ns1:Component>code</ns1:Component>\r
1561                 <ns1:Verification>code</ns1:Verification>\r
1562                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is configured with explicit\r
1563 synchronization AND no synchronization count was provided to the Operating\r
1564 System, GetScheduleTableStatus() shall return SCHEDULETABLE_WAITING via the reference parameter &lt;ScheduleStatus&gt; AND shall return E_OK.</ns1:Description>\r
1565         </ns1:Req>\r
1566         <ns1:Req id="OS290">\r
1567                 <ns1:Class>1,2,3,4</ns1:Class>\r
1568                 <ns1:Component>code</ns1:Component>\r
1569                 <ns1:Verification>code</ns1:Verification>\r
1570                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is started AND synchronous,\r
1571 GetScheduleTableStatus() shall pass back\r
1572 SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS via the reference parameter\r
1573 &lt;ScheduleStatus&gt; AND shall return E_OK</ns1:Description>\r
1574         </ns1:Req>\r
1575         <ns1:Req id="OS291">\r
1576                 <ns1:Class>1,2,3,4</ns1:Class>\r
1577                 <ns1:Component>code</ns1:Component>\r
1578                 <ns1:Verification>code</ns1:Verification>\r
1579                 <ns1:Description>If the schedule table &lt;ScheduleTableID&gt; is started AND NOT\r
1580 synchronous (deviation is not within the precision interval OR the schedule table\r
1581 has been set asynchronous), GetScheduleTableStatus() shall pass back\r
1582 SCHEDULETABLE_RUNNING via the reference parameter ScheduleStatus AND\r
1583 shall return E_OK.</ns1:Description>\r
1584         </ns1:Req>\r
1585         <ns1:Req id="OS293">\r
1586                 <ns1:Class>1,2,3,4</ns1:Class>\r
1587                 <ns1:Component>code</ns1:Component>\r
1588                 <ns1:Verification>code</ns1:Verification>\r
1589                 <ns1:Description>If the identifier &lt;ScheduleTableID&gt; is NOT valid,\r
1590 GetScheduleTableStatus() shall return E_OS_ID.</ns1:Description>\r
1591         </ns1:Req>\r
1592         <ns1:Req id="OS285">\r
1593                 <ns1:Class>1,2,3,4</ns1:Class>\r
1594                 <ns1:Component>code</ns1:Component>\r
1595                 <ns1:Verification>code</ns1:Verification>\r
1596                 <ns1:Description>If the input parameter &lt;CounterID&gt; is not valid OR the counter is a\r
1597 hardware counter, IncrementCounter() shall return E_OS_ID.</ns1:Description>\r
1598         </ns1:Req>\r
1599         <ns1:Req id="OS286">\r
1600                 <ns1:Class>1,2,3,4</ns1:Class>\r
1601                 <ns1:Component>code</ns1:Component>\r
1602                 <ns1:Verification>code</ns1:Verification>\r
1603                 <ns1:Description>If its input parameter is valid, IncrementCounter() shall increment the\r
1604 counter &lt;CounterID&gt; by one (if any alarm connected to this counter expires, the\r
1605 given action, e.g. task activation, is done) and shall return E_OK.</ns1:Description>\r
1606         </ns1:Req>\r
1607         <ns1:Req id="OS321">\r
1608                 <ns1:Class>1,2,3,4</ns1:Class>\r
1609                 <ns1:Component>code</ns1:Component>\r
1610                 <ns1:Verification>code</ns1:Verification>\r
1611                 <ns1:Description>If an error happens during the execution of an alarm action, e.g.\r
1612 E_OS_LIMIT caused by a task activation, the error hook(s) are called, but the\r
1613 IncrementCounter() service itself will return E_OK.</ns1:Description>\r
1614         </ns1:Req>\r
1615         <ns1:Req id="OS376">\r
1616                 <ns1:Class>1,2,3,4</ns1:Class>\r
1617                 <ns1:Component>code</ns1:Component>\r
1618                 <ns1:Verification>code</ns1:Verification>\r
1619                 <ns1:Description>If the input parameter &lt;CounterID&gt; is not valid, the service should return\r
1620 E_OS_ID.</ns1:Description>\r
1621         </ns1:Req>\r
1622         <ns1:Req id="OS377">\r
1623                 <ns1:Class>1,2,3,4</ns1:Class>\r
1624                 <ns1:Component>code</ns1:Component>\r
1625                 <ns1:Verification>code</ns1:Verification>\r
1626                 <ns1:Description>If its input parameter is valid, GetCounterValue() shall return the\r
1627 current tick value of the counter via &lt;Value&gt; and return E_OK.</ns1:Description>\r
1628         </ns1:Req>\r
1629         <ns1:Req id="OS381">\r
1630                 <ns1:Class>1,2,3,4</ns1:Class>\r
1631                 <ns1:Component>code</ns1:Component>\r
1632                 <ns1:Verification>code</ns1:Verification>\r
1633                 <ns1:Description>If the input parameter &lt;CounterID&gt; is not valid the service will return\r
1634 E_OS_ID.</ns1:Description>\r
1635         </ns1:Req>\r
1636         <ns1:Req id="OS391">\r
1637                 <ns1:Class>1,2,3,4</ns1:Class>\r
1638                 <ns1:Component>code</ns1:Component>\r
1639                 <ns1:Verification>code</ns1:Verification>\r
1640                 <ns1:Description>If the &lt;Value&gt; is larger than the max allowed value of the &lt;CounterID&gt;,\r
1641 the service will return E_OS_VALUE.</ns1:Description>\r
1642         </ns1:Req>\r
1643         <ns1:Req id="OS382">\r
1644                 <ns1:Class>1,2,3,4</ns1:Class>\r
1645                 <ns1:Component>code</ns1:Component>\r
1646                 <ns1:Verification>code</ns1:Verification>\r
1647                 <ns1:Description>If its input parameter are valid, GetElapsedCounterValue() shall\r
1648 return the number of elapsed ticks since the given &lt;Value&gt; value via\r
1649 &lt;ElapsedValue&gt; and shall return E_OK.</ns1:Description>\r
1650         </ns1:Req>\r
1651         <ns1:Req id="OS460">\r
1652                 <ns1:Class>1,2,3,4</ns1:Class>\r
1653                 <ns1:Component>code</ns1:Component>\r
1654                 <ns1:Verification>code</ns1:Verification>\r
1655                 <ns1:Description>In the &lt;Value&gt; parameter the current tick value of the counter is\r
1656 returned.</ns1:Description>\r
1657         </ns1:Req>\r
1658         <ns1:Req id="OS287">\r
1659                 <ns1:Class>3,4</ns1:Class>\r
1660                 <ns1:Component>code</ns1:Component>\r
1661                 <ns1:Verification>code</ns1:Verification>\r
1662                 <ns1:Description>If called from allowed context – see table [7.7.3.2.1] --,\r
1663 TerminateApplication() shall terminate the calling OS-Application (i.e. to\r
1664 kill all tasks, disable the interrupt sources of those OsIsrs which belong to the OS-\r
1665 Application and free all other OS resources associated with the application).</ns1:Description>\r
1666         </ns1:Req>\r
1667         <ns1:Req id="OS288">\r
1668                 <ns1:Class>3,4</ns1:Class>\r
1669                 <ns1:Component>code</ns1:Component>\r
1670                 <ns1:Verification>code</ns1:Verification>\r
1671                 <ns1:Description>If called from wrong context, TerminateApplication() shall return\r
1672 E_OS_CALLEVEL.</ns1:Description>\r
1673         </ns1:Req>\r
1674         <ns1:Req id="OS459">\r
1675                 <ns1:Class>3,4</ns1:Class>\r
1676                 <ns1:Component>code</ns1:Component>\r
1677                 <ns1:Verification>code</ns1:Verification>\r
1678                 <ns1:Description>If the &lt;RestartOption&gt; is invalid, the service shall retrun E_OS_VALUE.</ns1:Description>\r
1679         </ns1:Req>\r
1680         <ns1:Req id="OS346">\r
1681                 <ns1:Class>3,4</ns1:Class>\r
1682                 <ns1:Component>code</ns1:Component>\r
1683                 <ns1:Verification>code</ns1:Verification>\r
1684                 <ns1:Description>If RestartOption equals RESTART, TerminateApplication() shall\r
1685 activate the configured OsRestartTask of the terminated OS-Application.</ns1:Description>\r
1686         </ns1:Req>\r
1687         <ns1:Req id="OS308">\r
1688                 <ns1:Class>2,3,4</ns1:Class>\r
1689                 <ns1:Component>code</ns1:Component>\r
1690                 <ns1:Verification>code</ns1:Verification>\r
1691                 <ns1:Description>If an invalid value is returned the Operating System shall take the same\r
1692 action as if no protection hook is configured.</ns1:Description>\r
1693         </ns1:Req>\r
1694         <ns1:Req id="OS302">\r
1695                 <ns1:Class>1,2,3,4</ns1:Class>\r
1696                 <ns1:Component>container</ns1:Component>\r
1697                 <ns1:Verification>code</ns1:Verification>\r
1698                 <ns1:Description>OsAlarmIncrementCounter{INCREMENTCOUNTER}</ns1:Description>\r
1699         </ns1:Req>\r
1700         <ns1:Req id="OS114">\r
1701                 <ns1:Class>1,2,3,4</ns1:Class>\r
1702                 <ns1:Component>container</ns1:Component>\r
1703                 <ns1:Verification>code</ns1:Verification>\r
1704                 <ns1:Description>OsApplication{APPLICATION}</ns1:Description>\r
1705         </ns1:Req>\r
1706         <ns1:Req id="OS115">\r
1707                 <ns1:Class>3,4</ns1:Class>\r
1708                 <ns1:Component>container</ns1:Component>\r
1709                 <ns1:Verification>code</ns1:Verification>\r
1710                 <ns1:Description>OsTrusted {TRUSTED}</ns1:Description>\r
1711         </ns1:Req>\r
1712         <ns1:Req id="OS231">\r
1713                 <ns1:Class>3,4</ns1:Class>\r
1714                 <ns1:Component>container</ns1:Component>\r
1715                 <ns1:Verification>code</ns1:Verification>\r
1716                 <ns1:Description>OsAppAlarmRef</ns1:Description>\r
1717         </ns1:Req>\r
1718         <ns1:Req id="OS234">\r
1719                 <ns1:Class>3,4</ns1:Class>\r
1720                 <ns1:Component>container</ns1:Component>\r
1721                 <ns1:Verification>code</ns1:Verification>\r
1722                 <ns1:Description>OsAppCounterRef</ns1:Description>\r
1723         </ns1:Req>\r
1724         <ns1:Req id="OS317">\r
1725                 <ns1:Class>3,4</ns1:Class>\r
1726                 <ns1:Component>container</ns1:Component>\r
1727                 <ns1:Verification>code</ns1:Verification>\r
1728                 <ns1:Description>Same as OS234</ns1:Description>\r
1729         </ns1:Req>\r
1730         <ns1:Req id="OS221">\r
1731                 <ns1:Class>3,4</ns1:Class>\r
1732                 <ns1:Component>container</ns1:Component>\r
1733                 <ns1:Verification>code</ns1:Verification>\r
1734                 <ns1:Description>OsAppIsrRef</ns1:Description>\r
1735         </ns1:Req>\r
1736         <ns1:Req id="OS248">\r
1737                 <ns1:Class>3,4</ns1:Class>\r
1738                 <ns1:Component>container</ns1:Component>\r
1739                 <ns1:Verification>code</ns1:Verification>\r
1740                 <ns1:Description>OsAppResourceRef</ns1:Description>\r
1741         </ns1:Req>\r
1742         <ns1:Req id="OS252">\r
1743                 <ns1:Class>3,4</ns1:Class>\r
1744                 <ns1:Component>container</ns1:Component>\r
1745                 <ns1:Verification>code</ns1:Verification>\r
1746                 <ns1:Description>Same as OS248</ns1:Description>\r
1747         </ns1:Req>\r
1748         <ns1:Req id="OS230">\r
1749                 <ns1:Class>3,4</ns1:Class>\r
1750                 <ns1:Component>container</ns1:Component>\r
1751                 <ns1:Verification>code</ns1:Verification>\r
1752                 <ns1:Description>OsAppScheduleTableRef</ns1:Description>\r
1753         </ns1:Req>\r
1754         <ns1:Req id="OS249">\r
1755                 <ns1:Class>3,4</ns1:Class>\r
1756                 <ns1:Component>container</ns1:Component>\r
1757                 <ns1:Verification>code</ns1:Verification>\r
1758                 <ns1:Description>Same as OS230</ns1:Description>\r
1759         </ns1:Req>\r
1760         <ns1:Req id="OS116">\r
1761                 <ns1:Class>3,4</ns1:Class>\r
1762                 <ns1:Component>container</ns1:Component>\r
1763                 <ns1:Verification>code</ns1:Verification>\r
1764                 <ns1:Description>OsAppTaskRef</ns1:Description>\r
1765         </ns1:Req>\r
1766         <ns1:Req id="OS250">\r
1767                 <ns1:Class>3,4</ns1:Class>\r
1768                 <ns1:Component>container</ns1:Component>\r
1769                 <ns1:Verification>code</ns1:Verification>\r
1770                 <ns1:Description>Same as OS116</ns1:Description>\r
1771         </ns1:Req>\r
1772         <ns1:Req id="OS120">\r
1773                 <ns1:Class>3,4</ns1:Class>\r
1774                 <ns1:Component>container</ns1:Component>\r
1775                 <ns1:Verification>code</ns1:Verification>\r
1776                 <ns1:Description>OsRestartTask {RESTARTTASK}</ns1:Description>\r
1777         </ns1:Req>\r
1778         <ns1:Req id="OS213">\r
1779                 <ns1:Class>3,4</ns1:Class>\r
1780                 <ns1:Component>container</ns1:Component>\r
1781                 <ns1:Verification>code</ns1:Verification>\r
1782                 <ns1:Description>OsAppErrorHook {ERRORHOOK}</ns1:Description>\r
1783         </ns1:Req>\r
1784         <ns1:Req id="OS125">\r
1785                 <ns1:Class>3,4</ns1:Class>\r
1786                 <ns1:Component>container</ns1:Component>\r
1787                 <ns1:Verification>code</ns1:Verification>\r
1788                 <ns1:Description>OsAppShutdownHook {SHUTDOWNHOOK}</ns1:Description>\r
1789         </ns1:Req>\r
1790         <ns1:Req id="OS124">\r
1791                 <ns1:Class>3,4</ns1:Class>\r
1792                 <ns1:Component>container</ns1:Component>\r
1793                 <ns1:Verification>code</ns1:Verification>\r
1794                 <ns1:Description>OsAppStartupHook {STARTUPHOOK}</ns1:Description>\r
1795         </ns1:Req>\r
1796         <ns1:Req id="OS254">\r
1797                 <ns1:Class>3,4</ns1:Class>\r
1798                 <ns1:Component>container</ns1:Component>\r
1799                 <ns1:Verification>code</ns1:Verification>\r
1800                 <ns1:Description>OsTrustedFunctionName</ns1:Description>\r
1801         </ns1:Req>\r
1802         <ns1:Req id="OS255">\r
1803                 <ns1:Class>1,2,3,4</ns1:Class>\r
1804                 <ns1:Component>container</ns1:Component>\r
1805                 <ns1:Verification>code</ns1:Verification>\r
1806                 <ns1:Description>OsCounterType {TYPE}</ns1:Description>\r
1807         </ns1:Req>\r
1808         <ns1:Req id="OS371">\r
1809                 <ns1:Class>1,2,3,4</ns1:Class>\r
1810                 <ns1:Component>container</ns1:Component>\r
1811                 <ns1:Verification>code</ns1:Verification>\r
1812                 <ns1:Description>OsDriver{DRIVER}</ns1:Description>\r
1813         </ns1:Req>\r
1814         <ns1:Req id="OS214">\r
1815                 <ns1:Class>2,3,4</ns1:Class>\r
1816                 <ns1:Component>container</ns1:Component>\r
1817                 <ns1:Verification>code</ns1:Verification>\r
1818                 <ns1:Description>OsProtectionHook {PROTECTIONHOOK}</ns1:Description>\r
1819         </ns1:Req>\r
1820         <ns1:Req id="OS229">\r
1821                 <ns1:Class>2,4</ns1:Class>\r
1822                 <ns1:Component>container</ns1:Component>\r
1823                 <ns1:Verification>code</ns1:Verification>\r
1824                 <ns1:Description>OsIsrResourceLock{LOCKINGTIME}\r
1825 OsIsrResourceLockBudget {MAXRESOURCELOCKTIME}\r
1826 OsIsrResourceLockResourceRef {RESOURCE}\r
1827 OsIsrAllInterruptLockBudget {MAXALLINTERRUPTLOCKTIME}\r
1828 OsIsrOsInterruptLockBudget {MAXOSINTERRUPTLOCKTIME}</ns1:Description>\r
1829         </ns1:Req>\r
1830         <ns1:Req id="OS326">\r
1831                 <ns1:Class>2,4</ns1:Class>\r
1832                 <ns1:Component>container</ns1:Component>\r
1833                 <ns1:Verification>code</ns1:Verification>\r
1834                 <ns1:Description>OsIsrTimingProtection{TIMING_PROTECTION}</ns1:Description>\r
1835         </ns1:Req>\r
1836         <ns1:Req id="OS222">\r
1837                 <ns1:Class>2,4</ns1:Class>\r
1838                 <ns1:Component>container</ns1:Component>\r
1839                 <ns1:Verification>code</ns1:Verification>\r
1840                 <ns1:Description>OsIsrExecutionBudget {EXECUTIONTIME}</ns1:Description>\r
1841         </ns1:Req>\r
1842         <ns1:Req id="OS223">\r
1843                 <ns1:Class>2,4</ns1:Class>\r
1844                 <ns1:Component>container</ns1:Component>\r
1845                 <ns1:Verification>code</ns1:Verification>\r
1846                 <ns1:Description>OsIsrTimeFrame {TIMEFRAME}</ns1:Description>\r
1847         </ns1:Req>\r
1848         <ns1:Req id="OS259">\r
1849                 <ns1:Class>1,2,3,4</ns1:Class>\r
1850                 <ns1:Component>container</ns1:Component>\r
1851                 <ns1:Verification>code</ns1:Verification>\r
1852                 <ns1:Description>OsScalabilityClass {SCALABILITYCLASS}</ns1:Description>\r
1853         </ns1:Req>\r
1854         <ns1:Req id="OS307">\r
1855                 <ns1:Class>1,2,3,4</ns1:Class>\r
1856                 <ns1:Component>container</ns1:Component>\r
1857                 <ns1:Verification>code</ns1:Verification>\r
1858                 <ns1:Description>OsStackMonitoring {STACKMONITORING}</ns1:Description>\r
1859         </ns1:Req>\r
1860         <ns1:Req id="OS252">\r
1861                 <ns1:Class>1,2,3,4</ns1:Class>\r
1862                 <ns1:Component>container</ns1:Component>\r
1863                 <ns1:Verification>code</ns1:Verification>\r
1864                 <ns1:Description>OsResource{RESOURCE}</ns1:Description>\r
1865         </ns1:Req>\r
1866         <ns1:Req id="OS141">\r
1867                 <ns1:Class>1,2,3,4</ns1:Class>\r
1868                 <ns1:Component>container</ns1:Component>\r
1869                 <ns1:Verification>code</ns1:Verification>\r
1870                 <ns1:Description>OsScheduleTable{SCHEDULETABLE}\r
1871 OsScheduleTableRepeating {REPEATING}</ns1:Description>\r
1872         </ns1:Req>\r
1873         <ns1:Req id="OS145">\r
1874                 <ns1:Class>1,2,3,4</ns1:Class>\r
1875                 <ns1:Component>container</ns1:Component>\r
1876                 <ns1:Verification>code</ns1:Verification>\r
1877                 <ns1:Description>OsScheduleTableCounterRef {COUNTER}</ns1:Description>\r
1878         </ns1:Req>\r
1879         <ns1:Req id="OS335">\r
1880                 <ns1:Class>1,2,3,4</ns1:Class>\r
1881                 <ns1:Component>container</ns1:Component>\r
1882                 <ns1:Verification>code</ns1:Verification>\r
1883                 <ns1:Description>OsScheduleTableAutostart{AUTOSTART}</ns1:Description>\r
1884         </ns1:Req>\r
1885         <ns1:Req id="OS143">\r
1886                 <ns1:Class>1,2,3,4</ns1:Class>\r
1887                 <ns1:Component>container</ns1:Component>\r
1888                 <ns1:Verification>code</ns1:Verification>\r
1889                 <ns1:Description>OsScheduleTableExpiryPoint{ACTION}</ns1:Description>\r
1890         </ns1:Req>\r
1891         <ns1:Req id="OS325">\r
1892                 <ns1:Class>2,4</ns1:Class>\r
1893                 <ns1:Component>container</ns1:Component>\r
1894                 <ns1:Verification>code</ns1:Verification>\r
1895                 <ns1:Description>OsTaskTimingProtection{TIMING_PROTECTION}</ns1:Description>\r
1896         </ns1:Req>\r
1897         <ns1:Req id="OS185">\r
1898                 <ns1:Class>2,4</ns1:Class>\r
1899                 <ns1:Component>container</ns1:Component>\r
1900                 <ns1:Verification>code</ns1:Verification>\r
1901                 <ns1:Description>OsTaskExecutionBudget {EXECUTIONBUDGET}\r
1902 OsTaskTimeFrame {TIMEFRAME}</ns1:Description>\r
1903         </ns1:Req>\r
1904         <ns1:Req id="OS386">\r
1905                 <ns1:Class>1,2,3,4</ns1:Class>\r
1906                 <ns1:Component>container</ns1:Component>\r
1907                 <ns1:Verification>code</ns1:Verification>\r
1908                 <ns1:Description>OsTimeConstant{TIMECONSTANTS}</ns1:Description>\r
1909         </ns1:Req>\r
1910         <ns1:Req id="OS172">\r
1911                 <ns1:Class>1,2,3,4</ns1:Class>\r
1912                 <ns1:Component>generator</ns1:Component>\r
1913                 <ns1:Verification>code</ns1:Verification>\r
1914                 <ns1:Description>The generator shall provide the user the ability of reading the information of\r
1915 a selectable configuration file.</ns1:Description>\r
1916         </ns1:Req>\r
1917         <ns1:Req id="OS173">\r
1918                 <ns1:Class>1,2,3,4</ns1:Class>\r
1919                 <ns1:Component>generator</ns1:Component>\r
1920                 <ns1:Verification>code</ns1:Verification>\r
1921                 <ns1:Description>The generator shall provide the user  the ability of performing a consistency\r
1922 check of the current configuration.</ns1:Description>\r
1923         </ns1:Req>\r
1924         <ns1:Req id="OS050">\r
1925                 <ns1:Class>1,2,3,4</ns1:Class>\r
1926                 <ns1:Component>generator</ns1:Component>\r
1927                 <ns1:Verification>code</ns1:Verification>\r
1928                 <ns1:Description>If service protection is required and OsStatus is not equal to EXTENDED (all\r
1929 the associated error handling is provided), the consistency check shall issue an error.</ns1:Description>\r
1930         </ns1:Req>\r
1931         <ns1:Req id="OS045">\r
1932                 <ns1:Class>2,4</ns1:Class>\r
1933                 <ns1:Component>generator</ns1:Component>\r
1934                 <ns1:Verification>code</ns1:Verification>\r
1935                 <ns1:Description>If timing protection is configured together with OSEK OS Category 1\r
1936 interrupts, the consistency check shall issue a warning.</ns1:Description>\r
1937         </ns1:Req>\r
1938         <ns1:Req id="OS320">\r
1939                 <ns1:Class>1,2,3,4</ns1:Class>\r
1940                 <ns1:Component>generator</ns1:Component>\r
1941                 <ns1:Verification>code</ns1:Verification>\r
1942                 <ns1:Description>If configured attributes do not match the configured scalability class (e.g.\r
1943 defining an execution time budget in Tasks or Category 2 OsIsrs and selected\r
1944 scalability class is 1) the consistency check shall issue a warning.</ns1:Description>\r
1945         </ns1:Req>\r
1946         <ns1:Req id="OS311">\r
1947                 <ns1:Class>1,2,3,4</ns1:Class>\r
1948                 <ns1:Component>generator</ns1:Component>\r
1949                 <ns1:Verification>code</ns1:Verification>\r
1950                 <ns1:Description>If OsScalabilityClass is SC3 or SC4 AND a Task OR Category 2 OsIsr OR\r
1951 Resources OR Counters OR Alarms OR Schedule tables does not belong to exactly\r
1952 one OS-Application the consistency check shall issue an error.. RES_SCHEDULER\r
1953 as the only exception does not belong to any OS-Application.</ns1:Description>\r
1954         </ns1:Req>\r
1955         <ns1:Req id="OS361">\r
1956                 <ns1:Class>1,2,3,4</ns1:Class>\r
1957                 <ns1:Component>generator</ns1:Component>\r
1958                 <ns1:Verification>code</ns1:Verification>\r
1959                 <ns1:Description>If  OsScalabilityClass is  SC3 or  SC4 AND a Category 1 OsIsr does not\r
1960 belong to exactly one trusted OS-Application the consistency check shall issue an\r
1961 error</ns1:Description>\r
1962         </ns1:Req>\r
1963         <ns1:Req id="OS177">\r
1964                 <ns1:Class>1,2,3,4</ns1:Class>\r
1965                 <ns1:Component>generator</ns1:Component>\r
1966                 <ns1:Verification>code</ns1:Verification>\r
1967                 <ns1:Description>If OsScalabilityClass is SC3 or SC4 AND an interrupt source that is used\r
1968 by the OS is assigned to an OS-Application, the consistency check shall issue an\r
1969 error.</ns1:Description>\r
1970         </ns1:Req>\r
1971         <ns1:Req id="OS303">\r
1972                 <ns1:Class>1,2,3,4</ns1:Class>\r
1973                 <ns1:Component>generator</ns1:Component>\r
1974                 <ns1:Verification>code</ns1:Verification>\r
1975                 <ns1:Description>If OsAlarmIncrementCounter is configured as action on alarm expiry AND\r
1976 the alarm is driven directly or indirectly (a cyclic chain of alarm actions with\r
1977 OsAlarmIncrementCounter) by that counter, the consistency check shall issue a\r
1978 warning..</ns1:Description>\r
1979         </ns1:Req>\r
1980         <ns1:Req id="OS328">\r
1981                 <ns1:Class>1,2,3,4</ns1:Class>\r
1982                 <ns1:Component>generator</ns1:Component>\r
1983                 <ns1:Verification>code</ns1:Verification>\r
1984                 <ns1:Description>If  OsStatus is  STANDARD and  OsScalabilityClass  is  SC3 or  SC4 the\r
1985 consistency check shall issue an error.</ns1:Description>\r
1986         </ns1:Req>\r
1987         <ns1:Req id="OS343">\r
1988                 <ns1:Class>1,2,3,4</ns1:Class>\r
1989                 <ns1:Component>generator</ns1:Component>\r
1990                 <ns1:Verification>code</ns1:Verification>\r
1991                 <ns1:Description>If  OsScalabilityClass is  SC3 or  SC4 AND a task is referenced within a\r
1992 schedule table object AND the OS-Application of the schedule table has no access to\r
1993 the task, the consistency check shall issue an error.</ns1:Description>\r
1994         </ns1:Req>\r
1995         <ns1:Req id="OS344">\r
1996                 <ns1:Class>1,2,3,4</ns1:Class>\r
1997                 <ns1:Component>generator</ns1:Component>\r
1998                 <ns1:Verification>code</ns1:Verification>\r
1999                 <ns1:Description>If OsScalabilityClass is SC3 or SC4 AND a task is referenced within an\r
2000 alarm object AND the OS-Application of the alarm has no access to the task, the\r
2001 consistency check shall issue an error.</ns1:Description>\r
2002         </ns1:Req>\r
2003         <ns1:Req id="OS440">\r
2004                 <ns1:Class>2,4</ns1:Class>\r
2005                 <ns1:Component>generator</ns1:Component>\r
2006                 <ns1:Verification>code</ns1:Verification>\r
2007                 <ns1:Description>If a schedule table has OsScheduleTblSyncStrategy   = IMPLICIT and the\r
2008 OsCounterMaxAllowedValue+1  of the associated counter is not equal to the\r
2009 duration of the schedule table then the consitency check shall issue an error.</ns1:Description>\r
2010         </ns1:Req>\r
2011         <ns1:Req id="OS441">\r
2012                 <ns1:Class>1,2,3,4</ns1:Class>\r
2013                 <ns1:Component>generator</ns1:Component>\r
2014                 <ns1:Verification>code</ns1:Verification>\r
2015                 <ns1:Description>If a GPT channel is configured as a hardware counter driver the consitency\r
2016 check shall issue an error if the selected GPT channel is not configured for\r
2017 continuous mode.</ns1:Description>\r
2018         </ns1:Req>\r
2019         <ns1:Req id="OS461">\r
2020                 <ns1:Class>1,2,3,4</ns1:Class>\r
2021                 <ns1:Component>generator</ns1:Component>\r
2022                 <ns1:Verification>code</ns1:Verification>\r
2023                 <ns1:Description>If  OsScalabilityClass is  SC2, SC3  or SC4 AND  Alarm Callbacks are\r
2024 configured the conistency check shall isuue an error.</ns1:Description>\r
2025         </ns1:Req>\r
2026         <ns1:Req id="OS179">\r
2027                 <ns1:Class>1,2,3,4</ns1:Class>\r
2028                 <ns1:Component>generator</ns1:Component>\r
2029                 <ns1:Verification>code</ns1:Verification>\r
2030                 <ns1:Description>If the consistency check of the read-in configuration  file has not run free of\r
2031 errors, the generator shall not generate/configure the operating system.</ns1:Description>\r
2032         </ns1:Req>\r
2033         <ns1:Req id="OS336">\r
2034                 <ns1:Class>1,2,3,4</ns1:Class>\r
2035                 <ns1:Component>generator</ns1:Component>\r
2036                 <ns1:Verification>code</ns1:Verification>\r
2037                 <ns1:Description>The generator shall generate a relocatable memory section containing the\r
2038 interrupt vector table.</ns1:Description>\r
2039         </ns1:Req>\r
2040         <ns1:Req id="OS370">\r
2041                 <ns1:Class>1,2,3,4</ns1:Class>\r
2042                 <ns1:Component>generator</ns1:Component>\r
2043                 <ns1:Verification>code</ns1:Verification>\r
2044                 <ns1:Description>The generator shall print out information about timers used internally by the\r
2045 OS during generation (e.g. on console, list file).</ns1:Description>\r
2046         </ns1:Req>\r
2047         <ns1:Req id="OS393">\r
2048                 <ns1:Class>1,2,3,4</ns1:Class>\r
2049                 <ns1:Component>generator</ns1:Component>\r
2050                 <ns1:Verification>code</ns1:Verification>\r
2051                 <ns1:Description>The generator shall create conversation macros to convert counter ticks\r
2052 (given as argument) into real time. The format of the macro is\r
2053 OS_TICKS2&lt;Unit&gt;_&lt;Counter&gt;(ticks) whereas  &lt;Unit&gt; is one of  NS\r
2054 (nanoseconds),  US (microseconds),  MS (milliseconds) or  SEC (seconds) and\r
2055 &lt;Counter&gt; is the name of the counter; E.g. OS_TICKS2MS_MyCounter())</ns1:Description>\r
2056         </ns1:Req>\r
2057 </ns1:Requirements>