summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/ChangeLog
blob: ea0aaac7810b8f3de799ae57d24d99c5ce97e735 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
2002-07-01    Joel Sherrill <joel@OARcorp.com>

	* Mega patch merge to change the format of the object IDs to
	loosen the dependency between the SCORE and the various APIs.
	There was considerable work to simplify the object name management
        and it appears that the name_table field is no longer needed.
	This patch also includes the addition of the internal mutex
	which is currently only used to protect some types of allocation
	and deallocation.  This significantly can reduce context 
	switch latency under certain circumstances.  In particular,
	some heap/region operations were O(n) and had dispatching
	disabled.  This should help enormously.  With this merge,
	the patch is not as clean as it should be.  In particular,
	the documentation has not been modified to reflect the new object
	ID layout, the IDs in the test screens are not updated, and
	_Objects_Get_information needs to be a real routine not inlined.
	As part of this patch a lot of MP code for thread/proxy blocking
	was made conditional and cleaned up.
	* include/Makefile.am, include/rtems/score/coremsg.h,
	include/rtems/score/coremutex.h, include/rtems/score/coresem.h,
	include/rtems/score/object.h, include/rtems/score/threadq.h,
	inline/rtems/score/object.inl, inline/rtems/score/thread.inl,
	macros/rtems/score/object.inl, src/Makefile.am, src/coremsg.c,
	src/coremutex.c, src/coresem.c, src/mpci.c,
	src/objectcomparenameraw.c, src/objectextendinformation.c,
	src/objectinitializeinformation.c, src/objectnametoid.c,
	src/thread.c, src/threadclose.c, src/threadget.c, src/threadq.c,
	src/threadqextractwithproxy.c: Modified as part of above.
	* include/rtems/score/apimutex.h, src/objectgetnoprotection.c: New
	files.

2001-05-17	Joel Sherrill <joel@OARcorp.com>

	* macros/rtems/score/thread..inl: Implemented missing routines
	for new libc reentrancy support.

2002-05-15	Chris Johns <ccj@acm.org>

	* include/rtems/score/thread.h, inline/rtems/score/thread.inl,
	src/threaddispatch.c, src/threadinitialize.c: 
	Move the C library re-enterrant support directly into
	the thread dispatch code. RTEMS needs libc and so requiring
	libc to use a user extension with its overhead is not the best
	solution. This patch lowers the overhead to 2 pointer moves.

2002-05-03	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/Makefile.am: Work-around to autoconf-2.53 adding PACKAGE_*
	to autoheaders - sed out *PACKAGE* from cpuopts-tmp.h.

2001-05-14	Till Straumann <strauman@slac.stanford.edu>

	* 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_.

2001-04-26	Joel Sherrill <joel@OARcorp.com>

	* src/objectcomparenamestring.c: Fix typos.
 
2001-04-26	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/score/object.h, inline/rtems/score/object.inl, 
	src/objectcomparenamestring.c: Address PR81 that
	reworked POSIX message queues to add a descriptor separate from
	the underlying message queue.  This allows non-blocking to follow
	the "open" not the underlying queue.   As part of debugging this
	it became clear that _Objects_Compare_name_string was broken
	and a simple version using strncmp() was substituted.
 
2002-04-18	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/system.h: Remove targopts.h.

2002-04-17	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/system.h: Add the sparc to the target supporting
	multlibs.

2002-04-16	Chris Johns <ccj@acm.org>

	* src/threadinitialize.c: Per PR181, clear the array of user extension
	pointers. This lets user extensions that have hooked the switch handler
	know if a task has been processed by the user extension before. If a
	user extension is created after a task is started it may not know it.

2002-04-12	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/system.h: Add i386 to multilib-able targets.

2001-04-11	Joel Sherrill <joel@OARcorp.com>

	
	* macros/rtems/score/userext.inl: Now works after merging patch for
	functionality requested in PR174.
	* inline/rtems/score/userext.inl: Added a comment explaining the
	order in which routines appear since it is not the obvious order.
 
