]> git.karo-electronics.de Git - karo-tx-redboot.git/blob - packages/kernel/v2_0/ChangeLog
84ccce386169d6c137bf43876c1866887bd1c103
[karo-tx-redboot.git] / packages / kernel / v2_0 / ChangeLog
1 2005-08-03  Andrew Lunn  <andrew.lunn@ascom.ch>
2
3         * tests/ksem1.c: Type fix to fix a compiler warning.
4         * tests/mutex3.cxx: new cannot be both static and global.
5         * tests/testaux.hxx: Ditto
6
7 2005-07-30  Andrew Lunn  <andrew.lunn@ascom.ch>
8
9         * src/sync/mbox.cxx (tryget,peak_item): initialize local variable
10         to avoid compiler warning.
11         
12 2005-06-21  Peter Korsgaard  <jacmet@sunsite.dk>
13
14         * tests/kcache2.c (test_dcache_operation): Fixed compiler warnings
15         about formats strings for diag_printf.
16
17 2005-03-27  Andrew Lunn  <andrew.lunn@ascom.ch>
18
19         * tests/tm_basic.cxx (_run_all_tests): Fixed compiler warning.
20
21 2004-12-15  Sergei Organov <osv@topconrd.ru>
22
23         * cdl/scheduler.cdl: Correct the description of
24         CYGIMP_KERNEL_SCHED_SORTED_QUEUES
25         
26 2004-09-24  Nick Garnett  <nickg@ecoscentric.com>
27
28         * src/sched/mlqueue.cxx (enqueue): Fix bug in sorted queue
29         insertion: priority test was inverted. Spotted by TomChen.
30
31 2004-08-08  Bart Veer  <bartv@ecoscentric.com>
32
33         * cdl/counters.cdl: add new option for the clock interrupt
34         priority.
35
36         * src/common/clock.cxx (Cyg_RealTimeClock): use this option.
37
38 2004-04-15  Jonathan Larmour  <jifl@eCosCentric.com>
39
40         * tests/fptest.c (do_test): Silence aliasing warning when breaking
41         doubles into two ints.
42
43 2004-04-11  Andrew Lunn  <andrew.lunn@ascom.ch>
44
45         * doc/kernel.sgml: Expanded the documentation about the use of
46         CYG_FLAG_WAITMODE_CLR.
47
48 2004-03-27  Sebastien Couret    <sebastien.couret@elios-informatique.fr>
49
50         * src/debug/dbg-thread-demux.c (dbg_thread_syscall_rmt): Only
51         needed if CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT is enabled.
52
53 2004-03-12  Jonathan Larmour  <jifl@eCosCentric.com>
54
55         * include/kapi.h: Add throw specifications throughout.
56         * src/kapi.cxx: Ditto.
57         * include/sched.inl: Move include of thread.inl further down to
58         allow Cyg_Scheduler inlines to be defined first.
59         * include/thread.inl: Reorder destructors section and include
60         sched.inl right before it to solve mutual header dependency
61         problems.
62
63 2004-03-04  Jonathan Larmour  <jifl@eCosCentric.com>
64
65         * doc/kernel.sgml: Document cyg_thread_delete return value.
66
67 2004-02-19  Jonathan Larmour  <jifl@eCosCentric.com>
68
69         * tests/kmutex3.c (cyg_start): Use CYG_TEST_NA.
70         * tests/kmutex4.c (cyg_start): Ditto.
71         * tests/mutex2.cxx (cyg_start): Ditto.
72         * tests/mutex3.cxx (cyg_start): Ditto.
73         * tests/sync3.cxx (cyg_start): Ditto.
74         * tests/thread2.cxx (cyg_start): Ditto.
75
76         * tests/fptest.c (cyg_start): Use one line NA msg.
77         * tests/smp.cxx (cyg_start): Ditto.
78         * tests/timeslice.c (cyg_start): Ditto.
79         * tests/tm_basic.cxx (cyg_start): Ditto.
80
81 2003-12-08  Dan Jakubiec  <djakubiec@yahoo.com>
82
83         * src/common/kapi.cxx: Added new function cyg_thread_get_id().
84         This function returns the unique thread ID for a given thread
85         handle.
86
87         * include/kapi.h: Added function prototype for cyg_thread_get_id().
88
89         * doc/kernel.sgml: Added documentation for cyg_thread_get_id().
90
91 2003-10-13  Nick Garnett  <nickg@balti.calivar.com>
92
93         * src/common/clock.cxx (Cyg_Counter::tick): Changed code to deal
94         with manipulation of unsorted lists (see ChangeLogs passim). There
95         are several corner cases where the current code does not
96         work. Replaced with a more straightforward, but slightly more
97         expensive, implementation.
98
99 2003-09-22  Reinhard Jessich  <Reinhard.Jessich@frequentis.com>
100
101         * src/common/clock.cxx: Removed label/goto
102         add_alarm_unlock_return to get rid of compiler error when
103         CYGIMP_KERNEL_COUNTERS_SORT_LIST is enabled.
104
105 2003-09-01  Bart Veer  <bartv@ecoscentric.com>
106
107         * doc/kernel.sgml: fix typo, cyg_thread vs. cyg_thread_t
108
109 2003-07-18  Nick Garnett  <nickg@balti.calivar.com>
110
111         * cdl/counters.cdl: Removed the counters override CDL
112         options. These are no longer very useful, since too much
113         non-kernel code now uses the HAL options to get these values.
114
115 2003-07-10  Nick Garnett  <nickg@balti.calivar.com>
116
117         * src/common/clock.cxx (Cyg_Counter::tick): In unsorted list case:
118         moved saving of next node details to before re-insertion of alarms
119         with intervals. The call to add_alarm() can make enough of a
120         difference to the list to need to force a rescan.
121
122 2003-07-06  Bart Veer  <bartv@ecoscentric.com>
123
124         * include/test/stackmon.h (cyg_test_size_a_stack):
125         If stack checking is enabled, look for 0xdeadbeef rather than 0x0
126         to determine usage. Also reset the interrupt stack to that value.
127
128 2003-07-02  Jonathan Larmour  <jifl@eCosCentric.com>
129
130         * doc/kernel.sgml: Document that timeouts for timed functions are
131         absolute, not relative. Also document new semantics for
132         cyg_semaphore_timed_wait() for timeouts in the past.
133
134 2003-07-01  Nick Garnett  <nickg@balti.calivar.com>
135
136         * include/clock.hxx: Made Cyg_Counter::add_alarm() and
137         Cyg_Counter::rem_alarm() private functions. They no longer lock
138         the scheduler, so should not be called directly, only via the
139         Cyg_Alarm functions.
140
141         * include/clock.inl: Removed inline version of
142         Cyg_Alarm::disable(). It's no longer a one-liner and is thus
143         better as a proper function.
144
145         * src/common/clock.cxx (Cyg_Counter::tick): Rewrote the unsorted
146         list option. If the function of one alarm adds or removes other
147         alarms, then is was possible for the list to become corrupted. The
148         new implementation attempts to avoid this problem.
149         (Cyg_Alarm::initialize): Added scheduler locking to protect the
150         enabled flag.
151         (Cyg_Alarm::enable): Ditto.
152         (Cyg_Alarm::disable): Ditto. Moved here from clock.inl.
153         (Cyg_Alarm::add_alarm): Removed scheduler locking, it is now
154         always called from functions that have already locked it. Added an
155         assertion to double-check this.
156         (Cyg_Alarm::rem_alarm): Ditto.
157
158         * cdl/kernel.cdl:
159         * tests/kalarm0.c:
160         Added new test to test that alarms can be added and removed in
161         alarm functions safely.
162         
163 2003-06-25  Thomas Binder  <Thomas.Binder@frequentis.com>
164
165         * src/common/clock.cxx (Cyg_Counter::rem_alarm): Bugfix: call
166         Cyg_Scheduler::lock() before calculation of index into alarm_list
167         array to avoid race condition with multi list counters.
168
169 2003-06-06  David Brennan  <eCos@brennanhome.com>
170 2003-06-23  Nick Garnett  <nickg@balti.calivar.com>
171
172         * cdl/kernel.cdl: Added tests/bin_sem3 to list of kernel tests.
173
174         * include/sema.hxx: Added declaration for wait with timeout for
175         Cyg_Binary_Semaphore.
176         
177         * include/instrmnt.h: Added instrumentation point for binary semaphore
178         timeout.
179         
180         * src/sync/bin_sem.cxx: Added wait with time-out function to 
181         Cyg_Binary_Semaphore class. 
182
183         * src/sync/cnt_sem.cxx: Modified semantics slightly to claim an
184         available semaphore even with a timeout in the past. This is in
185         line with the new timed wait in bin_sem.cxx. 
186
187         * tests/bin_sem3.cxx: Created new test for timed wait binary
188         semaphore.
189                 
190 2003-05-20  Andrew Lunn  <andrew.lunn@ascom.ch>
191
192         * src/common/kapi.cxx (cyg_thread_get_next): Passing a *current
193         pointer as NULL if how you start the walk of the linked list. So
194         don't assert on NULL. Reported by Daniel Lidsten.
195
196 2003-05-05  Gary Thomas  <gary@mlbassoc.com>
197
198         * tests/tm_basic.cxx: Support new option controlling number of times
199         this test runs.  This is useful for long-term stress and performance
200         analysis.
201
202 2003-05-03  Jonathan Larmour  <jifl@eCosCentric.com>
203
204         * include/mqueue.inl (Cyg_Mqueue::get): Fix invalid loop termination
205         cheque for whether busy or not.
206         (Cyg_Mqueue::put): Ditto.
207
208 2003-03-03  Jonathan Larmour  <jifl@eCosCentric.com>
209
210         * tests/fptest.c: Make all variables static to avoid any risk
211         of collisions with symbols defined elsewhere in eCos.
212
213 2003-02-27  Jonathan Larmour  <jifl@eCosCentric.com>
214
215         * include/kapidata.h: Revert change of 2001-08-23 and instead make
216         it conditional on the GCC version. Also add comments explaining why
217         this file has been apparently obfuscated.
218
219 2003-02-25  Nick Garnett  <nickg@calivar.com>
220
221         * tests/fptest.c (alarm_fn): Added CYG_TEST_PASS() call to keep
222         configtool happy.
223
224 2003-02-24  Jonathan Larmour  <jifl@eCosCentric.com>
225
226         * cdl/kernel.cdl: Update doc links.
227         * cdl/synch.cdl: Ditto.
228         * cdl/thread.cdl: Ditto.
229
230 2003-02-19  Nick Garnett  <nickg@calivar.com>
231
232         * tests/fptest.c: Changed to run for a constant time rather than a
233         constant number of iterations, with a shorter run time for
234         simulated targets.
235
236 2003-02-10  Gary Thomas  <gary@mlbassoc.com>
237
238         * include/thread.inl: Add more debug info to thread stack checking.
239
240         * tests/clocktruth.cxx: 
241         * tests/clockcnv.cxx: Use <cyg/infra/diag.h> for diag_printf()
242         prototype, rather than hard coding (because it was inconsistent).
243
244 2003-02-05  Gary Thomas  <gary@mlbassoc.com>
245
246         * tests/kcache2.c (test_dcache_operation): New test to verify
247         that the DATA cache syncs properly.
248
249 2003-01-31  Nick Garnett  <nickg@calivar.com>
250
251         * cdl/kernel.cdl: 
252         * tests/fptest.c: Added this program to test interaction of FPU
253         with multiple threads.
254
255 2003-01-30  Jonathan Larmour  <jifl@eCosCentric.com>
256
257         * src/common/thread.cxx: Fix potential warning and overflow with
258         CYGNUM_KERNEL_THREADS_DATA_MAX == 32.
259
260 2003-01-28  Jonathan Larmour  <jifl@eCosCentric.com>
261
262         * src/common/kapi.cxx (cyg_thread_get_next): Be quite zealous about
263         checking the validity of passed in threads in debug mode.
264         (cyg_thread_get_info): Ditto.
265
266         * cdl/thread.cdl: Correct max legal value for
267         CYGNUM_KERNEL_THREADS_DATA_MAX.
268
269 2003-01-22  Jonathan Larmour  <jifl@eCosCentric.com>
270
271         * doc/kernel.sgml: Document cyg_thread_info type.
272
273 2003-01-13  Dmitriy Korovkin  <dkorovkin@rambler.ru>
274 2003-01-13  Jonathan Larmour  <jifl@eCosCentric.com>
275
276         * include/mqueue.hxx: Allow get/put to return time out.
277         * include mqueue.inl: Ditto.
278
279 2003-01-02  Gary Thomas  <gary@mlbassoc.com>
280
281         * tests/kcache2.c: New subtest for raw data cache operations.
282
283 2002-12-12  Nick Garnett  <nickg@ecoscentric.com>
284
285         * src/common/kapi.cxx: 
286         * include/kapi.h:
287         Added function cyg_thread_get_next(), cyg_thread_find() and
288         cyg_thread_get_info() to allow the current set of threads to be
289         enumerated, and per-thread information to be retrieved safely.
290
291         * doc/kernel.sgml: Documented new KAPI calls.
292
293         * src/common/thread.cxx: Zero unique_id in thread destructor so
294         that a stale thread pointer can be checked for validity.
295
296         * include/instrmnt.h:
297         Added cyg_instrument_state() to report the current state of an
298         instrumentation flag.
299         Moved ifdef for CYGDBG_KERNEL_INSTRUMENT_MSGS out of within FLAGS
300         ifdef. We can have messages without flags.
301
302         * src/instrmnt/meminst.cxx: 
303         Added cyg_instrument_state() to report the current state of an
304         instrumentation flag.
305         Modified cyg_instrument_msg() in line with header and table
306         changes.
307
308         * host/instr/dump_instr.c:
309         * host/instr/instrument.sh:
310         * include/instrument_desc.h: 
311         Added a final NULL element to the generated table in
312         instrument_desc.h to mark its end. Otherwise code that does not
313         have access to the table definition cannot find its end. Also
314         added ifdefs to allow instrument_desc.h to be used to acquire the
315         structure definition and table pointer.
316
317 2002-12-03  Gary Thomas  <gthomas@ecoscentric.com>
318
319         * tests/tm_basic.cxx: Add tests of 'flag' synchronizers.
320
321 2002-10-28  Andrew Lunn  <andrew.lunn@ascom.ch>
322
323         * tests/tm_basic.cxx: Include infra/diag.h and removed the 
324         incorrect prototype for diag_printf
325
326 2002-10-16  Gary Thomas  <gthomas@ecoscentric.com>
327
328         * include/test/stackmon.h (STACKMON_PRINTF): Use #include to get
329         prototype for 'diag_printf()'.
330
331 2002-10-01  Jonathan Larmour  <jifl@eCosCentric.com>
332
333         * src/common/clock.cxx (add_alarm): Tweak last change to allow
334         alarm order for identical alarms to be the same as it used to be.
335
336 2002-09-30  Jonathan Larmour  <jifl@eCosCentric.com>
337
338         * src/common/clock.cxx (add_alarm): Fix bug resulting in alarms
339         not being added at all if a lower triggered alarm already exists.
340         Reported by Christoph Csebits.
341         Also fix bug when alarm is entered for the same time as tail.
342         These bugs only apply for CYGIMP_KERNEL_COUNTERS_SORT_LIST enabled.
343
344         * doc/kernel.sgml: document that order of callback for alarms at
345         identical times is unspecified.
346
347 2002-08-08  Nick Garnett  <nickg@calivar.demon.co.uk>
348
349         * src/sched/sched.cxx (unlock_inner): Removed initial
350         assertion. This has served its purpose and with the introduction
351         of routines such as unlock_reschedule() is prone to firing in
352         otherwise benign circumstances.
353
354 2002-08-05  Bart Veer  <bartv@tymora.demon.co.uk>
355
356         * cdl/kernel.cdl, include/kapidata.h, include/kapi.h:
357         Allow configurations with the kernel but no malloc
358
359 2002-06-05  Gary Thomas  <gary@chez-thomas.org>
360
361         * include/kapi.h: Fix prototype (to allow builds with net stack).
362
363 2002-05-24  Jesper Skov  <jskov@redhat.com>
364
365         * cdl/kernel.cdl: Fix typo.
366
367 2002-05-23  Jonathan Larmour  <jlarmour@redhat.com>
368
369         * include/kapi.h: Expose new cyg_thread_add_destructor and
370         cyg_thread_rem_destructor APIs.
371
372         * include/kapidata.h (struct Cyg_Destructor_Entry):
373         Change CYG_ADDRWORD to more correct cyg_addrword_t.
374
375         * include/thread.hxx (class Cyg_Thread): add_destructor and
376         rem_destructor are onyl static when not per-thread.
377
378         * include/thread.inl (add_destructor): Don't need to lock and unlock
379         scheduler when destructors are per-thread.
380         (rem_destructor): Ditto.
381
382         * src/common/thread.cxx (exit): No need to lock scheduler when
383         calling destructors.
384
385         * doc/kernel.sgml: Document thread destructor API.
386
387 2002-05-23  Nick Garnett  <nickg@redhat.com>
388
389         * doc/kernel.sgml: Some more edits to the kernel documentation:
390         changed all references to message boxes to mail boxes, clarified
391         some thing in various places, fixed a few typos.
392
393 2002-05-23  Jesper Skov  <jskov@redhat.com>
394
395         * cdl/kernel.cdl: Cleaned up kernel tests rule. Also remove tests
396         depending on the C API when its not present. And skip dhrystone
397         test when debug or instrumentation is enabled.
398
399         * tests/tm_basic.cxx: Fixed warning.
400
401 2002-05-22  Nick Garnett  <nickg@redhat.com>
402
403         * doc/kernel.sgml:
404         Fixed up SMP documentation.
405         Rewrote condtion variable documentation to make its relationship
406         to mutexes more apparent.
407
408 2002-05-22  Jesper Skov  <jskov@redhat.com>
409
410         * tests/smp.cxx: Move inclusion of testaux.hxx to below NA
411         checks.
412
413 2002-05-21  Bart Veer  <bartv@redhat.com>
414
415         * doc/kernel.sgml:
416         Major update to the kernel documentation.
417
418 2002-05-21  Jesper Skov  <jskov@redhat.com>
419
420         * src/common/clock.cxx (dsr): Fix latency ifdef guards.
421         * tests/tm_basic.cxx: Same.
422
423 2002-05-20  Jonathan Larmour  <jlarmour@redhat.com>
424
425         * src/sched/mlqueue.cxx: Don't force timeslice tracing on by default
426         against the user's wishes.
427         * cdl/scheduler.cdl: Instead provide an option controlling it.
428
429 2002-05-09  Jonathan Larmour  <jlarmour@redhat.com>
430
431         * include/kapidata.h (CYG_HARDWARETHREAD_MEMBERS): entry_point
432         should be a pointer to function not an addrword (which may be
433         different).
434         (cyg_reason_t): Define cyg_reason_t as an enum not an int.
435         (struct cyg_mutex_t): Define mutex protocol as an enum not a cyg_uint32.
436         Define locked member as a cyg_atomic, not a cyg_bool.
437
438 2002-05-09  Nick Garnett  <nickg@redhat.com>
439
440         * tests/timeslice.c: Modified test thread to accumulate run time
441         by reading HAL clock, and to detect and record changes of CPU. The
442         previous version of this code reported varying results - probably
443         as a consequence of cache effects.
444
445         * include/instrmnt.h: Fixed left-over debug edit to MLQ
446         instrumentation enable code.
447
448 2002-04-29  Jesper Skov  <jskov@redhat.com>
449
450         * include/kapi.h: Added cyg_alarm_get_times and
451         cyg_counter_multi_tick.
452         * src/common/kapi.cxx: Same. Er, fix oversight.
453         * doc/kernel.sgml: Doc update.
454
455 2002-04-24  Yoshinori Sato  <qzb04471@nifty.ne.jp>
456
457         * src/sync/flag.cxx: Don't set default args in func definitions.
458
459 2002-04-24  Jesper Skov  <jskov@redhat.com>
460
461         * tests/dhrystone.c: Moved platform max number of passes to CDL in
462         HALs.
463
464 2002-04-23  Jesper Skov  <jskov@redhat.com>
465
466         * tests/dhrystone.c: Allow platform to define max number of passes
467         via CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES.
468
469 2002-04-09  Jonathan Larmour  <jlarmour@redhat.com>
470
471         * include/kapi.h: Use NORET attributes from cyg_type.h.
472         * include/sched.hxx (class Cyg_Scheduler): Ditto.
473
474 2002-04-08  Nick Garnett  <nickg@redhat.com>
475
476         * src/sync/mutex.cxx: Added IF_PROTOCOL_ACTIVE macro to condition
477         use of the mutex counter. This means that a mutex that is not
478         configured to participate in a priority inversion protocol does not
479         count for operation of that protocol. 
480
481 2002-03-04  Lars Viklund <lars.viklund@axis.com>
482
483         * include/kapidata.h (CYG_SCHEDTHREAD_ASR_MEMBER): 
484         asr_inhibit is cyg_ucount32 - must match
485
486 2002-02-13  Hugo Tyson  <hmt@redhat.com>
487
488         * doc/kernel.sgml: NEW FILE: Correct reference to uITRON doc.
489
490 2002-01-28  Jesper Skov  <jskov@redhat.com>
491
492         * tests/kexcept1.c: Fix warning.
493
494 2002-01-24  Jesper Skov  <jskov@redhat.com>
495
496         * tests/kcache1.c (time0DI): Disable interrupts around the
497         sync+invalidate process.
498         * tests/kcache2.c: Same.
499
500 2002-01-23  Jonathan Larmour  <jlarmour@redhat.com>
501
502         * src/intr/intr.cxx (mask_interrupt): Disable interrupts.
503         (unmask_interrupt): Ditto.
504         (mask_interrupt_intunsafe): New function to avoid disabled interrupts.
505         (unmask_interrupt_intunsafe): Ditto.
506         * include/intr.hxx (class Cyg_Interrupt): Declare above new funcs.
507         * src/common/kapi.cxx (cyg_interrupt_unmask_intunsafe): Above
508         replicated to KAPI.
509         (cyg_interrupt_mask_intunsafe): Ditto.
510         * include/kapi.h: Ditto.
511
512 2002-01-07  Nick Garnett  <nickg@redhat.com>
513
514         * tests/except1.cxx: 
515         * tests/kexcept1.cxx:
516         Added ifdef to disable these tests in ARM PID platform. This
517         platform cannot generate any of the exceptions that this test
518         needs to work.
519
520 2001-12-12  Jesper Skov  <jskov@redhat.com>
521
522         * tests/kcache2.c (time_ilock): Put some dummy goto statements in
523         to prevent compiler from moving labels around.
524
525 2001-11-29  Jonathan Larmour  <jlarmour@redhat.com>
526
527         * src/sched/mlqueue.cxx (timeslice_cpu): Reset timeslice_count on
528         a timeslice.
529         Noticed by Tony Kho.
530
531 2001-11-23  Jonathan Larmour  <jlarmour@redhat.com>
532
533         * tests/klock.c (entry1): Support running with
534         CYGFUN_KERNEL_THREADS_TIMER disabled.
535
536 2001-10-30  Nick Garnett  <nickg@redhat.com>
537
538         * tests/kcache2.c (test_dsync):
539         Added call to HAL_ICACHE_INVALIDATE_ALL() just before DCACHE
540         disable. In platforms where both caches are controlled together,
541         such as the VR4300, not doing this can result in strange behaviour
542         as the ICACHE gets turned off under the program's feet, when it is
543         not ready for it.
544
545 2001-10-17  Jesper Skov  <jskov@redhat.com>
546
547         * tests/dhrystone.c: CYGINT_ISO_STRING_STRFUNCS check changed to
548         ifdef.
549
550 2001-10-12  Jonathan Larmour  <jlarmour@redhat.com>
551
552         * cdl/synch.cdl (CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE): New option
553         to avoid inlining mqueue implementation.
554
555         * src/sync/mqueue.cxx: New file to provide non-inline version of
556         mqueue functions.
557
558         * include/mqueue.hxx: Don't include .inl if user doesn't want inlining.
559
560         * include/mqueue.inl: Allow choice of inlining or not to be
561         overridden by macro.
562
563         * tests/mqueue1.cxx: Never use inline version.
564
565 2001-10-11  Jesper Skov  <jskov@redhat.com>
566
567         * tests/kmutex3.c (new_thread): Fixed allocation: increase counter
568         before starting threads which have been allocated resources.
569         * tests/kmutex4.c (new_thread): Same.
570         * tests/mutex3.cxx (new_thread): Same.
571         * tests/testaux.hxx (new_thread): Same.
572
573         * tests/kcache2.c: Fixed warning.
574         * tests/stress_threads.c: Same.
575
576 2001-09-20  Jonathan Larmour  <jlarmour@redhat.com>
577
578         * host/instr/dump_instr.c (main): Fix argc check.
579
580 2001-09-07  Jonathan Larmour  <jlarmour@redhat.com>
581
582         * include/thread.inl (measure_stack_usage): Deal with stack limits.
583
584 2001-09-07  Nick Garnett  <nickg@redhat.com>
585
586         * src/common/thread.cxx (set_priority): Change argument to
587         instrumentation call to new_priority rather than current
588         priority. (Suggested by Andrew Lunn).
589
590 2001-09-05  Jesper Skov  <jskov@redhat.com>
591
592         * include/mqueue.inl (Cyg_Mqueue): Initialize busy flag of last
593         entry in the list.
594
595 2001-09-04  Jonathan Larmour  <jlarmour@redhat.com>
596
597         * cdl/instrument.cdl (CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP): 
598         Remove redundant requires, and adjust make rule to be more portable
599         across hosts.
600         (CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE):
601         Invoke script with sh directly rather than rely on executable attribute.
602
603         * host/instr/readme.txt: Update build of host dump as per the changed
604         CDL.
605
606         * cdl/kernel.cdl: Don't build nullinst.cxx any more.
607         Build meminst.cxx only in CYGPKG_KERNEL_INSTRUMENT.
608         * src/instrmnt/nullinst.cxx: Delete. It causes confusion in the
609         library as it declares cyg_instrument like meminst.cxx does.
610
611 2001-08-31  Nick Garnett  <nickg@redhat.com>
612
613         * src/intr/intr.cxx: Clean up typo in DSR table
614         case. dsr_table_tail and dsr_table_head were not being subscripted
615         in a couple of places.
616
617 2001-08-23  Hugo Tyson  <hmt@redhat.com>
618 2001-08-20  Andrew Lunn <andrew.lunn@ascom.ch>
619
620         * include/instrument_desc.h: New file.  This contains the table of
621         events used to print the nice information.  It should be
622         regenerated when the instrumentation numbers change.
623
624         * src/instrmnt/meminst.cxx (cyg_instrument_msg):
625         returns an ASCII string describing the type of event the
626         instrumentation code logged.
627
628         * include/instrmnt.h: Added function prototype.
629
630         * cdl/instrument.cdl: Configury for enabling the new function, and
631         optionally rebuilding its header file and building a host tool.
632
633         * host/instr/dump_instr.c: New file.  A host program to print the
634         instrumentation information in a human readable form.
635
636         * host/instr/instrument.sh: New file.  Script to generate table of
637         events with textual representation.
638
639         * host/instr/readme.txt: New file.  Helpful information.
640
641 2001-08-23  Nick Garnett  <nickg@redhat.com>
642
643         * include/kapidata.h (CYG_THREADTIMER_MEMBERS):
644         Substituted an expicit cyg_alarm object for CYG_ALARM_MEMBERS in
645         this definition. In some architectures (MIPS in particular) the
646         structures need to be padded to a multiple of 64 bits. This was
647         not happening with the macro substituted versions.
648         This is just a temporary fix, I'll leave it to Jifl to sort out a
649         real patch when he returns.
650
651 2001-08-23  Hugo Tyson  <hmt@redhat.com>
652
653         * src/common/thread.cxx: Properly qualify Cyg_Thread::destructors
654         array so that it builds when destructors are not used.
655
656 2001-08-23  Nick Garnett  <nickg@redhat.com>
657
658         * src/sched/mlqueue.cxx: Added code to
659         Cyg_SchedThread_Implementation::to_queue_head() to handle a NULL
660         thread queue pointer. This compensates for a minor change in
661         behaviour of the scheduler.
662
663 2001-08-22  Jonathan Larmour  <jlarmour@redhat.com>
664
665         * cdl/thread.cdl: Add kernel thread destructor options.
666         * include/kapidata.h: Add thread destructor entries to cyg_thread
667         * include/thread.hxx (Cyg_Thread): Give per-thread data indexes
668         their own type, cyg_data_index.
669         Include new thread destructor data members, and new add_destructor
670         and rem_destructor member functions.
671         * include/thread.inl: Use a cyg_data_index for per-thread data handle.
672         (add_destructor): New Cyg_Thread member function.
673         (rem_destructor): Ditto.
674         * src/common/kapi.cxx: Use cyg_data_index type for per-thread data
675         functions.
676         * src/common/thread.cxx (Cyg_Thread): initialise per-thread
677         destructors if needed.
678         Define static destructors if needed.
679         (exit): Call destructors.
680         (new_data_index): Use cyg_data_index type.
681         (free_data_index): Ditto.
682
683 2001-08-22  Hugo Tyson  <hmt@redhat.com>
684   
685         * src/sync/mutex.cxx (Cyg_Mutex): Add initialization of the
686         priority ceiling value in the non-dynamic protocol case.
687
688 2001-08-22  Nick Garnett  <nickg@redhat.com>
689
690         * tests/intr0.c: 
691         * tests/kintr0.c:
692         Swapped order of interrupt enable/disable calls to keep kernel
693         happy when assertions are enabled. Otherwise the enable call
694         complains that interrupts have not been disabled.
695
696         * src/sched/mlqueue.cxx:
697         Simplified algorithm in set_need_reschedule().
698
699         * include/smp.hxx: 
700         * include/kapidata.h: Change spinlock to be a cyg_uint32, rather
701         than a cyg_atomic.
702
703         * src/intr/intr.cxx: 
704         * include/intr.hxx:
705         Now arrange for DSRs to be called on the same CPU as the ISR. This
706         is necessary if the DSR needs to access per-CPU hardware (such as
707         interrupt controllers). This is achieved by keeping a separate DSR
708         list/table for each CPU.
709
710         * tests/smp.cxx: Some modifications to make this test work in a
711         real SMP environment.
712
713         * tests/timeslice.c: 
714         * cdl/kernel.cdl: Added timeslice test.
715
716 2001-08-21  Hugo Tyson  <hmt@redhat.com>
717
718         * src/sync/mutex.cxx (lock): Bugfix: a ceiling priority mutex
719         wasn't elevated until after it had acquired the mutex.  This meant
720         it slept with a low priority, and so did not run when awakened by
721         the release of the mutex.  The fix is to elevate the potential
722         claimant before it sleeps in contention. 
723
724         * tests/kmutex4.c: New testcase - very similar to kmutex3 but it
725         loops a load more times using different mutex priority protocols.
726         This checks that dynamically set protos do in fact behave
727         differently from one another and as they are each intended to.
728
729         * tests/kmutex3.c: Remove FIXME comments - we now test dynamic
730         protocol.
731
732         * cdl/kernel.cdl: Build the new test.
733
734 2001-08-20  Jonathan Larmour  <jlarmour@redhat.com>
735
736         * include/kapidata.h: Reorganize most struct type definitions into
737         macros to allow compatible layout with all G++ implementations that
738         align non-POD types differently from included C structures.
739         * include/kapi.h: Similarly for cyg_resolution_t.
740
741 2001-08-17  Nick Garnett  <nickg@redhat.com>
742
743         * src/sched/mlqueue.cxx (timeslice): Fix timeslice_count comparison.
744
745 2001-08-16  Hugo Tyson  <hmt@redhat.com>
746
747         * include/kapi.h (cyg_mutex_protocol): Tidy up names of mutex
748         protocol type and values.  These polluted rather in 'C'.
749
750         * src/common/kapi.cxx (cyg_mutex_set_protocol): ditto.
751
752 2001-08-15  Hugo Tyson  <hmt@redhat.com>
753 2001-08-15  Andrew Lunn <andrew.lunn@ascom.ch>
754
755         * src/common/kapi.c (cyg_thread_get_current_priority): Export
756         this function into the C api.
757         * include/kapi.h: Declaration of new function.
758
759 2001-08-14  Jonathan Larmour  <jlarmour@redhat.com>
760
761         * src/common/kapi.cxx (cyg_spinlock_spin_intsave): Cast to istate
762         to CYG_INTERRUPT_STATE * since that's what is needed.
763         (cyg_spinlock_clear_intsave): Similarly.
764
765 2001-08-10  Hugo Tyson  <hmt@redhat.com>
766
767         * cdl/synch.cdl: Re-organize the options for mutexes so they are
768         active a bit more sensibly; place the default ceiling within
769         selection of ceiling protocol, and only have a default protocol if
770         there is more than one protocol active.
771
772         * tests/mutex3.cxx: More detailed handling of the possibility of
773         ceiling protocol instead of the inherit or none cases; we can run
774         the test ok and treat as inherit if the ceiling prio is higher
775         than 5, treat as none if lower than 15, and don't check anything
776         if in between - the test runs happily.
777
778         * tests/kmutex3.c (cyg_start): New test, a KAPI translation of the
779         now-classic mutex3.cxx.
780
781         * cdl/kernel.cdl: Build tests/kmutex3.c
782
783 2001-08-06  Hugo Tyson  <hmt@redhat.com>
784
785         * src/sched/sched.cxx (unlock_inner): Fix assignment to current,
786         wouldn't build if stack checking after merger from SMP branch.
787
788 2001-08-06  Andrew Lunn   <andrew.lunn@ascom.ch>
789 2001-08-06  Hugo Tyson  <hmt@redhat.com>
790
791         * src/sync/mutex.cxx: (set_protocol) Added a function to set the
792         priority inversion protocol for a mutex.
793
794         * src/common/kapi.cxx: Export the new function above and
795         set_ceiling into the C API.
796         
797         * include/mutex.hxx (class Cyg_Mutex): New member function
798         set_protocol().
799
800         * include/kapi.h (cyg_protcol): Define new emumeration for mutex
801         priority protocol setting, and headers for the new function to set
802         it.
803
804 2001-08-03  Nick Garnett  <nickg@redhat.com>
805
806         Imported from a development branch:
807         
808         2001-07-11  Nick Garnett  <nickg@redhat.com>
809
810                 * src/sched/mlqueue.cxx: Changed behaviour of
811                 set_need_reschedule() to a better implementation of the intended
812                 algorithm.
813
814                 * include/kapi.h: 
815                 * src/common/kapi.cxx:
816                 Added API for controlling routing of interrupts to CPUs in SMP
817                 configurations.
818
819         2001-07-03  Nick Garnett  <nickg@cygnus.co.uk>
820
821                 * cdl/scheduler.cdl:
822                 * include/bitmap.hxx:
823                 * src/sched/bitmap.cxx:
824                 Fixed up bitmap scheduler so it still works within the
825                 SMP-modified scheduling infrastructure. The bitmap scheduler
826                 is not currently SMP-enabled, only single CPU configurations are
827                 supported - hence the CDL change to require this.
828
829         2001-06-29  Nick Garnett  <nickg@cygnus.co.uk>
830
831                 * src/sched/sched.cxx:
832                 Removed the call to Cyg_Interrupt::enable_interrupts() in
833                 Cyg_Scheduler::start_cpu(). This was a relic from the days when
834                 the interrupt enable state was not part of the thread state. Now
835                 it is, and loading the first thread will cause interrupts to be
836                 enabled.
837
838                 * src/intr/intr.cxx:
839                 Changed initial values of Cyg_Interrupt::disable_counter[]s to
840                 zero as a result of the change in Cyg_Scheduler::start_cpu().
841
842                 * include/kapi.h:
843                 * include/kapidata.h:
844                 * src/common/kapi.cxx: 
845                 Added API for using spinlocks. Largely so that it may be extended
846                 to the driver API.
847
848                 * include/mlqueue.hxx:
849                 * include/intr.hxx:
850                 * include/sched.hxx:
851                 Added annotations to various static variables.
852
853         2001-06-28  Nick Garnett  <nickg@cygnus.co.uk>
854
855                 * include/intr.hxx:
856                 * src/intr/intr.cxx:
857                 Changed behaviour of Cyg_Interrupt::disable_interrupts() and
858                 Cyg_Interrupt::enable_interrupts(). These now claim and release a
859                 spinlock in addition to disabling and enabling interrupts. The
860                 original interrupt state is also preserved and restored. This is
861                 necessary in SMP systems to allow drivers etc. to correctly
862                 synchronize with threads and DSRs that may be running on different
863                 CPUs. In the single CPU case this mechanism reduces to the
864                 original simple interrupt disable code.
865                 [Later change] Backed off addition of volatile modifier to
866                 interrupt_disable_state.
867
868                 * include/smp.hxx: Some minor tidies.
869
870         2001-06-27  Nick Garnett  <nickg@cygnus.co.uk>
871
872                 * tests/release.cxx: Added spin loop in thread1 to allow thread0
873                 to execute its wait. This is necessary in SMP systems where the
874                 threads will execute in parallel, but is also benign in single CPU
875                 systems.
876
877                 * tests/mutex2.cxx:
878                 * tests/mutex3.cxx:
879                 * tests/sync3.cxx: 
880                 * tests/thread2.cxx: 
881                 These tests depend on predicting the behaviour of threads at
882                 different priorities to pass. In an SMP system, several threads
883                 will run in parallel, and the execution order will not be as
884                 expected. These tests are therefore disabled in SMP
885                 configurations.
886
887                 * src/sched/mlqueue.cxx (add_thread): Moved call to
888                 set_need_reschedule() out of test for empty queue. In SMP systems,
889                 any addition to a queue may require a reschedule on another CPU.
890
891         2001-06-22  Nick Garnett  <nickg@cygnus.co.uk>
892
893                 * include/mlqueue.hxx:
894                 * src/sched/mlqueue.cxx:
895                 A major change to the way in which this scheduler works in SMP
896                 systems. The previous version removed all runnable threads from
897                 the run queues when they were executing. This resulted in serious
898                 complications and messy code, particularly when dealing with
899                 priority changes and timeslicing. The new version keeps running
900                 threads in the run queues, just like the single-CPU version. The
901                 main disadvantage of this is that we may have to search past
902                 threads running on other CPUs before we find one available to run
903                 on this CPU. However, the pending count array and map mean that we
904                 only need search one run queue, and in any case the search remains
905                 bounded by the number of CPUs available.
906                 Another change is in the way that timeslicing is handled. Now, the
907                 CPU that takes the clock interrupt decrements the timeslice counts
908                 for all CPUs and if any go zero, sends a TIMESLICE message to
909                 that CPU.
910
911                 * src/sched/sched.cxx (unlock_inner):
912                 Removed call to requeue(), no longer needed as a result of
913                 scheduler reorganization.
914
915                 * src/common/thread.cxx:
916                 Added test in Cyg_Thread::exit() to check that the thread has not
917                 already been killed. This is only an issue if the thread is
918                 calling exit() when it is kill()ed from another CPU. The test is
919                 redundant in single-CPU systems, but it does no harm having it.
920                 Added code to Cyg_Thread::set_priority() to check for reschedule
921                 when another thread is being changed in priority.
922                 Added call in idle thread constructor to scheduler to install the
923                 idle thread as the default current thread for a CPU.
924
925                 * include/smp.hxx:
926                 Added CYG_KERNEL_CPU_TIMESLICE_INTERRUPT(), did some miscellaneous
927                 tidying.
928
929                 * include/instrmnt.h: Added SMP_RESCHED_SEND and SMP_RESCHED_RECV
930                 events.
931
932                 * cdl/kernel.cdl: Added smp test program.
933
934                 * tests/smp.cxx: Added this program to test SMP functionality.
935
936         2001-06-13  Nick Garnett  <nickg@cygnus.co.uk>
937
938                 * src/sched/sched.cxx:
939                 Removed code to set up initial current thread, this is now done
940                 in the idle thread constructor.
941                 Added code here to set up interrupts for SMP inter-processor
942                 interrupts. This is not very tidy and may need to be
943                 changed in the future.
944
945                 * src/sched/mlqueue.cxx:
946                 Added local set_need_reschedule() function to set the
947                 need_reschedule flag on a suitable CPU.
948                 Many more changes to cope with SMP systems.
949                 NOTE: This code has all become somthing of a mess, it need to be
950                 tidied up and the SMP-specific changes integrated better into the
951                 code. Also, timesliceing currently only works on the CPU that
952                 takes clock interrupts - this needs fixing.
953
954                 * src/common/thread.cxx:
955                 Moved assignment of initial current thread to here from sched.cxx.
956
957                 * include/smp.hxx:
958                 Changed CYG_KERNEL_CPU_INTERRUPT()
959                 CYG_KERNEL_CPU_RESCHEDULE_INTERRUPT() since there may be other
960                 interrupt types to worry about.
961                 Added annotations to scheduler data items.
962
963                 * include/sched.hxx:
964                 Split set_current_thread() into two functions, the original works
965                 only on the current CPU, the new one sets another CPU's current
966                 thread. This latter function is only used to prime the current
967                 threads during initialization.
968                 Added second need_reschedule() function that takes a thread
969                 argument. This is intended to be overridden by a scheduler
970                 specific function that sets the need_reschedule flag if the
971                 supplied thread is more deserving of CPU time that any current
972                 thread.
973
974                 * include/mlqueue.hxx:
975                 Made cyg_scheduler_set_need_reschedule() a friend of
976                 Cyg_Scheduler_Implementation class.
977                 Added override set_need_reschedule() functions.
978
979                 * include/kapidata.h: Added cpu field to cyg_thread structure when
980                 in SMP systems.
981
982                 * include/intr.hxx:
983                 * src/intr/intr.cxx:
984                 Added Cyg_Interrupt::set_cpu() and Cyg_Interrupt::get_cpu() for
985                 SMP systems.
986
987                 * include/instrmnt.h: Added events for INTR_GET_CPU and
988                 INTR_SET_CPU.
989
990         2001-05-29  Nick Garnett  <nickg@cygnus.co.uk>
991
992                 The following changes were all imported from the SMP branch:
993
994                 * tests/tm_basic.cxx:
995                 Modified to work in SMP configuration - mostly at present by
996                 ifdeffing out code I didn't want to fix.
997
998                 * include/sched.hxx:
999                 Moved scheduler lock operation into Cyg_Scheduler_SchedLock class.
1000                 Converted current_thread, need_reschedule, and thread_switches
1001                 into CPU indexed arrays. Added member functions to get and set
1002                 these indirectly.
1003                 Added start_cpu() to do per-CPU scheduler startup.
1004
1005                 * include/sched.inl:
1006                 Converted scheduler lock/unlock functions to use new schedlock
1007                 class.
1008
1009                 * src/sched/sched.cxx:
1010                 Changed in line with sched.hxx.
1011                 Added call to requeue() in unlock_inner() to restore current
1012                 thread to run queue if necessary.       
1013                 Moved most of scheduler startup to Cyg_Scheduler::start_cpu().
1014                 Cyg_Scheduler::start() now also starts secondary CPUs in SMP
1015                 systems.
1016                 Added cyg_kernel_smp_startup() as entry point from HAL into kernel
1017                 for secondary CPUs.
1018
1019                 * include/mlqueue.hxx:
1020                 Added Cyg_RunQueue type and removed
1021                 Cyg_SchedulerThreadQueue_Implementation type.
1022                 Converted timeslice_count to CPU indexed array.
1023                 Added requeue() member function to scheduler class.
1024                 Added cpu member to thread implementation class, to record
1025                 thread's current CPU.
1026
1027                 * src/sched/mlqueue.cxx:
1028                 Changed behaviour when in SMP system to remove scheduled thread
1029                 from run queue and replace it when preempted.
1030                 Added some extra asserts, and removed some that are no longer true
1031                 in an SMP system.
1032
1033                 * src/instrmnt/meminst.cxx: In SMP systems: added spinlock to
1034                 protect instrument buffer, added CPU Id in top 4 bits of thread Id
1035                 field.
1036
1037                 * src/common/thread.cxx:
1038                 Converted to use accessor functions for need_reschedule and
1039                 current_thread.
1040                 Rearranged idle thread creation to create one for each CPU.
1041
1042                 * include/test/stackmon.h: Extended to handle stack usage for
1043                 multiple idle threads.
1044
1045                 * include/thread.inl:
1046                 Added some extra instrumentation.
1047
1048                 * include/smp.hxx:
1049                 Added this file to contain all kernel SMP support. The main
1050                 definitions exported by this file are spin lock and scheduler lock
1051                 implementation classes, for both SMP and uniprocessor
1052                 configurations.
1053
1054                 * src/intr/intr.cxx: 
1055                 * include/intr.hxx:
1056                 Converted interrupt disable counter to CPU indexed array. In
1057                 intr.cxx: added lock of scheduler lock in interrupt_end() rather
1058                 than in default interrupt VSR.
1059
1060                 * cdl/kernel.cdl: Added option to enable SMP support.
1061
1062                 * include/instrmnt.h: 
1063                 * cdl/instrument.cdl: Added SMP instrumentation.
1064
1065         2001-05-25  Nick Garnett  <nickg@cygnus.co.uk>
1066
1067                 * include/intr.hxx:
1068                 * src/intr/intr.cxx: 
1069                 Added default definition of CYGNUM_HAL_ISR_TABLE_SIZE. This is now
1070                 used to declare the chain table so that architectures which have
1071                 different sizes for the interrupt table and vector count will work
1072                 correctly.
1073
1074         2001-05-22  Nick Garnett  <nickg@cygnus.co.uk>
1075
1076                 * include/sched.hxx (class Cyg_Scheduler_Base):
1077                 Added annotation to sched_lock.
1078
1079                 * cdl/instrument.cdl:
1080                 Rename CYGNUM_KERNEL_INSTRUMENT_BUFFER_WRAP to
1081                 CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP as it appears in the code.
1082
1083 2001-07-27  Jesper Skov  <jskov@redhat.com>
1084
1085         * src/intr/intr.cxx (chain_isr): Return isr_ret so caller (which
1086         may be an arbiter) can tell if the interrupt was handled.
1087
1088 2001-07-26  Gary Thomas  <gthomas@redhat.com>
1089
1090         * src/common/clock.cxx (dsr): Fix problems mixing signed and
1091         unsigned values.  Normally only generated warnings, but...
1092
1093 2001-07-09  Jonathan Larmour  <jlarmour@redhat.com>
1094
1095         * include/sched.inl (unlock_reschedule): Fix commenting.
1096         * src/sched/sched.cxx: Improve description of unlock_inner().
1097
1098 2001-06-21  Jonathan Larmour  <jlarmour@redhat.com>
1099
1100         * src/common/thread.cxx (Cyg_Thread::Cyg_Thread): Initialize
1101         wakeup_count
1102
1103 2001-06-06  Hugo Tyson  <hmt@redhat.com>
1104
1105         * tests/clocktruth.cxx: New file.  A test to get a sanity check on
1106         whether the clock is accurate to wallclock time, only useful for
1107         humans to watch really.  But important!
1108
1109 2001-05-31  Jonathan Larmour  <jlarmour@redhat.com>
1110
1111         * include/thread.hxx (class Cyg_HardwareThread): Remove unused
1112         load_context() method.
1113         * include/thread.inl: Ditto.
1114
1115 2001-05-29  Jonathan Larmour  <jlarmour@redhat.com>
1116
1117         * src/sched/bitmap.cxx (rem_thread): No need to set need_reschedule...
1118         rescheduling will happen automatically when the state changes.
1119
1120         * src/sched/mlqueue.cxx (add_thread): No need to explicitly clear
1121         thread->queue.
1122
1123 2001-04-26  Nick Garnett  <nickg@cygnus.co.uk>
1124
1125         * tests/intr0.cxx: 
1126         * tests/kintr0.c:
1127         Fixed these two tests so that they work properly on architectures
1128         where CYGNUM_HAL_ISR_MIN is not zero. These include the x86 and
1129         V850.
1130
1131 2001-04-18  Bart Veer  <bartv@redhat.com>
1132
1133         * tests/dhrystone.c:
1134         Fix the conditional for STDIO_FORMATTED_IO
1135
1136 2001-04-17  Bart Veer  <bartv@redhat.com>
1137
1138         * tests/stress_threads.c (setup_death_alarm):
1139         Cope with synthetic target reorg
1140
1141         * tests/except1.cxx, tests/kexcept1.c:
1142         Reenable for the synthetic target
1143
1144         * tests/tm_basic.cxx:
1145         Reenable for the synthetic target
1146
1147 2001-04-17  Jesper Skov  <jskov@redhat.com>
1148
1149         * cdl/kernel.cdl: Do cache tests on E7T.
1150
1151 2001-04-05  Nick Garnett  <nickg@cygnus.co.uk>
1152
1153         * tests/flag1.cxx: Apply same changes here as were applied to
1154         kflag1 on 2000-07-17. This allows this test to run to completion
1155         in slow targets, especially simulators.
1156
1157         * tests/stress_threads.c: Reduce run time even further in
1158         simulator runs where instrumentation is enabled.
1159
1160 2001-04-03  Jesper Skov  <jskov@redhat.com>
1161
1162         * tests/dhrystone.c: Fix feature check.
1163
1164 2001-03-28  Jonathan Larmour  <jlarmour@redhat.com>
1165
1166         * cdl/kernel.cdl: Only need to compile dbg_gdb.cxx with
1167         CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
1168
1169         * src/debug/dbg_gdb.cxx: Add new dbg_thread_id() function.
1170
1171 2001-02-23  Jonathan Larmour  <jlarmour@redhat.com>
1172
1173         * include/thread.inl (attach_stack): Check for non-NULL stack base.
1174
1175 2001-02-11  Jonathan Larmour  <jlarmour@redhat.com>
1176
1177         * tests/stress_threads.c: CYGINT_ISO_STDIO_FORMATTED_IO needs a
1178         #ifdef not an #if.
1179         * tests/dhrystone.c: Ditto.
1180
1181 2001-02-04  Jonathan Larmour  <jlarmour@redhat.com>
1182
1183         * tests/kill.cxx: Increase delay for all targets, just in case some
1184         are slow.
1185
1186 2001-01-30  Hugo Tyson  <hmt@redhat.com>
1187
1188         * src/common/clock.cxx (rem_alarm): Must clear the enabled flag;
1189         this disappeared in the changes to using clists of 2001-01-09.
1190         Symptom was that an alarm, once disabled, could never be
1191         re-attached to its counter because it claimed it already was.
1192         Plus asserts with multiple disables - "bad counter object".
1193
1194 2001-01-30  Hugo Tyson  <hmt@redhat.com>
1195
1196         * src/common/thread.cxx (reinitialize): Following change of
1197         2000-12-05, if CYGFUN_KERNEL_THREADS_STACK_CHECKING, this was
1198         using the stack_base/stack_size variables directly to reinitialize
1199         the stack area.  This was wrong, and leaked store off the top and
1200         bottom of the stacks because the "buffer zone" was carved off
1201         repeatedly.  Fix is to use the published APIs which compensate.
1202
1203 2001-01-26  Nick Garnett  <nickg@cygnus.co.uk>
1204
1205         * include/mlqueue.hxx: 
1206         * src/sched/mlqueue.cxx:
1207         Restored Cyg_ThreadQueue_Implementation::remove() since it must
1208         clear the thread's queue pointer, which the base clist class
1209         remove() does not.
1210
1211 2001-01-24  Jesper Skov  <jskov@redhat.com>
1212
1213         * src/sched/mlqueue.cxx (highpri): Fix trace call.
1214
1215 2001-01-09  Nick Garnett  <nickg@cygnus.co.uk>
1216
1217         * include/mlqueue.hxx:
1218         * src/sched/mlqueue.cxx: 
1219         Converted to use clist.hxx list implementation. The main effect of
1220         this is to clean up the code and class definitions since much of
1221         what was part of the thread queue and thread classes now moves to
1222         the DNode and CList classes.
1223
1224         * include/clock.hxx:
1225         * src/common/clock.cxx: 
1226         Converted to use clist.hxx list implementation. This removes all
1227         the explicit list manipulation code from the counter and alarm
1228         classes, resulting in cleaner, easier to understand code.
1229
1230         * include/kapidata.h: Adjusted cyg_alarm struct to match Cyg_Alarm
1231         using Cyg_DNode.
1232         
1233 2000-12-22  Jonathan Larmour  <jlarmour@redhat.com>
1234
1235         * include/thread.inl (check_stack): check word alignment with CYG_WORD
1236         not cyg_uint32
1237         Add extra stack checking for when stack limits are used.
1238         (measure_stack_usage): New function to measure stack usage of the thread
1239         (attach_stack): check word alignment with CYG_WORD not cyg_uint32
1240         Initialize stack to preset value when measuring stack usage
1241         (increment_stack_limit): Conditionalize here wrt 
1242         CYGFUN_KERNEL_THREADS_STACK_CHECKING and use the version in thread.cxx
1243         instead if CYGFUN_KERNEL_THREADS_STACK_CHECKING is defined.
1244
1245         * src/common/thread.cxx (exit): If verbose stack measurement enabled,
1246         output stack usage
1247         (increment_stack_limit): Add version of this method when
1248         CYGFUN_KERNEL_THREADS_STACK_CHECKING *is* defined. This will add
1249         padding above the stack limit as necessary.
1250
1251         * include/thread.hxx (class Cyg_HardwareThread): Add
1252         measure_stack_usage() member
1253
1254         * cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT):
1255         Add to implement stack usage measurement.
1256
1257         * include/kapi.h (cyg_thread_measure_stack_usage): New function
1258         * src/common/kapi.cxx (cyg_thread_measure_stack_usage): New function
1259
1260 2000-12-08  Jonathan Larmour  <jlarmour@redhat.com>
1261
1262         * cdl/thread.cdl (CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING): 
1263         Requires threads list, rather than active_if them so that
1264         inference engine can do its thang.
1265
1266 2000-12-07  Jesper Skov  <jskov@redhat.com>
1267
1268         * src/debug/dbg-thread-demux.c: Add comment about the use of
1269         DBG_SYSCALL_THREAD_VEC_NUM vs CYGNUM_CALL_IF_DBG_SYSCALL.
1270
1271 2000-12-06  Hugo Tyson  <hmt@redhat.com>
1272
1273         * include/thread.inl (attach_stack): Additional assert check for
1274         unsigned wrap of the stack size in subtracting the signature
1275         areas' size.  Also round to whole words better.
1276
1277 2000-12-05  Hugo Tyson  <hmt@redhat.com>
1278
1279         * cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_CHECKING): New
1280         option, to control new stack check features.  Enabled by default,
1281         but only active if CYGPKG_INFRA_DEBUG and CYGDBG_USE_ASSERTS
1282         anyway, plus checking *all* threads is possible, but default off,
1283         iff CYGVAR_KERNEL_THREADS_LIST.
1284
1285         * include/thread.hxx (class Cyg_HardwareThread): Define
1286         check_stack() function.
1287
1288         * include/thread.inl (attach_stack): Add initialization of a
1289         signature in the top and base of the stack, if so configured.
1290         (check_stack): New function to check that signature for
1291         correctness; minor re-ordering to permit more inlining.
1292
1293         * src/sched/sched.cxx (unlock_inner): Check departing and incoming
1294         thread stacks if CYGFUN_KERNEL_THREADS_STACK_CHECKING.  Also, if
1295         CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING, check all registered
1296         thread stacks.  This is placed here to get executed every
1297         clocktick and other interrupts that call DSRs, rather than messing
1298         with interrupt_end() or the idle thread.
1299
1300 2000-12-04  Hugo Tyson  <hmt@redhat.com>
1301
1302         * tests/kcache2.c (entry0): Make this more robust against a
1303         complete absence of useful caches.  Previous change was not
1304         careful enough.
1305
1306 2000-12-01  Hugo Tyson  <hmt@redhat.com>
1307
1308         * cdl/kernel.cdl: Build the kcache tests for SA11x0 family; they
1309         were being omitted by default as part of ARM family.  They work on
1310         SA1110, so this should be OK.  They're OK on EBSAs too.  See
1311         associated fix to cache macros in SA11x0 and EBSSA HALs.
1312
1313         * tests/kcache2.c (entry0): Fix the test; the problem was it
1314         assumed that a write to a previously unseen location would end up
1315         in the cache.  It ain't so on StrongARMs.  Also make tests safe
1316         wrt interrupts possibly perturbing the cache, add explicit tests
1317         for HAL_DCACHE_INVALIDATE_ALL(), ...DISABLE() and ...SYNC(), and
1318         improve the tests for cache line invalidate and store.
1319
1320 2000-10-30  Jesper Skov  <jskov@redhat.com>
1321
1322         * cdl/synch.cdl: Replaced CYGINT_KERNEL_SCHEDULER_CAN_YIELD with
1323         CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES.
1324         * cdl/scheduler.cdl:
1325         CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL requires
1326         CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES.
1327
1328         * tests/thread2.cxx: Use new option.
1329         * tests/klock.c: Same.
1330         * src/common/thread.cxx: Same.
1331         * src/common/clock.cxx: Same.
1332
1333         * include/bitmap.hxx: Leave unique priority setting to CDL.
1334         * include/mlqueue.hxx: Same.
1335         * include/sched.hxx: Let CDL do sanity check of config.
1336
1337 2000-10-27  Jesper Skov  <jskov@redhat.com>
1338
1339         * cdl/scheduler.cdl: Added CYGINT_KERNEL_SCHEDULER_CAN_YIELD
1340
1341         * tests/klock.c: Avoid use of disabled features. Require scheduler
1342         that can yield.
1343
1344 2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
1345
1346         * tests/bin_sem0.cxx:
1347         * tests/bin_sem1.cxx:
1348         * tests/bin_sem2.cxx:
1349         * tests/clock0.cxx:
1350         * tests/clock1.cxx:
1351         * tests/clockcnv.cxx:
1352         * tests/cnt_sem0.cxx:
1353         * tests/cnt_sem1.cxx:
1354         * tests/except1.cxx:
1355         * tests/flag0.cxx:
1356         * tests/flag1.cxx:
1357         * tests/intr0.cxx:
1358         * tests/kill.cxx:
1359         * tests/mbox1.cxx:
1360         * tests/mqueue1.cxx:
1361         * tests/mutex0.cxx:
1362         * tests/mutex1.cxx:
1363         * tests/mutex2.cxx:
1364         * tests/mutex3.cxx:
1365         * tests/philo.cxx:
1366         * tests/release.cxx:
1367         * tests/sched1.cxx:
1368         * tests/sync2.cxx:
1369         * tests/sync3.cxx:
1370         * tests/testaux.hxx:
1371         * tests/thread0.cxx:
1372         * tests/thread1.cxx:
1373         * tests/thread2.cxx:
1374         * tests/tm_basic.cxx:
1375         Make sure default priority constructors have been invoked.
1376
1377         * include/intr.hxx (class Cyg_Interrupt): Make dsr_count volatile
1378         to prevent a potential race condition with overzealous C
1379         compilers.
1380
1381 2000-10-13  Nick Garnett  <nickg@cygnus.co.uk>
1382
1383         * src/sched/sched.cxx (unlock_inner): Added condition to test for
1384         DSRs to only call DSRs when the scheduler lock is making a 0->1
1385         transition. Otherwise there is the danger of calling DSRs when the
1386         scheduler lock is > 1. This violates our original assumptions
1387         about how the scheduler lock worked with respect to DSR. 
1388
1389         * src/intr/intr.cxx (call_pending_DSRs): Added assert to check
1390         that DSRs are only called when the scheduler lock is exactly 1.
1391
1392 2000-10-13  Jesper Skov  <jskov@redhat.com>
1393
1394         * include/intr.hxx: Fixing syntax mistake; volatile keyword must
1395         appear after the type for it to affect the pointer variable.
1396         * src/intr/intr.cxx: Same. Remove volatile from local block.
1397
1398 2000-10-05  Jesper Skov  <jskov@redhat.co.uk>
1399
1400         * src/intr/intr.cxx: Made dsr_table_tail volatile as well.
1401         * include/intr.hxx: Ditto.
1402
1403 2000-10-05  Nick Garnett  <nickg@cygnus.co.uk>
1404
1405         * src/sched/sched.cxx: 
1406         * include/sched.hxx: Converted asr_inhibit from a bool to a
1407         counter. This is necessary to permit nesting of ASR inhibiting
1408         functions.
1409
1410 2000-10-04  Jesper Skov  <jskov@redhat.co.uk>
1411
1412         * include/intr.hxx: Made dsr_list volatile.
1413         * src/intr/intr.cxx: Same. Also fix compiler warning.
1414
1415 2000-09-25  Nick Garnett  <nickg@cygnus.co.uk>
1416
1417         * src/sched/mlqueue.cxx:
1418         Added test for current thread not runnable in
1419         Cyg_Scheduler_Implementation::timeslice().  This is possible if a
1420         prior DSR has caused the current thread to be descheduled. Added
1421         an assert to Cyg_ThreadQueue_Implementation::rotate() for
1422         additional paranoia. (This problem was originally identified and
1423         fixed (differently) by Andrew Lunn <andrew.lunn@ascom.ch>.)
1424
1425 2000-09-13  Jesper Skov  <jskov@redhat.com>
1426
1427         * tests/kexcept1.c (cause_exception): Use separate cause_fpe function.
1428         * tests/except1.cxx (cause_exception): Same.
1429
1430         * tests/kexcept1.c (cause_exception): Do not use division at all.
1431         * tests/except1.cxx (cause_exception): Same.
1432
1433         * tests/kexcept1.c (cause_exception): Do not cause div-by-zero.
1434         * tests/except1.cxx (cause_exception): Same.
1435
1436 2000-09-11  Jonathan Larmour  <jlarmour@redhat.com>
1437
1438         * cdl/instrument.cdl (CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER): 
1439         Bring this option back from the dead
1440
1441 2000-09-08  Nick Garnett  <nickg@cygnus.co.uk>
1442
1443         * include/sched.hxx:
1444         * include/sched.inl:
1445         Added Cyg_Scheduler::unlock_reschedule() function. This decrements
1446         the scheduler lock by one but also permits the current thread to
1447         be rescheduled if it ready to sleep, or there is a higher priority
1448         thread ready to run. This is to support use of various
1449         synchronization objects while the scheduler lock is claimed.
1450
1451         * src/sched/sched.cxx (unlock_inner): Modified precondition to
1452         allow for functionality of unlock_reschedule().
1453
1454         * src/sched/mlqueue.cxx:
1455         Now uses Cyg_SchedulerThreadQueue_Implementation for all runqueue
1456         pointers. It was using Cyg_ThreadQueue_Implementation in some
1457         places which meant we were trying to sort the run queues!
1458         Changed yield() so it can be called with the scheduler lock
1459         claimed.
1460         Changed Cyg_Scheduler_Implementation::timeslice() to rotate the
1461         queue itself rather than call yield(). The changes to yield() make
1462         it unsafe to call here any more.
1463
1464         * include/mlqueue.hxx (class Cyg_SchedulerThreadQueue_Implementation): 
1465         Made enqueue() member public.
1466         
1467         * include/mboxt2.inl:
1468         * src/common/thread.cxx: 
1469         * src/sync/mutex.cxx: 
1470         * src/sync/cnt_sem2.cxx: 
1471         Removed assertions for zero scheduler lock and replaced some
1472         invocations of Cyg_Scheduler::unlock() with
1473         Cyg_Scheduler::unlock_reschedule() or Cyg_Scheduler::reschedule()
1474         where appropriate.
1475
1476         * tests/klock.c:
1477         * cdl/kernel.cdl:
1478         Added klock.c to test functionality while scheduler lock is claimed.
1479
1480 2000-08-17  Hugo Tyson  <hmt@cygnus.co.uk>
1481
1482         * src/sched/sched.cxx (unlock_inner): Move an assert to some place
1483         where it's true *all* the time!  There was a narrow margin where a
1484         DSR could confuse unlock_inner() by reanimating the current thread
1485         before it had a chance to sleep - hence the call appears to be
1486         pointless.  Putting the assert before the DSR calls makes sense.
1487
1488         * include/mboxt.inl:
1489         * src/sync/bin_sem.cxx:
1490         * src/sync/cnt_sem.cxx:
1491         * src/sync/flag.cxx:
1492         * src/sync/mutex.cxx:
1493         All of these now use Cyg_Scheduler::reschedule() rather than an
1494         unlock/lock pair to yield in their functions which can sleep.
1495         They therefore can be called safely and atomically with the
1496         scheduler already locked.  This is a Good Thing[tm].  Since the
1497         network stack synch primitives now use this feature, the asserts
1498         that the scheduler was not locked must disappear: this change.
1499
1500
1501 2000-08-07  Jonathan Larmour  <jlarmour@redhat.co.uk>
1502
1503         * include/mutex.hxx (class Cyg_Mutex): Add comment explaining
1504         presence of locked.
1505
1506 2000-08-04  Jonathan Larmour  <jlarmour@redhat.co.uk>
1507
1508         * tests/stress_threads.c (STACK_SIZE_HANDLER): Increase stack sizes
1509         otherwise it crashes!
1510
1511 2000-07-31  Jonathan Larmour  <jlarmour@redhat.co.uk>
1512
1513         * include/mempolt2.hxx: As per change of 2000-07-04, also delete - left
1514         behind accidentally
1515
1516 2000-07-20  Nick Garnett  <nickg@cygnus.co.uk>
1517
1518         * include/mutex.hxx (class Cyg_Mutex): Added get_ceiling()
1519         accessor function.
1520
1521         * src/sched/mlqueue.cxx: Fixed bug in sorted queue code that
1522         resulted in an infinite loop if the thread being inserted is of
1523         lower priority than all threads in the queue. This case is now
1524         detected early.
1525
1526 2000-07-17  Gary Thomas  <gthomas@redhat.com>
1527
1528         * tests/kflag1.c (FIRST_THREAD_WAIT_TIME): Parameterize thread 
1529         synchronization wait times (for understanding) and adjust for
1530         incredibly slow platforms.  [Previous value allowed for the test
1531         to get out of sync because the code ran so slowly]
1532
1533 2000-07-04  Jonathan Larmour  <jlarmour@redhat.co.uk>
1534
1535         * cdl/kernel.cdl: Remove all configury related to memory allocators,
1536         including tests. Make CYGFUN_KERNEL_API_C require CYGFUN_MEMALLOC_KAPI
1537
1538         * include/memfixed.hxx, include/mempolt2.inl, include/mempoolt.hxx,
1539           include/mempoolt.inl, include/memvar.hxx, include/mfiximpl.hxx,
1540           include/mfiximpl.inl, include/mvarimpl.hxx, include/mvarimpl.inl, 
1541           src/mem/memfixed.cxx, src/mem/memvar.cxx, tests/kmemfix1.c,
1542           tests/kmemvar1.c, tests/memfix1.cxx, tests/memfix2.cxx,
1543           tests/memvar1.cxx, tests/memvar2.cxx:
1544         Move to separate memory allocator package CYGPKG_MEMALLOC
1545         
1546         * include/kapi.h, include/kapidata.h, src/common/kapi.cxx:
1547         Remove memory allocator functionality - now implemented in
1548         CYGPKG_MEMALLOC
1549
1550         * tests/dhrystone.c:
1551         Update configuration dependencies for new isoinfra design
1552         * tests/stress_threads.c:
1553         Likewise.
1554         Also fix early termination after DEATH_TIME_LIMIT so that 
1555         allocated resources are freed, and so more appropriate
1556         statistics are reported
1557         Also update to use mallinfo() interface to memory allocator
1558
1559 2000-06-23  Hugo Tyson  <hmt@cygnus.co.uk>
1560
1561         * include/kapi.h (cyg_scheduler_read_lock): New function, to
1562         return the value of the scheduler lock; this for implementing SPLX
1563         in the network stack.
1564
1565         * src/common/kapi.cxx (cyg_scheduler_read_lock): New function.
1566
1567 2000-06-20  Nick Garnett  <nickg@cygnus.co.uk>
1568
1569         * src/sched/mlqueue.cxx (Cyg_ThreadQueue_Implementation::enqueue):
1570         Rewrote code to insert threads into priority sorted queue. The
1571         original code could not cope with a queue all of whose members
1572         were lower priority than the new thread - it looped for ever. Also
1573         provided fast paths for common and easily detected cases such as
1574         adding to a single element queue and adding at the front. By
1575         taking these cases out early, we can also simplify the code to
1576         search the queue.
1577
1578 2000-06-16  Gary Thomas  <gthomas@redhat.com>
1579
1580         * cdl/kernel.cdl: Remove exception tests for CMA230 - not supported
1581         by hardware.
1582
1583 2000-06-16  Jesper Skov  <jskov@redhat.com>
1584
1585         * src/intr/intr.cxx (chain_isr): Only call default_isr if no isrs
1586         in the chain reacted to the interrupt.
1587
1588 2000-06-15  Nick Garnett  <nickg@cygnus.co.uk>
1589
1590         * include/mutex.hxx (class Cyg_Condition_Variable): Added an
1591         inline function, get_queue(), to return a pointer to the
1592         underlying thread queue. To be used mainly for comparing with a
1593         thread's current queue to decide whether it is waiting for a
1594         condition variable.
1595
1596         * include/kapi.h:
1597         * src/common/kapi.cxx: 
1598         Changed return type of cyg_semaphore_wait() to match existing
1599         behaviour of Cyg_Counting_Semaphore::wait().
1600         Changed return type of cyg_cond_wait() to match new behaviour of
1601         Cyg_Condition_Variable::wait().
1602
1603 2000-06-09  Nick Garnett  <nickg@cygnus.co.uk>
1604
1605         * include/mutex.hxx:
1606         * src/sync/mutex.cxx:
1607         Modified non-timeout condition variable wait() API to return
1608         cyg_bool. A true result indicates that the wait() terminated
1609         normally. A false result indicates that the wait() was terminated
1610         as a result of a release() or destroy operation. For most uses
1611         this distinction is irrelevant, but in some situations it is a
1612         useful bit of information to have.
1613         Also modified timeout condition variable wait to reacquire the
1614         mutex under all circumstances. This is the correct and consistent
1615         thing to do.
1616
1617 2000-06-08  Jesper Skov  <jskov@redhat.com>
1618
1619         * src/debug/dbg-thread-demux.c: Use generic HAL feature to allow
1620         ROM/RAM intercalling.
1621
1622 2000-06-06  Jesper Skov  <jskov@redhat.com>
1623
1624         * tests/kcache1.c (entry0): Skip invalidate tests on TX49. Too slow.
1625
1626 2000-05-30  Gary Thomas  <gthomas@redhat.com>
1627
1628         * tests/dhrystone.c: Increase number of test loops for faster
1629         StrongARM platforms.
1630
1631 2000-05-22  Jonathan Larmour  <jlarmour@redhat.co.uk>
1632
1633         * cdl/scheduler.cdl (CYGIMP_KERNEL_SCHED_SORTED_QUEUES): Disable by
1634         default
1635
1636         * src/sched/mlqueue.cxx (enqueue): Add to end of thread queue even
1637         when not priority ordered
1638
1639 2000-05-20  Jonathan Larmour  <jlarmour@redhat.co.uk>
1640
1641         * include/mqueue.hxx, include/mqueue.inl:
1642         Add POSIX-style message queue implementation
1643         
1644         * cdl/kernel.cdl: Add mqueue1 test
1645         * cdl/scheduler.cdl: Add new CYGIMP_KERNEL_SCHED_SORTED_QUEUES option
1646
1647         * include/sema.hxx: Need thread.inl header, not just thread.hxx
1648         Make Cyg_Counting_Semaphore::peek() const since it is
1649
1650         * src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, include/sema2.hxx:
1651         Make Cyg_Counting_Semaphore{2}::peek() const since it is
1652
1653         * include/thread.hxx: don't want Cyg_Thread_queue::empty() to be marked
1654         inline in the class def, otherwise we get warnings elsewhere
1655
1656         * include/mlqueue.hxx (Cyg_ThreadQueue_Implementation):
1657         Add set_thread_queue private method
1658         Add derived class Cyg_SchedulerThreadQueue_Implementation, and
1659         make scheduler implementation use it instead of
1660         Cyg_ThreadQueue_Implementation
1661         
1662         * src/mlqueue.cxx: Fix typo
1663         Support  CYGIMP_KERNEL_SCHED_SORTED_QUEUES, i.e. allow insertion
1664         into thread queue in order of thread priority, with oldest at the
1665         front
1666         (Cyg_ThreadQueue_Implementation::set_thread_queue): Add
1667         (Cyg_SchedulerThreadQueue_Implementation::enqueue): Add, like old
1668         one, except make it FIFO instead of LIFO by inserting at end of queue
1669
1670 2000-05-16  Jesper Skov  <jskov@redhat.com>
1671
1672         * tests/dhrystone.c: More loops on the TX49
1673
1674 2000-05-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
1675
1676         * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY): 
1677         Default to CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
1678
1679 2000-05-04  Jonathan Larmour  <jlarmour@redhat.co.uk>
1680
1681         * include/instrmnt.h: Remove all CYG_UNUSED_PARAMs as they could
1682         cause problems when used with volatile arguments
1683         * src/intr/intr.cxx: Use CYG_UNUSED_PARAM to silence warning that
1684         appears because of the above change.
1685
1686 2000-05-02  Gary Thomas  <gthomas@redhat.com>
1687
1688         * tests/kintr0.c:
1689         * tests/intr0.cxx: Correct test for cases when VSR_MIN or
1690         ISR_MIN are not zero (bad assumption).
1691
1692 2000-05-02  Jonathan Larmour  <jlarmour@redhat.co.uk>
1693
1694         * cdl/thread.cdl (CYGNUM_KERNEL_THREADS_DATA_LIBC): Don't need libc
1695         slot. Replace with CYGNUM_KERNEL_THREADS_DATA_ERRNO slot instead.       
1696
1697 2000-04-28  Nick Garnett  <nickg@cygnus.co.uk>
1698
1699         * src/sched/sched.cxx (unlock_inner):
1700         A significant change to the behaviour of this function.  The
1701         new_lock argument contains the value that the scheduler lock
1702         should have after this function has completed. If it is zero then
1703         the lock is being released and some extra work (running ASRs,
1704         checking for DSRs) is done before returning. If it is non-zero
1705         then it must equal the current value of the lock, and is used to
1706         indicate that we want to reacquire the scheduler lock before
1707         returning. This latter option only makes any sense if the current
1708         thread is no longer runnable, otherwise this function will do
1709         nothing.
1710
1711         The result of this is that where we used to "blip" the scheduler
1712         lock to force a sleep, we now call reschedule(), which calls
1713         unlock_inner() with the current sched_lock value. The important
1714         difference is that there is not now the brief window between the
1715         calls where the lock is unclaimed. It also prevents ASRs being run
1716         at inopportune moments. In future this will also allow us to force
1717         threads to sleep even when they are deeply nested in the scheduler
1718         lock.
1719
1720         * include/mutex.hxx:
1721         Added Cyg_Mutex::get_owner() to return pointer to owning thread.
1722         
1723         * include/sched.hxx:
1724         * include/sched.inl:    
1725         Added new_lock argument to unlock_inner(), added reschedule().
1726         Made set_asr_inhibit() and clear_asr_inhibit() available even when
1727         ASRs are disabled.
1728
1729         * include/mboxt.inl:
1730         * src/sync/bin_sem.cxx: 
1731         * src/sync/cnt_sem.cxx:
1732         * src/sync/flag.cxx: 
1733         * src/sync/mutex.cxx: 
1734         Converted instances of "blipping" the scheduler lock into calls to
1735         Cyg_Scheduler::reschedule(), which is better behaved. Some calls
1736         to set_asr_inhibit() and clear_asr_inhibit() also added in various
1737         places.
1738
1739 2000-04-26  Jesper Skov  <jskov@redhat.com>
1740
1741         * tests/kcache1.c: Also to flush testing with unified caches.
1742
1743 2000-04-26  Jesper Skov  <jskov@redhat.com>
1744
1745         * tests/clockcnv.cxx: 
1746         * tests/dhrystone.c: 
1747         Renamed 850 HAL package.
1748         
1749 2000-04-25  Jesper Skov  <jskov@redhat.com>
1750
1751         * tests/kcache1.c: Fixed cache check to also look for unified
1752         caches.
1753
1754 2000-04-19  Jesper Skov  <jskov@cygnus.co.uk>
1755
1756         * tests/clockcnv.cxx:
1757         * tests/dhrystone.c:
1758         Only a few laps around the block on the v850...
1759
1760 2000-04-13  Nick Garnett  <nickg@cygnus.co.uk>
1761
1762         * include/clock.hxx:
1763         * src/common/clock.cxx:
1764         Added Cyg_Alarm::get_times() member function to allow reading of
1765         trigger and interval values from an alarm.
1766
1767 2000-04-12  Nick Garnett  <nickg@cygnus.co.uk>
1768
1769         * include/sched.hxx:
1770         * src/sched/sched.cxx:
1771         Added ASR support.
1772
1773         * include/thread.hxx:
1774         Made Cyg_ThreadQueue::empty() an inline in class definition.
1775
1776         * src/common/thread.cxx:
1777         Added CYG_REPORT_FUNCTION() to Cyg_Thread::exit().
1778
1779         * include/kapidata.h:
1780         Brought thread structures up to date with kernel objects.
1781
1782         * cdl/thread.cdl: 
1783         * cdl/scheduler.cdl:
1784         Added ASR configuration, minor tidies.
1785
1786 2000-04-12  Gary Thomas  <gthomas@redhat.com>
1787
1788         * src/common/kapi.cxx (cyg_scheduler_safe_lock): 
1789         * include/kapi.h: Add 'cyg_scheduler_safe_lock()' function.
1790
1791 2000-04-12  Jesper Skov  <jskov@redhat.com>
1792
1793         * cdl/interrupts.cdl: 
1794         * cdl/scheduler.cdl: 
1795         * cdl/counters.cdl: 
1796         Don't let interfaces define anything.
1797         
1798 2000-04-07  Nick Garnett  <nickg@cygnus.co.uk>
1799
1800         * include/sched.hxx:
1801         * include/thread.inl: 
1802         * src/sync/mutex.cxx: 
1803         * src/sched/sched.cxx: 
1804         * src/common/thread.cxx: 
1805         General reorganization of priority inversion protocol support,
1806         addition of priority ceiling protocol.
1807
1808         * include/mlqueue.hxx:
1809         * src/sched/mlqueue.cxx: 
1810         Added timeslicing enable support.
1811
1812         * cdl/thread.cdl: 
1813         * cdl/synch.cdl:
1814         Reorganized priority inversion protocol configuration to permit
1815         different protocols and dynamic choice.  Added configuration for
1816         condition variables to use a user-specified mutex.
1817
1818         * cdl/scheduler.cdl:
1819         Added dynamic timeslicing enable option.
1820
1821         * include/kapidata.h:
1822         Adjusted to match changes in other header files.
1823
1824         * tests/mutex3.cxx: 
1825         * tests/sync3.cxx: 
1826         Modified these tests to match new priority inversion protocols
1827         configuration options.
1828         
1829 2000-03-28  John Dallaway  <jld@cygnus.co.uk>
1830
1831         * cdl/counters.cdl,
1832           cdl/interrupts.cdl,
1833           cdl/kernel.cdl,
1834           cdl/scheduler.cdl,
1835           cdl/synch.cdl,
1836           cdl/thread.cdl:
1837
1838         Adjust documentation URLs.
1839
1840 2000-03-27  Gary Thomas  <gthomas@redhat.com>
1841
1842         * tests/except1.cxx: 
1843         * tests/kexcept1.c: Avoid trying to generate data access errors
1844         on platforms that don't support them.
1845
1846         * tests/kcache1.c: Ignore test if no [data] caches defined.
1847
1848         * tests/stress_threads.c: Infer minimal configuration for platforms
1849         with small amount of memory (as opposed to platform special cases).
1850
1851 2000-03-27  Jesper Skov  <jskov@redhat.com>
1852
1853         * src/sync/mutex.cxx: 
1854         * src/sched/sched.cxx: 
1855         * src/common/thread.cxx: 
1856         * src/common/clock.cxx:
1857         Use cyg_bool instead of bool for check_this().
1858
1859         * tests/dhrystone.c: Requires CYGPKG_LIBC_MALLOC
1860
1861 2000-03-07  Jesper Skov  <jskov@redhat.com>
1862
1863         * tests/mutex3.cxx: Minor tweak from Hugo to allow reduced runtime
1864         on sims.
1865
1866 2000-02-29  Jonathan Larmour  <jlarmour@redhat.co.uk>
1867
1868         * src/debug/dbg-thread-demux.c:
1869         CYG_HAL_SPARCLITE_SLEB -> CYGPKG_HAL_SPARCLITE_SLEB
1870         Also fix a comment typo
1871
1872 2000-02-29  Jesper Skov  <jskov@redhat.com>
1873
1874         * tests/kcache1.c: Don't run last part of test on MIPS sim - it's
1875         very slow.
1876
1877 2000-02-25  Jesper Skov  <jskov@redhat.com>
1878
1879         * tests/dhrystone.c: 
1880         * tests/tm_basic.cxx: 
1881         Don't allow use of devices for diag output when running performace
1882         tests.
1883
1884 2000-02-17  Jonathan Larmour  <jlarmour@redhat.co.uk>
1885
1886         * include/pkgconf/kernel.h: Make
1887         CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE a cdl_component
1888         since it has children now
1889
1890 2000-02-17  Jesper Skov  <jskov@redhat.com>
1891         CR101202, CR902078
1892         * include/mvarimpl.inl: Avoid unlinking the list from the head
1893         during coalescing.
1894
1895 2000-02-11  Jesper Skov  <jskov@redhat.com>
1896
1897         * tests/dhrystone.c (PASSES): Reduced for MPC8xx targets.
1898
1899 2000-02-10  Jesper Skov  <jskov@redhat.com>
1900
1901         * tests/except1.cxx (except0_main): 
1902         * tests/kexcept1.c (except0_main):
1903         Also reclaim DATA_TLB_MISS vector if available.
1904
1905 2000-02-03  Jesper Skov  <jskov@redhat.com>
1906
1907         * src/sched/lottery.cxx (schedule): CYG_HAL_POWERPC_x->CYGPKG_...
1908
1909 2000-02-01  Jonathan Larmour  <jlarmour@redhat.co.uk>
1910
1911         * tests/tm_basic.cxx (NTEST_THREADS): Reduce further to fit on small
1912         targets
1913         (NMBOXES): Likewise
1914         (NCOUNTERS): Likewise
1915
1916         * src/common/clock.cxx: Rework last change - change types of
1917         clock_dsr_read and delta to unsigned instead
1918
1919 2000-01-31  Jonathan Larmour  <jlarmour@redhat.co.uk>
1920
1921         * src/common/clock.cxx (isr): Use HAL_CLOCK_LATENCY, not HAL_CLOCK_READ
1922         (dsr): Likewise
1923         
1924         * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY): 
1925         Copy configury for this option here from include/pkgconf/kernel.h - it
1926         was left behind by accident
1927
1928 2000-01-31 Simon FitzMaurice  <sdf@cygnus.co.uk>
1929   * cdl/*.cdl:
1930
1931   Adjust help URLs in line with new doc layout.
1932   
1933 2000-01-31  Jesper Skov  <jskov@redhat.com>
1934
1935         * tests/tm_basic.cxx: Use CYG_TEST_NA insetad of PASS when not
1936         applicable.
1937
1938 2000-01-28 Simon FitzMaurice  <sdf@cygnus.co.uk>
1939   * cdl/*.cdl:
1940
1941   Adjust help URLs in line with new doc layout.
1942   
1943 2000-01-26  Hugo Tyson  <hmt@cygnus.co.uk>
1944
1945         * include/clock.hxx (class Cyg_Clock): Add members to convert to
1946         and from this clock resolution and others.
1947
1948         * include/clock.inl (convert): New Cyg_Clock member.
1949
1950         * src/common/clock.cxx (construct_converter): New routine to
1951         factorize a rational (or very near neighbour) to help with clock
1952         tick conversions for a particular clock.
1953         (get_other_to_clock_converter):
1954         (get_clock_to_other_converter): Cyg_Clock member functions to
1955         construct converters to or from this clock, using above routine.
1956
1957         * tests/clockcnv.cxx: New file: test the clock converters.
1958
1959         * tests/PKGconf.mak (TESTS): Add clockcnv to the tests.
1960
1961         * cdl/kernel.cdl: Add clockcnv to the tests.
1962
1963 2000-01-20  Hugo Tyson  <hmt@cygnus.co.uk>
1964
1965         * cdl/synch.cdl
1966         (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY):
1967         Change this to an active_if on simple prio-inh.  Was broken.
1968
1969 2000-01-19  Hugo Tyson  <hmt@cygnus.co.uk>
1970
1971         * cdl/*.cdl: Add descriptions to a number of options &c which were
1972         lacking same, also tidied up other typos as noticed en passant.
1973         Also reorganized calculated opts about per-thread-data in
1974         thread.cdl; these are really for info only.
1975
1976 2000-01-19  Jesper Skov  <jskov@cygnus.co.uk>
1977         CR 902054
1978         * tests/stress_threads.c: Don't assert requested priority =
1979         allocated. Allow some flexibility of handler priorities.
1980
1981 2000-01-13  Hugo Tyson  <hmt@cygnus.co.uk>
1982
1983         * tests/mutex3.cxx (control_thread): Add a CYG_TEST_INIT();
1984         Whoops!
1985
1986 2000-01-11  Hugo Tyson  <hmt@cygnus.co.uk>
1987
1988         * cdl/kernel.cdl: Add new kernel test mutex3, put in to test
1989         RELAY prio inheritance extension.
1990
1991         * tests/mutex3.cxx: New test case.  It tests mutex prio
1992         inheritance - or not - in a multiple thread manner, depending only
1993         on delays and the clock, so it tests that scheduling does the
1994         right thing, rather than simply checking reported priorities.
1995
1996         * tests/PKGconf.mak: Add new kernel test mutex3, put in to test
1997         RELAY prio inheritance extension.
1998
1999 2000-01-11  Hugo Tyson  <hmt@cygnus.co.uk>
2000
2001         * cdl/synch.cdl: New config option added,
2002         (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).
2003
2004         * include/pkgconf/kernel.h: New config option added,
2005         (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).
2006         It is a child of ..._PRIORITY_INHERITANCE_SIMPLE and is really
2007         only there to turn off if you really want the old implementation.
2008
2009         * src/sync/mutex.cxx (unlock): Add call to
2010         Cyg_SchedThread::relay_priority() when relinquishing the mutex, in
2011         order to relay any raised priority to the new owner.  Also count
2012         the mutex we are waiting for as well as those held for correct
2013         recovery in the case of inheriting priority then being killed, for
2014         example.
2015
2016         * include/sched.hxx (class Cyg_SchedThread::relay_priority): New
2017         member function declared.
2018
2019         * src/sched/sched.cxx (Cyg_SchedThread::relay_priority): New
2020         member function to implement pass-it-on or "discovered ceiling"
2021         priority inheritance extension to the simple algorithm.  Also use
2022         get_current_priority() in Cyg_SchedThread::inherit_priority() to
2023         let this work.
2024
2025 2000-01-11  Hugo Tyson  <hmt@cygnus.co.uk>
2026
2027         * include/clock.hxx (class Cyg_Counter::counter): make the counter
2028         volatile, otherwise a busy-wait loop for the real time clock to
2029         change never completes.
2030
2031 1999-12-23  Hugo Tyson  <hmt@cygnus.co.uk>
2032
2033         * src/sched/sched.cxx (inherit_priority): Fix bug; inheriting a
2034         2nd time would overwrite the saved initial_priority, so
2035         disinheriting had no effect.
2036
2037 1999-12-13  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2038
2039         * tests/tm_basic.cxx (run_alarm_tests): Add new measurement of
2040         latency between alarm firing and thread resume
2041
2042 1999-12-13  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2043
2044         * cdl/kernel.cdl: Fix some minor mistakes in the lists of tests to
2045         build conditionally
2046
2047 1999-12-08  John Dallaway  <jld@cygnus.co.uk>
2048
2049         * cdl/kernel.cdl:
2050
2051         Conditionally build the tests 'stress_threads', 'kcache1' and
2052         'kcache2'.
2053
2054 1999-11-30  Hugo Tyson  <hmt@cygnus.co.uk>
2055
2056         * src/common/kapi.cxx (cyg_scheduler_lock, cyg_scheduler_unlock):
2057         assert good range for sched lock, and be defensive anyway.  This
2058         is in response to a long time taken to track down a "unlocked too
2059         many times" bug.
2060
2061 1999-11-24  Gary Thomas  <gthomas@cygnus.co.uk>
2062
2063         * tests/tm_basic.cxx: Size tests based on available resources,
2064         using MLT files.  Fall back if not available.
2065
2066 1999-11-22  Nick Garnett  <nickg@cygnus.co.uk>
2067
2068         * src/sched/bitmap.cxx (Cyg_Scheduler_Implementation::add_thread):
2069         Fixed typo in assertion, and moved it to a more useful place.
2070
2071 1999-11-03  John Dallaway  <jld@cygnus.co.uk>
2072
2073         * cdl/kernel.cdl: Define all tests.
2074
2075 1999-10-29  Gary Thomas  <gthomas@cygnus.co.uk>
2076
2077         * tests/PKGconf.mak: Enable cache tests for Cirrus Logic boards.
2078
2079 1999-10-27  John Dallaway  <jld@cygnus.co.uk>
2080
2081         * cdl/kernel.cdl:
2082
2083         Specify CYGPKG_KERNEL_TESTS in terms of testing
2084         source files.
2085
2086 1999-10-26  John Dallaway  <jld@cygnus.co.uk>
2087
2088         * cdl/kernel.cdl:
2089
2090         Define initial version of CYGPKG_KERNEL_TESTS for
2091         verification purposes.
2092
2093 1999-10-19  John Dallaway  <jld@cygnus.co.uk>
2094
2095         * cdl/kernel.cdl:
2096
2097         Define CDL options for package-specific CFLAGS.
2098
2099 1999-10-08  Jesper Skov  <jskov@cygnus.co.uk>
2100
2101         * tests/kcache1.c: Fix array size.
2102
2103         * src/sched/bitmap.cxx (add_thread): 
2104         * src/sched/mlqueue.cxx (add_thread): 
2105         Check for valid thread priority.
2106
2107 1999-10-07  John Dallaway  <jld@cygnus.co.uk>
2108
2109         * cdl/counters.cdl,
2110           cdl/interrupts.cdl,
2111           cdl/scheduler.cdl:
2112
2113         Specify radio buttons using CDL interfaces.
2114
2115 1999-10-06  Bart Veer  <bartv@cygnus.co.uk>
2116
2117         * cdl/scheduler.cdl:
2118         Make the schedulers mutually exclusive via a cdl_interface
2119
2120 1999-10-05  Jesper Skov  <jskov@cygnus.co.uk>
2121
2122         * tests/kcache1.c: Reduced memory footprint.
2123
2124 1999-09-25  Jesper Skov  <jskov@cygnus.co.uk>
2125
2126         * tests/stress_threads.c: Added date header and flush() calls.
2127
2128 1999-09-16  Hugo Tyson  <hmt@cygnus.co.uk>
2129
2130         * tests/tm_basic.cxx (run_mutex_tests): Must unlock mutices before
2131         destroying, given the change below.
2132
2133         * src/common/kapi.cxx (cyg_cond_destroy): Call the correct
2134         destructor.  As it happens, it didn't matter because all these
2135         destructors do is assert the queue is empty, and the queue is the
2136         2nd word in every case.
2137         (cyg_mutex_destroy): Call the destructor at all, so that
2138         assertions are made.
2139
2140 1999-09-13  Gary Thomas  <gthomas@cygnus.co.uk>
2141
2142         * src/intr/intr.cxx (call_pending_DSRs_inner): Add assert to check
2143         for valid DSR (before trying to use it).
2144
2145 1999-09-13  Jesper Skov  <jskov@cygnus.co.uk>
2146
2147         * tests/stress_threads.c: Print out malloc system info.
2148         (print_statistics): Fix buglet.
2149
2150 1999-09-10  Jesper Skov  <jskov@cygnus.co.uk>
2151
2152         * tests/stress_threads.c: Print out more info. Reduce dump
2153         frequency as test runs.
2154
2155 1999-08-25  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2156
2157         * include/pkgconf/kernel.h: Add missing close brace in
2158         CYGIMP_KERNEL_COUNTERS_CLOCK_LATENCY CDL.
2159
2160 1999-08-24  Nick Garnett  <nickg@cygnus.co.uk>
2161
2162         * tests/kcache1.c (entry0): Depending on architecture, set
2163         cyg_test_is_simulator for last two tests. Otherwise they take far
2164         too long and time out.
2165
2166 1999-08-23  Hugo Tyson  <hmt@cygnus.co.uk>
2167
2168         * tests/intr0.cxx (vsr0): 
2169         * tests/kintr0.c (vsr0): 
2170         Add a comment to the effect that vsr0() is NOT a valid VSR on any
2171         known platform; VSRs must be writ in assembler.  Customer
2172         requested this, the examples are rather confusing otherwise.
2173
2174 1999-08-23  Nick Garnett  <nickg@cygnus.co.uk>
2175
2176         * include/pkgconf/kernel.h:
2177         * src/common/clock.cxx:
2178         * tests/tm_basic.cxx:
2179         Added CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY to enable recording
2180         of DSR latency figures. Added code controlled by this option to
2181         clock and tm_basic. Also made interrupt latency measurement
2182         primarily dependent on CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY since
2183         whether HAL_CLOCK_LATENCY is defined is not sufficient.
2184
2185 1999-08-17  John Dallaway  <jld@cygnus.co.uk>
2186
2187         * cdl/counters.cdl, cdl/interrupts.cdl, cdl/scheduler.cdl:
2188
2189         Implement radio buttons using "FIXME radio" hack in
2190         description field for now.
2191
2192 1999-08-16  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2193
2194         * src/sload/sload.c: Rename AM32 to AM31
2195
2196 1999-08-12  Nick Garnett  <nickg@cygnus.co.uk>
2197
2198         * src/debug/dbg_gdb.cxx (dbg_make_threadref): Extended test for
2199         uninitialized thread pointer.
2200
2201 1999-07-29  Jesper Skov  <jskov@cygnus.co.uk>
2202
2203         * src/sync/mutex.cxx (lock): Removed assertion again. Not possible
2204         to determine if a violation wil cause a deadlock.
2205
2206 1999-07-27  Jesper Skov  <jskov@cygnus.co.uk>
2207
2208         * src/sync/mutex.cxx (lock): Added simple assertion check for
2209         deadlocks.
2210
2211         * tests/stress_threads.c: Only allow printf from main thread to
2212         prevent deadlocks.
2213
2214 1999-07-14  Hugo Tyson  <hmt@cygnus.co.uk>
2215
2216         * tests/kcache1.c (entry0): Also perform timing tests with
2217         HAL_DCACHE_INVALIDATE_ALL and/or HAL_ICACHE_INVALIDATE_ALL in the
2218         loop if provided by the HAL.  Invalidating the Data cache can
2219         spoil clock operation, so elapsed time appears to be 0.
2220
2221         * tests/kcache2.c (entry0): Replace the "if (0)" for having a
2222         copy-back cache with a proper test on a HAL macro.  Even though I
2223         couldn't actually get those parts of the test to work on the
2224         platform I'm currently working on.
2225
2226         * tests/PKGconf.mak (TESTS): Do build kcache1 and kcache2 for the
2227         ARM_EBSA285; it seems kosher.  kcache2 does absolutely nothing, of
2228         course.
2229         
2230 1999-07-09  Jesper Skov  <jskov@cygnus.co.uk>
2231         PR 20210, 20142
2232         * tests/stress_threads.c: Shifted thread priorities to make room
2233         for main() at priority 0.
2234
2235         Fixed indentation.
2236         
2237 1999-07-08  Jesper Skov  <jskov@cygnus.co.uk>
2238         PR 20244
2239         * tests/stress_threads.c: Changed cyg_user_start() to main()
2240         ensuring a bigger stack (it calls sprintf).
2241         Increased STACK_SIZE by 2kB for printf calls.
2242
2243 1999-06-30  Jesper Skov  <jskov@cygnus.co.uk>
2244
2245         * tests/dhrystone.c: Also NA-quit if CYGPKG_INFRA_DEBUG or
2246         CYGPKG_KERNEL_INSTRUMENT are enabled.
2247
2248 1999-06-23  Jesper Skov  <jskov@cygnus.co.uk>
2249         PR 20209
2250         * tests/dhrystone.c: Use fewer loops on ARM targets - they don't
2251         have a cache.
2252
2253 1999-06-22  Nick Garnett  <nickg@cygnus.co.uk>
2254
2255         * src/intr/intr.cxx (Cyg_Interrupt::chain_isr): Was testing the wrong
2256         macro for the default ISR. Fixed.
2257
2258         * src/common/clock.cxx (Cyg_RealTimeClock::isr): Add HANDLED bit
2259         to returned value.
2260
2261 1999-06-21  Jesper Skov  <jskov@cygnus.co.uk>
2262         PR 20209
2263         * tests/dhrystone.c: Don't run test on sims or synthetic target.
2264         Only run test when compiled with optimization.
2265
2266 1999-06-18  Jesper Skov  <jskov@cygnus.co.uk>
2267
2268         * tests/dhrystone.c: Added unsupported header.
2269
2270 1999-06-10  Hugo Tyson  <hmt@cygnus.co.uk>
2271
2272         * src/debug/dbg_gdb.cxx (dbg_threadinfo): Report counted sleep
2273         correctly; both COUNTSLEEP and SLEEPING are set.
2274
2275 1999-06-01  Hugo Tyson  <hmt@masala.cygnus.co.uk>
2276
2277         * src/debug/dbg_gdb.cxx (dbg_threadinfo): Make the thread state
2278         string a little more sensible when read as plain english.
2279
2280 1999-05-31  Jesper Skov  <jskov@cygnus.co.uk>
2281
2282         * tests/dhrystone.c: 
2283         * tests/PKGconf.mak (TESTS): 
2284         Added dhrystone test.
2285
2286         Updated to 2.1 from ftp.nosc.mil
2287         
2288 1999-05-27  Nick Garnett  <nickg@cygnus.co.uk>
2289
2290         * src/intr/intr.cxx (Cyg_Interrupt::chain_isr): Calls
2291         HAL_DEFAULT_ISR if it is defined and no chained ISRs have
2292         reported that they have handled the interrupt.
2293
2294         * src/debug/dbg_gdb.cxx (dbg_make_threadref): Fixed this routine
2295         so that it copes with a NULL thread object.
2296
2297 1999-05-27  Jesper Skov  <jskov@cygnus.co.uk>
2298
2299         * tests/stress_threads.c: Output stackmon status
2300         occasionally. Output (simple) run time.
2301
2302 1999-05-27  Jesper Skov  <jskov@cygnus.co.uk>
2303
2304         * tests/kcache1.c: Added handling of unified caches.
2305
2306 1999-05-26  Jesper Skov  <jskov@cygnus.co.uk>
2307
2308         * include/test/stackmon.h: Fixed some typos and thinkos.
2309
2310         * tests/tm_basic.cxx: Include new stackmon header.
2311
2312         * src/common/kapi.cxx: 
2313         * include/kapi.h: 
2314         Added kapi support for stackmon requirements.
2315         
2316         * include/stackmon.hxx:    [deleted]
2317         * include/test/stackmon.h: [added]
2318         Made stackmon safe to use from both C and C++.
2319
2320 1999-05-25  Jesper Skov  <jskov@cygnus.co.uk>
2321
2322         * tests/stress_threads.c (setup_death_alarm): Only compile when
2323         DEATH_TIME_LIMIT is defined.
2324
2325 1999-05-25  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2326
2327         * tests/except1.cxx: 
2328         * tests/intr0.cxx (intr0_main): 
2329         * tests/kexcept1.c: 
2330         * tests/kintr0.c (kintr0_main): 
2331         Change all mentions of CYG_HAL_TX39[_JMR3904] to
2332         CYG_HAL_MIPS_TX39[_JMR3904]
2333         
2334         * tests/kcache1.c: Use HAL_DCACHE_SYNC if possible
2335
2336 1999-05-20  Hugo Tyson  <hmt@cygnus.co.uk>
2337
2338         * tests/tm_basic.cxx (run_all_tests): Added some more stack stats
2339         output using stackmon.hxx; also fixed a BUG associated with the
2340         definition of stacks in testaux.hxx (within tests dir) that was
2341         making the main stack usage bogus.
2342
2343         * include/stackmon.hxx: new file, to ease printing stuff about
2344         stack usage, particularly of interrupt stacks and the idle
2345         thread.  It's not HAL specific, and it can apply to tests outside
2346         of the kernel, which is why it's in a public include-place.
2347         It just contains inline functions which define empty if there's no
2348         handle on the symbols available, so should be safe enough.
2349
2350 1999-05-18  Jesper Skov  <jskov@cygnus.co.uk>
2351
2352         * tests/stress_threads.c (main_program): Changed behavior of
2353         cyg_thread_delete caller.
2354
2355 1999-05-18  Hugo Tyson  <hmt@cygnus.co.uk>
2356
2357         * include/kapi.h (cyg_thread_delete): is now a boolean function to
2358         indicate success.  Failure is when the thread needs to run in
2359         order to become killed.
2360
2361         * src/common/kapi.cxx (cyg_thread_delete): Try killing the thread
2362         if necessary before deleting; only run the destructor if it was
2363         killed, and tell the caller so.
2364         (cyg_thread_kill): Back to the simpler version with no priority
2365         diddling; it's up to the called to determine that it _has_ died.
2366
2367         * src/common/thread.cxx (kill): Only perform the state-changes
2368         implied by kill if the thread has not already been killed;
2369         otherwise two kill()'s will remove a thread unconditionally,
2370         whether it's in the middle of a wait that needs tidying up or not.
2371         In other words, ensure idempotency.
2372         
2373 1999-05-17  Hugo Tyson  <hmt@masala.cygnus.co.uk>
2374
2375         * src/common/kapi.cxx (cyg_thread_kill): Up the priority of the
2376         killee to make it terminate *now* if we have priorities and they
2377         are not unique, otherwise asserts are likely with the bitmap
2378         scheduler.  Likewise in thread delete.  Condition out the bodies
2379         of the priority ops if the scheduler does not support priorities.
2380
2381 1999-05-16  Gary Thomas  <gthomas@cygnus.co.uk>
2382
2383         * src/intr/intr.cxx (call_pending_DSRs): 
2384         * include/intr.hxx: Change mechanism for defining HAL function
2385         to run DSRs.  This was a "weak" symbol with override, but is now
2386         a macro in <cyg/hal/hal_intr.h>.
2387
2388 1999-05-13  Nick Garnett  <nickg@cygnus.co.uk>
2389
2390         The following changes were all made in a branch and are now being
2391         merged:
2392         
2393     1999-05-06  Nick Garnett  <nickg@cygnus.co.uk>
2394
2395         * src/debug/dbg-thread-demux.c:
2396         Use dbg-thread-syscall.h from HAL rather than local version.
2397         Made dbg_thread_syscall_rmt_1() generic to all MIPS targets.
2398
2399         * src/debug/dbg-thread-syscall.h:
2400         Removed. Replaced by identical file in hal/common.
2401         
2402     1999-04-21  Nick Garnett  <nickg@cygnus.co.uk>
2403
2404         * include/pkgconf/kernel.h:
2405         Added CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.
2406         Changed CYGNUM_KERNEL_COUNTERS_RTC_PERIOD to the correct value for
2407         VR4300.
2408
2409         * include/instrmnt.h: Added CYG_INSTRUMENT_EVENT_THREAD_ENTER
2410         event.
2411
2412         * src/instrmnt/meminst.cxx (cyg_instrument): Added implementation
2413         of CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.
2414
2415         * src/common/thread.cxx: Added extra instrumentation point on
2416         thread entry.
2417
2418 1999-05-10  Jesper Skov  <jskov@cygnus.co.uk>
2419
2420         * tests/stress_threads.c (main_program): Added workaround for a
2421         few PRs.
2422
2423 1999-05-07  Jesper Skov  <jskov@cygnus.co.uk>
2424
2425         * src/common/kapi.cxx (cyg_scheduler_unlock, cyg_scheduler_lock):
2426         Make these simple calls to the scheduler.
2427
2428 1999-05-07  Jesper Skov  <jskov@cygnus.co.uk>
2429
2430         * tests/stress_threads.c (setup_death_alarm): Reduce run time on
2431         synthetic target.
2432
2433 1999-05-06  Jesper Skov  <jskov@cygnus.co.uk>
2434         
2435         * tests/stress_threads.c: Reversed priorities of agents.
2436
2437 1999-05-06  Jesper Skov  <jskov@cygnus.co.uk>
2438         PRs 20040, (20027), 19991
2439         * tests/stress_threads.c: Added main_thread handling resource
2440         deallocation and printing.
2441
2442 1999-04-27  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2443
2444         * tests/stress_threads.c: 
2445         If there aren't enough priorities, output an N/A, rather than
2446         stopping compilation with a #error
2447
2448 1999-04-28  Jesper Skov  <jskov@cygnus.co.uk>
2449         PR 19850
2450         * tests/stress_threads.c: Don't print text from alarm handler.
2451
2452 1999-04-28  Jesper Skov  <jskov@cygnus.co.uk>
2453         PR 19945 workaround
2454         * tests/kexcept1.c: 
2455         * tests/except1.cxx:
2456         Made NA to PowerPC SIM.
2457
2458 1999-04-27  Gary Thomas  <gthomas@cygnus.co.uk>
2459
2460         * tests/tm_basic.cxx: 
2461         Use/test 'cyg_thread_delete()' function.
2462         Add ability to compute statistics with first datum removed which
2463         can show up cache effects.
2464         Show thread stack usage.
2465
2466         Fix merge screwup :-(
2467
2468 1999-04-26  Hugo Tyson  <hmt@cygnus.co.uk>
2469
2470         * include/kapi.h: Add missing function cyg_thread_delete();
2471         otherwise there is no way in the C API to re-use thread memory
2472         safely.  It just calls the destructor of the Cyg_Thread class.
2473
2474         * src/common/kapi.cxx (cyg_thread_delete): Implement it.
2475
2476 1999-04-26  Hugo Tyson  <hmt@cygnus.co.uk>
2477
2478         * tests/stress_threads.c: Commit a better version for Mark since I
2479         happen to have it here; having addressed the main concern of my
2480         approval process.  It runs better in sims so long as the
2481         constructor execution isn't messed with, nor timeslicing nor
2482         priority inheritance.
2483
2484 1999-04-23  Mark Galassi  <rosalia@cygnus.com>
2485
2486         * tests/stress_threads.c (setup_death_alarm): shortened the
2487         simulator time by another factor of 10, hoping that it will not
2488         slow down nightly testing for simulator platforms too much.
2489         (perform_stressful_tasks): added writing of a bit pattern to the
2490         malloc()-ed spaces.  Also reduced stack requirements for threads.
2491
2492 1999-04-23  Hugo Tyson  <hmt@masala.cygnus.co.uk>
2493
2494         * src/common/timer.cxx (Cyg_Timer::activate): we must also disable
2495         the alarm when resetting it so as to remove it from its queue, so
2496         that the enable afterwards places it on the right queue instead of
2497         assuming that, being enabled, it's already there.  (if not
2498         enabling, the behaviour is unchanged and correct) This was
2499         detected by uITRON tests[cx]4, with some random perms including
2500         enable CYGIMP_KERNEL_COUNTERS_MULTI_LIST,
2501         value CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE {8}.
2502         The PR is 19475.
2503         
2504 1999-04-21  Hugo Tyson  <hmt@cygnus.co.uk>
2505
2506         * tests/bin_sem1.cxx (bin_sem1_main): Doh!  Use priorities 4 and 5
2507         for the two threads so that they are unique (with a bitmap
2508         scheduler, the threads had prios 0 and 1 resp, which causes an
2509         assert in the attempt to set thread 0's prio to 1, "prios not
2510         unique").  PR 19904.
2511
2512 1999-04-20  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2513
2514         * tests/kcache2.c: 
2515         Reduce iterations for time_ilock(), time_dlock(), and test_dzero()
2516         if a simulated environment is detected
2517         Fix for PR 19853
2518
2519 1999-04-19  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2520
2521         * tests/kill.cxx: Make delay ticks greater than 1 to prevent
2522         scheduling problems if the clock rolls over immediately
2523         Fix for PR 19516
2524
2525 1999-04-20  Mark Galassi  <rosalia@cygnus.com>
2526
2527         * tests/stress_threads.c: applied Hugo's patch to fix stack sizes.
2528  
2529 1999-04-19  Hugo Tyson  <hmt@cygnus.co.uk>
2530
2531         * tests/bin_sem1.cxx (bin_sem1_main): Add priorities to the
2532         threads so that they run sequentially like the tester expected.
2533         Otherwise simple timing, and shorter timeslicing, causes failure
2534         to be reported; likewise if the kernel happens not to run entry0
2535         first!
2536         (another checkin)
2537         (bin_sem1_main): Add conditional use of set_priority on
2538         CYGIMP_THREAD_PRIORITY as it should be.
2539
2540 1999-04-14  Jesper Skov  <jskov@cygnus.co.uk>
2541
2542         * src/debug/dbg_gdb.cxx: Fixed compiler warnings, cleaned up stub
2543         requirements (removed FIX ME).
2544
2545 1999-04-14  Gary Thomas  <gthomas@cygnus.co.uk>
2546
2547         * include/intr.hxx: 
2548         * src/intr/intr.cxx (call_pending_DSRs_inner): Rework calling of
2549         DSRs to allow calls from HAL code.  This will allow for proper
2550         use of a separate interrupt stack.
2551
2552 1999-04-14  Mark Galassi  <rosalia@cygnus.com>
2553
2554         * tests/PKGconf.mak: added an ifndef for the AEB-1 board so that
2555         stress_threads is only built conditionally.
2556
2557         * tests/stress_threads.c: added more config smarts suggested by
2558         Jesper for his configurations.
2559
2560 1999-04-13  Jesper Skov  <jskov@cygnus.co.uk>
2561         PR 19822
2562         * src/debug/dbg_gdb.cxx: Current thread's registers live in
2563         registers, not _registers.
2564
2565 1999-04-13  Mark Galassi  <rosalia@cygnus.com>
2566
2567         * tests/stress_threads.c: simple stressing of thread
2568         creation/deletion with some memory-intensive and alarm-based
2569         tasks.  This version is set so that it dies after DEATH_TIME_LIMIT
2570         seconds, currently set to 120.  #undef-ing DEATH_TIME_LIMIT makes
2571         the test run forever.  This is currently not working with the
2572         bitmap scheduler, probably for some simple reason, but I have not
2573         yet broken it down to see why.
2574
2575 1999-04-12  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2576
2577         * tests/except1.cxx: 
2578         * tests/kexcept1.cxx: 
2579         Remove now unnecessary tx39-specific setting of
2580         CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS VSR
2581         Part of cleanup for PR 19731
2582
2583 1999-04-09  Hugo Tyson  <hmt@cygnus.co.uk>
2584
2585         Generally: thread->to_queue_head() moves a thread to the head of
2586         whatever queue it is on, if relevant.  This is so that a thread
2587         can change priority and then put itself at the front of its new
2588         run queue instead of the end; otherwise it yields too, which may
2589         be undesirable.  Particularly for internal use of priorities in
2590         the uITRON compatibility layer.
2591
2592         * include/thread.hxx (class Cyg_Thread): to_queue_head(): new
2593         function. Define Cyg_Thread::rotate_queue() for all schedulers.
2594         Public inheritance of Cyg_ThreadQueue_Implementation.
2595
2596         * include/thread.inl (class Cyg_Thread): to_queue_head(): new
2597         function. Define Cyg_Thread::rotate_queue() for all schedulers.
2598
2599         * include/mlqueue.hxx (class Cyg_SchedThread_Implementation):
2600         to_queue_head(), ...ThreadQueue...::to_head(): new functions.
2601
2602         * src/sched/mlqueue.cxx (class Cyg_SchedThread_Implementation):
2603         to_queue_head(), ...ThreadQueue...::to_head(): new functions.
2604
2605         * include/bitmap.hxx (class Cyg_SchedThread_Implementation): 
2606         Add empty placeholders for rotate_queue() and to_queue_head() to
2607         maintain commonality of interface.
2608
2609 1999-04-08  Jesper Skov  <jskov@cygnus.co.uk>
2610         PR 19667
2611         * kernel/current/src/common/thread.cxx:
2612         Removed obsolete Cyg_Thread constructor.
2613
2614         * kernel/current/tests/testaux.hxx:
2615         * kernel/current/tests/thread0.cxx:
2616         * kernel/current/tests/thread1.cxx:
2617         Changed to use the new Cyg_Thread constructor.
2618
2619 1999-04-08  Jesper Skov  <jskov@cygnus.co.uk>
2620
2621         * src/common/kapi.cxx: Minor indentation fixes.
2622
2623 1999-04-07  Jesper Skov  <jskov@cygnus.co.uk>
2624         PR 19743
2625         * include/mfiximpl.inl (Cyg_Mempool_Fixed_Implementation): Moved
2626         argument assertions before the first use of the arguments.
2627
2628 1999-04-07  Hugo Tyson  <hmt@cygnus.co.uk>
2629
2630         * tests/kexcept1.c (except0_main): 
2631         * tests/except1.cxx (except0_main): 
2632         Use macro HAL_VSR_SET_TO_ECOS_HANDLER() if defined, to reset
2633         likely exception handler VSRs to eCos' default handlers - the
2634         target side equivalent to CYG_TEST_GDBCMD("handle SIGBUS nostop");
2635         The VSR may not be the eCos standard one in some implementations
2636         of cooperation with CygMon.
2637
2638 1999-03-31  Nick Garnett  <nickg@cygnus.co.uk>
2639
2640         * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
2641         Fixed value of this option for TX39 66MHz to correct number.
2642
2643 1999-03-25  Gary Thomas  <gthomas@cygnus.co.uk>
2644
2645         * tests/tm_basic.cxx: More adjustments to get clock latency correct.
2646         Some fine tuning of messages and layout to fit well within 80 columns.
2647
2648 1999-03-24  Nick Garnett  <nickg@cygnus.co.uk>
2649
2650         * include/pkgconf/kernel.h: Fixed an ifdef error.
2651
2652 1999-03-24  Gary Thomas  <gthomas@cygnus.co.uk>
2653
2654         * tests/tm_basic.cxx (NTEST_THREADS): Reduce # threads so test can
2655         build on smaller machines.  Also, only adjust timings by single
2656         "overhead" value instead of the more generous 2*overhead.
2657
2658         * src/common/clock.cxx: Clock latency measurement defaults to 'off'.
2659
2660 1999-03-23  Nick Garnett  <nickg@cygnus.co.uk>
2661
2662         * tests/kcache2.c: Reduced number of loops in time_ilock(). On the
2663         MN10300 and TX39 this caused the test to timeout in the testing
2664         farm.
2665
2666 1999-03-23  Gary Thomas  <gthomas@cygnus.co.uk>
2667
2668         * tests/tm_basic.cxx: 
2669         * src/common/clock.cxx: Add 'measure_clock_latency' boolean which
2670         is used to turn clock latency measurements on/off.
2671
2672 1999-03-23  Nick Garnett  <nickg@cygnus.co.uk>
2673
2674         * tests/tm_basic.cxx (run_all_tests): Changed initial delay from
2675         100 ticks to 2. This is adequate for the purpose of letting the
2676         clock get going, while 100 ticks was too long on simulators.
2677
2678 1999-03-23  Hugo Tyson  <hmt@cygnus.co.uk>
2679
2680         * tests/kcache1.c:
2681         * tests/kcache2.c:
2682         * tests/kclock1.c:
2683         * tests/kexcept1.c:
2684         * tests/kflag1.c:
2685         * tests/kmbox1.c:
2686         * tests/kmemfix1.c:
2687         * tests/kmemvar1.c:
2688         * tests/kmutex1.c:
2689         * tests/ksched1.c:
2690         * tests/ksem1.c:
2691         * tests/kthread0.c:
2692         * tests/thread0.cxx:
2693         Use CYGNUM_HAL_STACK_SIZE_TYPICAL instead of "4096" and include
2694         hal_arch.h where necessary to get it.
2695
2696 1999-03-22  Hugo Tyson  <hmt@cygnus.co.uk>
2697
2698         * include/thread.inl (attach_stack): 
2699         Fix typo in assert; missing comma.
2700
2701 1999-03-22  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2702
2703         * src/debug/dbg-thread-syscall.h: Update copyright
2704
2705 1999-03-22  Hugo Tyson  <hmt@cygnus.co.uk>
2706
2707         * include/thread.inl:
2708         * src/common/thread.cxx:
2709         * tests/kthread1.c:
2710         * tests/testaux.hxx:
2711         * tests/thread1.cxx:
2712         * tests/thread_gdb.c:
2713         * tests/tm_basic.cxx:
2714         Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
2715         CYGNUM_HAL_MINIMUM_STACK_SIZE.
2716         Except for stack checking and the idle thread stack which uses 
2717         CYGNUM_HAL_STACK_SIZE_MINIMUM.
2718
2719 1999-03-19  Nick Garnett  <nickg@cygnus.co.uk>
2720
2721         * tests/kcache1.c:
2722         * tests/kcache2.c:
2723         Made all CYG_INTERRUPT_STATE variables register variables. The
2724         value of this variable has to survive cache invalidation and does
2725         not in some testing permutations that are unoptimized.
2726         Fixes PR 19165.
2727
2728         * include/kapi.h: Type of cyg_tick_count_t changed to cyg_uint64.
2729         Response to PR 19320.
2730
2731 1999-03-19  Gary Thomas  <gthomas@cygnus.co.uk>
2732
2733         * tests/tm_basic.cxx: Much better analysis of clock interrupt times.
2734         Print average deviation instead of variance.  Also print "confidence"
2735         numbers which are a measure of "how likely" a particular number would
2736         be relative to the mean and min of the sample set.
2737
2738 1999-03-17  Gary Thomas  <gthomas@cygnus.co.uk>
2739
2740         * tests/tm_basic.cxx: Improve messages and layout.
2741         Better message for 'hardware clock tick' value.
2742
2743         * src/common/clock.cxx: Be more careful about clock latency delta
2744         values that are used/kept - some hardware can yield incorrect values.
2745
2746         * tests/testaux.hxx: Use HAL recommended stack size for default.
2747
2748 1999-03-16  Nick Garnett  <nickg@cygnus.co.uk>
2749
2750         * src/common/thread.cxx:
2751         Removed MIPS specific definition of idle_thread_stack[]. This is
2752         so it gets the benefit of the redefinition of
2753         CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE. This definition has also
2754         been made static, since the MIPS compiler would otherwise put it
2755         in the .data section.
2756
2757         * include/intr.hxx (class Cyg_Interrupt):
2758         Changed implementation of Cyg_Interrupt::interrupts_enabled() to
2759         test the value of disable_counter, rather than the hardware.
2760
2761 1999-03-15  Nick Garnett  <nickg@cygnus.co.uk>
2762
2763         * tests/kcache1.c:
2764         * tests/kcache2.c: 
2765         Added interrupt disables around cache operations. If these take
2766         too long, an inopportune interrupt can disrupt the cache contents,
2767         or result in the interrupt seeing an inconsistent world.
2768
2769 1999-03-15  Gary Thomas  <gthomas@cygnus.co.uk>
2770
2771         * tests/tm_basic.cxx: Improved and cleaned up messages overall.
2772
2773 1999-03-15  Jesper Skov  <jskov@cygnus.co.uk>
2774         PR 19504
2775         * tests/tm_basic.cxx: Kill created threads after mutex, mbox and
2776         semaphore tests.
2777
2778 1999-03-12  Hugo Tyson  <hmt@cygnus.co.uk>
2779
2780         * src/debug/dbg-thread-demux.c: 
2781         Only try handling the SPARClite-SLEB vector correctly if
2782         CYG_HAL_USE_ROM_MONITOR_CYGMON ie. we are talking with CygMon.
2783         Otherwise the code is wrong, but also not used.  No matter.
2784         
2785 1999-03-12  Hugo Tyson  <hmt@cygnus.co.uk>
2786
2787         * tests/kthread1.c: 
2788         * tests/thread1.cxx: 
2789         * tests/thread_gdb.c: 
2790         Deal with CYGNUM_HAL_MINIMUM_STACK_SIZE requirement.
2791
2792 1999-03-12  Gary Thomas  <gthomas@cygnus.co.uk>
2793
2794         * include/thread.inl (attach_stack): Add check/assert for minimum
2795         stack size (HAL defined)
2796
2797 1999-03-11  Hugo Tyson  <hmt@cygnus.co.uk>
2798
2799         * src/debug/dbg-thread-demux.c (patch_dbg_syscalls): 
2800         Use the correct vector table slot for SPARClite-SLEB; it's not 15
2801         on here, it's BSP_VEC_MT_DEBUG from the hal's hal_cygm.h
2802
2803 1999-03-11  Nick Garnett  <nickg@cygnus.co.uk>
2804
2805         * tests/testaux.hxx:
2806         Move definition of inline placement operator new outside of ifdef
2807         for NTHREADS so that it can be used by other code.
2808
2809         * tests/intr0.cxx:
2810         * tests/thread1.cxx:
2811         Make use of placement operator new rather than dynamic one in
2812         intr0. Removed duplicate definition from thread1.
2813
2814 1999-03-11  Jesper Skov  <jskov@cygnus.co.uk>
2815         PR 19472
2816         * tests/kill.cxx: Increased delays for the synthetic target.
2817
2818 1999-03-11  Jesper Skov  <jskov@cygnus.co.uk>
2819         PR 19468
2820         * tests/intr0.cxx (intr0_main): 
2821         * tests/kintr0.c (kintr0_main): 
2822         Only attach interrupt handlers to vectors not in use.
2823         
2824 1999-03-10  Jesper Skov  <jskov@cygnus.co.uk>
2825         PR 19368
2826         * src/sched/sched.cxx (start): Change the dependency for
2827         referencing the RTC to make its inclusion independent of scheduler
2828         choice.
2829
2830 1999-03-10  Jesper Skov  <jskov@cygnus.co.uk>
2831         PR 17357
2832         * src/intr/intr.cxx (attach): Assert that interrupt vector attach
2833         will succeed.
2834
2835 1999-03-10  Nick Garnett  <nickg@cygnus.co.uk>
2836
2837         * include/pkgconf/kernel.h:
2838         Changed names used to control clock frequency on TX39 target.
2839
2840 1999-03-08  Gary Thomas  <gthomas@cygnus.co.uk>
2841
2842         * src/sync/mutex.cxx: Allow 'Cyg_Condition_Variable::wait()'
2843         to be entered with the scheduler locked (and thsu exit in
2844         the same state).  This will allow for fully thread-safe use
2845         of 'Cyg_Condition_Variable::wait()'.
2846
2847 1999-02-26  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2848
2849         * tests/except1.cxx (except0_main): 
2850         * tests/kexcept1.c (except0_main): 
2851         Move CYG_TEST_GDBCMD back to being before CYG_TEST_INIT
2852
2853 1999-02-26  Jesper Skov  <jskov@cygnus.co.uk>
2854         PR 19283
2855
2856         * src/common/kapi.cxx: Changed cyg_exception_call_handler
2857         definition to be consistent with declaration.
2858
2859         * include/kapi.h: Change cyg_code_t to signed type.
2860
2861         * tests/except1.cxx (except0_main): 
2862         * tests/kexcept1.c (except0_main): 
2863         Init diag before making first output.
2864
2865 1999-02-26  Jesper Skov  <jskov@cygnus.co.uk>
2866         PR 19284
2867         * tests/mutex2.cxx (mutex2_main): Set priorities in a different
2868         order.
2869
2870 1999-02-25  Nick Garnett  <nickg@cygnus.co.uk>
2871
2872         * include/sched.hxx (class Cyg_Scheduler_Base):
2873         Added CYGBLD_ATTRIB_ASM_ALIAS(cyg_scheduler_sched_lock) to
2874         declaration of sched_lock member. This makes it have the given
2875         name in the object and assembler files. This in turn eliminates
2876         the need to have a C++ mangled name in the HAL.
2877
2878         * src/intr/intr.cxx:
2879         Cyg_Interrupt::detach() was not translating the vector to a table
2880         index correctly in the chained case. Fixed.
2881
2882 1999-02-24  Nick Garnett  <nickg@cygnus.co.uk>
2883
2884         * include/intr.hxx: 
2885         * src/intr/intr.cxx:
2886         Added an interrupt disable counter to
2887         Cyg_Interrupt::disable_interrupts() and
2888         Cyg_Interrupt::enable_interrupts().
2889
2890 1999-02-23  Nick Garnett  <nickg@cygnus.co.uk>
2891
2892         * include/pkgconf/kernel.h:
2893         Added support for 66MHz part.
2894
2895         * include/instrmnt.h:
2896         Added CYG_INSTRUMENT_EVENT_MUTEX_RELEASE and
2897         CYG_INSTRUMENT_EVENT_MUTEX_RELEASED. This should have been part of
2898         the 1999-02-22 checkin.
2899
2900 1999-02-23  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2901
2902         * tests/clock0.cxx, tests/clock1.cxx, tests/except1.cxx,
2903           tests/kcache1.c, tests/kcache2.c, tests/kclock0.c, tests/kclock1.c,
2904           tests/kexcept1.c, tests/kflag0.c, tests/kflag1.c, tests/kill.cxx,
2905           tests/kintr0.c, tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c,
2906           tests/kmutex0.c, tests/kmutex1.c, tests/ksched1.c, tests/ksem0.c,
2907           tests/ksem1.c, tests/kthread0.c, tests/kthread1.c, tests/thread1.cxx:
2908         Use CYG_TEST_NA() rather than CYG_TEST_PASS_FINISH() for tests that
2909         are not applicable for this configuration
2910
2911 1999-02-22  Nick Garnett  <nickg@cygnus.co.uk>
2912
2913         * include/kapi.h: 
2914         * include/mutex.hxx: 
2915         * src/sync/mutex.cxx: 
2916         * src/common/kapi.cxx: 
2917         * tests/mutex2.cxx:
2918         * tests/PKGconf.mak: 
2919         Added Kernel API support for thread release, which allows a thread
2920         to be broken out of any wait. Also added support for releasing all
2921         threads waiting to lock a mutex, both at C++ and Kernel API
2922         levels. Added a test program, mutex2, to test this fuctionality
2923         out.
2924         
2925 1999-02-20  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2926
2927         * include/except.hxx: 
2928         * include/kapidata.h
2929         Rename CYG_EXCEPTION_COUNT -> CYGNUM_HAL_EXCEPTION_COUNT in line
2930         with HAL changes
2931         Rename deliver_exception() -> cyg_hal_deliver_exception()
2932         QA improvements
2933
2934         * src/common/clock.cxx:
2935         Rename CYG_VECTOR_RTC -> CYGNUM_HAL_INTERRUPT_RTC in line with
2936         HAL changes
2937
2938         * src/common/except.cxx:
2939         Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in line
2940         with HAL changes
2941         Allow for CYGNUM_HAL_EXCEPTION_MIN != 0
2942         Rename deliver_exception() -> cyg_hal_deliver_exception()
2943         Add more tracing, and fix some existing
2944         QA improvements
2945
2946         * src/intr/intr.cxx:
2947         Rename CYG_ISR_* -> CYGNUM_HAL_ISR_* in line with HAL changes
2948         Add more tracing, and fix some existing
2949         QA improvements
2950
2951         * src/sched/bitmap.cxx:
2952         * src/sched/mlqueue.cxx:
2953         * src/sync/mutex.cxx:
2954         Add more tracing and fix some existing
2955         QA improvements
2956
2957         * tests/except1.cxx:
2958         * tests/kexcept1.c
2959         Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in line
2960         with HAL changes
2961         QA improvements
2962         Use new CYG_TEST_GDBCMD to tell GDB not to stop
2963         Remove special simulator case as it should now work
2964
2965         * tests/intr0.cxx:
2966         * tests/kintr0.c:
2967         Rename CYG_ISR/VSR_* -> CYGNUM_HAL_ISR/VSR_* in line
2968         with HAL changes
2969         QA improvements         
2970
2971 1999-02-16  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2972
2973         * tests/kexcept1.c (except0_main): Tell GDB to not stop on
2974         SIGBUS or SIGSEGV since we know we're going to cause an exception
2975
2976 1999-02-12  Hugo Tyson  <hmt@cygnus.co.uk>
2977
2978         * src/common/thread.cxx (idle_thread_stack): 
2979         Override CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE if
2980         CYGNUM_HAL_MINIMUM_STACK_SIZE demands it.
2981
2982         * include/pkgconf/kernel.h (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE):
2983         Document that this option can be overridden by HALs demands.
2984
2985 1999-02-11  Jesper Skov  <jskov@cygnus.co.uk>
2986
2987         * src/debug/dbg-thread-syscall.h: 
2988         * src/debug/dbg-thread-demux.c: 
2989         Added handling of dbg_scheduler_func calls.
2990
2991 1999-02-11  Nick Garnett  <nickg@cygnus.co.uk>
2992
2993         * include/kapi.h: 
2994         * src/common/kapi.cxx: 
2995         Added API support for per-thread data.
2996
2997         * include/kapi.h: 
2998         * src/common/kapi.cxx:
2999         * tests/ksem1.c: 
3000         * tests/tm_basic.cxx: 
3001         Changed arguments to Kernel C API semaphore functions to take
3002         cyg_count32 rather than cyg_ucount32. This makes them consistent
3003         with the underlying implementation and allows for negative counts
3004         in the future. Changed some tests to match.
3005         Fixes PR 17877.
3006
3007 1999-02-08  Jesper Skov  <jskov@cygnus.co.uk>
3008
3009         * tests/kexcept1.c (entry0): 
3010         * tests/except1.cxx (entry0): 
3011         Don't call cause_exception on SIMs.
3012
3013 1999-02-05  Jesper Skov  <jskov@cygnus.co.uk>
3014
3015         * src/common/clock.cxx (isr): Ignore a latency of 0 when finding
3016         min_clock_latency.
3017
3018 1999-02-04  Jesper Skov  <jskov@cygnus.co.uk>
3019         PR 19075
3020         * include/instrmnt.h: Slightly overdid the use of CYG_UNUSED_PARAM
3021         macros.
3022
3023 1999-02-04  Jesper Skov  <jskov@cygnus.co.uk>
3024
3025         * src/intr/intr.cxx:
3026         Make instrumentation macros always use the parameters to avoid
3027         compiler warnings.
3028
3029 1999-02-03  Jesper Skov  <jskov@cygnus.co.uk>
3030         PR 18075
3031         * tests/memfix1.cxx:
3032         * tests/kmemfix1.c:
3033         Make timing less sensitive.
3034         
3035 1999-02-02  Jesper Skov  <jskov@cygnus.co.uk>
3036
3037         * tests/bin_sem2.cxx: Fixed compiler warning.
3038
3039 1999-02-02  Jesper Skov  <jskov@cygnus.co.uk>
3040         PR 18971
3041         * tests/bin_sem2.cxx (bin_sem2_main): Reduce run time in SIM.
3042
3043 1999-02-01  Nick Garnett  <nickg@cygnus.co.uk>
3044
3045         * tests/kcache2.c: Added calls to HAL_DCACHE_SYNC() before all
3046         relevant calls to HAL_DCACHE_DISABLE(). This should have been done
3047         on 1999-01-25 where is was only done to one instance.
3048
3049 1999-02-01  Gary Thomas  <gthomas@cygnus.co.uk>
3050
3051         * tests/tm_basic.cxx: Adjust stack sizes for platforms with
3052         limited memory.
3053
3054 1999-01-28  Nick Garnett  <nickg@cygnus.co.uk>
3055
3056         * src/intr/intr.cxx: When using chained interrupts,
3057         interrupt_end() is passed NULL as the intr argument. If
3058         instrumentation is also enabled, the CYG_INSTRUMENT_INTR() calls
3059         will try to indirect through zero. Added ifdefs to avoid
3060         this. Also test intr for NULL before trying to post the DSR.
3061         Fixes PR 18771.
3062
3063 1999-01-28  Jesper Skov  <jskov@cygnus.co.uk>
3064
3065         * tests/tm_basic.cxx: Fixed strings.
3066
3067 1999-01-26  Hugo Tyson  <hmt@cygnus.co.uk>
3068
3069         * tests/kcache1.c (time0): Waste much less time if running in a
3070         simulator.  Do only 40 loops instead of 4000.
3071         In consequence the nasty meddling with MAX_STRIDE depending on
3072         HAL_xxx_SIM package definitions can go.
3073
3074 1999-01-26  Jesper Skov  <jskov@cygnus.co.uk>
3075         PR 18902
3076         * src/debug/dbg-thread-demux.c: Oops. Undid my change of 1999-01-21.
3077
3078 1999-01-25  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3079
3080         * src/common/except.cxx: Make global exception initialisation object
3081         be constructed at INTERRUPT priority
3082
3083 1999-01-25  Jesper Skov  <jskov@cygnus.co.uk>
3084         PR 18002
3085         * tests/thread_gdb.c: Ensure that there are enough priorities.
3086
3087 1999-01-25  Jesper Skov  <jskov@cygnus.co.uk>
3088         PR 18875
3089         * tests/tm_basic.cxx: Ensure that there are enough priorities.
3090
3091 1999-01-25  Nick Garnett  <nickg@cygnus.co.uk>
3092
3093         * tests/kcache2.c (test_dstore): Added call to HAL_DCACHE_SYNC()
3094         before disabling cache. On some architectures disabling the cache
3095         would cause the following call to do nothing.
3096         Fixes PR 18849.
3097
3098 1999-01-22  Jesper Skov  <jskov@cygnus.co.uk>
3099
3100         * tests/tm_basic.cxx: Don't run on Linux target.
3101
3102 1999-01-21  Hugo Tyson  <hmt@cygnus.co.uk>
3103         These changes are to get tests working with the SPARClite port; it
3104         doesn't do 8-byte register access unless it's properly aligned.
3105         
3106         * tests/philo.cxx (cyg_start): 
3107         Use tests/testaux.hxx to get new threads, to get the alignment
3108         required; see below.
3109
3110         * tests/thread2.cxx (thread2_main):
3111         Use tests/testaux.hxx to get new threads, to get the alignment
3112         required; see below.
3113
3114         * tests/tm_basic.cxx: 
3115         Larger stack for greedy processor.
3116
3117         * tests/testaux.hxx: 
3118         thread_obj[][] and stack[][] are now 8-byte aligned like certain
3119         processors require; Cyg_Thread contains cyg_tick_count which is
3120         64-bit so any "standalone" C++ object would be so aligned.  These
3121         dynamically allocated ones should be too.
3122
3123 1999-01-21  Jesper Skov  <jskov@cygnus.co.uk>
3124         PR 18747
3125         * tests/flag1.cxx: Increase delays/timeouts to prevent failure
3126         when configured with full trace logging.
3127
3128 1999-01-21  Jesper Skov  <jskov@cygnus.co.uk>
3129
3130         * src/debug/dbg-thread-demux.c: Removed PR 17327 workarounds.
3131
3132 1999-01-19  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3133
3134         * src/sched/sched.cxx (start): 
3135         CYG_REFERENCE_SYMBOL -> CYG_REFERENCE_OBJECT in line with
3136         cyg_type.h change
3137
3138 1999-01-19  Jesper Skov  <jskov@cygnus.co.uk>
3139         PR 18824
3140         * src/sync/mutex.cxx: 
3141         * include/pkgconf/kernel.h: Let
3142         CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT require
3143         CYGFUN_KERNEL_THREADS_TIMER.
3144
3145 1999-01-18  Nick Garnett  <nickg@cygnus.co.uk>
3146
3147         * src/debug/dbg-thread-demux.c (patch_dbg_syscalls): Added test
3148         for CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT in patch_dbg_syscalls().
3149
3150 1999-01-15  Gary Thomas  <gthomas@cygnus.co.uk>
3151
3152         * include/mvarimpl.inl (free): Memory list sort was incorrect.
3153
3154         * tests/PKGconf.mak (TESTS): Don't build cache tests on
3155         some platforms.
3156
3157 1999-01-15  Jesper Skov  <jskov@cygnus.co.uk>
3158         PR 18768
3159         
3160         * tests/kmbox1.c:
3161         * tests/mbox1.cxx:
3162         Increase delays used so the overhead of GDB packets doesn't make
3163         the tests fail.
3164
3165 1999-01-14  Jesper Skov  <jskov@cygnus.co.uk>
3166
3167         * src/sched/sched.cxx (start): Use new CYG_REFERENCE_SYMBOL macro.
3168
3169 1999-01-14  Nick Garnett  <nickg@cygnus.co.uk>
3170
3171         * src/debug/dbg_gdb.cxx: Extended return types to include success,
3172         fail and caller-do-it as required by msnyder.
3173
3174         * src/debug/dbg-thread-demux.c: Moved prototype of dbg_scheduler()
3175         to dbg-threads-api.h.
3176
3177 1999-01-13  Jesper Skov  <jskov@cygnus.co.uk>
3178
3179         * src/sched/sched.cxx (start): Better implementation of the
3180         real_time_clock reference.
3181
3182 1999-01-13  Jesper Skov  <jskov@cygnus.co.uk>
3183
3184         * include/pkgconf/kernel.h: Disable CYGSEM_KERNEL_SCHED_TIMESLICE
3185         in CYG_HAL_ROM_MONITOR magic.
3186
3187 1999-01-07  Jesper Skov  <jskov@cygnus.co.uk>
3188
3189         * include/pkgconf/kernel.h: Added RTC values for i386/Linux.
3190
3191
3192 1999-01-12  Nick Garnett  <nickg@cygnus.co.uk>
3193
3194         * src/debug/dbg-thread-demux.c:
3195         Changed API of patch_dbg_syscalls() to take a pointer to the start
3196         of the vector and insert several vectors.
3197
3198         * src/debug/dbg_gdb.cxx:
3199         Added dbg_scheduler() function to allow debuggers to lock and
3200         unlock the scheduler. This helps when stepping multithreaded code.
3201
3202         * include/sched.hxx:
3203         * include/sched.inl:
3204         Added Cyg_Scheduler::unlock_simple() to decrement the lock without
3205         rescheduling.
3206
3207 1999-01-05  Jesper Skov  <jskov@cygnus.co.uk>
3208         PR 18574
3209
3210         * src/sched/sched.cxx (start): Reference the real time clock to
3211         ensure it is included when linking.
3212
3213 1999-01-04  Jesper Skov  <jskov@cygnus.co.uk>
3214
3215         * tests/thread1.cxx:
3216         * tests/mbox1.cxx:
3217         * tests/kmbox1.c:
3218         * tests/kill.cxx:
3219         * tests/kflag1.c:
3220         * tests/kclock1.c:
3221         * tests/flag1.cxx:
3222         * src/common/thread.cxx:
3223         CYGFUN_KERNEL_THREADS_TIMER requires CYGVAR_KERNEL_COUNTERS_CLOCK
3224         so don't check for the latter explicitly.
3225
3226 1999-01-04  Jesper Skov  <jskov@cygnus.co.uk>
3227         PR 18573
3228
3229         * tests/thread1.cxx:
3230         * tests/mbox1.cxx:
3231         * tests/kmbox1.c:
3232         * tests/kflag1.c:
3233         * tests/flag1.cxx:
3234         Don't run tests that rely on delay() when delay() is only defined
3235         as an empty function.
3236
3237 1998-12-24  Bart Veer  <bartv@cygnus.co.uk>
3238
3239         * src/sync/mutex.cxx: 
3240         * src/sync/mbox.cxx: 
3241         * src/sync/flag.cxx: 
3242         * src/sched/sched.cxx: 
3243         * src/mem/memvar.cxx: 
3244         * src/mem/memfixed.cxx: 
3245         * src/common/thread.cxx: 
3246         * src/common/clock.cxx:
3247         * include/mempoolt.inl: 
3248         * include/mempolt2.inl: 
3249         * include/mboxt2.inl: 
3250         * include/mboxt.inl:
3251         check_this() member functions should now be const
3252
3253 1998-12-22  Nick Garnett  <nickg@cygnus.co.uk>
3254
3255         * include/instrmnt.h: Fixed casts for arguments to
3256         cyg_instrument() to work in C. Fixes PR 18413.
3257
3258 1998-12-21  Gary Thomas  <gthomas@cygnus.co.uk>
3259
3260         * include/pkgconf/kernel.h: Change AEB-1 clock scale.
3261
3262 1998-12-17  Gary Thomas  <gthomas@cygnus.co.uk>
3263
3264         * tests/tm_basic.cxx: Calculate system clock resolution
3265         based on 'CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION'
3266
3267 1998-12-16  Gary Thomas  <gthomas@cygnus.co.uk>
3268
3269         * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD): 
3270         Add support for new ARM AEB-1.
3271
3272 1998-12-16  Hugo Tyson  <hmt@masala.cygnus.co.uk>
3273
3274         * tests/intr0.cxx (intr0_main): 
3275         * tests/kintr0.c (kintr0_main): 
3276         Conditionally use a different interrupt vector number on tx39 when
3277         in the simulator (according to cyg_test_is_simulator) so that
3278         these tests execute correctly in simulators.
3279         
3280 1998-12-16  Jesper Skov  <jskov@cygnus.co.uk>
3281         PR 18546
3282
3283         * tests/kill.cxx (cyg_start): Do NOP test if required kernel
3284         functionality is disabled.
3285
3286 1998-12-15  Jesper Skov  <jskov@cygnus.co.uk>
3287
3288         * include/pkgconf/kernel.h: Changed
3289         CYGDBG_KERNEL_DEBUG_GDB_INCLUDE_STUBS to
3290         CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS.
3291
3292 1998-12-14  Jesper Skov  <jskov@cygnus.co.uk>
3293
3294         * tests/tm_basic.cxx: Made use of cyg_mbox_get() conditional on
3295         CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT.
3296
3297 1998-12-14  Jesper Skov  <jskov@cygnus.co.uk>
3298
3299         * tests/tm_basic.cxx: Added requirement for kernel RTC.
3300
3301 1998-12-11  Jesper Skov  <jskov@cygnus.co.uk>
3302
3303         * tests/kcache2.c: Added tests of three more macros.
3304
3305 1998-12-10  Jesper Skov  <jskov@cygnus.co.uk>
3306
3307         * tests/kcache2.c: Added tests of three more macros.
3308
3309 1998-12-10  Jesper Skov  <jskov@cygnus.co.uk>
3310
3311         * tests/PKGconf.mak: 
3312         * tests/kcache2.c: 
3313         Added new cache test.
3314
3315 1998-12-04  Nick Garnett  <nickg@cygnus.co.uk>
3316
3317         * include/intr.hxx:
3318         * src/intr/intr.cxx (cyg_interrupt_post_dsr): Added this function
3319         to allow functions in the HAL, which are always only in C, to call
3320         Cyg_Interrupt::post_dsr(). Have also returned post_dsr() to
3321         private parts of Cyg_Interrupt.
3322
3323 1998-12-04  Jesper Skov  <jskov@cygnus.co.uk>
3324
3325         * include/intr.hxx (class Cyg_Interrupt): Made post_dsr public so
3326         it can be called from HAL interrupt arbiters.
3327
3328 1998-12-04  Jesper Skov  <jskov@cygnus.co.uk>
3329
3330         * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3331         Set to the correct value for a 33.333MHz clock.
3332
3333 1998-12-02  Jesper Skov  <jskov@cygnus.co.uk>
3334
3335         * src/intr/intr.cxx (interrupt_end, chain_isr): Got rid of magic
3336         interrupt constants.
3337
3338 1998-11-30  Gary Thomas  <gthomas@cygnus.co.uk>
3339
3340         * include/pkgconf/kernel.h: Fix spelling of CYGVAR_KERNEL_COUNTERS_CLOCK
3341
3342 1998-11-25  Jesper Skov  <jskov@cygnus.co.uk>
3343
3344         * src/common/thread.cxx (check_this): Check that stack_ptr is
3345         within its limits.
3346
3347 Wed Nov 25 18:45:12 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3348
3349         * include/sched.inl (unlock) (lock): 
3350         * src/common/thread.cxx (thread_entry): 
3351         * src/sched/sched.cxx (unlock_inner): 
3352
3353         Ensure all accesses to sched_lock cannot be reordered by the
3354         optimiser
3355
3356 1998-11-24  Jesper Skov  <jskov@cygnus.co.uk>
3357
3358         * src/common/thread.cxx (thread_entry): Prevent scheduler lock
3359         from being released too early.
3360
3361 1998-11-23  Nick Garnett  <nickg@cygnus.co.uk>
3362
3363         * include/pkgconf/kernel.h: 
3364         * src/common/clock.cxx:
3365         Added CYGIMP_KERNEL_COUNTERS_SORT_LIST option to determine whether
3366         the alarm lists in counters are sorted or not.
3367
3368         * tests/tm_basic.cxx: Added a test for many alarms firing
3369         separately. 
3370
3371 1998-11-23  Jesper Skov  <jskov@cygnus.co.uk>
3372
3373         * tests/kcache1.c: Only run with stride 1 on SIMs.
3374
3375 1998-11-19  Gary Thomas  <gthomas@cygnus.co.uk>
3376
3377         * tests/tm_basic.cxx: Insure appropriate kernel configuration for
3378         building tool.  Needs at least kernel C API and multi-level scheduler.
3379
3380 1998-11-18  Gary Thomas  <gthomas@cygnus.co.uk>
3381
3382         * tests/tm_basic.cxx: Add interrupt latency support.  Print 
3383         results to 10ns accuracy.
3384
3385         * tests/PKGconf.mak: Add 'tm_basic' (the kernel timing test
3386         program) to list of built tests.
3387
3388         * src/intr/intr.cxx: Change usage of HAL_INTERRUPT_MASK to have
3389         trailing ';' to match similar macros.
3390
3391         * src/common/clock.cxx: 
3392         * include/pkgconf/kernel.h: Add CDL option 
3393         CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY used to define if interrupt
3394         latency measurements should be built into kernel.
3395
3396 1998-11-17  Jesper Skov  <jskov@cygnus.co.uk>
3397
3398         * include/pkgconf/kernel.h: Renamed CYG_HAL_POWERPC_MP860 to
3399         CYG_HAL_POWERPC_MPC860.
3400
3401
3402 1998-10-28  David Moore  <dsm@keema.cygnus.co.uk>
3403
3404         * include/pkgconf/kernel.h
3405         (CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION): Changed default value for
3406         MIPS simulator to be 0.01 secs instead of 0.001 seconds.
3407
3408 1998-10-28  Jesper Skov  <jskov@cygnus.co.uk>
3409
3410         * tests/kcache1.c (HAL_DCACHE_PURGE_ALL): Fixed compiler problem
3411         on PowerPC.
3412
3413 1998-10-27  Nick Garnett  <nickg@cygnus.co.uk>
3414
3415         * tests/kcache1.c:
3416         Added calls to HAL_DCACHE_PURGE_ALL() before each test.  Added
3417         local version of HAL_DCACHE_PURGE_ALL() if this is not supplied by
3418         the HAL.
3419
3420 1998-10-27  Hugo Tyson  <hmt@cygnus.co.uk>
3421
3422         * src/common/thread.cxx (wake): 
3423         Remove the thread unconditionally from any queue it was on; for we
3424         have just become not-asleep, so it must be OK.  (Bug was: it
3425         didn't happen in transit WAIT-SUSPEND -> SUSPEND, so synch object
3426         still believed the task was waiting on it).  PR#17998
3427
3428 1998-10-26  Jesper Skov  <jskov@cygnus.co.uk>
3429         PR 17527, PR 17837
3430
3431         * tests/kcache1.c: 
3432         * tests/kclock0.c: 
3433         * tests/kclock1.c: 
3434         * tests/clock1.cxx: 
3435         * tests/clock0.cxx: 
3436         Do N/A PASS when kernel real-time clock is configured out.
3437
3438 1998-10-26  Jesper Skov  <jskov@lassi.cygnus.co.uk>
3439         PR 17866
3440
3441         * include/pkgconf/kernel.h
3442         (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE): Doubled to prevent stack
3443         overruns on PowerPC.
3444
3445 1998-10-26  Jesper Skov  <jskov@cygnus.co.uk>
3446         PR 17987
3447
3448         * src/debug/dbg_gdb.cxx (dbg_threadinfo): Removed "more: <none>"
3449         output.
3450
3451 1998-10-23  John Dallaway  <jld@cygnus.co.uk>
3452
3453         * tests/tm_basic.cxx: Added basic timing test.
3454
3455 1998-10-23  Nick Garnett  <nickg@cygnus.co.uk>
3456
3457         * include/instrmnt.h:
3458         Improved documentation of cyg_instrument_enable() and
3459         cyg_instrument_disable().
3460
3461         * src/instrmnt/meminst.cxx:
3462         Added code to enable and disable whole groups of events.
3463
3464 1998-10-23  Jesper Skov  <jskov@lassi.cygnus.co.uk>
3465
3466         * include/generic-stub.h: Deleted. It was moved to hal common some
3467         time ago.
3468
3469 Fri Oct 23 04:45:12 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3470
3471         * tests/kcache1.c: 
3472         Remove forced warning of a warning which no longer applies
3473
3474 1998-10-22  Nick Garnett  <nickg@cygnus.co.uk>
3475
3476         * src/common/clock.cxx:
3477         Stop searching the alarm list when the current alarm is in the
3478         future in Cyg_Counter::tick().  Changed sense of comparison in
3479         Cyg_Counter::add_alarm() to sort alarms in ascending order.
3480
3481 Thu Oct 22 18:21:50 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3482
3483         * include/pkgconf/kernel.h: 
3484         Fix commenting within CDL "comments"
3485
3486 Thu Oct 22 17:25:45 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3487
3488         * include/pkgconf/kernel.h: 
3489         Remove CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER configuration
3490         option. For PR 17838
3491
3492 1998-10-21  Nick Garnett  <nickg@cygnus.co.uk>
3493
3494         * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3495         Changed value for JMR3904 board to 15360 which is correct for a
3496         24.576MHz board rather than 25MHz as before.
3497
3498         * src/common/thread.cxx:
3499         Exchanged stack_base and stack_size in idle thread constructor.
3500
3501 1998-10-20  Hugo Tyson  <hmt@cygnus.co.uk>
3502
3503         * tests/kflag1.c (kflag1_main): 
3504         Only mess with f2 if it exists, ie. CYGFUN_KERNEL_THREADS_TIMER.
3505
3506 1998-10-19  Mark Galassi  <rosalia@cygnus.com>
3507
3508         * include/pkgconf/kernel.h: updated the doc URL
3509
3510 1998-10-19  Hugo Tyson  <hmt@cygnus.co.uk>
3511
3512         * include/kapi.h: 
3513         * include/kapidata.h (struct cyg_flag_t): 
3514         * src/common/kapi.cxx: 
3515         Add flags (Cyg_Flag, kernel.../flag.hxx) to the C API.
3516
3517         * tests/PKGconf.mak (TESTS): 
3518         Add new tests for flags via the C API.
3519
3520         * tests/kflag0.c: 
3521         * tests/kflag1.c: 
3522         New tests (well, versions of the plain C++ versions flag0.cxx and
3523         flag1.cxx) for flags via the kernel C API.
3524         
3525 1998-10-19  Bart Veer  <bartv@cygnus.co.uk>
3526
3527         * include/pkgconf/kernel.h:
3528         Fixed description of clock resolution.
3529
3530 1998-10-17  Bart Veer  <bartv@cygnus.co.uk>
3531
3532         * include/pkgconf/kernel.h:
3533         Added a way of configuring the clock interrupt frequency.
3534
3535 Thu Oct 15 21:31:58 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3536
3537         * include/pkgconf/kernel.h:
3538         Allow kernel to be disabled now
3539
3540         * src/common/delete.cxx, src/common/memcpy.c, src/common/memset.c:
3541         Move these files to the infra package
3542
3543         * src/PKGconf.mak:
3544         Don't build the above files any more
3545
3546         Above changes are required for PR 17229
3547
3548 1998-10-15  Hugo Tyson  <hmt@masala.cygnus.co.uk>
3549
3550         * include/mempoolt.inl (Cyg_Mempoolt): 
3551         * include/mempolt2.inl (Cyg_Mempolt2): 
3552         Flesh out the destructors to awaken any waiting threads
3553         with reason Cyg_Thread::DESTRUCT to support uITRON
3554         create and delete of memory pool objects.
3555         Note that only template mempolt2 is actually used.
3556         
3557 Wed Oct 14 21:45:54 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3558
3559         * tests/thread_gdb.c: 
3560         Remove unnecessary inclusion of <cyg/kernel/diag.h>
3561
3562         * tests/kcache1.c: 
3563         Add a warning to expect the "function declaration isn't a
3564         prototype" warning from infra/diag.h
3565
3566 1998-10-14  Hugo Tyson  <hmt@cygnus.co.uk>
3567
3568         * src/common/thread.cxx (kill,reinitialize): 
3569         Do not refer to member timer unless CYGFUN_KERNEL_THREADS_TIMER is
3570         defined.
3571         
3572 1998-10-14  Nick Garnett  <nickg@cygnus.co.uk>
3573
3574         * src/debug/dbg-thread-demux.c:
3575         Now get dbg-threads-api.h from HAL.
3576
3577         * src/debug/dbg_gdb.cxx:
3578         Tidied up info sent back by dbg_threadinfo().
3579
3580         * src/common/thread.cxx:
3581         Changed constructor of idle thread to include initial priority and
3582         a thread name.
3583
3584         * include/pkgconf/kernel.h:
3585         Moved GDB stub configuration code out to hal.h.
3586
3587         * include/ktypes.h:
3588         Moved definition of CYG_LABEL_NAME() out to cyg_type.h.
3589
3590         * src/debug/PKGconf.mak:
3591         * src/debug/dbg-threads-api.h:
3592         * src/debug/generic-stub.c:
3593         * src/debug/stubrom.c:
3594         * src/debug/thread-packets.c:
3595         * src/debug/thread-pkts.h:
3596         These files have all be relocated to hal/common.
3597
3598 1998-10-14  Hugo Tyson  <hmt@cygnus.co.uk>
3599
3600         * include/thread.hxx (class Cyg_Thread): 
3601         Add public members get_stack_base(), get_stack_size() and
3602         get_stack_limit();
3603         Add private members add_to_list() and remove_from_list() to
3604         centralize handling of the CYGVAR_KERNEL_THREADS_LIST as it is
3605         known.
3606
3607         * include/thread.inl (class Cyg_Thread): 
3608         Add public members get_stack_base(), get_stack_size() and
3609         get_stack_limit();
3610
3611         * src/common/thread.cxx: 
3612         Add private members add_to_list() and remove_from_list() to
3613         centralize handling of the CYGVAR_KERNEL_THREADS_LIST as it is
3614         known.
3615         Tidy up the two constructors to use them.
3616         Add CYG_REPORT_RETURN()/_RETVAL(...) logging throughout.
3617         Tidy up reinitialize() to use the 6-argument constructor,
3618         thus preserving the thread name.
3619         Fix some bugs in the CYGVAR_KERNEL_THREADS_LIST stuff where
3620         re-adding a thread caused loops in the list, and the like.
3621         Fix bug in set_priority() when the thread is asleep but NOT on any
3622         queue, such as a plain counted_sleep().
3623
3624 1998-10-14  Jesper Skov  <jskov@cygnus.co.uk>
3625
3626         * src/debug/thread-packets.c: 
3627         * src/debug/dbg_gdb.cxx: 
3628         Don't include hal_stub.h unless it's really, really, really
3629         needed.
3630                 
3631 1998-10-14  Jesper Skov  <jskov@cygnus.co.uk>
3632
3633         * src/debug/dbg_gdb.cxx: Don't include hal_stub.h unless it's really
3634         needed.
3635
3636 1998-10-13  Jesper Skov  <jskov@cygnus.co.uk>
3637
3638         * src/debug/generic-stub.c: Added thread support. Renaming a few
3639         functions/variables to match the most recent libstub
3640         generic-stub.c.
3641         Use thread_get_register & thread_put_register when handling GDB
3642         register packets.
3643
3644         * src/debug/dbg_gdb.cxx (dbg_getthreadreg, dbg_getthreadreg):
3645         DTRT for current thread when CygMon is not configured.
3646         
3647         * src/debug/dbg_gdb.cxx (dbg_threadlist, dbg_getthreadreg,
3648         dbg_getthreadreg): return true/false rather than 0, 1, -1.
3649         
3650         * src/debug/dbg_gdb.cxx:
3651         * src/debug/dbg-threads-api.h: 
3652         Added dbg_currthread_id.
3653
3654 1998-10-08  Jesper Skov  <jskov@lassi.cygnus.co.uk>
3655
3656         * src/debug/generic-stub.c: 
3657         * src/debug/generic-stub.h: 
3658         Added control of interrupts.
3659         Removed unused functions set_debug_trap and initialize_stub.
3660         
3661 Tue Oct 13 17:36:29 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3662
3663         * src/test/tsttracc.c (cyg_start): 
3664         Replace CYG_REPORT_FUNCARGSVOID with the correct
3665         CYG_REPORT_FUNCARGVOID
3666
3667 1998-10-09  Hugo Tyson  <hmt@cygnus.co.uk>
3668
3669         * src/common/thread.cxx: 
3670         clear_timer() is a static which always affects the executing
3671         thread and none other.  Removed the "foo->" from various
3672         "foo->clear_timer()" calls to make this less confusing.
3673         Ditto set_timer().
3674         Changed a "clear_timer()" call to "timer.disable()" and added one
3675         so that they affect _this_ thread, the thread which is being
3676         kill()ed or reinitialize()d rather than the killer or the
3677         resuscitator.  Otherwise the alarm list can still get a loop in
3678         it when a thread's killed when waiting with a timeout and
3679         restarted soon enough.
3680         
3681 1998-10-08  Hugo Tyson  <hmt@cygnus.co.uk>
3682
3683         In general, these changes are to support create/delete of uITRON
3684         objects; this requires that an object can be destroyed whilst
3685         there are threads waiting on it, and that they shall be awoken
3686         with a specific return code.
3687
3688         * include/thread.hxx:
3689         Cyg_Thread::DESTRUCT added to wake reasons, to deal with an object
3690         being destroyed whilst a thread is waiting on it; it's handled in
3691         a manner very similar to release() and BREAK wake_reason.
3692         
3693         * src/common/thread.cxx: 
3694         thread_entry(): threads now exit() if the entry_point returns.
3695         Cyg_Thread() constructors now initialize wake_reason to NONE.
3696         reinitialize() clears any pending timeout before calling
3697         constructors.
3698         counted_sleep( [timeout] ) now both deal with the wake reason in
3699         general, and with DESTRUCT in particular.
3700         exit() now clears any pending timeout.
3701         kill() now force_resumes the thread first.
3702         kill() now does not explicitly remove the thread from any queue
3703         it's on; wake() does that for you anyway.
3704         delay() clears the timer just in case and handles DESTRUCT
3705         properly.
3706         DESTRUCT added to various switches for completeness.
3707
3708         The fixes to counted_sleep()[x2] and kill() are a bugfix for
3709         PR#17688.
3710
3711         * include/flag.hxx:
3712         * src/sync/flag.cxx:
3713         Add an argument, defaulting to 0, to the constructor which sets
3714         the initial flag value.
3715         Add handing of DESTRUCT wake reason.
3716         Add a destructor which wakes all threads with DESTRUCT
3717         wake_reason.
3718
3719         * include/mboxt2.inl:
3720         Add handing of DESTRUCT wake reason.
3721         Add a destructor which wakes all threads with DESTRUCT
3722         wake_reason.
3723
3724         * src/sync/cnt_sem2.cxx:
3725         Add handing of DESTRUCT wake reason.
3726         Add a destructor which wakes all threads with DESTRUCT
3727         wake_reason.
3728         Correct typo in logic for queueing a waiting thread in
3729         Cyg_Counting_Semaphore2::wait( cyg_tick_count abs_timeout ).
3730         This is a bugfix for PR#17687.
3731
3732         * include/mboxt.inl:
3733         * include/mempoolt.inl:
3734         * include/mempolt2.inl:
3735         * src/sync/bin_sem.cxx:
3736         * src/sync/cnt_sem.cxx:
3737         * src/sync/mutex.cxx:
3738         All these gain handling of the DESTRUCT wake_reason, that's all.
3739         
3740 1998-10-08  Gary Thomas  <gthomas@penang.cygnus.co.uk>
3741
3742         * include/pkgconf/kernel.h: 
3743         Add support for new architecture
3744
3745 1998-10-07  Nick Garnett  <nickg@cygnus.co.uk>
3746
3747         * tests/kcache1.c (entry0):
3748         Replaced CYG_TEST_FINISH() with CYG_TEST_PASS_FINISH().
3749
3750         * src/debug/dbg-thread-demux.c:
3751         Added dbg_thread_syscall_rmt_1() to save/set and restore the $gp
3752         register values when being called from Cygmon.
3753
3754 Sun Sep 27 20:12:15 1998  David Moore  <dsm@keema.cygnus.co.uk>
3755
3756         * include/mlqueue.hxx: 
3757         * include/bitmap.hxx: 
3758         Disallow more than 32 priority levels
3759         
3760         * include/pkgconf/kernel.h:
3761         Changed range of allowed levels from 64 to 32
3762
3763 1998-09-27  Nick Garnett  <nickg@cygnus.co.uk>
3764
3765         * tests/memfix2.cxx:
3766         Changed message to say "Fixed memory pool 2 OK" rather than
3767         "Variable memory pool 2 OK".
3768
3769 1998-09-26  Bart Veer  <bartv@cygnus.co.uk>
3770
3771         * include/intr.hxx (DSRs_pending):
3772         PR 17500: if DSR support is disabled completely then this inline
3773         function should not be defined at all.
3774
3775 1998-09-26  Nick Garnett  <nickg@cygnus.co.uk>
3776
3777         * tests/kcache1.c:
3778         Added this test program for cache API. Includes some performance
3779         testing.
3780
3781 1998-09-25  Nick Garnett  <nickg@cygnus.co.uk>
3782
3783         * src/debug/dbg_gdb.cxx:
3784         Removed some debugging code.
3785
3786         * tests/thread_gdb.c:
3787         Added this test program to allow for GDB thread support testing.
3788
3789 1998-09-25  Bart Veer  <bartv@cygnus.co.uk>
3790
3791         * include/pkgconf/kernel.h:
3792         The GDB thread support requires the kernel to keep track of all
3793         threads on a linked list. This is a separate option. An additional
3794         requires statement enforces the dependency.
3795         
3796 1998-09-25  Nick Garnett  <nickg@cygnus.co.uk>
3797
3798         * src/debug/dbg-thread-demux.c:
3799         Added include of <pkgconf/kernel.h>, removed debug code.
3800
3801 1998-09-24  Bart Veer  <bartv@cygnus.co.uk>
3802
3803         * src/debug/dbg-thread-demux.c (dbg_thread_syscall_rmt):
3804         PR 17327. If kernel gdb thread support is disabled, do not compile
3805         in the relevant cases in the rmt switch statement. This is a
3806         partial solution to the general problem of how the HAL, kernel,
3807         cygmon, and gdb interact.
3808
3809 1998-09-24  Nick Garnett  <nickg@cygnus.co.uk>
3810
3811         * src/common/clock.cxx (Cyg_RealTimeClock):
3812         Changed clock priority from zero to one, since it is now used to
3813         set the hardware interrupt priority.
3814
3815         * src/intr/intr.cxx:
3816         Cyg_Interrupt::chain_isr() now only calls interrupt objects that
3817         have the matching vector number.
3818         Call HAL_INTERRUPT_SET_LEVEL() when attaching interrupts using the
3819         priority passed in the constructor.
3820         Added call to HAL_TRANSLATE_VECTOR() for attaching chained
3821         interrupts.
3822
3823         * include/instrmnt.h (CYG_INSTRUMENT_EVENT_INTR_CHAIN_ISR):
3824         Added this event.
3825
3826 Thu Sep 24 11:07:12 1998  David Moore  <dsm@keema.cygnus.co.uk>
3827
3828         * tests/except1.cxx: 
3829         * tests/kexcept1.cxx: 
3830         Made exception tests detect when CYGPKG_KERNEL_EXCEPTIONS
3831         is disabled.
3832         
3833
3834 1998-09-22  Bart Veer  <bartv@cygnus.co.uk>
3835
3836         * include/pkgconf/kernel.h:
3837         Changed the kernel package from type bool to type dummy, since
3838         it is not yet possible to disable this package.
3839
3840 1998-09-20  Mark Galassi  <rosalia@cygnus.com>
3841
3842         * include/pkgconf/kernel.h: updated CDL doc strings.
3843         fixed some typos in my doc strings.
3844
3845 1998-09-18  Nick Garnett  <nickg@cygnus.co.uk>
3846
3847         * src/common/thread.cxx: 
3848         * include/thread.inl:
3849         Modified threads list from a LIFO stack to a ring so that we can
3850         add new ones to the end and present the threads to GDB in an order
3851         that more closely matches how it assigns thread ids.
3852         
3853 Wed Sep 16 19:11:22 1998  Hugo Tyson  <hmt@cygnus.co.uk>
3854
3855         * include/thread.inl (get_unique_id): 
3856         Move this declaration to before its first use, so that the user
3857         knows it is inline at the point of use.  Avoids a warning.
3858
3859 Wed Sep 16 08:49:48 1998  Jesper Skov  <jskov@cygnus.co.uk>
3860         PR 17269
3861  
3862         * src/common/except.cxx (Cyg_Exception_Control): Replaced
3863         CYGNUM_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.
3864  
3865         * include/kapidata.h (struct cyg_exception_conrol): Replaced
3866         CYG_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.
3867  
3868         * src/intr/intr.cxx:
3869         * include/intr.hxx (class Cyg_Interrupt): Replaced CYG_ISR_MAX+1
3870         with CYG_ISR_COUNT.
3871  
3872         * include/except.hxx: Replaced CYGNUM_EXCEPTION_COUNT with
3873         CYG_EXCEPTION_COUNT.
3874  
3875         * tests/kintr0.c: 
3876         * tests/intr0.cxx: Replaced CYG_ISR_MAX (bug!) with
3877         CYG_ISR_COUNT.
3878  
3879 Tue Sep 15 19:19:37 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3880
3881         * include/mboxt2.hxx:
3882         Add inclusion of thread.inl to silence warning
3883
3884         * tests/kexcept1.c:
3885         Insert void as parameter list of __default_exception_vsr() to
3886         silence warning
3887
3888 Tue Sep 15 19:16:52 1998  David Moore  <dsm@keema.cygnus.co.uk>
3889
3890         * src/sched/sched.cxx: Cleaned up comments.
3891
3892 1998-09-15  Nick Garnett  <nickg@cygnus.co.uk>
3893
3894         * src/debug/dbg-thread-demux.c:
3895         Stubbed out led() function.
3896
3897         * src/debug/dbg_gdb.cxx:
3898         Decide whether to byteswap thread id depending on reported byte
3899         order of target.
3900         Many small changes to debug code.
3901
3902         * include/thread.inl (init_context):
3903         Changed CYG_DEBUG to CYGPKG_INFRA_DEBUG.
3904
3905 Tue Sep 15 09:35:14 1998  Jesper Skov  <jskov@cygnus.co.uk>
3906         PR 17236
3907
3908         * src/common/clock.cxx (add_alarm): A retriggering alarm called
3909         with a trigger time in the past or now will be assigned a new
3910         trigger time. Don't find the counter list until the final trigger
3911         time is known.
3912         Also added a few #else error statements to catch a situation where
3913         no CYGIMP_KERNEL_COUNTERS_x_LIST implementation config is
3914         selected.
3915         
3916         * tests/clock0.cxx: Added extra ASSERT to ensure alarms enabled
3917         with a trigger time of now or in the past actually fire.
3918         * tests/kclock0.c: Same.
3919         
3920 1998-09-15  Bart Veer  <bartv@cygnus.co.uk>
3921
3922         * include/pkgconf/kernel.h:
3923         Cleaning up coonfiguration data (mostly improving the
3924         descriptions). 
3925
3926 Mon Sep 14 11:08:59 1998  Jesper Skov  <jskov@lassi.cygnus.co.uk>
3927         PR 17230
3928
3929         * include/pkgconf/kernel.h: CYGIMP_KERNEL_INTERRUPTS_CHAIN
3930         requires CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN.
3931
3932 1998-09-14  Mark Galassi  <rosalia@cygnus.com>
3933
3934         * include/pkgconf/kernel.h: started adding CDL doc fields.
3935
3936 1998-09-12  Bart Veer  <bartv@cygnus.co.uk>
3937
3938         * include/pkgconf/kernel.h: 
3939         Sort out exception handling options (PR 16953)
3940         Added missing descriptions (PR 17184)
3941
3942 Fri Sep 11 19:18:28 1998  Hugo Tyson  <hmt@masala.cygnus.co.uk>
3943
3944         * include/clock.hxx (class Cyg_Alarm): 
3945         * src/common/clock.cxx (Cyg_Alarm::add_alarm): 
3946         PR#17182
3947         Move the code to synchronize a repeating alarm which had been
3948         firing in the dim and distant past with times in the future, which
3949         had been inline in Cyg_Alarm::enable(), into a function of its
3950         own, Cyg_Alarm::synchronize().  Call it from Cyg_Alarm::enable()
3951         and also from add_alarm() when the immediate time to fire is now
3952         or in the past; otherwise an initial time of, say, NOW-10 with an
3953         interval of 5 would just get lost.  Also corrected/commented the
3954         logic there to allow an alarm's handler to cancel itself.
3955         
3956 Wed Sep  9 17:43:26 1998  Hugo Tyson  <hmt@cygnus.co.uk>
3957
3958         * src/common/delete.cxx: 
3959         Control the provision of empty delete functions rather better, via
3960         an explicit option from the libc package.  Read the rather lengthy
3961         comment in delete.cxx for the explanation.
3962         Also note that the correct place for this functionality is in the
3963         infrastructure, and the same should be done for the C++ new
3964         functions also.
3965
3966 1998-09-09  Nick Garnett  <nickg@cygnus.co.uk>
3967
3968         * src/common/thread.cxx:
3969         combined separate next_unique_id variables in both constructors.
3970         This would have caused duplicate thread ids to be generated.
3971
3972         * include/thread.inl:
3973         Added code to initialize Cyg_HardwareThread::saved_context.
3974
3975         * src/debug/dbg-thread-demux.c: 
3976         * src/debug/dbg_gdb.cxx:
3977         Many changes to get thread API working with Cygmon. Debug code
3978         currently left in place until complete testing is possible.
3979
3980 Tue Sep  8 17:17:32 1998  Hugo Tyson  <hmt@cygnus.co.uk>
3981
3982         * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3983         Set up a sensible default RTC for CYG_HAL_MN10300_SIM different
3984         from that for the MN103002 or CYG_HAL_MN10300_STDEVAL1, so that
3985         sim tests run in less than geological time.  This is the same as
3986         the default value of before.
3987
3988 Fri Sep  4 18:25:02 1998  Hugo Tyson  <hmt@cygnus.co.uk>
3989
3990         * src/sched/mlqueue.cxx (timeslice): 
3991         * src/sched/sched.cxx (unlock_inner): 
3992         Condition out the tracing macros here by default, for tracing
3993         these consumes the whole quantum.
3994         
3995 1998-09-04  Bart Veer  <bartv@cygnus.co.uk>
3996
3997         * include/pkgconf/kernel.h:
3998         Commented out the ROM monitor-specific option settings for now.
3999         
4000         * tests/kclock1.c: 
4001         * include/pkgconf/kernel.h: 
4002         * include/kapidata.h (struct cyg_counter): 
4003         Fixed typos in configuration option names.
4004         
4005 1998-09-03  David Moore  <dsm@cygnus.co.uk>
4006
4007         * include/pkgconf/kernel.h
4008         (CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE):
4009         Fixed typo in configuration option name.
4010
4011         * src/intr/intr.cxx:
4012         Fixed typo in configuration option name.
4013         Fixed cast to incorrect type.
4014         
4015 1998-09-03  Nick Garnett  <nickg@cygnus.co.uk>
4016
4017         * src/PKGconf.mak (COMPILE): 
4018         Added debug/dbg-thread-demux.c to COMPILE list.
4019         
4020         * src/debug/dbg_gdb.cxx (dbg_threadinfo): 
4021         Added first cut at providing thread state string.
4022         
4023         * src/debug/dbg-thread-syscall.h: 
4024         * src/debug/dbg-thread-demux.c: 
4025         Added these two files to implement the interface between Cygmon
4026         and eCos.
4027         
4028 1998-09-03  Bart Veer  <bartv@cygnus.co.uk>
4029
4030         * include/pkgconf/kernel.h (CYGSEM_KERNEL_MEMORY_COALESCE): 
4031         * include/mvarimpl.inl (Cyg_Mempool_Variable_Implementation): 
4032         Fixed typo in configuration option name.
4033         
4034         * include/pkgconf/kernel.h:
4035         Fixed type in configuration option name.
4036
4037 Wed Sep  2 19:01:02 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4038
4039         * include/mboxt.hxx:
4040         * include/mboxt.inl:
4041         * include/mboxt2.hxx:
4042         * include/mboxt2.inl:
4043         * include/mempolt2.hxx:
4044         * include/mempolt2.inl:
4045         * include/mempoolt.hxx:
4046         * include/mempoolt.inl:
4047         * include/sema2.hxx:
4048         * src/sync/cnt_sem2.cxx:
4049         * include/flag.hxx:
4050         * src/sync/flag.cxx:
4051         * include/kapi.h:
4052         * src/common/kapi.cxx:
4053         * tests/kmbox1.c:
4054         * tests/kmemfix1.c:
4055         * tests/kmemvar1.c:
4056         * tests/mbox1.cxx:
4057         * tests/memfix1.cxx:
4058         * tests/memvar1.cxx:
4059         Memory pool (both types) and message boxes (both types) and flags
4060         and cnt_sem2-type semaphores now all have absolute timeouts
4061         instead of relative ones in the timely wait functions.
4062         uITRON has changed to add the current time itself.
4063         Kapi changes are mainly name changes to make it clear that
4064         timeouts are now absolute.
4065         The tests (incl. kapi) add in the time themselves now.
4066         
4067 1998-09-01  Tim Goodwin  <tgoodwin@cygnus.co.uk>
4068
4069         * include/kapi.h:
4070         * src/common/kapi.cxx:
4071         * tests/kclock1.c:
4072         * tests/kexcept1.c:
4073         * tests/kmbox1.c:
4074         * tests/kmemfix1.c:
4075         * tests/kmemvar1.c:
4076         * tests/kmutex1.c:
4077         * tests/ksched1.c:
4078         * tests/ksem1.c:
4079         * tests/kthread0.c:
4080         * tests/kthread1.c:
4081         * src/test/kcache1.c:
4082         * src/test/kphilo.c:
4083         * tests/kphilo.c:
4084         * tests/lottery.c:
4085         Changes to cyg_thread_create() interface.
4086
4087 Tue Sep  1 18:49:06 1998  Hugo Tyson  <hmt@masala.cygnus.co.uk>
4088
4089         * include/pkgconf/kernel.h: 
4090         Moved and renamed CYG_DIAG_USE_DEVICE to infra and to
4091         CYGDBG_INFRA_DIAG_USE_DEVICE; kernel.h now includes infra.h as
4092         well as hal.h to ensure all its clients get the info too.
4093         
4094         * include/intr.hxx (class Cyg_Interrupt): 
4095         Add static member interrupts_enabled() to poll the current status;
4096         just to avoid calling the HAL directly, really.
4097
4098         * include/diag.h: 
4099         Now just includes cyg/infra/diag.h, so that kernel-specific
4100         features can be added later - original diag.h has moved to infra,
4101         and is that includee.
4102
4103         * src/PKGconf.mak: 
4104         Trace folder and its contents elided, now in infra.
4105
4106         * src/trace/diag.c:
4107         * src/trace/fancy.cxx:
4108         * src/trace/null.cxx:
4109         * src/trace/simple.cxx:
4110         * src/trace/tcdiag.cxx:
4111         Deleted; all moved to infra, actually.
4112
4113 1998-09-01  Nick Garnett  <nickg@cygnus.co.uk>
4114
4115         * src/debug/dbg-threads-api.h: 
4116         * src/debug/dbg_gdb.cxx:
4117         Converted threadref from long long to char[8] as defined by Cygmon
4118         guys.
4119
4120         * src/common/thread.cxx:
4121         Added scheduler lock around manipulations of thread list.
4122
4123         * include/except.hxx:
4124         Now use CYG_EXCEPTION_COUNT to size handler arrays.
4125
4126 Mon Aug 31 17:53:12 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4127
4128         * include/memfixed.hxx, include/mempolt2.hxx, include/mempolt2.inl,
4129           include/mempoolt.hxx, include/mempoolt.inl, include/memvar.hxx,
4130           include/mvarimpl.hxx, include/mvarimpl.inl, src/mem/memfixed.cxx,
4131           src/mem/memvar.cxx:
4132         
4133         Add new get_allocation_size() method to return the size of a
4134         previously allocated block - trivial for fixed block allocator, and
4135         requiring a bit of poking around for the variable block allocator.
4136
4137         This is required for the C library realloc() implementation. Strictly
4138         this only uses the variable block allocator, but the API can only be
4139         enhanced by also updating the template. As a result, this also meant
4140         doing it for the fixed block allocator. 
4141
4142 Mon Aug 31 09:51:37 1998  Jesper Skov  <jskov@cygnus.co.uk>
4143
4144         * src/debug/stubrom.c (cyg_start): Renamed from main().
4145
4146 Mon Aug 31 09:00:01 1998  Jesper Skov  <jskov@cygnus.co.uk>
4147
4148         * src/common/thread.cxx: Fixed typo.
4149
4150 1998-08-28  Bart Veer  <bartv@cygnus.co.uk>
4151
4152         * include/pkgconf/kernel.h, include/bitmap.hxx, include/clock.hxx,
4153           include/except.hxx, include/flag.hxx, include/instrmnt.h,
4154           include/intr.hxx, include/kapi.h, include/kapidata.h,
4155           include/mbox.hxx, include/mboxt.hxx, include/mboxt.inl,
4156           include/mboxt2.hxx, include/mboxt2.inl, include/memfixed.hxx,
4157           include/mempolt2.hxx, include/mempolt2.inl,
4158           include/mempoolt.hxx, include/mempoolt.inl, include/memvar.hxx,
4159           include/mlqueue.hxx, include/mutex.hxx, include/mvarimpl.inl,
4160           include/sched.hxx, include/sema.hxx, include/sema2.hxx,
4161           include/thread.hxx, include/thread.inl,
4162           include/pkgconf/kernel.h:
4163           src/common/clock.cxx, src/common/except.cxx,
4164           src/common/kapi.cxx, src/common/thread.cxx,
4165           src/debug/dbg_gdb.cxx, src/debug/generic-stub.c,
4166           src/instrmnt/meminst.cxx, src/instrmnt/nullinst.cxx,
4167           src/intr/intr.cxx, src/mem/memfixed.cxx, src/mem/memvar.cxx,
4168           src/sched/bitmap.cxx, src/sched/lottery.cxx,
4169           src/sched/mlqueue.cxx, src/sched/sched.cxx,
4170           src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, src/sync/flag.cxx,
4171           src/sync/mbox.cxx, src/sync/mutex.cxx, src/test/diag.cxx,
4172           src/test/kcache1.c, src/test/main.cxx, src/test/timer.cxx,
4173           src/test/tstmbox.cxx:
4174           tests/clock0.cxx, tests/clock1.cxx, tests/except1.cxx,
4175           tests/flag1.cxx, tests/intr0.cxx, tests/kclock0.c,
4176           tests/kclock1.c, tests/kexcept1.c, tests/kintr0.c,
4177           tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c,
4178           tests/kmutex0.c, tests/kmutex1.c, tests/ksched1.c,
4179           tests/ksem0.c, tests/ksem1.c, tests/kthread0.c,
4180           tests/kthread1.c, tests/lottery.c, tests/mbox1.cxx,
4181           tests/memfix1.cxx, tests/memvar1.cxx, tests/sync3.cxx,
4182           tests/thread2.cxx :
4183         Provide configuration data and rename configuration options
4184
4185 Fri Aug 28 15:27:31 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4186
4187         * src/trace/fancy.cxx: 
4188         * src/trace/simple.cxx: 
4189         * src/trace/null.cxx: 
4190         Condition on newly named symbols from the infra package, whence
4191         these units will be moved soon.
4192         
4193 Fri Aug 28 09:33:17 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4194
4195         * src/test/demo.cxx, src/test/kcache1.c, src/test/kphilo.c,
4196           src/test/main.cxx, src/test/philo.cxx, src/test/sload.c,
4197           src/test/timer.cxx, src/test/tstflag.cxx, src/test/tstmbox.cxx,
4198           src/test/tstmpf.cxx, src/test/tstmpool.cxx, src/test/tsttracc.c,
4199           src/test/tsttrace.cxx, tests/bin_sem0.cxx, tests/bin_sem1.cxx,
4200           tests/bin_sem2.cxx, tests/clock0.cxx, tests/clock1.cxx,
4201           tests/cnt_sem0.cxx, tests/cnt_sem1.cxx, tests/except1.cxx,
4202           tests/flag0.cxx, tests/flag1.cxx, tests/intr0.cxx, tests/kclock0.c,
4203           tests/kclock1.c, tests/kexcept1.c, tests/kill.cxx, tests/kintr0.c,
4204           tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c, tests/kmutex0.c,
4205           tests/kmutex1.c, tests/kphilo.c, tests/ksched1.c, tests/ksem0.c,
4206           tests/ksem1.c, tests/kthread0.c, tests/kthread1.c, tests/lottery.c,
4207           tests/mbox1.cxx, tests/memfix1.cxx, tests/memfix2.cxx,
4208           tests/memvar1.cxx, tests/memvar2.cxx, tests/mutex0.cxx,
4209           tests/mutex1.cxx, tests/philo.cxx, tests/release.cxx,
4210           tests/sched1.cxx, tests/sync2.cxx, tests/sync3.cxx,
4211           tests/thread0.cxx, tests/thread1.cxx, tests/thread2.cxx:
4212         Change entry points from main() to cyg_start(), and remove return
4213         codes - while main returned an int, cyg_start() returns void. It has
4214         no meaning anyway - what could you do with the code?
4215
4216         * src/test/tsttracc.c, src/test/tsttrace.cxx:
4217         Also change trace calls (CYG_REPORT_...) to reflect that it is a
4218         function called cyg_start with no args returning void, rather than
4219         what it was for main(argc, argv)
4220
4221 Fri Aug 28 09:24:41 1998  Jesper Skov  <jskov@cygnus.co.uk>
4222
4223         * src/debug/generic-stub.c: Moved strcpy/strlen from hal-stub to
4224         generic-stub. Cleaned up a bit to avoid compiler warnings.
4225
4226 Thu Aug 27 19:22:51 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4227
4228         * tests/kphilo.c (Philosopher): 
4229         * tests/philo.cxx (Philosopher): 
4230         * src/test/philo.cxx (Philosopher): 
4231         * src/test/kphilo.c (Philosopher): 
4232         * src/common/kapi.cxx: 
4233         Change CYG_RELEASE_DEBUG to CYGPKG_INFRA_DEBUG.
4234         These changes are self-contained, so they can go in right now.
4235         
4236 Thu Aug 27 15:20:31 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4237
4238         * include/mvarimpl.inl (free): 
4239         Remove a couple of warning due to pointer comparison without casts
4240         in coallesce(sic.) code.
4241
4242 1998-08-26  Nick Garnett  <nickg@cygnus.co.uk>
4243
4244         * include/kapidata.h:
4245         Added saved_context to cyg_hardwarethread structure to track
4246         GDB support in rest of kernel.
4247
4248 1998-08-25  Nick Garnett  <nickg@cygnus.co.uk>
4249
4250         * include/pkgconf/kernel.h:
4251         Added CYGIMP_KERNEL_THREAD_GDB_SUPPORT to configure for GDB
4252         interactions with the kernel.
4253
4254         * src/debug/dbg-threads-api.h: 
4255         * src/debug/dbg_gdb.cxx:
4256         Added these files to repository to support GDB interactions
4257         with the kernel. Note that dbg-threads-api.h is a copy of a
4258         file in devo/libstub. Any changes there must be merged in here
4259         too.
4260
4261         * src/PKGconf.mak:
4262         Added debug/dbg_gdb.cxx to COMPILE list.
4263
4264         * include/thread.inl: 
4265         * include/thread.hxx:
4266         Added support for GDB, specifically for thread-aware debugging.
4267
4268         * include/intr.hxx:
4269         * src/intr/intr.cxx:
4270         Added an extra argument to interrupt_end(): a pointer to
4271         the saved register state. This is optionally used to provide
4272         a more interesting saved register state for GDB.
4273
4274 Tue Aug 25 02:36:26 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4275
4276         * include/generic-stub.h: 
4277         Add void to empty prototype argument lists to silence compiler
4278         warnings
4279
4280 Fri Aug 21 18:46:34 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4281
4282         * src/common/clock.cxx (enable): 
4283         Make the maths work right if we only just set up the clock
4284         thingy.  Unsigned has a lot to answer for; when the next scheduled
4285         tick was all correct, the delta was -1, which correctly rounds to
4286         zero in the division.  But it isn't -1 it's 18446744073709551615
4287         which gave a shift of 15 in the the uITRON test programs.
4288
4289 Fri Aug 21 11:40:50 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4290
4291         * include/mboxt2.inl (put): 
4292         * include/mempolt2.inl (alloc): 
4293         Tidy Nick's changes (1998-07-27) for set_timer() semantics a bit,
4294         make it a bit more efficient and smaller code.
4295         
4296 Thu Aug 20 17:37:35 BST 1998  Chris Provenzano  <proven@cygnus.com>
4297
4298         * include/mvarimpl.inl, include/pkgconf/kernel.h:
4299         Added memory coallecsing to the variable size memory allocator.
4300         This option is enabled my default.
4301
4302         * tests/stdlib/malloc2.c: Only print 50 messages, not 500.
4303
4304 1998-08-20  Nick Garnett  <nickg@cygnus.co.uk>
4305
4306         * include/pkgconf/kernel.h:
4307         Moved definition of CYG_KERNEL_USE_INIT_PRIORITY from here
4308         to hal.h.
4309
4310         * include/thread.hxx:
4311         Changed argument to cyg_thread_entry() to CYG_ADDRWORD from
4312         CYG_ADDRESS.
4313
4314         * include/ktypes.h:
4315         Moved constructor priority ordering stuff out to infra/cyg_type.h.
4316
4317         * include/kapi.h: 
4318         * src/common/kapi.cxx:
4319         Added name and priority parameters to cyg_thread_create() and
4320         swapped stack size and base parameters. These changes are
4321         currently protected by DAY_OF_CHAOS ifdefs and are therefore
4322         inactive.
4323
4324 Wed Aug 19 19:06:16 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4325
4326         * tests/bin_sem1.cxx, tests/bin_sem2.cxx, tests/cnt_sem1.cxx,
4327           tests/flag1.cxx, tests/mbox1.cxx, tests/memfix2.cxx,
4328           tests/memvar2.cxx, tests/sync2.cxx, tests/sync3.cxx,
4329           tests/thread2.cxx, tests/release.cxx, tests/kill.cxx: 
4330         Reorder inclusion of thread.inl to silence warnings
4331
4332 Wed Aug 19 18:48:03 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4333
4334         * include/kernel.hxx: 
4335         Reorder inclusion of thread.inl to silence warnings
4336
4337 Wed Aug 19 18:21:31 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4338
4339         * src/common/kapi.cxx, src/sync/flag.cxx: 
4340         Reorder inclusion of thread.inl to silence warnings
4341
4342         * src/sync/bin_sem.cxx, src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx,
4343           src/sync/mbox.cxx:
4344         Add inclusion of thread.inl to silence warnings
4345
4346         * src/common/memset.c:
4347         Make pointer arithmetic be on char *, not void * to silence warnings
4348
4349         * include/diag.h, src/trace/diag.c:
4350         Make diag_init take void parameter, and give diag_printf explicit
4351         parameters in prototypes to silence warnings
4352
4353 1998-08-19  Nick Garnett  <nickg@cygnus.co.uk>
4354
4355         * include/pkgconf/kernel.h: 
4356         * src/common/thread.cxx:
4357         Added ifdef for CYGIMP_IDLE_THREAD_YIELD to support single
4358         priority configurations.
4359
4360 Tue Aug 18 16:56:38 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4361
4362         * include/thread.hxx, include/thread.inl: 
4363         To silence compiler warnings, move register_exception inline definition
4364         from the .hxx to the .inl. Also move attach_stack to before the
4365         constructor where it is invoked from.
4366
4367 1998-08-18  Nick Garnett  <nickg@cygnus.co.uk>
4368
4369         * include/pkgconf/kernel.h:
4370         Moved all HAL specific config options out to a HAL config file.
4371
4372         * include/kapi.h: 
4373         * src/common/kapi.cxx:
4374         Added cyg_scheduler_lock() and cyg_scheduler_unlock() to provide
4375         user access to the scheduler lock.
4376
4377 Mon Aug 17 21:39:20 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4378
4379         * include/kapi.h: 
4380         Insert "void" to empty parameter lists to silence warnings
4381
4382 Fri Aug 14 18:10:20 1998  Hugo Tyson  <hmt@masala.cygnus.co.uk>
4383
4384         * src/common/thread.cxx (exit): 
4385         Set the state explicitly to EXITED rather than or'ing
4386         it in; should be safe cos it's what kill does in the normal case.
4387         Needed to avoid suspend sort of states persisting after death.
4388         One character changes are always aesthetically pleasing.
4389
4390 Fri Aug 14 17:28:01 1998  Hugo Tyson  <hmt@cygnus.co.uk>
4391
4392         * include/pkgconf/kernel.h: 
4393         Add config options as below:
4394
4395         * src/common/thread.cxx:
4396         Add asserts of CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT
4397         and CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT if they are defined.
4398         Also lazily tidied format of func hdrs as per code review et al.
4399
4400 1998-08-14  Nick Garnett  <nickg@cygnus.co.uk>
4401
4402         * include/kapidata.h:
4403         Added support for thread names and thread housekeeping list.
4404
4405         * src/common/delete.cxx:
4406         Added include for cyg_type.h.
4407
4408         * include/pkgconf/kernel.h:
4409         Added CYGIMP_THREAD_NAME and CYGIMP_THREAD_LIST options.
4410
4411         * include/thread.inl: 
4412         * include/thread.hxx:
4413         Added support for thread names and thread housekeeping list.
4414
4415         * src/common/thread.cxx:
4416         Added support for thread names and thread housekeeping list.
4417         Fixed ordering bug in Cyg_Thread::delay().
4418
4419 Thu Aug 13 15:33:48 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4420
4421         * include/ktypes.h:
4422         Remove inlined new and delete as they aren't strictly permitted and
4423         they prevent a valid new and delete being defined anywhere else!
4424         
4425         * src/common/delete.cxx, src/PKGconf.mak: 
4426         Add delete.cxx to provide default delete operation for when a C
4427         library isn't present
4428
4429 1998-07-28  Nick Garnett  <nickg@cygnus.co.uk>
4430
4431         * include/thread.hxx, include/sched.hxx, include/mlqueue.hxx,
4432           include/lottery.hxx, include/bitmap.hxx, src/common/thread.cxx,
4433           src/sched/sched.cxx, src/sched/mlqueue.cxx, src/sched/lottery.cxx,
4434           src/sched/bitmap.cxx:
4435         Added an alternative constructor to Cyg_Thread which takes
4436         arguments in new order, and includes a scheduling parameters
4437         argument. Propagated effects of this through Cyg_SchedThread
4438         and Cyg_SchedThread_Implementation. This mostly takes the form
4439         of passing the scheduling parameters through to the constructors.
4440
4441 1998-07-27  Nick Garnett  <nickg@cygnus.co.uk>
4442
4443         * src/sync/flag.cxx, src/sync/cnt_sem2.cxx, include/mempoolt.inl,
4444           include/mempolt2.inl, include/mboxt2.inl, include/mboxt.inl:
4445         Modified code in API calls that take a timeout to allow for a
4446         timeout in the past.
4447         NOTE: The timeouts have for now been left as relative delays, they
4448         should be converted to absolute timeouts.
4449
4450         * src/common/thread.cxx:
4451         Modified code in counted_sleep to allow for a timeout in the past.
4452         Added handling of EXIT wake_reason in delay().
4453
4454 1998-07-24  Nick Garnett  <nickg@cygnus.co.uk>
4455
4456         * include/thread.inl:
4457         Reordered code in Cyg_Thread::set_timer() to init the timer after
4458         wake_reason has been assigned.
4459
4460         * include/clock.inl: 
4461         Removed Cyg_Alarm::enable().
4462         
4463         * src/sync/mutex.cxx (Cyg_Condition_Variable::wait): 
4464         Modified order of code in timed version of wait to allow for a
4465         timout in the past.
4466         
4467         * src/sync/cnt_sem.cxx (Cyg_Counting_Semaphore::wait):
4468         Modified order of code in timed version of wait to allow for a
4469         timout in the past. Also modified timeout to be absolute rather
4470         than relative.
4471
4472         * src/common/thread.cxx (Cyg_Thread::wake):
4473         Added test for whether a thread is actually asleep before waking
4474         it. Allows us to apply wake() to awake threads without damage.
4475
4476         * src/common/clock.cxx:
4477         Added code to Cyg_Counter::add_alarm() to deal with alarms
4478         that trigger now or in the past.
4479         Moved Cyg_Alarm::enable() here. Added code to do the right thing
4480         when reenabling previously disabled interval alarms.
4481
4482 1998-07-23  Nick Garnett  <nickg@cygnus.co.uk>
4483
4484         * src/debug/stubrom.c: Added header comments.
4485
4486 Thu Mar 26 18:25:36 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4487
4488         * src/test/philo.cxx:
4489         Rename CYG_DEBUG ifdef to CYG_RELEASE_DEBUG
4490
4491 Wed Mar 25 23:23:39 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4492
4493         * configure.in: Fix so non_arch.h is updated even if
4494         config.cache does exists.
4495
4496         * include/kapi.h, include/kapidata.h, include/kernel.hxx
4497         * include/mboxt.inl, include/sched.hxx:
4498         #include <eccconf/kernel.h> instead of include <eccconf/kernel.h>
4499
4500         * include/eccconf/kernel.h: Added. This was old devo/config.h
4501
4502         * src/Makefile.am : Set CYG_CONFIGURATION to "<eccconf/kernel.h>"
4503
4504         * src/test/Makefile.am : Build .gdbinit from gdbinit.in
4505         and tree from tree.in
4506
4507 Wed Mar 25 18:24:48 1998  Jonathan Larmour  <jlarmour@cygnus.co.uk>
4508
4509         * src/Makefile.am, src/common/memcpy.c, src/common/memset.c:
4510           Move memcpy and memset functions from C library into kernel to
4511           satisfy the requirements of gcc - namely it must be available at
4512           at all time. Changed memcpy and memset to sit more cleanly in the
4513           kernel, and lose all dependencies on the C library
4514         * src/Makefile.in: regenerated
4515
4516 Fri Mar 13 18:36:42 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4517
4518         * configure.in : Add rule to get correct objcopy for target
4519         * src/test/Makefile.am : Add rule to build philo.srec
4520
4521 Fri Mar 13 11:47:23 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4522
4523         * configure.in, non_arch.h.in, non_arch.sh
4524         Add support for the mn103000
4525
4526 Thu Mar 12 11:38:28 GMT 1998  David Moore       <dsm@cygnus.co.uk>
4527
4528         * src/Makefile.am:
4529         Removed flag to leave comments in generated linker script.
4530        
4531 Thu Mar 12 10:55:20 GMT 1998  David Moore       <dsm@cygnus.co.uk>
4532
4533         * configure.in:
4534         Fixed setting of platform variable
4535
4536 Wed Mar 11 16:54:28 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4537
4538         * src/test/Makefile.am, tests/Makefile.am:
4539         Make sure CXXFLAGS from configure are also used
4540
4541 Wed Mar 11 16:16:57 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4542
4543         * configure.in, non_arch.h.in. non_arch.sh:
4544         Added build support for mips 
4545         * tests/Makefile.am, src/test/Makefile.am
4546         Link with -nostdlib -lgcc
4547
4548 Wed Mar 11 14:43:36 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4549
4550         * Makefile.am, configure.in, tests/Makefile.am
4551         support building tests in the tests directory
4552
4553 Wed Mar 11 13:18:17 GMT 1998  Chris Provenzano  <proven@cygnus.com>
4554
4555         * acinclude.m4, stamp-h.in, non_arch.h.in, src/Makefile.am:
4556         Added to support new kernel configure/make process
4557
4558         * Makefile.am: Modified to support new kernel configure/make 
4559         process.
4560
4561         * src/acinclude.m4, src/aclocal.m4, src/configure, src/configure.in
4562         Deleted to support new kernel configure/make process
4563
4564         * Makefile.in, configure, aclocal.m4, src/Makefile.in, 
4565         src/configure: regenerated
4566
4567         * non_arch.sh: New shellscript to change platform/startup/debug
4568         options after a configure is done.
4569
4570         * src/devo/config.h: include non_arch.h, for platform/startup/debug
4571         options. This is generated at configure and modified by non_arch.sh
4572
4573 //===========================================================================
4574 //####ECOSGPLCOPYRIGHTBEGIN####
4575 // -------------------------------------------
4576 // This file is part of eCos, the Embedded Configurable Operating System.
4577 // Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
4578 //
4579 // eCos is free software; you can redistribute it and/or modify it under
4580 // the terms of the GNU General Public License as published by the Free
4581 // Software Foundation; either version 2 or (at your option) any later version.
4582 //
4583 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY
4584 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
4585 // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
4586 // for more details.
4587 //
4588 // You should have received a copy of the GNU General Public License along
4589 // with eCos; if not, write to the Free Software Foundation, Inc.,
4590 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
4591 //
4592 // As a special exception, if other files instantiate templates or use macros
4593 // or inline functions from this file, or you compile this file and link it
4594 // with other works to produce a work based on this file, this file does not
4595 // by itself cause the resulting work to be covered by the GNU General Public
4596 // License. However the source code for this file must still be made available
4597 // in accordance with section (3) of the GNU General Public License.
4598 //
4599 // This exception does not invalidate any other reasons why a work based on
4600 // this file might be covered by the GNU General Public License.
4601 //
4602 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
4603 // at http://sources.redhat.com/ecos/ecos-license/
4604 // -------------------------------------------
4605 //####ECOSGPLCOPYRIGHTEND####
4606 //===========================================================================