1 2005-08-03 Andrew Lunn <andrew.lunn@ascom.ch>
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
7 2005-07-30 Andrew Lunn <andrew.lunn@ascom.ch>
9 * src/sync/mbox.cxx (tryget,peak_item): initialize local variable
10 to avoid compiler warning.
12 2005-06-21 Peter Korsgaard <jacmet@sunsite.dk>
14 * tests/kcache2.c (test_dcache_operation): Fixed compiler warnings
15 about formats strings for diag_printf.
17 2005-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
19 * tests/tm_basic.cxx (_run_all_tests): Fixed compiler warning.
21 2004-12-15 Sergei Organov <osv@topconrd.ru>
23 * cdl/scheduler.cdl: Correct the description of
24 CYGIMP_KERNEL_SCHED_SORTED_QUEUES
26 2004-09-24 Nick Garnett <nickg@ecoscentric.com>
28 * src/sched/mlqueue.cxx (enqueue): Fix bug in sorted queue
29 insertion: priority test was inverted. Spotted by TomChen.
31 2004-08-08 Bart Veer <bartv@ecoscentric.com>
33 * cdl/counters.cdl: add new option for the clock interrupt
36 * src/common/clock.cxx (Cyg_RealTimeClock): use this option.
38 2004-04-15 Jonathan Larmour <jifl@eCosCentric.com>
40 * tests/fptest.c (do_test): Silence aliasing warning when breaking
41 doubles into two ints.
43 2004-04-11 Andrew Lunn <andrew.lunn@ascom.ch>
45 * doc/kernel.sgml: Expanded the documentation about the use of
46 CYG_FLAG_WAITMODE_CLR.
48 2004-03-27 Sebastien Couret <sebastien.couret@elios-informatique.fr>
50 * src/debug/dbg-thread-demux.c (dbg_thread_syscall_rmt): Only
51 needed if CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT is enabled.
53 2004-03-12 Jonathan Larmour <jifl@eCosCentric.com>
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
63 2004-03-04 Jonathan Larmour <jifl@eCosCentric.com>
65 * doc/kernel.sgml: Document cyg_thread_delete return value.
67 2004-02-19 Jonathan Larmour <jifl@eCosCentric.com>
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.
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.
81 2003-12-08 Dan Jakubiec <djakubiec@yahoo.com>
83 * src/common/kapi.cxx: Added new function cyg_thread_get_id().
84 This function returns the unique thread ID for a given thread
87 * include/kapi.h: Added function prototype for cyg_thread_get_id().
89 * doc/kernel.sgml: Added documentation for cyg_thread_get_id().
91 2003-10-13 Nick Garnett <nickg@balti.calivar.com>
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.
99 2003-09-22 Reinhard Jessich <Reinhard.Jessich@frequentis.com>
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.
105 2003-09-01 Bart Veer <bartv@ecoscentric.com>
107 * doc/kernel.sgml: fix typo, cyg_thread vs. cyg_thread_t
109 2003-07-18 Nick Garnett <nickg@balti.calivar.com>
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.
115 2003-07-10 Nick Garnett <nickg@balti.calivar.com>
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.
122 2003-07-06 Bart Veer <bartv@ecoscentric.com>
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.
128 2003-07-02 Jonathan Larmour <jifl@eCosCentric.com>
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.
134 2003-07-01 Nick Garnett <nickg@balti.calivar.com>
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
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.
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
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.
160 Added new test to test that alarms can be added and removed in
161 alarm functions safely.
163 2003-06-25 Thomas Binder <Thomas.Binder@frequentis.com>
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.
169 2003-06-06 David Brennan <eCos@brennanhome.com>
170 2003-06-23 Nick Garnett <nickg@balti.calivar.com>
172 * cdl/kernel.cdl: Added tests/bin_sem3 to list of kernel tests.
174 * include/sema.hxx: Added declaration for wait with timeout for
175 Cyg_Binary_Semaphore.
177 * include/instrmnt.h: Added instrumentation point for binary semaphore
180 * src/sync/bin_sem.cxx: Added wait with time-out function to
181 Cyg_Binary_Semaphore class.
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.
187 * tests/bin_sem3.cxx: Created new test for timed wait binary
190 2003-05-20 Andrew Lunn <andrew.lunn@ascom.ch>
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.
196 2003-05-05 Gary Thomas <gary@mlbassoc.com>
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
202 2003-05-03 Jonathan Larmour <jifl@eCosCentric.com>
204 * include/mqueue.inl (Cyg_Mqueue::get): Fix invalid loop termination
205 cheque for whether busy or not.
206 (Cyg_Mqueue::put): Ditto.
208 2003-03-03 Jonathan Larmour <jifl@eCosCentric.com>
210 * tests/fptest.c: Make all variables static to avoid any risk
211 of collisions with symbols defined elsewhere in eCos.
213 2003-02-27 Jonathan Larmour <jifl@eCosCentric.com>
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.
219 2003-02-25 Nick Garnett <nickg@calivar.com>
221 * tests/fptest.c (alarm_fn): Added CYG_TEST_PASS() call to keep
224 2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
226 * cdl/kernel.cdl: Update doc links.
227 * cdl/synch.cdl: Ditto.
228 * cdl/thread.cdl: Ditto.
230 2003-02-19 Nick Garnett <nickg@calivar.com>
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
236 2003-02-10 Gary Thomas <gary@mlbassoc.com>
238 * include/thread.inl: Add more debug info to thread stack checking.
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).
244 2003-02-05 Gary Thomas <gary@mlbassoc.com>
246 * tests/kcache2.c (test_dcache_operation): New test to verify
247 that the DATA cache syncs properly.
249 2003-01-31 Nick Garnett <nickg@calivar.com>
252 * tests/fptest.c: Added this program to test interaction of FPU
253 with multiple threads.
255 2003-01-30 Jonathan Larmour <jifl@eCosCentric.com>
257 * src/common/thread.cxx: Fix potential warning and overflow with
258 CYGNUM_KERNEL_THREADS_DATA_MAX == 32.
260 2003-01-28 Jonathan Larmour <jifl@eCosCentric.com>
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.
266 * cdl/thread.cdl: Correct max legal value for
267 CYGNUM_KERNEL_THREADS_DATA_MAX.
269 2003-01-22 Jonathan Larmour <jifl@eCosCentric.com>
271 * doc/kernel.sgml: Document cyg_thread_info type.
273 2003-01-13 Dmitriy Korovkin <dkorovkin@rambler.ru>
274 2003-01-13 Jonathan Larmour <jifl@eCosCentric.com>
276 * include/mqueue.hxx: Allow get/put to return time out.
277 * include mqueue.inl: Ditto.
279 2003-01-02 Gary Thomas <gary@mlbassoc.com>
281 * tests/kcache2.c: New subtest for raw data cache operations.
283 2002-12-12 Nick Garnett <nickg@ecoscentric.com>
285 * src/common/kapi.cxx:
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.
291 * doc/kernel.sgml: Documented new KAPI calls.
293 * src/common/thread.cxx: Zero unique_id in thread destructor so
294 that a stale thread pointer can be checked for validity.
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.
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
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.
317 2002-12-03 Gary Thomas <gthomas@ecoscentric.com>
319 * tests/tm_basic.cxx: Add tests of 'flag' synchronizers.
321 2002-10-28 Andrew Lunn <andrew.lunn@ascom.ch>
323 * tests/tm_basic.cxx: Include infra/diag.h and removed the
324 incorrect prototype for diag_printf
326 2002-10-16 Gary Thomas <gthomas@ecoscentric.com>
328 * include/test/stackmon.h (STACKMON_PRINTF): Use #include to get
329 prototype for 'diag_printf()'.
331 2002-10-01 Jonathan Larmour <jifl@eCosCentric.com>
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.
336 2002-09-30 Jonathan Larmour <jifl@eCosCentric.com>
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.
344 * doc/kernel.sgml: document that order of callback for alarms at
345 identical times is unspecified.
347 2002-08-08 Nick Garnett <nickg@calivar.demon.co.uk>
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.
354 2002-08-05 Bart Veer <bartv@tymora.demon.co.uk>
356 * cdl/kernel.cdl, include/kapidata.h, include/kapi.h:
357 Allow configurations with the kernel but no malloc
359 2002-06-05 Gary Thomas <gary@chez-thomas.org>
361 * include/kapi.h: Fix prototype (to allow builds with net stack).
363 2002-05-24 Jesper Skov <jskov@redhat.com>
365 * cdl/kernel.cdl: Fix typo.
367 2002-05-23 Jonathan Larmour <jlarmour@redhat.com>
369 * include/kapi.h: Expose new cyg_thread_add_destructor and
370 cyg_thread_rem_destructor APIs.
372 * include/kapidata.h (struct Cyg_Destructor_Entry):
373 Change CYG_ADDRWORD to more correct cyg_addrword_t.
375 * include/thread.hxx (class Cyg_Thread): add_destructor and
376 rem_destructor are onyl static when not per-thread.
378 * include/thread.inl (add_destructor): Don't need to lock and unlock
379 scheduler when destructors are per-thread.
380 (rem_destructor): Ditto.
382 * src/common/thread.cxx (exit): No need to lock scheduler when
385 * doc/kernel.sgml: Document thread destructor API.
387 2002-05-23 Nick Garnett <nickg@redhat.com>
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.
393 2002-05-23 Jesper Skov <jskov@redhat.com>
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.
399 * tests/tm_basic.cxx: Fixed warning.
401 2002-05-22 Nick Garnett <nickg@redhat.com>
404 Fixed up SMP documentation.
405 Rewrote condtion variable documentation to make its relationship
406 to mutexes more apparent.
408 2002-05-22 Jesper Skov <jskov@redhat.com>
410 * tests/smp.cxx: Move inclusion of testaux.hxx to below NA
413 2002-05-21 Bart Veer <bartv@redhat.com>
416 Major update to the kernel documentation.
418 2002-05-21 Jesper Skov <jskov@redhat.com>
420 * src/common/clock.cxx (dsr): Fix latency ifdef guards.
421 * tests/tm_basic.cxx: Same.
423 2002-05-20 Jonathan Larmour <jlarmour@redhat.com>
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.
429 2002-05-09 Jonathan Larmour <jlarmour@redhat.com>
431 * include/kapidata.h (CYG_HARDWARETHREAD_MEMBERS): entry_point
432 should be a pointer to function not an addrword (which may be
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.
438 2002-05-09 Nick Garnett <nickg@redhat.com>
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.
445 * include/instrmnt.h: Fixed left-over debug edit to MLQ
446 instrumentation enable code.
448 2002-04-29 Jesper Skov <jskov@redhat.com>
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.
455 2002-04-24 Yoshinori Sato <qzb04471@nifty.ne.jp>
457 * src/sync/flag.cxx: Don't set default args in func definitions.
459 2002-04-24 Jesper Skov <jskov@redhat.com>
461 * tests/dhrystone.c: Moved platform max number of passes to CDL in
464 2002-04-23 Jesper Skov <jskov@redhat.com>
466 * tests/dhrystone.c: Allow platform to define max number of passes
467 via CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES.
469 2002-04-09 Jonathan Larmour <jlarmour@redhat.com>
471 * include/kapi.h: Use NORET attributes from cyg_type.h.
472 * include/sched.hxx (class Cyg_Scheduler): Ditto.
474 2002-04-08 Nick Garnett <nickg@redhat.com>
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.
481 2002-03-04 Lars Viklund <lars.viklund@axis.com>
483 * include/kapidata.h (CYG_SCHEDTHREAD_ASR_MEMBER):
484 asr_inhibit is cyg_ucount32 - must match
486 2002-02-13 Hugo Tyson <hmt@redhat.com>
488 * doc/kernel.sgml: NEW FILE: Correct reference to uITRON doc.
490 2002-01-28 Jesper Skov <jskov@redhat.com>
492 * tests/kexcept1.c: Fix warning.
494 2002-01-24 Jesper Skov <jskov@redhat.com>
496 * tests/kcache1.c (time0DI): Disable interrupts around the
497 sync+invalidate process.
498 * tests/kcache2.c: Same.
500 2002-01-23 Jonathan Larmour <jlarmour@redhat.com>
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
509 (cyg_interrupt_mask_intunsafe): Ditto.
510 * include/kapi.h: Ditto.
512 2002-01-07 Nick Garnett <nickg@redhat.com>
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
520 2001-12-12 Jesper Skov <jskov@redhat.com>
522 * tests/kcache2.c (time_ilock): Put some dummy goto statements in
523 to prevent compiler from moving labels around.
525 2001-11-29 Jonathan Larmour <jlarmour@redhat.com>
527 * src/sched/mlqueue.cxx (timeslice_cpu): Reset timeslice_count on
531 2001-11-23 Jonathan Larmour <jlarmour@redhat.com>
533 * tests/klock.c (entry1): Support running with
534 CYGFUN_KERNEL_THREADS_TIMER disabled.
536 2001-10-30 Nick Garnett <nickg@redhat.com>
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
545 2001-10-17 Jesper Skov <jskov@redhat.com>
547 * tests/dhrystone.c: CYGINT_ISO_STRING_STRFUNCS check changed to
550 2001-10-12 Jonathan Larmour <jlarmour@redhat.com>
552 * cdl/synch.cdl (CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE): New option
553 to avoid inlining mqueue implementation.
555 * src/sync/mqueue.cxx: New file to provide non-inline version of
558 * include/mqueue.hxx: Don't include .inl if user doesn't want inlining.
560 * include/mqueue.inl: Allow choice of inlining or not to be
563 * tests/mqueue1.cxx: Never use inline version.
565 2001-10-11 Jesper Skov <jskov@redhat.com>
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.
573 * tests/kcache2.c: Fixed warning.
574 * tests/stress_threads.c: Same.
576 2001-09-20 Jonathan Larmour <jlarmour@redhat.com>
578 * host/instr/dump_instr.c (main): Fix argc check.
580 2001-09-07 Jonathan Larmour <jlarmour@redhat.com>
582 * include/thread.inl (measure_stack_usage): Deal with stack limits.
584 2001-09-07 Nick Garnett <nickg@redhat.com>
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).
590 2001-09-05 Jesper Skov <jskov@redhat.com>
592 * include/mqueue.inl (Cyg_Mqueue): Initialize busy flag of last
595 2001-09-04 Jonathan Larmour <jlarmour@redhat.com>
597 * cdl/instrument.cdl (CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP):
598 Remove redundant requires, and adjust make rule to be more portable
600 (CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE):
601 Invoke script with sh directly rather than rely on executable attribute.
603 * host/instr/readme.txt: Update build of host dump as per the changed
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.
611 2001-08-31 Nick Garnett <nickg@redhat.com>
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.
617 2001-08-23 Hugo Tyson <hmt@redhat.com>
618 2001-08-20 Andrew Lunn <andrew.lunn@ascom.ch>
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.
624 * src/instrmnt/meminst.cxx (cyg_instrument_msg):
625 returns an ASCII string describing the type of event the
626 instrumentation code logged.
628 * include/instrmnt.h: Added function prototype.
630 * cdl/instrument.cdl: Configury for enabling the new function, and
631 optionally rebuilding its header file and building a host tool.
633 * host/instr/dump_instr.c: New file. A host program to print the
634 instrumentation information in a human readable form.
636 * host/instr/instrument.sh: New file. Script to generate table of
637 events with textual representation.
639 * host/instr/readme.txt: New file. Helpful information.
641 2001-08-23 Nick Garnett <nickg@redhat.com>
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.
651 2001-08-23 Hugo Tyson <hmt@redhat.com>
653 * src/common/thread.cxx: Properly qualify Cyg_Thread::destructors
654 array so that it builds when destructors are not used.
656 2001-08-23 Nick Garnett <nickg@redhat.com>
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.
663 2001-08-22 Jonathan Larmour <jlarmour@redhat.com>
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
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.
683 2001-08-22 Hugo Tyson <hmt@redhat.com>
685 * src/sync/mutex.cxx (Cyg_Mutex): Add initialization of the
686 priority ceiling value in the non-dynamic protocol case.
688 2001-08-22 Nick Garnett <nickg@redhat.com>
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.
696 * src/sched/mlqueue.cxx:
697 Simplified algorithm in set_need_reschedule().
700 * include/kapidata.h: Change spinlock to be a cyg_uint32, rather
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.
710 * tests/smp.cxx: Some modifications to make this test work in a
711 real SMP environment.
714 * cdl/kernel.cdl: Added timeslice test.
716 2001-08-21 Hugo Tyson <hmt@redhat.com>
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.
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.
729 * tests/kmutex3.c: Remove FIXME comments - we now test dynamic
732 * cdl/kernel.cdl: Build the new test.
734 2001-08-20 Jonathan Larmour <jlarmour@redhat.com>
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.
741 2001-08-17 Nick Garnett <nickg@redhat.com>
743 * src/sched/mlqueue.cxx (timeslice): Fix timeslice_count comparison.
745 2001-08-16 Hugo Tyson <hmt@redhat.com>
747 * include/kapi.h (cyg_mutex_protocol): Tidy up names of mutex
748 protocol type and values. These polluted rather in 'C'.
750 * src/common/kapi.cxx (cyg_mutex_set_protocol): ditto.
752 2001-08-15 Hugo Tyson <hmt@redhat.com>
753 2001-08-15 Andrew Lunn <andrew.lunn@ascom.ch>
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.
759 2001-08-14 Jonathan Larmour <jlarmour@redhat.com>
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.
765 2001-08-10 Hugo Tyson <hmt@redhat.com>
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.
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.
778 * tests/kmutex3.c (cyg_start): New test, a KAPI translation of the
779 now-classic mutex3.cxx.
781 * cdl/kernel.cdl: Build tests/kmutex3.c
783 2001-08-06 Hugo Tyson <hmt@redhat.com>
785 * src/sched/sched.cxx (unlock_inner): Fix assignment to current,
786 wouldn't build if stack checking after merger from SMP branch.
788 2001-08-06 Andrew Lunn <andrew.lunn@ascom.ch>
789 2001-08-06 Hugo Tyson <hmt@redhat.com>
791 * src/sync/mutex.cxx: (set_protocol) Added a function to set the
792 priority inversion protocol for a mutex.
794 * src/common/kapi.cxx: Export the new function above and
795 set_ceiling into the C API.
797 * include/mutex.hxx (class Cyg_Mutex): New member function
800 * include/kapi.h (cyg_protcol): Define new emumeration for mutex
801 priority protocol setting, and headers for the new function to set
804 2001-08-03 Nick Garnett <nickg@redhat.com>
806 Imported from a development branch:
808 2001-07-11 Nick Garnett <nickg@redhat.com>
810 * src/sched/mlqueue.cxx: Changed behaviour of
811 set_need_reschedule() to a better implementation of the intended
815 * src/common/kapi.cxx:
816 Added API for controlling routing of interrupts to CPUs in SMP
819 2001-07-03 Nick Garnett <nickg@cygnus.co.uk>
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.
829 2001-06-29 Nick Garnett <nickg@cygnus.co.uk>
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
839 Changed initial values of Cyg_Interrupt::disable_counter[]s to
840 zero as a result of the change in Cyg_Scheduler::start_cpu().
843 * include/kapidata.h:
844 * src/common/kapi.cxx:
845 Added API for using spinlocks. Largely so that it may be extended
848 * include/mlqueue.hxx:
851 Added annotations to various static variables.
853 2001-06-28 Nick Garnett <nickg@cygnus.co.uk>
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.
868 * include/smp.hxx: Some minor tidies.
870 2001-06-27 Nick Garnett <nickg@cygnus.co.uk>
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
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
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.
891 2001-06-22 Nick Garnett <nickg@cygnus.co.uk>
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
911 * src/sched/sched.cxx (unlock_inner):
912 Removed call to requeue(), no longer needed as a result of
913 scheduler reorganization.
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.
926 Added CYG_KERNEL_CPU_TIMESLICE_INTERRUPT(), did some miscellaneous
929 * include/instrmnt.h: Added SMP_RESCHED_SEND and SMP_RESCHED_RECV
932 * cdl/kernel.cdl: Added smp test program.
934 * tests/smp.cxx: Added this program to test SMP functionality.
936 2001-06-13 Nick Garnett <nickg@cygnus.co.uk>
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.
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.
954 * src/common/thread.cxx:
955 Moved assignment of initial current thread to here from sched.cxx.
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.
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
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.
979 * include/kapidata.h: Added cpu field to cyg_thread structure when
984 Added Cyg_Interrupt::set_cpu() and Cyg_Interrupt::get_cpu() for
987 * include/instrmnt.h: Added events for INTR_GET_CPU and
990 2001-05-29 Nick Garnett <nickg@cygnus.co.uk>
992 The following changes were all imported from the SMP branch:
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.
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
1003 Added start_cpu() to do per-CPU scheduler startup.
1005 * include/sched.inl:
1006 Converted scheduler lock/unlock functions to use new schedlock
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
1016 Added cyg_kernel_smp_startup() as entry point from HAL into kernel
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.
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
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
1037 * src/common/thread.cxx:
1038 Converted to use accessor functions for need_reschedule and
1040 Rearranged idle thread creation to create one for each CPU.
1042 * include/test/stackmon.h: Extended to handle stack usage for
1043 multiple idle threads.
1045 * include/thread.inl:
1046 Added some extra instrumentation.
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
1054 * src/intr/intr.cxx:
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.
1060 * cdl/kernel.cdl: Added option to enable SMP support.
1062 * include/instrmnt.h:
1063 * cdl/instrument.cdl: Added SMP instrumentation.
1065 2001-05-25 Nick Garnett <nickg@cygnus.co.uk>
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
1074 2001-05-22 Nick Garnett <nickg@cygnus.co.uk>
1076 * include/sched.hxx (class Cyg_Scheduler_Base):
1077 Added annotation to sched_lock.
1079 * cdl/instrument.cdl:
1080 Rename CYGNUM_KERNEL_INSTRUMENT_BUFFER_WRAP to
1081 CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP as it appears in the code.
1083 2001-07-27 Jesper Skov <jskov@redhat.com>
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.
1088 2001-07-26 Gary Thomas <gthomas@redhat.com>
1090 * src/common/clock.cxx (dsr): Fix problems mixing signed and
1091 unsigned values. Normally only generated warnings, but...
1093 2001-07-09 Jonathan Larmour <jlarmour@redhat.com>
1095 * include/sched.inl (unlock_reschedule): Fix commenting.
1096 * src/sched/sched.cxx: Improve description of unlock_inner().
1098 2001-06-21 Jonathan Larmour <jlarmour@redhat.com>
1100 * src/common/thread.cxx (Cyg_Thread::Cyg_Thread): Initialize
1103 2001-06-06 Hugo Tyson <hmt@redhat.com>
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!
1109 2001-05-31 Jonathan Larmour <jlarmour@redhat.com>
1111 * include/thread.hxx (class Cyg_HardwareThread): Remove unused
1112 load_context() method.
1113 * include/thread.inl: Ditto.
1115 2001-05-29 Jonathan Larmour <jlarmour@redhat.com>
1117 * src/sched/bitmap.cxx (rem_thread): No need to set need_reschedule...
1118 rescheduling will happen automatically when the state changes.
1120 * src/sched/mlqueue.cxx (add_thread): No need to explicitly clear
1123 2001-04-26 Nick Garnett <nickg@cygnus.co.uk>
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
1131 2001-04-18 Bart Veer <bartv@redhat.com>
1133 * tests/dhrystone.c:
1134 Fix the conditional for STDIO_FORMATTED_IO
1136 2001-04-17 Bart Veer <bartv@redhat.com>
1138 * tests/stress_threads.c (setup_death_alarm):
1139 Cope with synthetic target reorg
1141 * tests/except1.cxx, tests/kexcept1.c:
1142 Reenable for the synthetic target
1144 * tests/tm_basic.cxx:
1145 Reenable for the synthetic target
1147 2001-04-17 Jesper Skov <jskov@redhat.com>
1149 * cdl/kernel.cdl: Do cache tests on E7T.
1151 2001-04-05 Nick Garnett <nickg@cygnus.co.uk>
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.
1157 * tests/stress_threads.c: Reduce run time even further in
1158 simulator runs where instrumentation is enabled.
1160 2001-04-03 Jesper Skov <jskov@redhat.com>
1162 * tests/dhrystone.c: Fix feature check.
1164 2001-03-28 Jonathan Larmour <jlarmour@redhat.com>
1166 * cdl/kernel.cdl: Only need to compile dbg_gdb.cxx with
1167 CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
1169 * src/debug/dbg_gdb.cxx: Add new dbg_thread_id() function.
1171 2001-02-23 Jonathan Larmour <jlarmour@redhat.com>
1173 * include/thread.inl (attach_stack): Check for non-NULL stack base.
1175 2001-02-11 Jonathan Larmour <jlarmour@redhat.com>
1177 * tests/stress_threads.c: CYGINT_ISO_STDIO_FORMATTED_IO needs a
1179 * tests/dhrystone.c: Ditto.
1181 2001-02-04 Jonathan Larmour <jlarmour@redhat.com>
1183 * tests/kill.cxx: Increase delay for all targets, just in case some
1186 2001-01-30 Hugo Tyson <hmt@redhat.com>
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".
1194 2001-01-30 Hugo Tyson <hmt@redhat.com>
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.
1203 2001-01-26 Nick Garnett <nickg@cygnus.co.uk>
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
1211 2001-01-24 Jesper Skov <jskov@redhat.com>
1213 * src/sched/mlqueue.cxx (highpri): Fix trace call.
1215 2001-01-09 Nick Garnett <nickg@cygnus.co.uk>
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.
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.
1230 * include/kapidata.h: Adjusted cyg_alarm struct to match Cyg_Alarm
1233 2000-12-22 Jonathan Larmour <jlarmour@redhat.com>
1235 * include/thread.inl (check_stack): check word alignment with CYG_WORD
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.
1245 * src/common/thread.cxx (exit): If verbose stack measurement enabled,
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.
1251 * include/thread.hxx (class Cyg_HardwareThread): Add
1252 measure_stack_usage() member
1254 * cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT):
1255 Add to implement stack usage measurement.
1257 * include/kapi.h (cyg_thread_measure_stack_usage): New function
1258 * src/common/kapi.cxx (cyg_thread_measure_stack_usage): New function
1260 2000-12-08 Jonathan Larmour <jlarmour@redhat.com>
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.
1266 2000-12-07 Jesper Skov <jskov@redhat.com>
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.
1271 2000-12-06 Hugo Tyson <hmt@redhat.com>
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.
1277 2000-12-05 Hugo Tyson <hmt@redhat.com>
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.
1285 * include/thread.hxx (class Cyg_HardwareThread): Define
1286 check_stack() function.
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.
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.
1300 2000-12-04 Hugo Tyson <hmt@redhat.com>
1302 * tests/kcache2.c (entry0): Make this more robust against a
1303 complete absence of useful caches. Previous change was not
1306 2000-12-01 Hugo Tyson <hmt@redhat.com>
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.
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.
1320 2000-10-30 Jesper Skov <jskov@redhat.com>
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.
1328 * tests/thread2.cxx: Use new option.
1329 * tests/klock.c: Same.
1330 * src/common/thread.cxx: Same.
1331 * src/common/clock.cxx: Same.
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.
1337 2000-10-27 Jesper Skov <jskov@redhat.com>
1339 * cdl/scheduler.cdl: Added CYGINT_KERNEL_SCHEDULER_CAN_YIELD
1341 * tests/klock.c: Avoid use of disabled features. Require scheduler
1344 2000-10-20 Jonathan Larmour <jlarmour@redhat.com>
1346 * tests/bin_sem0.cxx:
1347 * tests/bin_sem1.cxx:
1348 * tests/bin_sem2.cxx:
1351 * tests/clockcnv.cxx:
1352 * tests/cnt_sem0.cxx:
1353 * tests/cnt_sem1.cxx:
1354 * tests/except1.cxx:
1360 * tests/mqueue1.cxx:
1366 * tests/release.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.
1377 * include/intr.hxx (class Cyg_Interrupt): Make dsr_count volatile
1378 to prevent a potential race condition with overzealous C
1381 2000-10-13 Nick Garnett <nickg@cygnus.co.uk>
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.
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.
1392 2000-10-13 Jesper Skov <jskov@redhat.com>
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.
1398 2000-10-05 Jesper Skov <jskov@redhat.co.uk>
1400 * src/intr/intr.cxx: Made dsr_table_tail volatile as well.
1401 * include/intr.hxx: Ditto.
1403 2000-10-05 Nick Garnett <nickg@cygnus.co.uk>
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
1410 2000-10-04 Jesper Skov <jskov@redhat.co.uk>
1412 * include/intr.hxx: Made dsr_list volatile.
1413 * src/intr/intr.cxx: Same. Also fix compiler warning.
1415 2000-09-25 Nick Garnett <nickg@cygnus.co.uk>
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>.)
1425 2000-09-13 Jesper Skov <jskov@redhat.com>
1427 * tests/kexcept1.c (cause_exception): Use separate cause_fpe function.
1428 * tests/except1.cxx (cause_exception): Same.
1430 * tests/kexcept1.c (cause_exception): Do not use division at all.
1431 * tests/except1.cxx (cause_exception): Same.
1433 * tests/kexcept1.c (cause_exception): Do not cause div-by-zero.
1434 * tests/except1.cxx (cause_exception): Same.
1436 2000-09-11 Jonathan Larmour <jlarmour@redhat.com>
1438 * cdl/instrument.cdl (CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER):
1439 Bring this option back from the dead
1441 2000-09-08 Nick Garnett <nickg@cygnus.co.uk>
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.
1451 * src/sched/sched.cxx (unlock_inner): Modified precondition to
1452 allow for functionality of unlock_reschedule().
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
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.
1464 * include/mlqueue.hxx (class Cyg_SchedulerThreadQueue_Implementation):
1465 Made enqueue() member public.
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()
1478 Added klock.c to test functionality while scheduler lock is claimed.
1480 2000-08-17 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
1501 2000-08-07 Jonathan Larmour <jlarmour@redhat.co.uk>
1503 * include/mutex.hxx (class Cyg_Mutex): Add comment explaining
1506 2000-08-04 Jonathan Larmour <jlarmour@redhat.co.uk>
1508 * tests/stress_threads.c (STACK_SIZE_HANDLER): Increase stack sizes
1509 otherwise it crashes!
1511 2000-07-31 Jonathan Larmour <jlarmour@redhat.co.uk>
1513 * include/mempolt2.hxx: As per change of 2000-07-04, also delete - left
1516 2000-07-20 Nick Garnett <nickg@cygnus.co.uk>
1518 * include/mutex.hxx (class Cyg_Mutex): Added get_ceiling()
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
1526 2000-07-17 Gary Thomas <gthomas@redhat.com>
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]
1533 2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk>
1535 * cdl/kernel.cdl: Remove all configury related to memory allocators,
1536 including tests. Make CYGFUN_KERNEL_API_C require CYGFUN_MEMALLOC_KAPI
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
1546 * include/kapi.h, include/kapidata.h, src/common/kapi.cxx:
1547 Remove memory allocator functionality - now implemented in
1550 * tests/dhrystone.c:
1551 Update configuration dependencies for new isoinfra design
1552 * tests/stress_threads.c:
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
1559 2000-06-23 Hugo Tyson <hmt@cygnus.co.uk>
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.
1565 * src/common/kapi.cxx (cyg_scheduler_read_lock): New function.
1567 2000-06-20 Nick Garnett <nickg@cygnus.co.uk>
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
1578 2000-06-16 Gary Thomas <gthomas@redhat.com>
1580 * cdl/kernel.cdl: Remove exception tests for CMA230 - not supported
1583 2000-06-16 Jesper Skov <jskov@redhat.com>
1585 * src/intr/intr.cxx (chain_isr): Only call default_isr if no isrs
1586 in the chain reacted to the interrupt.
1588 2000-06-15 Nick Garnett <nickg@cygnus.co.uk>
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
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().
1603 2000-06-09 Nick Garnett <nickg@cygnus.co.uk>
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
1617 2000-06-08 Jesper Skov <jskov@redhat.com>
1619 * src/debug/dbg-thread-demux.c: Use generic HAL feature to allow
1620 ROM/RAM intercalling.
1622 2000-06-06 Jesper Skov <jskov@redhat.com>
1624 * tests/kcache1.c (entry0): Skip invalidate tests on TX49. Too slow.
1626 2000-05-30 Gary Thomas <gthomas@redhat.com>
1628 * tests/dhrystone.c: Increase number of test loops for faster
1629 StrongARM platforms.
1631 2000-05-22 Jonathan Larmour <jlarmour@redhat.co.uk>
1633 * cdl/scheduler.cdl (CYGIMP_KERNEL_SCHED_SORTED_QUEUES): Disable by
1636 * src/sched/mlqueue.cxx (enqueue): Add to end of thread queue even
1637 when not priority ordered
1639 2000-05-20 Jonathan Larmour <jlarmour@redhat.co.uk>
1641 * include/mqueue.hxx, include/mqueue.inl:
1642 Add POSIX-style message queue implementation
1644 * cdl/kernel.cdl: Add mqueue1 test
1645 * cdl/scheduler.cdl: Add new CYGIMP_KERNEL_SCHED_SORTED_QUEUES option
1647 * include/sema.hxx: Need thread.inl header, not just thread.hxx
1648 Make Cyg_Counting_Semaphore::peek() const since it is
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
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
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
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
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
1670 2000-05-16 Jesper Skov <jskov@redhat.com>
1672 * tests/dhrystone.c: More loops on the TX49
1674 2000-05-15 Jonathan Larmour <jlarmour@redhat.co.uk>
1676 * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY):
1677 Default to CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
1679 2000-05-04 Jonathan Larmour <jlarmour@redhat.co.uk>
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.
1686 2000-05-02 Gary Thomas <gthomas@redhat.com>
1689 * tests/intr0.cxx: Correct test for cases when VSR_MIN or
1690 ISR_MIN are not zero (bad assumption).
1692 2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
1694 * cdl/thread.cdl (CYGNUM_KERNEL_THREADS_DATA_LIBC): Don't need libc
1695 slot. Replace with CYGNUM_KERNEL_THREADS_DATA_ERRNO slot instead.
1697 2000-04-28 Nick Garnett <nickg@cygnus.co.uk>
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
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
1720 * include/mutex.hxx:
1721 Added Cyg_Mutex::get_owner() to return pointer to owning thread.
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
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
1739 2000-04-26 Jesper Skov <jskov@redhat.com>
1741 * tests/kcache1.c: Also to flush testing with unified caches.
1743 2000-04-26 Jesper Skov <jskov@redhat.com>
1745 * tests/clockcnv.cxx:
1746 * tests/dhrystone.c:
1747 Renamed 850 HAL package.
1749 2000-04-25 Jesper Skov <jskov@redhat.com>
1751 * tests/kcache1.c: Fixed cache check to also look for unified
1754 2000-04-19 Jesper Skov <jskov@cygnus.co.uk>
1756 * tests/clockcnv.cxx:
1757 * tests/dhrystone.c:
1758 Only a few laps around the block on the v850...
1760 2000-04-13 Nick Garnett <nickg@cygnus.co.uk>
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.
1767 2000-04-12 Nick Garnett <nickg@cygnus.co.uk>
1769 * include/sched.hxx:
1770 * src/sched/sched.cxx:
1773 * include/thread.hxx:
1774 Made Cyg_ThreadQueue::empty() an inline in class definition.
1776 * src/common/thread.cxx:
1777 Added CYG_REPORT_FUNCTION() to Cyg_Thread::exit().
1779 * include/kapidata.h:
1780 Brought thread structures up to date with kernel objects.
1783 * cdl/scheduler.cdl:
1784 Added ASR configuration, minor tidies.
1786 2000-04-12 Gary Thomas <gthomas@redhat.com>
1788 * src/common/kapi.cxx (cyg_scheduler_safe_lock):
1789 * include/kapi.h: Add 'cyg_scheduler_safe_lock()' function.
1791 2000-04-12 Jesper Skov <jskov@redhat.com>
1793 * cdl/interrupts.cdl:
1794 * cdl/scheduler.cdl:
1796 Don't let interfaces define anything.
1798 2000-04-07 Nick Garnett <nickg@cygnus.co.uk>
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.
1808 * include/mlqueue.hxx:
1809 * src/sched/mlqueue.cxx:
1810 Added timeslicing enable support.
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.
1818 * cdl/scheduler.cdl:
1819 Added dynamic timeslicing enable option.
1821 * include/kapidata.h:
1822 Adjusted to match changes in other header files.
1826 Modified these tests to match new priority inversion protocols
1827 configuration options.
1829 2000-03-28 John Dallaway <jld@cygnus.co.uk>
1838 Adjust documentation URLs.
1840 2000-03-27 Gary Thomas <gthomas@redhat.com>
1842 * tests/except1.cxx:
1843 * tests/kexcept1.c: Avoid trying to generate data access errors
1844 on platforms that don't support them.
1846 * tests/kcache1.c: Ignore test if no [data] caches defined.
1848 * tests/stress_threads.c: Infer minimal configuration for platforms
1849 with small amount of memory (as opposed to platform special cases).
1851 2000-03-27 Jesper Skov <jskov@redhat.com>
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().
1859 * tests/dhrystone.c: Requires CYGPKG_LIBC_MALLOC
1861 2000-03-07 Jesper Skov <jskov@redhat.com>
1863 * tests/mutex3.cxx: Minor tweak from Hugo to allow reduced runtime
1866 2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>
1868 * src/debug/dbg-thread-demux.c:
1869 CYG_HAL_SPARCLITE_SLEB -> CYGPKG_HAL_SPARCLITE_SLEB
1870 Also fix a comment typo
1872 2000-02-29 Jesper Skov <jskov@redhat.com>
1874 * tests/kcache1.c: Don't run last part of test on MIPS sim - it's
1877 2000-02-25 Jesper Skov <jskov@redhat.com>
1879 * tests/dhrystone.c:
1880 * tests/tm_basic.cxx:
1881 Don't allow use of devices for diag output when running performace
1884 2000-02-17 Jonathan Larmour <jlarmour@redhat.co.uk>
1886 * include/pkgconf/kernel.h: Make
1887 CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE a cdl_component
1888 since it has children now
1890 2000-02-17 Jesper Skov <jskov@redhat.com>
1892 * include/mvarimpl.inl: Avoid unlinking the list from the head
1895 2000-02-11 Jesper Skov <jskov@redhat.com>
1897 * tests/dhrystone.c (PASSES): Reduced for MPC8xx targets.
1899 2000-02-10 Jesper Skov <jskov@redhat.com>
1901 * tests/except1.cxx (except0_main):
1902 * tests/kexcept1.c (except0_main):
1903 Also reclaim DATA_TLB_MISS vector if available.
1905 2000-02-03 Jesper Skov <jskov@redhat.com>
1907 * src/sched/lottery.cxx (schedule): CYG_HAL_POWERPC_x->CYGPKG_...
1909 2000-02-01 Jonathan Larmour <jlarmour@redhat.co.uk>
1911 * tests/tm_basic.cxx (NTEST_THREADS): Reduce further to fit on small
1914 (NCOUNTERS): Likewise
1916 * src/common/clock.cxx: Rework last change - change types of
1917 clock_dsr_read and delta to unsigned instead
1919 2000-01-31 Jonathan Larmour <jlarmour@redhat.co.uk>
1921 * src/common/clock.cxx (isr): Use HAL_CLOCK_LATENCY, not HAL_CLOCK_READ
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
1928 2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>
1931 Adjust help URLs in line with new doc layout.
1933 2000-01-31 Jesper Skov <jskov@redhat.com>
1935 * tests/tm_basic.cxx: Use CYG_TEST_NA insetad of PASS when not
1938 2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>
1941 Adjust help URLs in line with new doc layout.
1943 2000-01-26 Hugo Tyson <hmt@cygnus.co.uk>
1945 * include/clock.hxx (class Cyg_Clock): Add members to convert to
1946 and from this clock resolution and others.
1948 * include/clock.inl (convert): New Cyg_Clock member.
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.
1957 * tests/clockcnv.cxx: New file: test the clock converters.
1959 * tests/PKGconf.mak (TESTS): Add clockcnv to the tests.
1961 * cdl/kernel.cdl: Add clockcnv to the tests.
1963 2000-01-20 Hugo Tyson <hmt@cygnus.co.uk>
1966 (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY):
1967 Change this to an active_if on simple prio-inh. Was broken.
1969 2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>
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.
1976 2000-01-19 Jesper Skov <jskov@cygnus.co.uk>
1978 * tests/stress_threads.c: Don't assert requested priority =
1979 allocated. Allow some flexibility of handler priorities.
1981 2000-01-13 Hugo Tyson <hmt@cygnus.co.uk>
1983 * tests/mutex3.cxx (control_thread): Add a CYG_TEST_INIT();
1986 2000-01-11 Hugo Tyson <hmt@cygnus.co.uk>
1988 * cdl/kernel.cdl: Add new kernel test mutex3, put in to test
1989 RELAY prio inheritance extension.
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.
1996 * tests/PKGconf.mak: Add new kernel test mutex3, put in to test
1997 RELAY prio inheritance extension.
1999 2000-01-11 Hugo Tyson <hmt@cygnus.co.uk>
2001 * cdl/synch.cdl: New config option added,
2002 (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).
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.
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
2016 * include/sched.hxx (class Cyg_SchedThread::relay_priority): New
2017 member function declared.
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
2025 2000-01-11 Hugo Tyson <hmt@cygnus.co.uk>
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.
2031 1999-12-23 Hugo Tyson <hmt@cygnus.co.uk>
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.
2037 1999-12-13 Jonathan Larmour <jlarmour@cygnus.co.uk>
2039 * tests/tm_basic.cxx (run_alarm_tests): Add new measurement of
2040 latency between alarm firing and thread resume
2042 1999-12-13 Jonathan Larmour <jlarmour@cygnus.co.uk>
2044 * cdl/kernel.cdl: Fix some minor mistakes in the lists of tests to
2047 1999-12-08 John Dallaway <jld@cygnus.co.uk>
2051 Conditionally build the tests 'stress_threads', 'kcache1' and
2054 1999-11-30 Hugo Tyson <hmt@cygnus.co.uk>
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
2061 1999-11-24 Gary Thomas <gthomas@cygnus.co.uk>
2063 * tests/tm_basic.cxx: Size tests based on available resources,
2064 using MLT files. Fall back if not available.
2066 1999-11-22 Nick Garnett <nickg@cygnus.co.uk>
2068 * src/sched/bitmap.cxx (Cyg_Scheduler_Implementation::add_thread):
2069 Fixed typo in assertion, and moved it to a more useful place.
2071 1999-11-03 John Dallaway <jld@cygnus.co.uk>
2073 * cdl/kernel.cdl: Define all tests.
2075 1999-10-29 Gary Thomas <gthomas@cygnus.co.uk>
2077 * tests/PKGconf.mak: Enable cache tests for Cirrus Logic boards.
2079 1999-10-27 John Dallaway <jld@cygnus.co.uk>
2083 Specify CYGPKG_KERNEL_TESTS in terms of testing
2086 1999-10-26 John Dallaway <jld@cygnus.co.uk>
2090 Define initial version of CYGPKG_KERNEL_TESTS for
2091 verification purposes.
2093 1999-10-19 John Dallaway <jld@cygnus.co.uk>
2097 Define CDL options for package-specific CFLAGS.
2099 1999-10-08 Jesper Skov <jskov@cygnus.co.uk>
2101 * tests/kcache1.c: Fix array size.
2103 * src/sched/bitmap.cxx (add_thread):
2104 * src/sched/mlqueue.cxx (add_thread):
2105 Check for valid thread priority.
2107 1999-10-07 John Dallaway <jld@cygnus.co.uk>
2113 Specify radio buttons using CDL interfaces.
2115 1999-10-06 Bart Veer <bartv@cygnus.co.uk>
2117 * cdl/scheduler.cdl:
2118 Make the schedulers mutually exclusive via a cdl_interface
2120 1999-10-05 Jesper Skov <jskov@cygnus.co.uk>
2122 * tests/kcache1.c: Reduced memory footprint.
2124 1999-09-25 Jesper Skov <jskov@cygnus.co.uk>
2126 * tests/stress_threads.c: Added date header and flush() calls.
2128 1999-09-16 Hugo Tyson <hmt@cygnus.co.uk>
2130 * tests/tm_basic.cxx (run_mutex_tests): Must unlock mutices before
2131 destroying, given the change below.
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.
2140 1999-09-13 Gary Thomas <gthomas@cygnus.co.uk>
2142 * src/intr/intr.cxx (call_pending_DSRs_inner): Add assert to check
2143 for valid DSR (before trying to use it).
2145 1999-09-13 Jesper Skov <jskov@cygnus.co.uk>
2147 * tests/stress_threads.c: Print out malloc system info.
2148 (print_statistics): Fix buglet.
2150 1999-09-10 Jesper Skov <jskov@cygnus.co.uk>
2152 * tests/stress_threads.c: Print out more info. Reduce dump
2153 frequency as test runs.
2155 1999-08-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
2157 * include/pkgconf/kernel.h: Add missing close brace in
2158 CYGIMP_KERNEL_COUNTERS_CLOCK_LATENCY CDL.
2160 1999-08-24 Nick Garnett <nickg@cygnus.co.uk>
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.
2166 1999-08-23 Hugo Tyson <hmt@cygnus.co.uk>
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.
2174 1999-08-23 Nick Garnett <nickg@cygnus.co.uk>
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.
2185 1999-08-17 John Dallaway <jld@cygnus.co.uk>
2187 * cdl/counters.cdl, cdl/interrupts.cdl, cdl/scheduler.cdl:
2189 Implement radio buttons using "FIXME radio" hack in
2190 description field for now.
2192 1999-08-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
2194 * src/sload/sload.c: Rename AM32 to AM31
2196 1999-08-12 Nick Garnett <nickg@cygnus.co.uk>
2198 * src/debug/dbg_gdb.cxx (dbg_make_threadref): Extended test for
2199 uninitialized thread pointer.
2201 1999-07-29 Jesper Skov <jskov@cygnus.co.uk>
2203 * src/sync/mutex.cxx (lock): Removed assertion again. Not possible
2204 to determine if a violation wil cause a deadlock.
2206 1999-07-27 Jesper Skov <jskov@cygnus.co.uk>
2208 * src/sync/mutex.cxx (lock): Added simple assertion check for
2211 * tests/stress_threads.c: Only allow printf from main thread to
2214 1999-07-14 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
2226 * tests/PKGconf.mak (TESTS): Do build kcache1 and kcache2 for the
2227 ARM_EBSA285; it seems kosher. kcache2 does absolutely nothing, of
2230 1999-07-09 Jesper Skov <jskov@cygnus.co.uk>
2232 * tests/stress_threads.c: Shifted thread priorities to make room
2233 for main() at priority 0.
2237 1999-07-08 Jesper Skov <jskov@cygnus.co.uk>
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.
2243 1999-06-30 Jesper Skov <jskov@cygnus.co.uk>
2245 * tests/dhrystone.c: Also NA-quit if CYGPKG_INFRA_DEBUG or
2246 CYGPKG_KERNEL_INSTRUMENT are enabled.
2248 1999-06-23 Jesper Skov <jskov@cygnus.co.uk>
2250 * tests/dhrystone.c: Use fewer loops on ARM targets - they don't
2253 1999-06-22 Nick Garnett <nickg@cygnus.co.uk>
2255 * src/intr/intr.cxx (Cyg_Interrupt::chain_isr): Was testing the wrong
2256 macro for the default ISR. Fixed.
2258 * src/common/clock.cxx (Cyg_RealTimeClock::isr): Add HANDLED bit
2261 1999-06-21 Jesper Skov <jskov@cygnus.co.uk>
2263 * tests/dhrystone.c: Don't run test on sims or synthetic target.
2264 Only run test when compiled with optimization.
2266 1999-06-18 Jesper Skov <jskov@cygnus.co.uk>
2268 * tests/dhrystone.c: Added unsupported header.
2270 1999-06-10 Hugo Tyson <hmt@cygnus.co.uk>
2272 * src/debug/dbg_gdb.cxx (dbg_threadinfo): Report counted sleep
2273 correctly; both COUNTSLEEP and SLEEPING are set.
2275 1999-06-01 Hugo Tyson <hmt@masala.cygnus.co.uk>
2277 * src/debug/dbg_gdb.cxx (dbg_threadinfo): Make the thread state
2278 string a little more sensible when read as plain english.
2280 1999-05-31 Jesper Skov <jskov@cygnus.co.uk>
2282 * tests/dhrystone.c:
2283 * tests/PKGconf.mak (TESTS):
2284 Added dhrystone test.
2286 Updated to 2.1 from ftp.nosc.mil
2288 1999-05-27 Nick Garnett <nickg@cygnus.co.uk>
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.
2294 * src/debug/dbg_gdb.cxx (dbg_make_threadref): Fixed this routine
2295 so that it copes with a NULL thread object.
2297 1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
2299 * tests/stress_threads.c: Output stackmon status
2300 occasionally. Output (simple) run time.
2302 1999-05-27 Jesper Skov <jskov@cygnus.co.uk>
2304 * tests/kcache1.c: Added handling of unified caches.
2306 1999-05-26 Jesper Skov <jskov@cygnus.co.uk>
2308 * include/test/stackmon.h: Fixed some typos and thinkos.
2310 * tests/tm_basic.cxx: Include new stackmon header.
2312 * src/common/kapi.cxx:
2314 Added kapi support for stackmon requirements.
2316 * include/stackmon.hxx: [deleted]
2317 * include/test/stackmon.h: [added]
2318 Made stackmon safe to use from both C and C++.
2320 1999-05-25 Jesper Skov <jskov@cygnus.co.uk>
2322 * tests/stress_threads.c (setup_death_alarm): Only compile when
2323 DEATH_TIME_LIMIT is defined.
2325 1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
2327 * tests/except1.cxx:
2328 * tests/intr0.cxx (intr0_main):
2330 * tests/kintr0.c (kintr0_main):
2331 Change all mentions of CYG_HAL_TX39[_JMR3904] to
2332 CYG_HAL_MIPS_TX39[_JMR3904]
2334 * tests/kcache1.c: Use HAL_DCACHE_SYNC if possible
2336 1999-05-20 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
2350 1999-05-18 Jesper Skov <jskov@cygnus.co.uk>
2352 * tests/stress_threads.c (main_program): Changed behavior of
2353 cyg_thread_delete caller.
2355 1999-05-18 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
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.
2373 1999-05-17 Hugo Tyson <hmt@masala.cygnus.co.uk>
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.
2381 1999-05-16 Gary Thomas <gthomas@cygnus.co.uk>
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>.
2388 1999-05-13 Nick Garnett <nickg@cygnus.co.uk>
2390 The following changes were all made in a branch and are now being
2393 1999-05-06 Nick Garnett <nickg@cygnus.co.uk>
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.
2399 * src/debug/dbg-thread-syscall.h:
2400 Removed. Replaced by identical file in hal/common.
2402 1999-04-21 Nick Garnett <nickg@cygnus.co.uk>
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
2409 * include/instrmnt.h: Added CYG_INSTRUMENT_EVENT_THREAD_ENTER
2412 * src/instrmnt/meminst.cxx (cyg_instrument): Added implementation
2413 of CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.
2415 * src/common/thread.cxx: Added extra instrumentation point on
2418 1999-05-10 Jesper Skov <jskov@cygnus.co.uk>
2420 * tests/stress_threads.c (main_program): Added workaround for a
2423 1999-05-07 Jesper Skov <jskov@cygnus.co.uk>
2425 * src/common/kapi.cxx (cyg_scheduler_unlock, cyg_scheduler_lock):
2426 Make these simple calls to the scheduler.
2428 1999-05-07 Jesper Skov <jskov@cygnus.co.uk>
2430 * tests/stress_threads.c (setup_death_alarm): Reduce run time on
2433 1999-05-06 Jesper Skov <jskov@cygnus.co.uk>
2435 * tests/stress_threads.c: Reversed priorities of agents.
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.
2442 1999-04-27 Jonathan Larmour <jlarmour@cygnus.co.uk>
2444 * tests/stress_threads.c:
2445 If there aren't enough priorities, output an N/A, rather than
2446 stopping compilation with a #error
2448 1999-04-28 Jesper Skov <jskov@cygnus.co.uk>
2450 * tests/stress_threads.c: Don't print text from alarm handler.
2452 1999-04-28 Jesper Skov <jskov@cygnus.co.uk>
2455 * tests/except1.cxx:
2456 Made NA to PowerPC SIM.
2458 1999-04-27 Gary Thomas <gthomas@cygnus.co.uk>
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.
2466 Fix merge screwup :-(
2468 1999-04-26 Hugo Tyson <hmt@cygnus.co.uk>
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.
2474 * src/common/kapi.cxx (cyg_thread_delete): Implement it.
2476 1999-04-26 Hugo Tyson <hmt@cygnus.co.uk>
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.
2484 1999-04-23 Mark Galassi <rosalia@cygnus.com>
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.
2492 1999-04-23 Hugo Tyson <hmt@masala.cygnus.co.uk>
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}.
2504 1999-04-21 Hugo Tyson <hmt@cygnus.co.uk>
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
2512 1999-04-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
2515 Reduce iterations for time_ilock(), time_dlock(), and test_dzero()
2516 if a simulated environment is detected
2519 1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
2521 * tests/kill.cxx: Make delay ticks greater than 1 to prevent
2522 scheduling problems if the clock rolls over immediately
2525 1999-04-20 Mark Galassi <rosalia@cygnus.com>
2527 * tests/stress_threads.c: applied Hugo's patch to fix stack sizes.
2529 1999-04-19 Hugo Tyson <hmt@cygnus.co.uk>
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
2537 (bin_sem1_main): Add conditional use of set_priority on
2538 CYGIMP_THREAD_PRIORITY as it should be.
2540 1999-04-14 Jesper Skov <jskov@cygnus.co.uk>
2542 * src/debug/dbg_gdb.cxx: Fixed compiler warnings, cleaned up stub
2543 requirements (removed FIX ME).
2545 1999-04-14 Gary Thomas <gthomas@cygnus.co.uk>
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.
2552 1999-04-14 Mark Galassi <rosalia@cygnus.com>
2554 * tests/PKGconf.mak: added an ifndef for the AEB-1 board so that
2555 stress_threads is only built conditionally.
2557 * tests/stress_threads.c: added more config smarts suggested by
2558 Jesper for his configurations.
2560 1999-04-13 Jesper Skov <jskov@cygnus.co.uk>
2562 * src/debug/dbg_gdb.cxx: Current thread's registers live in
2563 registers, not _registers.
2565 1999-04-13 Mark Galassi <rosalia@cygnus.com>
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.
2575 1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>
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
2583 1999-04-09 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
2596 * include/thread.inl (class Cyg_Thread): to_queue_head(): new
2597 function. Define Cyg_Thread::rotate_queue() for all schedulers.
2599 * include/mlqueue.hxx (class Cyg_SchedThread_Implementation):
2600 to_queue_head(), ...ThreadQueue...::to_head(): new functions.
2602 * src/sched/mlqueue.cxx (class Cyg_SchedThread_Implementation):
2603 to_queue_head(), ...ThreadQueue...::to_head(): new functions.
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.
2609 1999-04-08 Jesper Skov <jskov@cygnus.co.uk>
2611 * kernel/current/src/common/thread.cxx:
2612 Removed obsolete Cyg_Thread constructor.
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.
2619 1999-04-08 Jesper Skov <jskov@cygnus.co.uk>
2621 * src/common/kapi.cxx: Minor indentation fixes.
2623 1999-04-07 Jesper Skov <jskov@cygnus.co.uk>
2625 * include/mfiximpl.inl (Cyg_Mempool_Fixed_Implementation): Moved
2626 argument assertions before the first use of the arguments.
2628 1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>
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.
2638 1999-03-31 Nick Garnett <nickg@cygnus.co.uk>
2640 * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
2641 Fixed value of this option for TX39 66MHz to correct number.
2643 1999-03-25 Gary Thomas <gthomas@cygnus.co.uk>
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.
2648 1999-03-24 Nick Garnett <nickg@cygnus.co.uk>
2650 * include/pkgconf/kernel.h: Fixed an ifdef error.
2652 1999-03-24 Gary Thomas <gthomas@cygnus.co.uk>
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.
2658 * src/common/clock.cxx: Clock latency measurement defaults to 'off'.
2660 1999-03-23 Nick Garnett <nickg@cygnus.co.uk>
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
2666 1999-03-23 Gary Thomas <gthomas@cygnus.co.uk>
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.
2672 1999-03-23 Nick Garnett <nickg@cygnus.co.uk>
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.
2678 1999-03-23 Hugo Tyson <hmt@cygnus.co.uk>
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.
2696 1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
2698 * include/thread.inl (attach_stack):
2699 Fix typo in assert; missing comma.
2701 1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>
2703 * src/debug/dbg-thread-syscall.h: Update copyright
2705 1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>
2707 * include/thread.inl:
2708 * src/common/thread.cxx:
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.
2719 1999-03-19 Nick Garnett <nickg@cygnus.co.uk>
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.
2728 * include/kapi.h: Type of cyg_tick_count_t changed to cyg_uint64.
2729 Response to PR 19320.
2731 1999-03-19 Gary Thomas <gthomas@cygnus.co.uk>
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.
2738 1999-03-17 Gary Thomas <gthomas@cygnus.co.uk>
2740 * tests/tm_basic.cxx: Improve messages and layout.
2741 Better message for 'hardware clock tick' value.
2743 * src/common/clock.cxx: Be more careful about clock latency delta
2744 values that are used/kept - some hardware can yield incorrect values.
2746 * tests/testaux.hxx: Use HAL recommended stack size for default.
2748 1999-03-16 Nick Garnett <nickg@cygnus.co.uk>
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.
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.
2761 1999-03-15 Nick Garnett <nickg@cygnus.co.uk>
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.
2769 1999-03-15 Gary Thomas <gthomas@cygnus.co.uk>
2771 * tests/tm_basic.cxx: Improved and cleaned up messages overall.
2773 1999-03-15 Jesper Skov <jskov@cygnus.co.uk>
2775 * tests/tm_basic.cxx: Kill created threads after mutex, mbox and
2778 1999-03-12 Hugo Tyson <hmt@cygnus.co.uk>
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.
2785 1999-03-12 Hugo Tyson <hmt@cygnus.co.uk>
2788 * tests/thread1.cxx:
2789 * tests/thread_gdb.c:
2790 Deal with CYGNUM_HAL_MINIMUM_STACK_SIZE requirement.
2792 1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>
2794 * include/thread.inl (attach_stack): Add check/assert for minimum
2795 stack size (HAL defined)
2797 1999-03-11 Hugo Tyson <hmt@cygnus.co.uk>
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
2803 1999-03-11 Nick Garnett <nickg@cygnus.co.uk>
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.
2810 * tests/thread1.cxx:
2811 Make use of placement operator new rather than dynamic one in
2812 intr0. Removed duplicate definition from thread1.
2814 1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
2816 * tests/kill.cxx: Increased delays for the synthetic target.
2818 1999-03-11 Jesper Skov <jskov@cygnus.co.uk>
2820 * tests/intr0.cxx (intr0_main):
2821 * tests/kintr0.c (kintr0_main):
2822 Only attach interrupt handlers to vectors not in use.
2824 1999-03-10 Jesper Skov <jskov@cygnus.co.uk>
2826 * src/sched/sched.cxx (start): Change the dependency for
2827 referencing the RTC to make its inclusion independent of scheduler
2830 1999-03-10 Jesper Skov <jskov@cygnus.co.uk>
2832 * src/intr/intr.cxx (attach): Assert that interrupt vector attach
2835 1999-03-10 Nick Garnett <nickg@cygnus.co.uk>
2837 * include/pkgconf/kernel.h:
2838 Changed names used to control clock frequency on TX39 target.
2840 1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>
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()'.
2847 1999-02-26 Jonathan Larmour <jlarmour@cygnus.co.uk>
2849 * tests/except1.cxx (except0_main):
2850 * tests/kexcept1.c (except0_main):
2851 Move CYG_TEST_GDBCMD back to being before CYG_TEST_INIT
2853 1999-02-26 Jesper Skov <jskov@cygnus.co.uk>
2856 * src/common/kapi.cxx: Changed cyg_exception_call_handler
2857 definition to be consistent with declaration.
2859 * include/kapi.h: Change cyg_code_t to signed type.
2861 * tests/except1.cxx (except0_main):
2862 * tests/kexcept1.c (except0_main):
2863 Init diag before making first output.
2865 1999-02-26 Jesper Skov <jskov@cygnus.co.uk>
2867 * tests/mutex2.cxx (mutex2_main): Set priorities in a different
2870 1999-02-25 Nick Garnett <nickg@cygnus.co.uk>
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.
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.
2882 1999-02-24 Nick Garnett <nickg@cygnus.co.uk>
2885 * src/intr/intr.cxx:
2886 Added an interrupt disable counter to
2887 Cyg_Interrupt::disable_interrupts() and
2888 Cyg_Interrupt::enable_interrupts().
2890 1999-02-23 Nick Garnett <nickg@cygnus.co.uk>
2892 * include/pkgconf/kernel.h:
2893 Added support for 66MHz part.
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.
2900 1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>
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
2911 1999-02-22 Nick Garnett <nickg@cygnus.co.uk>
2914 * include/mutex.hxx:
2915 * src/sync/mutex.cxx:
2916 * src/common/kapi.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
2925 1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>
2927 * include/except.hxx:
2928 * include/kapidata.h
2929 Rename CYG_EXCEPTION_COUNT -> CYGNUM_HAL_EXCEPTION_COUNT in line
2931 Rename deliver_exception() -> cyg_hal_deliver_exception()
2934 * src/common/clock.cxx:
2935 Rename CYG_VECTOR_RTC -> CYGNUM_HAL_INTERRUPT_RTC in line with
2938 * src/common/except.cxx:
2939 Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in line
2941 Allow for CYGNUM_HAL_EXCEPTION_MIN != 0
2942 Rename deliver_exception() -> cyg_hal_deliver_exception()
2943 Add more tracing, and fix some existing
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
2951 * src/sched/bitmap.cxx:
2952 * src/sched/mlqueue.cxx:
2953 * src/sync/mutex.cxx:
2954 Add more tracing and fix some existing
2957 * tests/except1.cxx:
2959 Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in line
2962 Use new CYG_TEST_GDBCMD to tell GDB not to stop
2963 Remove special simulator case as it should now work
2967 Rename CYG_ISR/VSR_* -> CYGNUM_HAL_ISR/VSR_* in line
2971 1999-02-16 Jonathan Larmour <jlarmour@cygnus.co.uk>
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
2976 1999-02-12 Hugo Tyson <hmt@cygnus.co.uk>
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.
2982 * include/pkgconf/kernel.h (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE):
2983 Document that this option can be overridden by HALs demands.
2985 1999-02-11 Jesper Skov <jskov@cygnus.co.uk>
2987 * src/debug/dbg-thread-syscall.h:
2988 * src/debug/dbg-thread-demux.c:
2989 Added handling of dbg_scheduler_func calls.
2991 1999-02-11 Nick Garnett <nickg@cygnus.co.uk>
2994 * src/common/kapi.cxx:
2995 Added API support for per-thread data.
2998 * src/common/kapi.cxx:
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.
3007 1999-02-08 Jesper Skov <jskov@cygnus.co.uk>
3009 * tests/kexcept1.c (entry0):
3010 * tests/except1.cxx (entry0):
3011 Don't call cause_exception on SIMs.
3013 1999-02-05 Jesper Skov <jskov@cygnus.co.uk>
3015 * src/common/clock.cxx (isr): Ignore a latency of 0 when finding
3018 1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
3020 * include/instrmnt.h: Slightly overdid the use of CYG_UNUSED_PARAM
3023 1999-02-04 Jesper Skov <jskov@cygnus.co.uk>
3025 * src/intr/intr.cxx:
3026 Make instrumentation macros always use the parameters to avoid
3029 1999-02-03 Jesper Skov <jskov@cygnus.co.uk>
3031 * tests/memfix1.cxx:
3033 Make timing less sensitive.
3035 1999-02-02 Jesper Skov <jskov@cygnus.co.uk>
3037 * tests/bin_sem2.cxx: Fixed compiler warning.
3039 1999-02-02 Jesper Skov <jskov@cygnus.co.uk>
3041 * tests/bin_sem2.cxx (bin_sem2_main): Reduce run time in SIM.
3043 1999-02-01 Nick Garnett <nickg@cygnus.co.uk>
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.
3049 1999-02-01 Gary Thomas <gthomas@cygnus.co.uk>
3051 * tests/tm_basic.cxx: Adjust stack sizes for platforms with
3054 1999-01-28 Nick Garnett <nickg@cygnus.co.uk>
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.
3063 1999-01-28 Jesper Skov <jskov@cygnus.co.uk>
3065 * tests/tm_basic.cxx: Fixed strings.
3067 1999-01-26 Hugo Tyson <hmt@cygnus.co.uk>
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.
3074 1999-01-26 Jesper Skov <jskov@cygnus.co.uk>
3076 * src/debug/dbg-thread-demux.c: Oops. Undid my change of 1999-01-21.
3078 1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>
3080 * src/common/except.cxx: Make global exception initialisation object
3081 be constructed at INTERRUPT priority
3083 1999-01-25 Jesper Skov <jskov@cygnus.co.uk>
3085 * tests/thread_gdb.c: Ensure that there are enough priorities.
3087 1999-01-25 Jesper Skov <jskov@cygnus.co.uk>
3089 * tests/tm_basic.cxx: Ensure that there are enough priorities.
3091 1999-01-25 Nick Garnett <nickg@cygnus.co.uk>
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.
3098 1999-01-22 Jesper Skov <jskov@cygnus.co.uk>
3100 * tests/tm_basic.cxx: Don't run on Linux target.
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.
3106 * tests/philo.cxx (cyg_start):
3107 Use tests/testaux.hxx to get new threads, to get the alignment
3108 required; see below.
3110 * tests/thread2.cxx (thread2_main):
3111 Use tests/testaux.hxx to get new threads, to get the alignment
3112 required; see below.
3114 * tests/tm_basic.cxx:
3115 Larger stack for greedy processor.
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.
3123 1999-01-21 Jesper Skov <jskov@cygnus.co.uk>
3125 * tests/flag1.cxx: Increase delays/timeouts to prevent failure
3126 when configured with full trace logging.
3128 1999-01-21 Jesper Skov <jskov@cygnus.co.uk>
3130 * src/debug/dbg-thread-demux.c: Removed PR 17327 workarounds.
3132 1999-01-19 Jonathan Larmour <jlarmour@cygnus.co.uk>
3134 * src/sched/sched.cxx (start):
3135 CYG_REFERENCE_SYMBOL -> CYG_REFERENCE_OBJECT in line with
3138 1999-01-19 Jesper Skov <jskov@cygnus.co.uk>
3140 * src/sync/mutex.cxx:
3141 * include/pkgconf/kernel.h: Let
3142 CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT require
3143 CYGFUN_KERNEL_THREADS_TIMER.
3145 1999-01-18 Nick Garnett <nickg@cygnus.co.uk>
3147 * src/debug/dbg-thread-demux.c (patch_dbg_syscalls): Added test
3148 for CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT in patch_dbg_syscalls().
3150 1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>
3152 * include/mvarimpl.inl (free): Memory list sort was incorrect.
3154 * tests/PKGconf.mak (TESTS): Don't build cache tests on
3157 1999-01-15 Jesper Skov <jskov@cygnus.co.uk>
3162 Increase delays used so the overhead of GDB packets doesn't make
3165 1999-01-14 Jesper Skov <jskov@cygnus.co.uk>
3167 * src/sched/sched.cxx (start): Use new CYG_REFERENCE_SYMBOL macro.
3169 1999-01-14 Nick Garnett <nickg@cygnus.co.uk>
3171 * src/debug/dbg_gdb.cxx: Extended return types to include success,
3172 fail and caller-do-it as required by msnyder.
3174 * src/debug/dbg-thread-demux.c: Moved prototype of dbg_scheduler()
3175 to dbg-threads-api.h.
3177 1999-01-13 Jesper Skov <jskov@cygnus.co.uk>
3179 * src/sched/sched.cxx (start): Better implementation of the
3180 real_time_clock reference.
3182 1999-01-13 Jesper Skov <jskov@cygnus.co.uk>
3184 * include/pkgconf/kernel.h: Disable CYGSEM_KERNEL_SCHED_TIMESLICE
3185 in CYG_HAL_ROM_MONITOR magic.
3187 1999-01-07 Jesper Skov <jskov@cygnus.co.uk>
3189 * include/pkgconf/kernel.h: Added RTC values for i386/Linux.
3192 1999-01-12 Nick Garnett <nickg@cygnus.co.uk>
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.
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.
3202 * include/sched.hxx:
3203 * include/sched.inl:
3204 Added Cyg_Scheduler::unlock_simple() to decrement the lock without
3207 1999-01-05 Jesper Skov <jskov@cygnus.co.uk>
3210 * src/sched/sched.cxx (start): Reference the real time clock to
3211 ensure it is included when linking.
3213 1999-01-04 Jesper Skov <jskov@cygnus.co.uk>
3215 * tests/thread1.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.
3226 1999-01-04 Jesper Skov <jskov@cygnus.co.uk>
3229 * tests/thread1.cxx:
3234 Don't run tests that rely on delay() when delay() is only defined
3235 as an empty function.
3237 1998-12-24 Bart Veer <bartv@cygnus.co.uk>
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
3253 1998-12-22 Nick Garnett <nickg@cygnus.co.uk>
3255 * include/instrmnt.h: Fixed casts for arguments to
3256 cyg_instrument() to work in C. Fixes PR 18413.
3258 1998-12-21 Gary Thomas <gthomas@cygnus.co.uk>
3260 * include/pkgconf/kernel.h: Change AEB-1 clock scale.
3262 1998-12-17 Gary Thomas <gthomas@cygnus.co.uk>
3264 * tests/tm_basic.cxx: Calculate system clock resolution
3265 based on 'CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION'
3267 1998-12-16 Gary Thomas <gthomas@cygnus.co.uk>
3269 * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3270 Add support for new ARM AEB-1.
3272 1998-12-16 Hugo Tyson <hmt@masala.cygnus.co.uk>
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.
3280 1998-12-16 Jesper Skov <jskov@cygnus.co.uk>
3283 * tests/kill.cxx (cyg_start): Do NOP test if required kernel
3284 functionality is disabled.
3286 1998-12-15 Jesper Skov <jskov@cygnus.co.uk>
3288 * include/pkgconf/kernel.h: Changed
3289 CYGDBG_KERNEL_DEBUG_GDB_INCLUDE_STUBS to
3290 CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS.
3292 1998-12-14 Jesper Skov <jskov@cygnus.co.uk>
3294 * tests/tm_basic.cxx: Made use of cyg_mbox_get() conditional on
3295 CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT.
3297 1998-12-14 Jesper Skov <jskov@cygnus.co.uk>
3299 * tests/tm_basic.cxx: Added requirement for kernel RTC.
3301 1998-12-11 Jesper Skov <jskov@cygnus.co.uk>
3303 * tests/kcache2.c: Added tests of three more macros.
3305 1998-12-10 Jesper Skov <jskov@cygnus.co.uk>
3307 * tests/kcache2.c: Added tests of three more macros.
3309 1998-12-10 Jesper Skov <jskov@cygnus.co.uk>
3311 * tests/PKGconf.mak:
3313 Added new cache test.
3315 1998-12-04 Nick Garnett <nickg@cygnus.co.uk>
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.
3323 1998-12-04 Jesper Skov <jskov@cygnus.co.uk>
3325 * include/intr.hxx (class Cyg_Interrupt): Made post_dsr public so
3326 it can be called from HAL interrupt arbiters.
3328 1998-12-04 Jesper Skov <jskov@cygnus.co.uk>
3330 * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3331 Set to the correct value for a 33.333MHz clock.
3333 1998-12-02 Jesper Skov <jskov@cygnus.co.uk>
3335 * src/intr/intr.cxx (interrupt_end, chain_isr): Got rid of magic
3336 interrupt constants.
3338 1998-11-30 Gary Thomas <gthomas@cygnus.co.uk>
3340 * include/pkgconf/kernel.h: Fix spelling of CYGVAR_KERNEL_COUNTERS_CLOCK
3342 1998-11-25 Jesper Skov <jskov@cygnus.co.uk>
3344 * src/common/thread.cxx (check_this): Check that stack_ptr is
3347 Wed Nov 25 18:45:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3349 * include/sched.inl (unlock) (lock):
3350 * src/common/thread.cxx (thread_entry):
3351 * src/sched/sched.cxx (unlock_inner):
3353 Ensure all accesses to sched_lock cannot be reordered by the
3356 1998-11-24 Jesper Skov <jskov@cygnus.co.uk>
3358 * src/common/thread.cxx (thread_entry): Prevent scheduler lock
3359 from being released too early.
3361 1998-11-23 Nick Garnett <nickg@cygnus.co.uk>
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.
3368 * tests/tm_basic.cxx: Added a test for many alarms firing
3371 1998-11-23 Jesper Skov <jskov@cygnus.co.uk>
3373 * tests/kcache1.c: Only run with stride 1 on SIMs.
3375 1998-11-19 Gary Thomas <gthomas@cygnus.co.uk>
3377 * tests/tm_basic.cxx: Insure appropriate kernel configuration for
3378 building tool. Needs at least kernel C API and multi-level scheduler.
3380 1998-11-18 Gary Thomas <gthomas@cygnus.co.uk>
3382 * tests/tm_basic.cxx: Add interrupt latency support. Print
3383 results to 10ns accuracy.
3385 * tests/PKGconf.mak: Add 'tm_basic' (the kernel timing test
3386 program) to list of built tests.
3388 * src/intr/intr.cxx: Change usage of HAL_INTERRUPT_MASK to have
3389 trailing ';' to match similar macros.
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.
3396 1998-11-17 Jesper Skov <jskov@cygnus.co.uk>
3398 * include/pkgconf/kernel.h: Renamed CYG_HAL_POWERPC_MP860 to
3399 CYG_HAL_POWERPC_MPC860.
3402 1998-10-28 David Moore <dsm@keema.cygnus.co.uk>
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.
3408 1998-10-28 Jesper Skov <jskov@cygnus.co.uk>
3410 * tests/kcache1.c (HAL_DCACHE_PURGE_ALL): Fixed compiler problem
3413 1998-10-27 Nick Garnett <nickg@cygnus.co.uk>
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
3420 1998-10-27 Hugo Tyson <hmt@cygnus.co.uk>
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
3428 1998-10-26 Jesper Skov <jskov@cygnus.co.uk>
3436 Do N/A PASS when kernel real-time clock is configured out.
3438 1998-10-26 Jesper Skov <jskov@lassi.cygnus.co.uk>
3441 * include/pkgconf/kernel.h
3442 (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE): Doubled to prevent stack
3443 overruns on PowerPC.
3445 1998-10-26 Jesper Skov <jskov@cygnus.co.uk>
3448 * src/debug/dbg_gdb.cxx (dbg_threadinfo): Removed "more: <none>"
3451 1998-10-23 John Dallaway <jld@cygnus.co.uk>
3453 * tests/tm_basic.cxx: Added basic timing test.
3455 1998-10-23 Nick Garnett <nickg@cygnus.co.uk>
3457 * include/instrmnt.h:
3458 Improved documentation of cyg_instrument_enable() and
3459 cyg_instrument_disable().
3461 * src/instrmnt/meminst.cxx:
3462 Added code to enable and disable whole groups of events.
3464 1998-10-23 Jesper Skov <jskov@lassi.cygnus.co.uk>
3466 * include/generic-stub.h: Deleted. It was moved to hal common some
3469 Fri Oct 23 04:45:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3472 Remove forced warning of a warning which no longer applies
3474 1998-10-22 Nick Garnett <nickg@cygnus.co.uk>
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.
3481 Thu Oct 22 18:21:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3483 * include/pkgconf/kernel.h:
3484 Fix commenting within CDL "comments"
3486 Thu Oct 22 17:25:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3488 * include/pkgconf/kernel.h:
3489 Remove CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER configuration
3490 option. For PR 17838
3492 1998-10-21 Nick Garnett <nickg@cygnus.co.uk>
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.
3498 * src/common/thread.cxx:
3499 Exchanged stack_base and stack_size in idle thread constructor.
3501 1998-10-20 Hugo Tyson <hmt@cygnus.co.uk>
3503 * tests/kflag1.c (kflag1_main):
3504 Only mess with f2 if it exists, ie. CYGFUN_KERNEL_THREADS_TIMER.
3506 1998-10-19 Mark Galassi <rosalia@cygnus.com>
3508 * include/pkgconf/kernel.h: updated the doc URL
3510 1998-10-19 Hugo Tyson <hmt@cygnus.co.uk>
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.
3517 * tests/PKGconf.mak (TESTS):
3518 Add new tests for flags via the C API.
3522 New tests (well, versions of the plain C++ versions flag0.cxx and
3523 flag1.cxx) for flags via the kernel C API.
3525 1998-10-19 Bart Veer <bartv@cygnus.co.uk>
3527 * include/pkgconf/kernel.h:
3528 Fixed description of clock resolution.
3530 1998-10-17 Bart Veer <bartv@cygnus.co.uk>
3532 * include/pkgconf/kernel.h:
3533 Added a way of configuring the clock interrupt frequency.
3535 Thu Oct 15 21:31:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3537 * include/pkgconf/kernel.h:
3538 Allow kernel to be disabled now
3540 * src/common/delete.cxx, src/common/memcpy.c, src/common/memset.c:
3541 Move these files to the infra package
3544 Don't build the above files any more
3546 Above changes are required for PR 17229
3548 1998-10-15 Hugo Tyson <hmt@masala.cygnus.co.uk>
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.
3557 Wed Oct 14 21:45:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3559 * tests/thread_gdb.c:
3560 Remove unnecessary inclusion of <cyg/kernel/diag.h>
3563 Add a warning to expect the "function declaration isn't a
3564 prototype" warning from infra/diag.h
3566 1998-10-14 Hugo Tyson <hmt@cygnus.co.uk>
3568 * src/common/thread.cxx (kill,reinitialize):
3569 Do not refer to member timer unless CYGFUN_KERNEL_THREADS_TIMER is
3572 1998-10-14 Nick Garnett <nickg@cygnus.co.uk>
3574 * src/debug/dbg-thread-demux.c:
3575 Now get dbg-threads-api.h from HAL.
3577 * src/debug/dbg_gdb.cxx:
3578 Tidied up info sent back by dbg_threadinfo().
3580 * src/common/thread.cxx:
3581 Changed constructor of idle thread to include initial priority and
3584 * include/pkgconf/kernel.h:
3585 Moved GDB stub configuration code out to hal.h.
3588 Moved definition of CYG_LABEL_NAME() out to cyg_type.h.
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.
3598 1998-10-14 Hugo Tyson <hmt@cygnus.co.uk>
3600 * include/thread.hxx (class Cyg_Thread):
3601 Add public members get_stack_base(), get_stack_size() and
3603 Add private members add_to_list() and remove_from_list() to
3604 centralize handling of the CYGVAR_KERNEL_THREADS_LIST as it is
3607 * include/thread.inl (class Cyg_Thread):
3608 Add public members get_stack_base(), get_stack_size() and
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
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().
3624 1998-10-14 Jesper Skov <jskov@cygnus.co.uk>
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
3631 1998-10-14 Jesper Skov <jskov@cygnus.co.uk>
3633 * src/debug/dbg_gdb.cxx: Don't include hal_stub.h unless it's really
3636 1998-10-13 Jesper Skov <jskov@cygnus.co.uk>
3638 * src/debug/generic-stub.c: Added thread support. Renaming a few
3639 functions/variables to match the most recent libstub
3641 Use thread_get_register & thread_put_register when handling GDB
3644 * src/debug/dbg_gdb.cxx (dbg_getthreadreg, dbg_getthreadreg):
3645 DTRT for current thread when CygMon is not configured.
3647 * src/debug/dbg_gdb.cxx (dbg_threadlist, dbg_getthreadreg,
3648 dbg_getthreadreg): return true/false rather than 0, 1, -1.
3650 * src/debug/dbg_gdb.cxx:
3651 * src/debug/dbg-threads-api.h:
3652 Added dbg_currthread_id.
3654 1998-10-08 Jesper Skov <jskov@lassi.cygnus.co.uk>
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.
3661 Tue Oct 13 17:36:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3663 * src/test/tsttracc.c (cyg_start):
3664 Replace CYG_REPORT_FUNCARGSVOID with the correct
3665 CYG_REPORT_FUNCARGVOID
3667 1998-10-09 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
3681 1998-10-08 Hugo Tyson <hmt@cygnus.co.uk>
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.
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.
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
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
3706 DESTRUCT added to various switches for completeness.
3708 The fixes to counted_sleep()[x2] and kill() are a bugfix for
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
3719 * include/mboxt2.inl:
3720 Add handing of DESTRUCT wake reason.
3721 Add a destructor which wakes all threads with DESTRUCT
3724 * src/sync/cnt_sem2.cxx:
3725 Add handing of DESTRUCT wake reason.
3726 Add a destructor which wakes all threads with DESTRUCT
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.
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.
3740 1998-10-08 Gary Thomas <gthomas@penang.cygnus.co.uk>
3742 * include/pkgconf/kernel.h:
3743 Add support for new architecture
3745 1998-10-07 Nick Garnett <nickg@cygnus.co.uk>
3747 * tests/kcache1.c (entry0):
3748 Replaced CYG_TEST_FINISH() with CYG_TEST_PASS_FINISH().
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.
3754 Sun Sep 27 20:12:15 1998 David Moore <dsm@keema.cygnus.co.uk>
3756 * include/mlqueue.hxx:
3757 * include/bitmap.hxx:
3758 Disallow more than 32 priority levels
3760 * include/pkgconf/kernel.h:
3761 Changed range of allowed levels from 64 to 32
3763 1998-09-27 Nick Garnett <nickg@cygnus.co.uk>
3765 * tests/memfix2.cxx:
3766 Changed message to say "Fixed memory pool 2 OK" rather than
3767 "Variable memory pool 2 OK".
3769 1998-09-26 Bart Veer <bartv@cygnus.co.uk>
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.
3775 1998-09-26 Nick Garnett <nickg@cygnus.co.uk>
3778 Added this test program for cache API. Includes some performance
3781 1998-09-25 Nick Garnett <nickg@cygnus.co.uk>
3783 * src/debug/dbg_gdb.cxx:
3784 Removed some debugging code.
3786 * tests/thread_gdb.c:
3787 Added this test program to allow for GDB thread support testing.
3789 1998-09-25 Bart Veer <bartv@cygnus.co.uk>
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.
3796 1998-09-25 Nick Garnett <nickg@cygnus.co.uk>
3798 * src/debug/dbg-thread-demux.c:
3799 Added include of <pkgconf/kernel.h>, removed debug code.
3801 1998-09-24 Bart Veer <bartv@cygnus.co.uk>
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.
3809 1998-09-24 Nick Garnett <nickg@cygnus.co.uk>
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.
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
3823 * include/instrmnt.h (CYG_INSTRUMENT_EVENT_INTR_CHAIN_ISR):
3826 Thu Sep 24 11:07:12 1998 David Moore <dsm@keema.cygnus.co.uk>
3828 * tests/except1.cxx:
3829 * tests/kexcept1.cxx:
3830 Made exception tests detect when CYGPKG_KERNEL_EXCEPTIONS
3834 1998-09-22 Bart Veer <bartv@cygnus.co.uk>
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.
3840 1998-09-20 Mark Galassi <rosalia@cygnus.com>
3842 * include/pkgconf/kernel.h: updated CDL doc strings.
3843 fixed some typos in my doc strings.
3845 1998-09-18 Nick Garnett <nickg@cygnus.co.uk>
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.
3853 Wed Sep 16 19:11:22 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
3859 Wed Sep 16 08:49:48 1998 Jesper Skov <jskov@cygnus.co.uk>
3862 * src/common/except.cxx (Cyg_Exception_Control): Replaced
3863 CYGNUM_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.
3865 * include/kapidata.h (struct cyg_exception_conrol): Replaced
3866 CYG_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.
3868 * src/intr/intr.cxx:
3869 * include/intr.hxx (class Cyg_Interrupt): Replaced CYG_ISR_MAX+1
3872 * include/except.hxx: Replaced CYGNUM_EXCEPTION_COUNT with
3873 CYG_EXCEPTION_COUNT.
3876 * tests/intr0.cxx: Replaced CYG_ISR_MAX (bug!) with
3879 Tue Sep 15 19:19:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
3881 * include/mboxt2.hxx:
3882 Add inclusion of thread.inl to silence warning
3885 Insert void as parameter list of __default_exception_vsr() to
3888 Tue Sep 15 19:16:52 1998 David Moore <dsm@keema.cygnus.co.uk>
3890 * src/sched/sched.cxx: Cleaned up comments.
3892 1998-09-15 Nick Garnett <nickg@cygnus.co.uk>
3894 * src/debug/dbg-thread-demux.c:
3895 Stubbed out led() function.
3897 * src/debug/dbg_gdb.cxx:
3898 Decide whether to byteswap thread id depending on reported byte
3900 Many small changes to debug code.
3902 * include/thread.inl (init_context):
3903 Changed CYG_DEBUG to CYGPKG_INFRA_DEBUG.
3905 Tue Sep 15 09:35:14 1998 Jesper Skov <jskov@cygnus.co.uk>
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
3912 Also added a few #else error statements to catch a situation where
3913 no CYGIMP_KERNEL_COUNTERS_x_LIST implementation config is
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.
3920 1998-09-15 Bart Veer <bartv@cygnus.co.uk>
3922 * include/pkgconf/kernel.h:
3923 Cleaning up coonfiguration data (mostly improving the
3926 Mon Sep 14 11:08:59 1998 Jesper Skov <jskov@lassi.cygnus.co.uk>
3929 * include/pkgconf/kernel.h: CYGIMP_KERNEL_INTERRUPTS_CHAIN
3930 requires CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN.
3932 1998-09-14 Mark Galassi <rosalia@cygnus.com>
3934 * include/pkgconf/kernel.h: started adding CDL doc fields.
3936 1998-09-12 Bart Veer <bartv@cygnus.co.uk>
3938 * include/pkgconf/kernel.h:
3939 Sort out exception handling options (PR 16953)
3940 Added missing descriptions (PR 17184)
3942 Fri Sep 11 19:18:28 1998 Hugo Tyson <hmt@masala.cygnus.co.uk>
3944 * include/clock.hxx (class Cyg_Alarm):
3945 * src/common/clock.cxx (Cyg_Alarm::add_alarm):
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.
3956 Wed Sep 9 17:43:26 1998 Hugo Tyson <hmt@cygnus.co.uk>
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
3966 1998-09-09 Nick Garnett <nickg@cygnus.co.uk>
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.
3972 * include/thread.inl:
3973 Added code to initialize Cyg_HardwareThread::saved_context.
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.
3980 Tue Sep 8 17:17:32 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
3988 Fri Sep 4 18:25:02 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
3995 1998-09-04 Bart Veer <bartv@cygnus.co.uk>
3997 * include/pkgconf/kernel.h:
3998 Commented out the ROM monitor-specific option settings for now.
4001 * include/pkgconf/kernel.h:
4002 * include/kapidata.h (struct cyg_counter):
4003 Fixed typos in configuration option names.
4005 1998-09-03 David Moore <dsm@cygnus.co.uk>
4007 * include/pkgconf/kernel.h
4008 (CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE):
4009 Fixed typo in configuration option name.
4011 * src/intr/intr.cxx:
4012 Fixed typo in configuration option name.
4013 Fixed cast to incorrect type.
4015 1998-09-03 Nick Garnett <nickg@cygnus.co.uk>
4017 * src/PKGconf.mak (COMPILE):
4018 Added debug/dbg-thread-demux.c to COMPILE list.
4020 * src/debug/dbg_gdb.cxx (dbg_threadinfo):
4021 Added first cut at providing thread state string.
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
4028 1998-09-03 Bart Veer <bartv@cygnus.co.uk>
4030 * include/pkgconf/kernel.h (CYGSEM_KERNEL_MEMORY_COALESCE):
4031 * include/mvarimpl.inl (Cyg_Mempool_Variable_Implementation):
4032 Fixed typo in configuration option name.
4034 * include/pkgconf/kernel.h:
4035 Fixed type in configuration option name.
4037 Wed Sep 2 19:01:02 1998 Hugo Tyson <hmt@cygnus.co.uk>
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:
4050 * src/sync/flag.cxx:
4052 * src/common/kapi.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.
4067 1998-09-01 Tim Goodwin <tgoodwin@cygnus.co.uk>
4070 * src/common/kapi.cxx:
4081 * src/test/kcache1.c:
4082 * src/test/kphilo.c:
4085 Changes to cyg_thread_create() interface.
4087 Tue Sep 1 18:49:06 1998 Hugo Tyson <hmt@masala.cygnus.co.uk>
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.
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.
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.
4104 Trace folder and its contents elided, now in infra.
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.
4113 1998-09-01 Nick Garnett <nickg@cygnus.co.uk>
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
4120 * src/common/thread.cxx:
4121 Added scheduler lock around manipulations of thread list.
4123 * include/except.hxx:
4124 Now use CYG_EXCEPTION_COUNT to size handler arrays.
4126 Mon Aug 31 17:53:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
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,
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.
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.
4142 Mon Aug 31 09:51:37 1998 Jesper Skov <jskov@cygnus.co.uk>
4144 * src/debug/stubrom.c (cyg_start): Renamed from main().
4146 Mon Aug 31 09:00:01 1998 Jesper Skov <jskov@cygnus.co.uk>
4148 * src/common/thread.cxx: Fixed typo.
4150 1998-08-28 Bart Veer <bartv@cygnus.co.uk>
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,
4183 Provide configuration data and rename configuration options
4185 Fri Aug 28 15:27:31 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
4193 Fri Aug 28 09:33:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
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?
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)
4221 Fri Aug 28 09:24:41 1998 Jesper Skov <jskov@cygnus.co.uk>
4223 * src/debug/generic-stub.c: Moved strcpy/strlen from hal-stub to
4224 generic-stub. Cleaned up a bit to avoid compiler warnings.
4226 Thu Aug 27 19:22:51 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
4236 Thu Aug 27 15:20:31 1998 Hugo Tyson <hmt@cygnus.co.uk>
4238 * include/mvarimpl.inl (free):
4239 Remove a couple of warning due to pointer comparison without casts
4240 in coallesce(sic.) code.
4242 1998-08-26 Nick Garnett <nickg@cygnus.co.uk>
4244 * include/kapidata.h:
4245 Added saved_context to cyg_hardwarethread structure to track
4246 GDB support in rest of kernel.
4248 1998-08-25 Nick Garnett <nickg@cygnus.co.uk>
4250 * include/pkgconf/kernel.h:
4251 Added CYGIMP_KERNEL_THREAD_GDB_SUPPORT to configure for GDB
4252 interactions with the kernel.
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
4262 Added debug/dbg_gdb.cxx to COMPILE list.
4264 * include/thread.inl:
4265 * include/thread.hxx:
4266 Added support for GDB, specifically for thread-aware debugging.
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.
4274 Tue Aug 25 02:36:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
4276 * include/generic-stub.h:
4277 Add void to empty prototype argument lists to silence compiler
4280 Fri Aug 21 18:46:34 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
4289 Fri Aug 21 11:40:50 1998 Hugo Tyson <hmt@cygnus.co.uk>
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.
4296 Thu Aug 20 17:37:35 BST 1998 Chris Provenzano <proven@cygnus.com>
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.
4302 * tests/stdlib/malloc2.c: Only print 50 messages, not 500.
4304 1998-08-20 Nick Garnett <nickg@cygnus.co.uk>
4306 * include/pkgconf/kernel.h:
4307 Moved definition of CYG_KERNEL_USE_INIT_PRIORITY from here
4310 * include/thread.hxx:
4311 Changed argument to cyg_thread_entry() to CYG_ADDRWORD from
4315 Moved constructor priority ordering stuff out to infra/cyg_type.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
4324 Wed Aug 19 19:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
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
4332 Wed Aug 19 18:48:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
4334 * include/kernel.hxx:
4335 Reorder inclusion of thread.inl to silence warnings
4337 Wed Aug 19 18:21:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
4339 * src/common/kapi.cxx, src/sync/flag.cxx:
4340 Reorder inclusion of thread.inl to silence warnings
4342 * src/sync/bin_sem.cxx, src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx,
4344 Add inclusion of thread.inl to silence warnings
4346 * src/common/memset.c:
4347 Make pointer arithmetic be on char *, not void * to silence warnings
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
4353 1998-08-19 Nick Garnett <nickg@cygnus.co.uk>
4355 * include/pkgconf/kernel.h:
4356 * src/common/thread.cxx:
4357 Added ifdef for CYGIMP_IDLE_THREAD_YIELD to support single
4358 priority configurations.
4360 Tue Aug 18 16:56:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
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.
4367 1998-08-18 Nick Garnett <nickg@cygnus.co.uk>
4369 * include/pkgconf/kernel.h:
4370 Moved all HAL specific config options out to a HAL config file.
4373 * src/common/kapi.cxx:
4374 Added cyg_scheduler_lock() and cyg_scheduler_unlock() to provide
4375 user access to the scheduler lock.
4377 Mon Aug 17 21:39:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
4380 Insert "void" to empty parameter lists to silence warnings
4382 Fri Aug 14 18:10:20 1998 Hugo Tyson <hmt@masala.cygnus.co.uk>
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.
4390 Fri Aug 14 17:28:01 1998 Hugo Tyson <hmt@cygnus.co.uk>
4392 * include/pkgconf/kernel.h:
4393 Add config options as below:
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.
4400 1998-08-14 Nick Garnett <nickg@cygnus.co.uk>
4402 * include/kapidata.h:
4403 Added support for thread names and thread housekeeping list.
4405 * src/common/delete.cxx:
4406 Added include for cyg_type.h.
4408 * include/pkgconf/kernel.h:
4409 Added CYGIMP_THREAD_NAME and CYGIMP_THREAD_LIST options.
4411 * include/thread.inl:
4412 * include/thread.hxx:
4413 Added support for thread names and thread housekeeping list.
4415 * src/common/thread.cxx:
4416 Added support for thread names and thread housekeeping list.
4417 Fixed ordering bug in Cyg_Thread::delay().
4419 Thu Aug 13 15:33:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
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!
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
4429 1998-07-28 Nick Garnett <nickg@cygnus.co.uk>
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.
4441 1998-07-27 Nick Garnett <nickg@cygnus.co.uk>
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.
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().
4454 1998-07-24 Nick Garnett <nickg@cygnus.co.uk>
4456 * include/thread.inl:
4457 Reordered code in Cyg_Thread::set_timer() to init the timer after
4458 wake_reason has been assigned.
4460 * include/clock.inl:
4461 Removed Cyg_Alarm::enable().
4463 * src/sync/mutex.cxx (Cyg_Condition_Variable::wait):
4464 Modified order of code in timed version of wait to allow for a
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
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.
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.
4482 1998-07-23 Nick Garnett <nickg@cygnus.co.uk>
4484 * src/debug/stubrom.c: Added header comments.
4486 Thu Mar 26 18:25:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
4488 * src/test/philo.cxx:
4489 Rename CYG_DEBUG ifdef to CYG_RELEASE_DEBUG
4491 Wed Mar 25 23:23:39 GMT 1998 Chris Provenzano <proven@cygnus.com>
4493 * configure.in: Fix so non_arch.h is updated even if
4494 config.cache does exists.
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>
4500 * include/eccconf/kernel.h: Added. This was old devo/config.h
4502 * src/Makefile.am : Set CYG_CONFIGURATION to "<eccconf/kernel.h>"
4504 * src/test/Makefile.am : Build .gdbinit from gdbinit.in
4505 and tree from tree.in
4507 Wed Mar 25 18:24:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>
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
4516 Fri Mar 13 18:36:42 GMT 1998 Chris Provenzano <proven@cygnus.com>
4518 * configure.in : Add rule to get correct objcopy for target
4519 * src/test/Makefile.am : Add rule to build philo.srec
4521 Fri Mar 13 11:47:23 GMT 1998 Chris Provenzano <proven@cygnus.com>
4523 * configure.in, non_arch.h.in, non_arch.sh
4524 Add support for the mn103000
4526 Thu Mar 12 11:38:28 GMT 1998 David Moore <dsm@cygnus.co.uk>
4529 Removed flag to leave comments in generated linker script.
4531 Thu Mar 12 10:55:20 GMT 1998 David Moore <dsm@cygnus.co.uk>
4534 Fixed setting of platform variable
4536 Wed Mar 11 16:54:28 GMT 1998 Chris Provenzano <proven@cygnus.com>
4538 * src/test/Makefile.am, tests/Makefile.am:
4539 Make sure CXXFLAGS from configure are also used
4541 Wed Mar 11 16:16:57 GMT 1998 Chris Provenzano <proven@cygnus.com>
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
4548 Wed Mar 11 14:43:36 GMT 1998 Chris Provenzano <proven@cygnus.com>
4550 * Makefile.am, configure.in, tests/Makefile.am
4551 support building tests in the tests directory
4553 Wed Mar 11 13:18:17 GMT 1998 Chris Provenzano <proven@cygnus.com>
4555 * acinclude.m4, stamp-h.in, non_arch.h.in, src/Makefile.am:
4556 Added to support new kernel configure/make process
4558 * Makefile.am: Modified to support new kernel configure/make
4561 * src/acinclude.m4, src/aclocal.m4, src/configure, src/configure.in
4562 Deleted to support new kernel configure/make process
4564 * Makefile.in, configure, aclocal.m4, src/Makefile.in,
4565 src/configure: regenerated
4567 * non_arch.sh: New shellscript to change platform/startup/debug
4568 options after a configure is done.
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
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.
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.
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.
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.
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.
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.
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 //===========================================================================