2002-04-08	Chris Johns <ccj@acm.org>

	* Per PR141 and PR174, make task switch extension its own list and
	fix all odd problems introduced by providing macro version.
	* inline/rtems/score/userext.inl: Fix.

2001-04-08	Joel Sherrill <joel@OARcorp.com>

	* macros/rtems/score/object.inl: Corrected arguments.
 
2001-04-08	Joel Sherrill <joel@OARcorp.com>

	* macros/rtems/score/userext.inl: Updated to reflect modifications
	to inline version from PR142.
	* inline/rtems/score/userext.inl: Cleanup as side-effect of above.
 
2002-04-08	Chris Johns <ccj@acm.org>

	* Per PR142, make task switch extension its own list.
	* include/rtems/score/userext.h: Reflect above by adding 
	User_extensions_Switch_control and adding it to User_extenions_Control.
	* inline/rtems/score/userext.inl: Allocate all memory in one chunk
	to minimize overhead.  Address processing dedicated switch chain.

2002-04-08	Chris Johns <ccj@acm.org>

	* Per PR142, make task switch extension its own list.
	* include/rtems/score/userext.h: Reflect above by adding 
	User_extensions_Switch_control and adding it to User_extenions_Control.
	* inline/rtems/score/userext.inl: Allocate all memory in one chunk
	to minimize overhead.  Address processing dedicated switch chain.

2002-03-27	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* cpu/Makefile.am: Remove AUTOMAKE_OPTIONS.
	* src/Makefile.am: Remove AUTOMAKE_OPTIONS.
	* Makefile.am: Remove AUTOMAKE_OPTIONS.
	* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
	* inline/Makefile.am: Remove AUTOMAKE_OPTIONS.
	* macros/Makefile.am: Remove AUTOMAKE_OPTIONS.

2002-01-29	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/score/watchdog.h: Added WATCHDOG_MAXIMUM_INTERVAL.

2002-01-19	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/system.h: Fix typo in yesterday's change:
	RTEMS_MULTILIBS.

2001-01-18	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/system.h: Only include cpuopts.h when building a
	multilib configuration.  Some ports still need targopts.h but this
	small modification lets those ports work non-multilib while 
	fixing being fixed for multilib.
	
2002-01-04	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/seterr.h: Add do {..} while (0) in defines.
	Rename set_errno_and_return_minus_one into
	rtems_set_errno_and_return_minus_one.

2001-12-19	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* inline/rtems/score/object.inl, macros/rtems/score/object.inl: Add
	add casts to Objects_Id in _Objects_Build_ids to avoid implicit
	typecasts from enum to int16 on bit16 targets (here: h8300).

2001-12-19	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* src/Makefile.am: Add multilib support.

2001-11-28	Joel Sherrill <joel@OARcorp.com>,

	This was tracked as PR91.
	* include/rtems/score/isr.h, inline/rtems/score/isr.inl,
	macros/rtems/score/isr.inl: Modified to allow any port to provide 
	its own implementation of the macro _ISR_Is_in_progress.  If the
	port overrides this macro, it must provide a non-inlined function
	implementation.

2001-11-20	Joel Sherrill <joel@OARcorp.com>

	* src/threadhandler.c: When __USE__MAIN__ is defined by the toolset,
	invoke the global constructors via __main.  Reported as tested by 
	Alexandra Kossovsky <sasha@oktet.ru> and  Victor V. Vengerov
	<vvv@oktet.ru> in conjunction with a new set of tool RPMs
	(gcc2.95.3newlib1.9.0-3).  This was tracked as GNATS PR tools/84.

2001-11-07	Joel Sherrill <joel@OARcorp.com>

	Reported by Todor.Todorov@barco.com and tracked as PR36.
	* include/rtems/score/object.h: Added prototype for
	_Objects_Get_by_index().
	* src/objectget.c, src/objectgetisr.c: Corrected procedure for
	getting index from Id so it is correct and optimal for both single
	and multiprocessor configurations.

2001-10-22	Joel Sherrill <joel@OARcorp.com>

	* src/threadhandler.c: Use __USE_INIT_FINI__ since USE_INIT_FINI
	pollutes the application namespace.

