source: rtems/cpukit/score/ChangeLog @ 48f89683

4.104.114.84.95
Last change on this file since 48f89683 was 48f89683, checked in by Joel Sherrill <joel.sherrill@…>, on 05/14/02 at 17:45:36

2001-05-14 Till Straumann <strauman@…>

  • src/threaddispatch.c, src/threadhandler.c: Per PR211 fix saving/restoring floating point context. The fpsave and fprestore routines are only used in a executing context which _is_ fp and hence has the FPU enabled. The current behavior required the FPU always to be on which is very dangerous if lazy context switching is used. [Joel Note: Some ports explicitly enabled the FPU in the FP save and restore routines to avoid this.]

The patch also makes sure (on powerpc only) that the FPU is disabled
for integer tasks. Note that this is crucial if deferred fp context
switching is used. Otherwise, fp context corruption may go undetected!
Also note that even tasks which merely push/pop FP registers to/from
the stack without modifying them still MUST be FP tasks - otherwise
(if lazy FP context switching is used), FP register corruption (of
other, FP, tasks may occur)!

Furthermore, (on PPC) by default, lazy FP context save/restore
is _disabled_.

  • Property mode set to 100644
File size: 14.0 KB
Line 
12001-05-14      Till Straumann <strauman@slac.stanford.edu>
2
3        * src/threaddispatch.c, src/threadhandler.c: Per PR211 fix
4        saving/restoring floating point context.  The fpsave and fprestore
5        routines are only used in a executing context which _is_ fp and hence
6        has the FPU enabled. The current behavior required the FPU always to
7        be on which is very dangerous if lazy context switching is used. 
8        [Joel Note: Some ports explicitly enabled the FPU in the FP save and
9        restore routines to avoid this.]
10
11        The patch also makes sure (on powerpc only) that the FPU is disabled
12        for integer tasks. Note that this is crucial if deferred fp context
13        switching is used. Otherwise, fp context corruption may go undetected!
14        Also note that even tasks which merely push/pop FP registers to/from
15        the stack without modifying them still MUST be FP tasks - otherwise
16        (if lazy FP context switching is used), FP register corruption (of
17        other, FP, tasks may occur)!
18
19        Furthermore, (on PPC) by default, lazy FP context save/restore
20        is _disabled_.
21
222001-04-26      Joel Sherrill <joel@OARcorp.com>
23
24        * src/objectcomparenamestring.c: Fix typos.
25 
262001-04-26      Joel Sherrill <joel@OARcorp.com>
27
28        * include/rtems/score/object.h, inline/rtems/score/object.inl,
29        src/objectcomparenamestring.c: Address PR81 that
30        reworked POSIX message queues to add a descriptor separate from
31        the underlying message queue.  This allows non-blocking to follow
32        the "open" not the underlying queue.   As part of debugging this
33        it became clear that _Objects_Compare_name_string was broken
34        and a simple version using strncmp() was substituted.
35 
362002-04-18      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
37
38        * include/rtems/system.h: Remove targopts.h.
39
402002-04-17      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
41
42        * include/rtems/system.h: Add the sparc to the target supporting
43        multlibs.
44
452002-04-16      Chris Johns <ccj@acm.org>
46
47        * src/threadinitialize.c: Per PR181, clear the array of user extension
48        pointers. This lets user extensions that have hooked the switch handler
49        know if a task has been processed by the user extension before. If a
50        user extension is created after a task is started it may not know it.
51
522002-04-12      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
53
54        * include/rtems/system.h: Add i386 to multilib-able targets.
55
562001-04-11      Joel Sherrill <joel@OARcorp.com>
57
58       
59        * macros/rtems/score/userext.inl: Now works after merging patch for
60        functionality requested in PR174.
61        * inline/rtems/score/userext.inl: Added a comment explaining the
62        order in which routines appear since it is not the obvious order.
63 
642002-04-08      Chris Johns <ccj@acm.org>
65
66        * Per PR141 and PR174, make task switch extension its own list and
67        fix all odd problems introduced by providing macro version.
68        * inline/rtems/score/userext.inl: Fix.
69
702001-04-08      Joel Sherrill <joel@OARcorp.com>
71
72        * macros/rtems/score/object.inl: Corrected arguments.
73 
742001-04-08      Joel Sherrill <joel@OARcorp.com>
75
76        * macros/rtems/score/userext.inl: Updated to reflect modifications
77        to inline version from PR142.
78        * inline/rtems/score/userext.inl: Cleanup as side-effect of above.
79 
802002-04-08      Chris Johns <ccj@acm.org>
81
82        * Per PR142, make task switch extension its own list.
83        * include/rtems/score/userext.h: Reflect above by adding
84        User_extensions_Switch_control and adding it to User_extenions_Control.
85        * inline/rtems/score/userext.inl: Allocate all memory in one chunk
86        to minimize overhead.  Address processing dedicated switch chain.
87
882002-04-08      Chris Johns <ccj@acm.org>
89
90        * Per PR142, make task switch extension its own list.
91        * include/rtems/score/userext.h: Reflect above by adding
92        User_extensions_Switch_control and adding it to User_extenions_Control.
93        * inline/rtems/score/userext.inl: Allocate all memory in one chunk
94        to minimize overhead.  Address processing dedicated switch chain.
95
962002-03-27      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
97
98        * cpu/Makefile.am: Remove AUTOMAKE_OPTIONS.
99        * src/Makefile.am: Remove AUTOMAKE_OPTIONS.
100        * Makefile.am: Remove AUTOMAKE_OPTIONS.
101        * include/Makefile.am: Remove AUTOMAKE_OPTIONS.
102        * inline/Makefile.am: Remove AUTOMAKE_OPTIONS.
103        * macros/Makefile.am: Remove AUTOMAKE_OPTIONS.
104
1052002-01-29      Joel Sherrill <joel@OARcorp.com>
106
107        * include/rtems/score/watchdog.h: Added WATCHDOG_MAXIMUM_INTERVAL.
108
1092002-01-19      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
110
111        * include/rtems/system.h: Fix typo in yesterday's change:
112        RTEMS_MULTILIBS.
113
1142001-01-18      Joel Sherrill <joel@OARcorp.com>
115
116        * include/rtems/system.h: Only include cpuopts.h when building a
117        multilib configuration.  Some ports still need targopts.h but this
118        small modification lets those ports work non-multilib while
119        fixing being fixed for multilib.
120       
1212002-01-04      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
122
123        * include/rtems/seterr.h: Add do {..} while (0) in defines.
124        Rename set_errno_and_return_minus_one into
125        rtems_set_errno_and_return_minus_one.
126
1272001-12-19      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
128
129        * inline/rtems/score/object.inl, macros/rtems/score/object.inl: Add
130        add casts to Objects_Id in _Objects_Build_ids to avoid implicit
131        typecasts from enum to int16 on bit16 targets (here: h8300).
132
1332001-12-19      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
134
135        * src/Makefile.am: Add multilib support.
136
1372001-11-28      Joel Sherrill <joel@OARcorp.com>,
138
139        This was tracked as PR91.
140        * include/rtems/score/isr.h, inline/rtems/score/isr.inl,
141        macros/rtems/score/isr.inl: Modified to allow any port to provide
142        its own implementation of the macro _ISR_Is_in_progress.  If the
143        port overrides this macro, it must provide a non-inlined function
144        implementation.
145
1462001-11-20      Joel Sherrill <joel@OARcorp.com>
147
148        * src/threadhandler.c: When __USE__MAIN__ is defined by the toolset,
149        invoke the global constructors via __main.  Reported as tested by
150        Alexandra Kossovsky <sasha@oktet.ru> and  Victor V. Vengerov
151        <vvv@oktet.ru> in conjunction with a new set of tool RPMs
152        (gcc2.95.3newlib1.9.0-3).  This was tracked as GNATS PR tools/84.
153
1542001-11-07      Joel Sherrill <joel@OARcorp.com>
155
156        Reported by Todor.Todorov@barco.com and tracked as PR36.
157        * include/rtems/score/object.h: Added prototype for
158        _Objects_Get_by_index().
159        * src/objectget.c, src/objectgetisr.c: Corrected procedure for
160        getting index from Id so it is correct and optimal for both single
161        and multiprocessor configurations.
162
1632001-10-22      Joel Sherrill <joel@OARcorp.com>
164
165        * src/threadhandler.c: Use __USE_INIT_FINI__ since USE_INIT_FINI
166        pollutes the application namespace.
167
1682001-10-16      Joel Sherrill <joel@OARcorp.com>
169
170        * .cvsignore: Add stamp-h.in.
171
1722001-10-16      Joel Sherrill <joel@OARcorp.com>
173
174        * include/Makefile.am: Fixed path to cpuopts-tmp.h.
175
1762001-10-16      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
177
178        * include/rtems/Makefile.am: Remove.
179        * include/rtems/Makefile.am: Remove.
180        * include/Makefile.am: Handle subdirs, require automake-1.5.
181        * macros/rtems/Makefile.am: Remove.
182        * macros/rtems/score/Makefile.am: Remove.
183        * macros/Makefile.am: Handle subdirs, require automake-1.5.
184        * inline/rtems/Makefile.am: Remove.
185        * inline/rtems/score/Makefile.am: Remove.
186        * inline/Makefile.am: Handle subdirs, require automake-1.5.
187        * Makefile.am: require automake-1.5
188
1892001-09-28      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
190
191        * include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
192        * include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
193        * inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
194        * macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
195
1962001-09-27      Eric Norum <eric.norum@usask.ca>
197
198        * src/threadhandler.c: Now process C++ global constructors
199        (_init) as part of the first task execution not in BSP space.
200        This depends on the toolset defining USE_INIT_FINI so you
201        have to have the right toolset version.
202
2032001-09-23      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
204
205        * include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
206        * include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
207        * inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
208        * macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
209
2102001-08-30      Joel Sherrill <joel@OARcorp.com>
211
212        *  src/coremutex.c, src/coremutexseize.c, src/coremutexsurrender.c,
213        inline/rtems/score/coremutex.inl: The per thread field resource_count
214        should only be manipulated when a mutex is priority ceiling or
215        priority inherit.  This was reported by Chris Johns <ccj@acm.org>
216        who also noticed that the use of switches for all disciplines
217        generated less efficient code than using explicit tests for the one
218        or two cases we were really interested in.  Further review of his
219        modifications made it apparent that the "isa" methods to test mutex
220        discipline were not being used so this modification was swept into
221        the code as well.
222
2232001-08-30      Joel Sherrill <joel@OARcorp.com>
224
225        * src/coremutexseize.c: Add missing code for proper handling
226        of nesting acquisitions.  This only impacts building with
227        inlines disabled on the source with the "fast mutex" optimizations.
228        This was post the 4.5 branch and did not impact released versions.
229
2302001-08-16      Joel Sherrill <joel@OARcorp.com>
231
232        * src/coremutexsurrender.c: Use holder thread not executing
233        thread because even though they may and often are the same
234        it is not guaranteed unless the proper attribute is set.
235
2362001-08-16      Joel Sherrill <joel@OARcorp.com>
237
238        * include/rtems/score/coremsg.h, src/coremsgsubmit.c: Add a new
239        return status to account for blocking sends.  Otherwise, the
240        caller will think that the returned message status will have
241        the ultimate results of the operation.  If the send times out,
242        the final status will be in the return_code of the thread.
243
2442001-08-09      Joel Sherrill <joel@OARcorp.com>
245
246        * include/rtems/score/coremsg.h, inline/rtems/score/coremsg.inl,
247        src/coremsgsubmit.c: Unblocking message queue operations should
248        NOT use _Thread_Executing for return status since it is permissible
249        to invoke message send operations from an ISR.  This was reported
250        by Suvrat Gupta <suvrat@utstar.com>.
251
2522000-05-25      Sergei Organov <osv@javad.ru>
253
254        * macros/rtems/score/coresem.inl, inline/rtems/score/coresem.inl:
255        Cut and paste problem incorrectly enabled interrupts twice with
256        the first time being too early.
257
2582001-05-09      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
259
260        * include/rtems/score/.cvsignore: Add stamp-h, cpuopts.h,
261        cpuopts.h.in, cpuopts-tmp.h.
262
2632001-02-03      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
264
265        * include/rtems/Makefile.am, include/rtems/score/Makefile.am,
266        inline/rtems/score/Makefile.am, macros/rtems/score/Makefile.am
267        Apply include_*HEADERS instead of H_FILES.
268
2692001-01-29      Joel Sherrill <joel@OARcorp.com>
270
271        * src/objectextendinformation.c: Added include of string.h to
272        eliminate warning.
273
2742001-01-08      Joel Sherrill <joel@OARcorp.com>
275
276        * src/threadinitialize.c: Fix my bad hack of Ralf's fp_area
277        warning removal patch. :(
278
2792001-01-08      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
280
281        * src/threadinitialize.c: Removed warning.
282
2832001-01-03      Joel Sherrill <joel@OARcorp.com>
284
285        * src/isr.c: Modify to properly dereference _ISR_Vector_table
286        now that it is dynamically allocated.
287
2882000-12-19      Joel Sherrill <joel@OARcorp.com>
289
290        * src/isr.c: Allocate the _ISR_Vector_table all the time not just when
291        we are allocating an interrupt stack.
292
2932000-12-13      Joel Sherrill <joel@OARcorp.com>
294
295        * include/rtems/score/isr.h, src/isr.c: Allocate it from the
296        workspace rather than explicitly declaring it.  This allows
297        the size to be a non-constant from the perspective of score/cpu.
298
2992000-12-01      Joel Sherrill <joel@OARcorp.com>
300
301        * macros/rtems/score/coresem.inl: Removed comments since convention
302        calls for comments to be in inline versin.
303        * macros/rtems/score/object.inl (Objects_Get_local_object): Fixed
304        style to use _ prefix on variable names and use parentheses.
305        * macros/rtems/score/object.inl (_Objects_Namespace_remove): Added.
306
3072000-11-30      Joel Sherrill <joel@OARcorp.com>
308
309        * General effort to make things compile with macros not inlines
310        * inline/rtems/score/coremutex.inl: Added comment indicating
311        for macros there is another copy of
312        _CORE_mutex_Seize_interrupt_trylock() in src/coremutexseize.c.
313        * src/coremutexseize.c: Added body of
314        _CORE_mutex_Seize_interrupt_trylock() for macro case.
315        * macros/rtems/score/coremutex.inl: Added prototype for
316        _CORE_mutex_Seize_interrupt_trylock() since there is a real
317        body when macros are enabled.
318        * macros/rtems/score/coresem.inl: Added macro implementation of
319        _CORE_semaphore_Seize_isr_disable.
320        * macros/score/Makefile.am: Fixed typos.
321        * rtems/score/address.inl: Correct macro implementation of
322        _Addresses_Is_aligned() so it would compile.
323        * macros/rtems/score/coremsg.inl: Added closing parentheses.
324       
3252000-11-28      Chris Johns <ccj@acm.org>
326
327        * src/heapallocate.c: Do not allow the size to overflow when
328        adjusting it.  A test allocated a stack of -1 (~0). This
329        actually resulted in a stack being allocated but with a
330        size of 0xb. The allocator did not test the size to see if
331        it rolled through 0 and so allowed the allocation to happen, the
332        thread to get created. The task crashed as you would expect.
333
3342000-11-02      Joel Sherrill <joel@OARcorp.com>
335
336        * include/rtems/system.h: Use proper conditional (RTEMS_POSIX_API)
337        so prototypes for POSIX_MP_NOT_IMPLEMENTED(), POSIX_NOT_IMPLEMENTED(),
338        POSIX_BOTTOM_REACHED() are actually included.
339
3402000-11-02      Joel Sherrill <joel@OARcorp.com>
341
342        * include/rtems/system.h: Add prototypes for POSIX_MP_NOT_IMPLEMENTED(),
343        POSIX_NOT_IMPLEMENTED(), POSIX_BOTTOM_REACHED() removed from newlib.
344
3452000-10-18      Nick Simon <Nick.SIMON@syntegra.bt.co.uk>
346
347        * src/heapgetinfo.c, include/rtems/score/heap.h, src/Makefile.am:
348        Added _Heap_Get_information() and information control block.
349        * src/heapgetinfo.c: New file.
350
3512000-09-25      Joel Sherrill <joel@OARcorp.com>
352
353        * rtems/system.h: Switched a29k and hppa1.1 to using cpuopts.h not
354        targopts.h to reduce dependency on BSP.
355
3562000-09-20      Joel Sherrill <joel@OARcorp.com>
357
358        * src/objectgetbyindex.c: Do not enable dispatching on an
359        error path it was not disabled on.
360
3612000-09-04      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
362
363        * src/Makefile.am: Include compile.am.
364
3652000-08-30      Joel Sherrill <joel@OARcorp.com>
366
367        * Many files: Moved posix/include/rtems/posix/seterr.h to
368        score/include/rtems/seterr.h so it would be available within
369        all APIs.
370
3712000-08-17      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
372
373        * include/rtems/system.h: Include cpuopts.h for __i386__.
374
3752000-08-10      Joel Sherrill <joel@OARcorp.com>
376
377        * ChangeLog: New file.
Note: See TracBrowser for help on using the repository browser.