2001-10-16	Joel Sherrill <joel@OARcorp.com>

	* .cvsignore: Add stamp-h.in.

2001-10-16	Joel Sherrill <joel@OARcorp.com>

	* include/Makefile.am: Fixed path to cpuopts-tmp.h.

2001-10-16	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/Makefile.am: Remove.
	* include/rtems/Makefile.am: Remove.
	* include/Makefile.am: Handle subdirs, require automake-1.5.
	* macros/rtems/Makefile.am: Remove.
	* macros/rtems/score/Makefile.am: Remove.
	* macros/Makefile.am: Handle subdirs, require automake-1.5.
	* inline/rtems/Makefile.am: Remove.
	* inline/rtems/score/Makefile.am: Remove.
	* inline/Makefile.am: Handle subdirs, require automake-1.5.
	* Makefile.am: require automake-1.5

2001-09-28	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
	* include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
	* inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
	* macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.

2001-09-27	Eric Norum <eric.norum@usask.ca>

	* src/threadhandler.c: Now process C++ global constructors
	(_init) as part of the first task execution not in BSP space.
	This depends on the toolset defining USE_INIT_FINI so you
	have to have the right toolset version.

2001-09-23	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
	* include/rtems/Makefile.am: Use 'PREINSTALL_FILES ='.
	* inline/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.
	* macros/rtems/score/Makefile.am: Use 'PREINSTALL_FILES ='.

2001-08-30	Joel Sherrill <joel@OARcorp.com>

	*  src/coremutex.c, src/coremutexseize.c, src/coremutexsurrender.c,
	inline/rtems/score/coremutex.inl: The per thread field resource_count
	should only be manipulated when a mutex is priority ceiling or
	priority inherit.  This was reported by Chris Johns <ccj@acm.org>
	who also noticed that the use of switches for all disciplines
	generated less efficient code than using explicit tests for the one
	or two cases we were really interested in.  Further review of his
	modifications made it apparent that the "isa" methods to test mutex
	discipline were not being used so this modification was swept into
	the code as well.

2001-08-30	Joel Sherrill <joel@OARcorp.com>

	* src/coremutexseize.c: Add missing code for proper handling
	of nesting acquisitions.  This only impacts building with
	inlines disabled on the source with the "fast mutex" optimizations.
	This was post the 4.5 branch and did not impact released versions.

2001-08-16	Joel Sherrill <joel@OARcorp.com>

	* src/coremutexsurrender.c: Use holder thread not executing
	thread because even though they may and often are the same
	it is not guaranteed unless the proper attribute is set.

2001-08-16	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/score/coremsg.h, src/coremsgsubmit.c: Add a new
	return status to account for blocking sends.  Otherwise, the
	caller will think that the returned message status will have
	the ultimate results of the operation.  If the send times out,
	the final status will be in the return_code of the thread.

2001-08-09	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/score/coremsg.h, inline/rtems/score/coremsg.inl,
	src/coremsgsubmit.c: Unblocking message queue operations should
	NOT use _Thread_Executing for return status since it is permissible
	to invoke message send operations from an ISR.  This was reported
	by Suvrat Gupta <suvrat@utstar.com>.

2000-05-25	Sergei Organov <osv@javad.ru>

	* macros/rtems/score/coresem.inl, inline/rtems/score/coresem.inl:
	Cut and paste problem incorrectly enabled interrupts twice with
	the first time being too early.

2001-05-09	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/score/.cvsignore: Add stamp-h, cpuopts.h,
	cpuopts.h.in, cpuopts-tmp.h.

2001-02-03	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/Makefile.am, include/rtems/score/Makefile.am,
	inline/rtems/score/Makefile.am, macros/rtems/score/Makefile.am
	Apply include_*HEADERS instead of H_FILES.

2001-01-29	Joel Sherrill <joel@OARcorp.com>

	* src/objectextendinformation.c: Added include of string.h to
	eliminate warning.

2001-01-08	Joel Sherrill <joel@OARcorp.com>

	* src/threadinitialize.c: Fix my bad hack of Ralf's fp_area
	warning removal patch. :(

2001-01-08	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* src/threadinitialize.c: Removed warning.

2001-01-03	Joel Sherrill <joel@OARcorp.com>

	* src/isr.c: Modify to properly dereference _ISR_Vector_table
	now that it is dynamically allocated.

2000-12-19	Joel Sherrill <joel@OARcorp.com>

	* src/isr.c: Allocate the _ISR_Vector_table all the time not just when
	we are allocating an interrupt stack.

2000-12-13	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/score/isr.h, src/isr.c: Allocate it from the
	workspace rather than explicitly declaring it.  This allows
	the size to be a non-constant from the perspective of score/cpu.

2000-12-01	Joel Sherrill <joel@OARcorp.com>

	* macros/rtems/score/coresem.inl: Removed comments since convention
	calls for comments to be in inline versin.
	* macros/rtems/score/object.inl (Objects_Get_local_object): Fixed
	style to use _ prefix on variable names and use parentheses.
	* macros/rtems/score/object.inl (_Objects_Namespace_remove): Added.

2000-11-30	Joel Sherrill <joel@OARcorp.com>

	* General effort to make things compile with macros not inlines
	* inline/rtems/score/coremutex.inl: Added comment indicating
	for macros there is another copy of
	_CORE_mutex_Seize_interrupt_trylock() in src/coremutexseize.c.
	* src/coremutexseize.c: Added body of
	_CORE_mutex_Seize_interrupt_trylock() for macro case.
	* macros/rtems/score/coremutex.inl: Added prototype for 
	_CORE_mutex_Seize_interrupt_trylock() since there is a real
	body when macros are enabled.
	* macros/rtems/score/coresem.inl: Added macro implementation of
	_CORE_semaphore_Seize_isr_disable.
	* macros/score/Makefile.am: Fixed typos.
	* rtems/score/address.inl: Correct macro implementation of
	_Addresses_Is_aligned() so it would compile.
	* macros/rtems/score/coremsg.inl: Added closing parentheses.
	
2000-11-28	Chris Johns <ccj@acm.org>

	* src/heapallocate.c: Do not allow the size to overflow when
	adjusting it.  A test allocated a stack of -1 (~0). This
	actually resulted in a stack being allocated but with a
	size of 0xb. The allocator did not test the size to see if
	it rolled through 0 and so allowed the allocation to happen, the
	thread to get created. The task crashed as you would expect.

2000-11-02	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/system.h: Use proper conditional (RTEMS_POSIX_API)
	so prototypes for POSIX_MP_NOT_IMPLEMENTED(), POSIX_NOT_IMPLEMENTED(),
	POSIX_BOTTOM_REACHED() are actually included.

2000-11-02	Joel Sherrill <joel@OARcorp.com>

	* include/rtems/system.h: Add prototypes for POSIX_MP_NOT_IMPLEMENTED(),
	POSIX_NOT_IMPLEMENTED(), POSIX_BOTTOM_REACHED() removed from newlib.

2000-10-18	Nick Simon <Nick.SIMON@syntegra.bt.co.uk>

	* src/heapgetinfo.c, include/rtems/score/heap.h, src/Makefile.am:
	Added _Heap_Get_information() and information control block.
	* src/heapgetinfo.c: New file.

2000-09-25	Joel Sherrill <joel@OARcorp.com>

	* rtems/system.h: Switched a29k and hppa1.1 to using cpuopts.h not
	targopts.h to reduce dependency on BSP.

2000-09-20	Joel Sherrill <joel@OARcorp.com>

	* src/objectgetbyindex.c: Do not enable dispatching on an
	error path it was not disabled on.

2000-09-04	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* src/Makefile.am: Include compile.am.

2000-08-30	Joel Sherrill <joel@OARcorp.com>

	* Many files: Moved posix/include/rtems/posix/seterr.h to 
	score/include/rtems/seterr.h so it would be available within
	all APIs.

2000-08-17	Ralf Corsepius <corsepiu@faw.uni-ulm.de>

	* include/rtems/system.h: Include cpuopts.h for __i386__.

2000-08-10	Joel Sherrill <joel@OARcorp.com>

	* ChangeLog: New file.