URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [ecos-2.0/] [packages/] [kernel/] [v2_0/] [ChangeLog] - Rev 1765
Compare with Previous | Blame | View Log
2003-03-03 Jonathan Larmour <jifl@eCosCentric.com>* tests/fptest.c: Make all variables static to avoid any riskof collisions with symbols defined elsewhere in eCos.2003-02-27 Jonathan Larmour <jifl@eCosCentric.com>* include/kapidata.h: Revert change of 2001-08-23 and instead makeit conditional on the GCC version. Also add comments explaining whythis file has been apparently obfuscated.2003-02-25 Nick Garnett <nickg@calivar.com>* tests/fptest.c (alarm_fn): Added CYG_TEST_PASS() call to keepconfigtool happy.2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>* cdl/kernel.cdl: Update doc links.* cdl/synch.cdl: Ditto.* cdl/thread.cdl: Ditto.2003-02-19 Nick Garnett <nickg@calivar.com>* tests/fptest.c: Changed to run for a constant time rather than aconstant number of iterations, with a shorter run time forsimulated targets.2003-02-10 Gary Thomas <gary@mlbassoc.com>* include/thread.inl: Add more debug info to thread stack checking.* tests/clocktruth.cxx:* tests/clockcnv.cxx: Use <cyg/infra/diag.h> for diag_printf()prototype, rather than hard coding (because it was inconsistent).2003-02-05 Gary Thomas <gary@mlbassoc.com>* tests/kcache2.c (test_dcache_operation): New test to verifythat the DATA cache syncs properly.2003-01-31 Nick Garnett <nickg@calivar.com>* cdl/kernel.cdl:* tests/fptest.c: Added this program to test interaction of FPUwith multiple threads.2003-01-30 Jonathan Larmour <jifl@eCosCentric.com>* src/common/thread.cxx: Fix potential warning and overflow withCYGNUM_KERNEL_THREADS_DATA_MAX == 32.2003-01-28 Jonathan Larmour <jifl@eCosCentric.com>* src/common/kapi.cxx (cyg_thread_get_next): Be quite zealous aboutchecking the validity of passed in threads in debug mode.(cyg_thread_get_info): Ditto.* cdl/thread.cdl: Correct max legal value forCYGNUM_KERNEL_THREADS_DATA_MAX.2003-01-22 Jonathan Larmour <jifl@eCosCentric.com>* doc/kernel.sgml: Document cyg_thread_info type.2003-01-13 Dmitriy Korovkin <dkorovkin@rambler.ru>2003-01-13 Jonathan Larmour <jifl@eCosCentric.com>* include/mqueue.hxx: Allow get/put to return time out.* include mqueue.inl: Ditto.2003-01-02 Gary Thomas <gary@mlbassoc.com>* tests/kcache2.c: New subtest for raw data cache operations.2002-12-12 Nick Garnett <nickg@ecoscentric.com>* src/common/kapi.cxx:* include/kapi.h:Added function cyg_thread_get_next(), cyg_thread_find() andcyg_thread_get_info() to allow the current set of threads to beenumerated, and per-thread information to be retrieved safely.* doc/kernel.sgml: Documented new KAPI calls.* src/common/thread.cxx: Zero unique_id in thread destructor sothat a stale thread pointer can be checked for validity.* include/instrmnt.h:Added cyg_instrument_state() to report the current state of aninstrumentation flag.Moved ifdef for CYGDBG_KERNEL_INSTRUMENT_MSGS out of within FLAGSifdef. We can have messages without flags.* src/instrmnt/meminst.cxx:Added cyg_instrument_state() to report the current state of aninstrumentation flag.Modified cyg_instrument_msg() in line with header and tablechanges.* host/instr/dump_instr.c:* host/instr/instrument.sh:* include/instrument_desc.h:Added a final NULL element to the generated table ininstrument_desc.h to mark its end. Otherwise code that does nothave access to the table definition cannot find its end. Alsoadded ifdefs to allow instrument_desc.h to be used to acquire thestructure definition and table pointer.2002-12-03 Gary Thomas <gthomas@ecoscentric.com>* tests/tm_basic.cxx: Add tests of 'flag' synchronizers.2002-10-28 Andrew Lunn <andrew.lunn@ascom.ch>* tests/tm_basic.cxx: Include infra/diag.h and removed theincorrect prototype for diag_printf2002-10-16 Gary Thomas <gthomas@ecoscentric.com>* include/test/stackmon.h (STACKMON_PRINTF): Use #include to getprototype for 'diag_printf()'.2002-10-01 Jonathan Larmour <jifl@eCosCentric.com>* src/common/clock.cxx (add_alarm): Tweak last change to allowalarm order for identical alarms to be the same as it used to be.2002-09-30 Jonathan Larmour <jifl@eCosCentric.com>* src/common/clock.cxx (add_alarm): Fix bug resulting in alarmsnot being added at all if a lower triggered alarm already exists.Reported by Christoph Csebits.Also fix bug when alarm is entered for the same time as tail.These bugs only apply for CYGIMP_KERNEL_COUNTERS_SORT_LIST enabled.* doc/kernel.sgml: document that order of callback for alarms atidentical times is unspecified.2002-08-08 Nick Garnett <nickg@calivar.demon.co.uk>* src/sched/sched.cxx (unlock_inner): Removed initialassertion. This has served its purpose and with the introductionof routines such as unlock_reschedule() is prone to firing inotherwise benign circumstances.2002-08-05 Bart Veer <bartv@tymora.demon.co.uk>* cdl/kernel.cdl, include/kapidata.h, include/kapi.h:Allow configurations with the kernel but no malloc2002-06-05 Gary Thomas <gary@chez-thomas.org>* include/kapi.h: Fix prototype (to allow builds with net stack).2002-05-24 Jesper Skov <jskov@redhat.com>* cdl/kernel.cdl: Fix typo.2002-05-23 Jonathan Larmour <jlarmour@redhat.com>* include/kapi.h: Expose new cyg_thread_add_destructor andcyg_thread_rem_destructor APIs.* include/kapidata.h (struct Cyg_Destructor_Entry):Change CYG_ADDRWORD to more correct cyg_addrword_t.* include/thread.hxx (class Cyg_Thread): add_destructor andrem_destructor are onyl static when not per-thread.* include/thread.inl (add_destructor): Don't need to lock and unlockscheduler when destructors are per-thread.(rem_destructor): Ditto.* src/common/thread.cxx (exit): No need to lock scheduler whencalling destructors.* doc/kernel.sgml: Document thread destructor API.2002-05-23 Nick Garnett <nickg@redhat.com>* doc/kernel.sgml: Some more edits to the kernel documentation:changed all references to message boxes to mail boxes, clarifiedsome thing in various places, fixed a few typos.2002-05-23 Jesper Skov <jskov@redhat.com>* cdl/kernel.cdl: Cleaned up kernel tests rule. Also remove testsdepending on the C API when its not present. And skip dhrystonetest when debug or instrumentation is enabled.* tests/tm_basic.cxx: Fixed warning.2002-05-22 Nick Garnett <nickg@redhat.com>* doc/kernel.sgml:Fixed up SMP documentation.Rewrote condtion variable documentation to make its relationshipto mutexes more apparent.2002-05-22 Jesper Skov <jskov@redhat.com>* tests/smp.cxx: Move inclusion of testaux.hxx to below NAchecks.2002-05-21 Bart Veer <bartv@redhat.com>* doc/kernel.sgml:Major update to the kernel documentation.2002-05-21 Jesper Skov <jskov@redhat.com>* src/common/clock.cxx (dsr): Fix latency ifdef guards.* tests/tm_basic.cxx: Same.2002-05-20 Jonathan Larmour <jlarmour@redhat.com>* src/sched/mlqueue.cxx: Don't force timeslice tracing on by defaultagainst the user's wishes.* cdl/scheduler.cdl: Instead provide an option controlling it.2002-05-09 Jonathan Larmour <jlarmour@redhat.com>* include/kapidata.h (CYG_HARDWARETHREAD_MEMBERS): entry_pointshould be a pointer to function not an addrword (which may bedifferent).(cyg_reason_t): Define cyg_reason_t as an enum not an int.(struct cyg_mutex_t): Define mutex protocol as an enum not a cyg_uint32.Define locked member as a cyg_atomic, not a cyg_bool.2002-05-09 Nick Garnett <nickg@redhat.com>* tests/timeslice.c: Modified test thread to accumulate run timeby reading HAL clock, and to detect and record changes of CPU. Theprevious version of this code reported varying results - probablyas a consequence of cache effects.* include/instrmnt.h: Fixed left-over debug edit to MLQinstrumentation enable code.2002-04-29 Jesper Skov <jskov@redhat.com>* include/kapi.h: Added cyg_alarm_get_times andcyg_counter_multi_tick.* src/common/kapi.cxx: Same. Er, fix oversight.* doc/kernel.sgml: Doc update.2002-04-24 Yoshinori Sato <qzb04471@nifty.ne.jp>* src/sync/flag.cxx: Don't set default args in func definitions.2002-04-24 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c: Moved platform max number of passes to CDL inHALs.2002-04-23 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c: Allow platform to define max number of passesvia CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES.2002-04-09 Jonathan Larmour <jlarmour@redhat.com>* include/kapi.h: Use NORET attributes from cyg_type.h.* include/sched.hxx (class Cyg_Scheduler): Ditto.2002-04-08 Nick Garnett <nickg@redhat.com>* src/sync/mutex.cxx: Added IF_PROTOCOL_ACTIVE macro to conditionuse of the mutex counter. This means that a mutex that is notconfigured to participate in a priority inversion protocol does notcount for operation of that protocol.2002-03-04 Lars Viklund <lars.viklund@axis.com>* include/kapidata.h (CYG_SCHEDTHREAD_ASR_MEMBER):asr_inhibit is cyg_ucount32 - must match2002-02-13 Hugo Tyson <hmt@redhat.com>* doc/kernel.sgml: NEW FILE: Correct reference to uITRON doc.2002-01-28 Jesper Skov <jskov@redhat.com>* tests/kexcept1.c: Fix warning.2002-01-24 Jesper Skov <jskov@redhat.com>* tests/kcache1.c (time0DI): Disable interrupts around thesync+invalidate process.* tests/kcache2.c: Same.2002-01-23 Jonathan Larmour <jlarmour@redhat.com>* src/intr/intr.cxx (mask_interrupt): Disable interrupts.(unmask_interrupt): Ditto.(mask_interrupt_intunsafe): New function to avoid disabled interrupts.(unmask_interrupt_intunsafe): Ditto.* include/intr.hxx (class Cyg_Interrupt): Declare above new funcs.* src/common/kapi.cxx (cyg_interrupt_unmask_intunsafe): Abovereplicated to KAPI.(cyg_interrupt_mask_intunsafe): Ditto.* include/kapi.h: Ditto.2002-01-07 Nick Garnett <nickg@redhat.com>* tests/except1.cxx:* tests/kexcept1.cxx:Added ifdef to disable these tests in ARM PID platform. Thisplatform cannot generate any of the exceptions that this testneeds to work.2001-12-12 Jesper Skov <jskov@redhat.com>* tests/kcache2.c (time_ilock): Put some dummy goto statements into prevent compiler from moving labels around.2001-11-29 Jonathan Larmour <jlarmour@redhat.com>* src/sched/mlqueue.cxx (timeslice_cpu): Reset timeslice_count ona timeslice.Noticed by Tony Kho.2001-11-23 Jonathan Larmour <jlarmour@redhat.com>* tests/klock.c (entry1): Support running withCYGFUN_KERNEL_THREADS_TIMER disabled.2001-10-30 Nick Garnett <nickg@redhat.com>* tests/kcache2.c (test_dsync):Added call to HAL_ICACHE_INVALIDATE_ALL() just before DCACHEdisable. In platforms where both caches are controlled together,such as the VR4300, not doing this can result in strange behaviouras the ICACHE gets turned off under the program's feet, when it isnot ready for it.2001-10-17 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c: CYGINT_ISO_STRING_STRFUNCS check changed toifdef.2001-10-12 Jonathan Larmour <jlarmour@redhat.com>* cdl/synch.cdl (CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE): New optionto avoid inlining mqueue implementation.* src/sync/mqueue.cxx: New file to provide non-inline version ofmqueue functions.* include/mqueue.hxx: Don't include .inl if user doesn't want inlining.* include/mqueue.inl: Allow choice of inlining or not to beoverridden by macro.* tests/mqueue1.cxx: Never use inline version.2001-10-11 Jesper Skov <jskov@redhat.com>* tests/kmutex3.c (new_thread): Fixed allocation: increase counterbefore starting threads which have been allocated resources.* tests/kmutex4.c (new_thread): Same.* tests/mutex3.cxx (new_thread): Same.* tests/testaux.hxx (new_thread): Same.* tests/kcache2.c: Fixed warning.* tests/stress_threads.c: Same.2001-09-20 Jonathan Larmour <jlarmour@redhat.com>* host/instr/dump_instr.c (main): Fix argc check.2001-09-07 Jonathan Larmour <jlarmour@redhat.com>* include/thread.inl (measure_stack_usage): Deal with stack limits.2001-09-07 Nick Garnett <nickg@redhat.com>* src/common/thread.cxx (set_priority): Change argument toinstrumentation call to new_priority rather than currentpriority. (Suggested by Andrew Lunn).2001-09-05 Jesper Skov <jskov@redhat.com>* include/mqueue.inl (Cyg_Mqueue): Initialize busy flag of lastentry in the list.2001-09-04 Jonathan Larmour <jlarmour@redhat.com>* cdl/instrument.cdl (CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP):Remove redundant requires, and adjust make rule to be more portableacross hosts.(CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE):Invoke script with sh directly rather than rely on executable attribute.* host/instr/readme.txt: Update build of host dump as per the changedCDL.* cdl/kernel.cdl: Don't build nullinst.cxx any more.Build meminst.cxx only in CYGPKG_KERNEL_INSTRUMENT.* src/instrmnt/nullinst.cxx: Delete. It causes confusion in thelibrary as it declares cyg_instrument like meminst.cxx does.2001-08-31 Nick Garnett <nickg@redhat.com>* src/intr/intr.cxx: Clean up typo in DSR tablecase. dsr_table_tail and dsr_table_head were not being subscriptedin a couple of places.2001-08-23 Hugo Tyson <hmt@redhat.com>2001-08-20 Andrew Lunn <andrew.lunn@ascom.ch>* include/instrument_desc.h: New file. This contains the table ofevents used to print the nice information. It should beregenerated when the instrumentation numbers change.* src/instrmnt/meminst.cxx (cyg_instrument_msg):returns an ASCII string describing the type of event theinstrumentation code logged.* include/instrmnt.h: Added function prototype.* cdl/instrument.cdl: Configury for enabling the new function, andoptionally rebuilding its header file and building a host tool.* host/instr/dump_instr.c: New file. A host program to print theinstrumentation information in a human readable form.* host/instr/instrument.sh: New file. Script to generate table ofevents with textual representation.* host/instr/readme.txt: New file. Helpful information.2001-08-23 Nick Garnett <nickg@redhat.com>* include/kapidata.h (CYG_THREADTIMER_MEMBERS):Substituted an expicit cyg_alarm object for CYG_ALARM_MEMBERS inthis definition. In some architectures (MIPS in particular) thestructures need to be padded to a multiple of 64 bits. This wasnot happening with the macro substituted versions.This is just a temporary fix, I'll leave it to Jifl to sort out areal patch when he returns.2001-08-23 Hugo Tyson <hmt@redhat.com>* src/common/thread.cxx: Properly qualify Cyg_Thread::destructorsarray so that it builds when destructors are not used.2001-08-23 Nick Garnett <nickg@redhat.com>* src/sched/mlqueue.cxx: Added code toCyg_SchedThread_Implementation::to_queue_head() to handle a NULLthread queue pointer. This compensates for a minor change inbehaviour of the scheduler.2001-08-22 Jonathan Larmour <jlarmour@redhat.com>* cdl/thread.cdl: Add kernel thread destructor options.* include/kapidata.h: Add thread destructor entries to cyg_thread* include/thread.hxx (Cyg_Thread): Give per-thread data indexestheir own type, cyg_data_index.Include new thread destructor data members, and new add_destructorand rem_destructor member functions.* include/thread.inl: Use a cyg_data_index for per-thread data handle.(add_destructor): New Cyg_Thread member function.(rem_destructor): Ditto.* src/common/kapi.cxx: Use cyg_data_index type for per-thread datafunctions.* src/common/thread.cxx (Cyg_Thread): initialise per-threaddestructors if needed.Define static destructors if needed.(exit): Call destructors.(new_data_index): Use cyg_data_index type.(free_data_index): Ditto.2001-08-22 Hugo Tyson <hmt@redhat.com>* src/sync/mutex.cxx (Cyg_Mutex): Add initialization of thepriority ceiling value in the non-dynamic protocol case.2001-08-22 Nick Garnett <nickg@redhat.com>* tests/intr0.c:* tests/kintr0.c:Swapped order of interrupt enable/disable calls to keep kernelhappy when assertions are enabled. Otherwise the enable callcomplains that interrupts have not been disabled.* src/sched/mlqueue.cxx:Simplified algorithm in set_need_reschedule().* include/smp.hxx:* include/kapidata.h: Change spinlock to be a cyg_uint32, ratherthan a cyg_atomic.* src/intr/intr.cxx:* include/intr.hxx:Now arrange for DSRs to be called on the same CPU as the ISR. Thisis necessary if the DSR needs to access per-CPU hardware (such asinterrupt controllers). This is achieved by keeping a separate DSRlist/table for each CPU.* tests/smp.cxx: Some modifications to make this test work in areal SMP environment.* tests/timeslice.c:* cdl/kernel.cdl: Added timeslice test.2001-08-21 Hugo Tyson <hmt@redhat.com>* src/sync/mutex.cxx (lock): Bugfix: a ceiling priority mutexwasn't elevated until after it had acquired the mutex. This meantit slept with a low priority, and so did not run when awakened bythe release of the mutex. The fix is to elevate the potentialclaimant before it sleeps in contention.* tests/kmutex4.c: New testcase - very similar to kmutex3 but itloops a load more times using different mutex priority protocols.This checks that dynamically set protos do in fact behavedifferently from one another and as they are each intended to.* tests/kmutex3.c: Remove FIXME comments - we now test dynamicprotocol.* cdl/kernel.cdl: Build the new test.2001-08-20 Jonathan Larmour <jlarmour@redhat.com>* include/kapidata.h: Reorganize most struct type definitions intomacros to allow compatible layout with all G++ implementations thatalign non-POD types differently from included C structures.* include/kapi.h: Similarly for cyg_resolution_t.2001-08-17 Nick Garnett <nickg@redhat.com>* src/sched/mlqueue.cxx (timeslice): Fix timeslice_count comparison.2001-08-16 Hugo Tyson <hmt@redhat.com>* include/kapi.h (cyg_mutex_protocol): Tidy up names of mutexprotocol type and values. These polluted rather in 'C'.* src/common/kapi.cxx (cyg_mutex_set_protocol): ditto.2001-08-15 Hugo Tyson <hmt@redhat.com>2001-08-15 Andrew Lunn <andrew.lunn@ascom.ch>* src/common/kapi.c (cyg_thread_get_current_priority): Exportthis function into the C api.* include/kapi.h: Declaration of new function.2001-08-14 Jonathan Larmour <jlarmour@redhat.com>* src/common/kapi.cxx (cyg_spinlock_spin_intsave): Cast to istateto CYG_INTERRUPT_STATE * since that's what is needed.(cyg_spinlock_clear_intsave): Similarly.2001-08-10 Hugo Tyson <hmt@redhat.com>* cdl/synch.cdl: Re-organize the options for mutexes so they areactive a bit more sensibly; place the default ceiling withinselection of ceiling protocol, and only have a default protocol ifthere is more than one protocol active.* tests/mutex3.cxx: More detailed handling of the possibility ofceiling protocol instead of the inherit or none cases; we can runthe test ok and treat as inherit if the ceiling prio is higherthan 5, treat as none if lower than 15, and don't check anythingif in between - the test runs happily.* tests/kmutex3.c (cyg_start): New test, a KAPI translation of thenow-classic mutex3.cxx.* cdl/kernel.cdl: Build tests/kmutex3.c2001-08-06 Hugo Tyson <hmt@redhat.com>* src/sched/sched.cxx (unlock_inner): Fix assignment to current,wouldn't build if stack checking after merger from SMP branch.2001-08-06 Andrew Lunn <andrew.lunn@ascom.ch>2001-08-06 Hugo Tyson <hmt@redhat.com>* src/sync/mutex.cxx: (set_protocol) Added a function to set thepriority inversion protocol for a mutex.* src/common/kapi.cxx: Export the new function above andset_ceiling into the C API.* include/mutex.hxx (class Cyg_Mutex): New member functionset_protocol().* include/kapi.h (cyg_protcol): Define new emumeration for mutexpriority protocol setting, and headers for the new function to setit.2001-08-03 Nick Garnett <nickg@redhat.com>Imported from a development branch:2001-07-11 Nick Garnett <nickg@redhat.com>* src/sched/mlqueue.cxx: Changed behaviour ofset_need_reschedule() to a better implementation of the intendedalgorithm.* include/kapi.h:* src/common/kapi.cxx:Added API for controlling routing of interrupts to CPUs in SMPconfigurations.2001-07-03 Nick Garnett <nickg@cygnus.co.uk>* cdl/scheduler.cdl:* include/bitmap.hxx:* src/sched/bitmap.cxx:Fixed up bitmap scheduler so it still works within theSMP-modified scheduling infrastructure. The bitmap scheduleris not currently SMP-enabled, only single CPU configurations aresupported - hence the CDL change to require this.2001-06-29 Nick Garnett <nickg@cygnus.co.uk>* src/sched/sched.cxx:Removed the call to Cyg_Interrupt::enable_interrupts() inCyg_Scheduler::start_cpu(). This was a relic from the days whenthe interrupt enable state was not part of the thread state. Nowit is, and loading the first thread will cause interrupts to beenabled.* src/intr/intr.cxx:Changed initial values of Cyg_Interrupt::disable_counter[]s tozero as a result of the change in Cyg_Scheduler::start_cpu().* include/kapi.h:* include/kapidata.h:* src/common/kapi.cxx:Added API for using spinlocks. Largely so that it may be extendedto the driver API.* include/mlqueue.hxx:* include/intr.hxx:* include/sched.hxx:Added annotations to various static variables.2001-06-28 Nick Garnett <nickg@cygnus.co.uk>* include/intr.hxx:* src/intr/intr.cxx:Changed behaviour of Cyg_Interrupt::disable_interrupts() andCyg_Interrupt::enable_interrupts(). These now claim and release aspinlock in addition to disabling and enabling interrupts. Theoriginal interrupt state is also preserved and restored. This isnecessary in SMP systems to allow drivers etc. to correctlysynchronize with threads and DSRs that may be running on differentCPUs. In the single CPU case this mechanism reduces to theoriginal simple interrupt disable code.[Later change] Backed off addition of volatile modifier tointerrupt_disable_state.* include/smp.hxx: Some minor tidies.2001-06-27 Nick Garnett <nickg@cygnus.co.uk>* tests/release.cxx: Added spin loop in thread1 to allow thread0to execute its wait. This is necessary in SMP systems where thethreads will execute in parallel, but is also benign in single CPUsystems.* tests/mutex2.cxx:* tests/mutex3.cxx:* tests/sync3.cxx:* tests/thread2.cxx:These tests depend on predicting the behaviour of threads atdifferent priorities to pass. In an SMP system, several threadswill run in parallel, and the execution order will not be asexpected. These tests are therefore disabled in SMPconfigurations.* src/sched/mlqueue.cxx (add_thread): Moved call toset_need_reschedule() out of test for empty queue. In SMP systems,any addition to a queue may require a reschedule on another CPU.2001-06-22 Nick Garnett <nickg@cygnus.co.uk>* include/mlqueue.hxx:* src/sched/mlqueue.cxx:A major change to the way in which this scheduler works in SMPsystems. The previous version removed all runnable threads fromthe run queues when they were executing. This resulted in seriouscomplications and messy code, particularly when dealing withpriority changes and timeslicing. The new version keeps runningthreads in the run queues, just like the single-CPU version. Themain disadvantage of this is that we may have to search pastthreads running on other CPUs before we find one available to runon this CPU. However, the pending count array and map mean that weonly need search one run queue, and in any case the search remainsbounded by the number of CPUs available.Another change is in the way that timeslicing is handled. Now, theCPU that takes the clock interrupt decrements the timeslice countsfor all CPUs and if any go zero, sends a TIMESLICE message tothat CPU.* src/sched/sched.cxx (unlock_inner):Removed call to requeue(), no longer needed as a result ofscheduler reorganization.* src/common/thread.cxx:Added test in Cyg_Thread::exit() to check that the thread has notalready been killed. This is only an issue if the thread iscalling exit() when it is kill()ed from another CPU. The test isredundant in single-CPU systems, but it does no harm having it.Added code to Cyg_Thread::set_priority() to check for reschedulewhen another thread is being changed in priority.Added call in idle thread constructor to scheduler to install theidle thread as the default current thread for a CPU.* include/smp.hxx:Added CYG_KERNEL_CPU_TIMESLICE_INTERRUPT(), did some miscellaneoustidying.* include/instrmnt.h: Added SMP_RESCHED_SEND and SMP_RESCHED_RECVevents.* cdl/kernel.cdl: Added smp test program.* tests/smp.cxx: Added this program to test SMP functionality.2001-06-13 Nick Garnett <nickg@cygnus.co.uk>* src/sched/sched.cxx:Removed code to set up initial current thread, this is now donein the idle thread constructor.Added code here to set up interrupts for SMP inter-processorinterrupts. This is not very tidy and may need to bechanged in the future.* src/sched/mlqueue.cxx:Added local set_need_reschedule() function to set theneed_reschedule flag on a suitable CPU.Many more changes to cope with SMP systems.NOTE: This code has all become somthing of a mess, it need to betidied up and the SMP-specific changes integrated better into thecode. Also, timesliceing currently only works on the CPU thattakes clock interrupts - this needs fixing.* src/common/thread.cxx:Moved assignment of initial current thread to here from sched.cxx.* include/smp.hxx:Changed CYG_KERNEL_CPU_INTERRUPT()CYG_KERNEL_CPU_RESCHEDULE_INTERRUPT() since there may be otherinterrupt types to worry about.Added annotations to scheduler data items.* include/sched.hxx:Split set_current_thread() into two functions, the original worksonly on the current CPU, the new one sets another CPU's currentthread. This latter function is only used to prime the currentthreads during initialization.Added second need_reschedule() function that takes a threadargument. This is intended to be overridden by a schedulerspecific function that sets the need_reschedule flag if thesupplied thread is more deserving of CPU time that any currentthread.* include/mlqueue.hxx:Made cyg_scheduler_set_need_reschedule() a friend ofCyg_Scheduler_Implementation class.Added override set_need_reschedule() functions.* include/kapidata.h: Added cpu field to cyg_thread structure whenin SMP systems.* include/intr.hxx:* src/intr/intr.cxx:Added Cyg_Interrupt::set_cpu() and Cyg_Interrupt::get_cpu() forSMP systems.* include/instrmnt.h: Added events for INTR_GET_CPU andINTR_SET_CPU.2001-05-29 Nick Garnett <nickg@cygnus.co.uk>The following changes were all imported from the SMP branch:* tests/tm_basic.cxx:Modified to work in SMP configuration - mostly at present byifdeffing out code I didn't want to fix.* include/sched.hxx:Moved scheduler lock operation into Cyg_Scheduler_SchedLock class.Converted current_thread, need_reschedule, and thread_switchesinto CPU indexed arrays. Added member functions to get and setthese indirectly.Added start_cpu() to do per-CPU scheduler startup.* include/sched.inl:Converted scheduler lock/unlock functions to use new schedlockclass.* src/sched/sched.cxx:Changed in line with sched.hxx.Added call to requeue() in unlock_inner() to restore currentthread to run queue if necessary.Moved most of scheduler startup to Cyg_Scheduler::start_cpu().Cyg_Scheduler::start() now also starts secondary CPUs in SMPsystems.Added cyg_kernel_smp_startup() as entry point from HAL into kernelfor secondary CPUs.* include/mlqueue.hxx:Added Cyg_RunQueue type and removedCyg_SchedulerThreadQueue_Implementation type.Converted timeslice_count to CPU indexed array.Added requeue() member function to scheduler class.Added cpu member to thread implementation class, to recordthread's current CPU.* src/sched/mlqueue.cxx:Changed behaviour when in SMP system to remove scheduled threadfrom run queue and replace it when preempted.Added some extra asserts, and removed some that are no longer truein an SMP system.* src/instrmnt/meminst.cxx: In SMP systems: added spinlock toprotect instrument buffer, added CPU Id in top 4 bits of thread Idfield.* src/common/thread.cxx:Converted to use accessor functions for need_reschedule andcurrent_thread.Rearranged idle thread creation to create one for each CPU.* include/test/stackmon.h: Extended to handle stack usage formultiple idle threads.* include/thread.inl:Added some extra instrumentation.* include/smp.hxx:Added this file to contain all kernel SMP support. The maindefinitions exported by this file are spin lock and scheduler lockimplementation classes, for both SMP and uniprocessorconfigurations.* src/intr/intr.cxx:* include/intr.hxx:Converted interrupt disable counter to CPU indexed array. Inintr.cxx: added lock of scheduler lock in interrupt_end() ratherthan in default interrupt VSR.* cdl/kernel.cdl: Added option to enable SMP support.* include/instrmnt.h:* cdl/instrument.cdl: Added SMP instrumentation.2001-05-25 Nick Garnett <nickg@cygnus.co.uk>* include/intr.hxx:* src/intr/intr.cxx:Added default definition of CYGNUM_HAL_ISR_TABLE_SIZE. This is nowused to declare the chain table so that architectures which havedifferent sizes for the interrupt table and vector count will workcorrectly.2001-05-22 Nick Garnett <nickg@cygnus.co.uk>* include/sched.hxx (class Cyg_Scheduler_Base):Added annotation to sched_lock.* cdl/instrument.cdl:Rename CYGNUM_KERNEL_INSTRUMENT_BUFFER_WRAP toCYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP as it appears in the code.2001-07-27 Jesper Skov <jskov@redhat.com>* src/intr/intr.cxx (chain_isr): Return isr_ret so caller (whichmay be an arbiter) can tell if the interrupt was handled.2001-07-26 Gary Thomas <gthomas@redhat.com>* src/common/clock.cxx (dsr): Fix problems mixing signed andunsigned values. Normally only generated warnings, but...2001-07-09 Jonathan Larmour <jlarmour@redhat.com>* include/sched.inl (unlock_reschedule): Fix commenting.* src/sched/sched.cxx: Improve description of unlock_inner().2001-06-21 Jonathan Larmour <jlarmour@redhat.com>* src/common/thread.cxx (Cyg_Thread::Cyg_Thread): Initializewakeup_count2001-06-06 Hugo Tyson <hmt@redhat.com>* tests/clocktruth.cxx: New file. A test to get a sanity check onwhether the clock is accurate to wallclock time, only useful forhumans to watch really. But important!2001-05-31 Jonathan Larmour <jlarmour@redhat.com>* include/thread.hxx (class Cyg_HardwareThread): Remove unusedload_context() method.* include/thread.inl: Ditto.2001-05-29 Jonathan Larmour <jlarmour@redhat.com>* src/sched/bitmap.cxx (rem_thread): No need to set need_reschedule...rescheduling will happen automatically when the state changes.* src/sched/mlqueue.cxx (add_thread): No need to explicitly clearthread->queue.2001-04-26 Nick Garnett <nickg@cygnus.co.uk>* tests/intr0.cxx:* tests/kintr0.c:Fixed these two tests so that they work properly on architectureswhere CYGNUM_HAL_ISR_MIN is not zero. These include the x86 andV850.2001-04-18 Bart Veer <bartv@redhat.com>* tests/dhrystone.c:Fix the conditional for STDIO_FORMATTED_IO2001-04-17 Bart Veer <bartv@redhat.com>* tests/stress_threads.c (setup_death_alarm):Cope with synthetic target reorg* tests/except1.cxx, tests/kexcept1.c:Reenable for the synthetic target* tests/tm_basic.cxx:Reenable for the synthetic target2001-04-17 Jesper Skov <jskov@redhat.com>* cdl/kernel.cdl: Do cache tests on E7T.2001-04-05 Nick Garnett <nickg@cygnus.co.uk>* tests/flag1.cxx: Apply same changes here as were applied tokflag1 on 2000-07-17. This allows this test to run to completionin slow targets, especially simulators.* tests/stress_threads.c: Reduce run time even further insimulator runs where instrumentation is enabled.2001-04-03 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c: Fix feature check.2001-03-28 Jonathan Larmour <jlarmour@redhat.com>* cdl/kernel.cdl: Only need to compile dbg_gdb.cxx withCYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT* src/debug/dbg_gdb.cxx: Add new dbg_thread_id() function.2001-02-23 Jonathan Larmour <jlarmour@redhat.com>* include/thread.inl (attach_stack): Check for non-NULL stack base.2001-02-11 Jonathan Larmour <jlarmour@redhat.com>* tests/stress_threads.c: CYGINT_ISO_STDIO_FORMATTED_IO needs a#ifdef not an #if.* tests/dhrystone.c: Ditto.2001-02-04 Jonathan Larmour <jlarmour@redhat.com>* tests/kill.cxx: Increase delay for all targets, just in case someare slow.2001-01-30 Hugo Tyson <hmt@redhat.com>* src/common/clock.cxx (rem_alarm): Must clear the enabled flag;this disappeared in the changes to using clists of 2001-01-09.Symptom was that an alarm, once disabled, could never bere-attached to its counter because it claimed it already was.Plus asserts with multiple disables - "bad counter object".2001-01-30 Hugo Tyson <hmt@redhat.com>* src/common/thread.cxx (reinitialize): Following change of2000-12-05, if CYGFUN_KERNEL_THREADS_STACK_CHECKING, this wasusing the stack_base/stack_size variables directly to reinitializethe stack area. This was wrong, and leaked store off the top andbottom of the stacks because the "buffer zone" was carved offrepeatedly. Fix is to use the published APIs which compensate.2001-01-26 Nick Garnett <nickg@cygnus.co.uk>* include/mlqueue.hxx:* src/sched/mlqueue.cxx:Restored Cyg_ThreadQueue_Implementation::remove() since it mustclear the thread's queue pointer, which the base clist classremove() does not.2001-01-24 Jesper Skov <jskov@redhat.com>* src/sched/mlqueue.cxx (highpri): Fix trace call.2001-01-09 Nick Garnett <nickg@cygnus.co.uk>* include/mlqueue.hxx:* src/sched/mlqueue.cxx:Converted to use clist.hxx list implementation. The main effect ofthis is to clean up the code and class definitions since much ofwhat was part of the thread queue and thread classes now moves tothe DNode and CList classes.* include/clock.hxx:* src/common/clock.cxx:Converted to use clist.hxx list implementation. This removes allthe explicit list manipulation code from the counter and alarmclasses, resulting in cleaner, easier to understand code.* include/kapidata.h: Adjusted cyg_alarm struct to match Cyg_Alarmusing Cyg_DNode.2000-12-22 Jonathan Larmour <jlarmour@redhat.com>* include/thread.inl (check_stack): check word alignment with CYG_WORDnot cyg_uint32Add extra stack checking for when stack limits are used.(measure_stack_usage): New function to measure stack usage of the thread(attach_stack): check word alignment with CYG_WORD not cyg_uint32Initialize stack to preset value when measuring stack usage(increment_stack_limit): Conditionalize here wrtCYGFUN_KERNEL_THREADS_STACK_CHECKING and use the version in thread.cxxinstead if CYGFUN_KERNEL_THREADS_STACK_CHECKING is defined.* src/common/thread.cxx (exit): If verbose stack measurement enabled,output stack usage(increment_stack_limit): Add version of this method whenCYGFUN_KERNEL_THREADS_STACK_CHECKING *is* defined. This will addpadding above the stack limit as necessary.* include/thread.hxx (class Cyg_HardwareThread): Addmeasure_stack_usage() member* cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT):Add to implement stack usage measurement.* include/kapi.h (cyg_thread_measure_stack_usage): New function* src/common/kapi.cxx (cyg_thread_measure_stack_usage): New function2000-12-08 Jonathan Larmour <jlarmour@redhat.com>* cdl/thread.cdl (CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING):Requires threads list, rather than active_if them so thatinference engine can do its thang.2000-12-07 Jesper Skov <jskov@redhat.com>* src/debug/dbg-thread-demux.c: Add comment about the use ofDBG_SYSCALL_THREAD_VEC_NUM vs CYGNUM_CALL_IF_DBG_SYSCALL.2000-12-06 Hugo Tyson <hmt@redhat.com>* include/thread.inl (attach_stack): Additional assert check forunsigned wrap of the stack size in subtracting the signatureareas' size. Also round to whole words better.2000-12-05 Hugo Tyson <hmt@redhat.com>* cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_CHECKING): Newoption, to control new stack check features. Enabled by default,but only active if CYGPKG_INFRA_DEBUG and CYGDBG_USE_ASSERTSanyway, plus checking *all* threads is possible, but default off,iff CYGVAR_KERNEL_THREADS_LIST.* include/thread.hxx (class Cyg_HardwareThread): Definecheck_stack() function.* include/thread.inl (attach_stack): Add initialization of asignature in the top and base of the stack, if so configured.(check_stack): New function to check that signature forcorrectness; minor re-ordering to permit more inlining.* src/sched/sched.cxx (unlock_inner): Check departing and incomingthread stacks if CYGFUN_KERNEL_THREADS_STACK_CHECKING. Also, ifCYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING, check all registeredthread stacks. This is placed here to get executed everyclocktick and other interrupts that call DSRs, rather than messingwith interrupt_end() or the idle thread.2000-12-04 Hugo Tyson <hmt@redhat.com>* tests/kcache2.c (entry0): Make this more robust against acomplete absence of useful caches. Previous change was notcareful enough.2000-12-01 Hugo Tyson <hmt@redhat.com>* cdl/kernel.cdl: Build the kcache tests for SA11x0 family; theywere being omitted by default as part of ARM family. They work onSA1110, so this should be OK. They're OK on EBSAs too. Seeassociated fix to cache macros in SA11x0 and EBSSA HALs.* tests/kcache2.c (entry0): Fix the test; the problem was itassumed that a write to a previously unseen location would end upin the cache. It ain't so on StrongARMs. Also make tests safewrt interrupts possibly perturbing the cache, add explicit testsfor HAL_DCACHE_INVALIDATE_ALL(), ...DISABLE() and ...SYNC(), andimprove the tests for cache line invalidate and store.2000-10-30 Jesper Skov <jskov@redhat.com>* cdl/synch.cdl: Replaced CYGINT_KERNEL_SCHEDULER_CAN_YIELD withCYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES.* cdl/scheduler.cdl:CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL requiresCYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES.* tests/thread2.cxx: Use new option.* tests/klock.c: Same.* src/common/thread.cxx: Same.* src/common/clock.cxx: Same.* include/bitmap.hxx: Leave unique priority setting to CDL.* include/mlqueue.hxx: Same.* include/sched.hxx: Let CDL do sanity check of config.2000-10-27 Jesper Skov <jskov@redhat.com>* cdl/scheduler.cdl: Added CYGINT_KERNEL_SCHEDULER_CAN_YIELD* tests/klock.c: Avoid use of disabled features. Require schedulerthat can yield.2000-10-20 Jonathan Larmour <jlarmour@redhat.com>* tests/bin_sem0.cxx:* tests/bin_sem1.cxx:* tests/bin_sem2.cxx:* tests/clock0.cxx:* tests/clock1.cxx:* tests/clockcnv.cxx:* tests/cnt_sem0.cxx:* tests/cnt_sem1.cxx:* tests/except1.cxx:* tests/flag0.cxx:* tests/flag1.cxx:* tests/intr0.cxx:* tests/kill.cxx:* tests/mbox1.cxx:* tests/mqueue1.cxx:* tests/mutex0.cxx:* tests/mutex1.cxx:* tests/mutex2.cxx:* tests/mutex3.cxx:* tests/philo.cxx:* tests/release.cxx:* tests/sched1.cxx:* tests/sync2.cxx:* tests/sync3.cxx:* tests/testaux.hxx:* tests/thread0.cxx:* tests/thread1.cxx:* tests/thread2.cxx:* tests/tm_basic.cxx:Make sure default priority constructors have been invoked.* include/intr.hxx (class Cyg_Interrupt): Make dsr_count volatileto prevent a potential race condition with overzealous Ccompilers.2000-10-13 Nick Garnett <nickg@cygnus.co.uk>* src/sched/sched.cxx (unlock_inner): Added condition to test forDSRs to only call DSRs when the scheduler lock is making a 0->1transition. Otherwise there is the danger of calling DSRs when thescheduler lock is > 1. This violates our original assumptionsabout how the scheduler lock worked with respect to DSR.* src/intr/intr.cxx (call_pending_DSRs): Added assert to checkthat DSRs are only called when the scheduler lock is exactly 1.2000-10-13 Jesper Skov <jskov@redhat.com>* include/intr.hxx: Fixing syntax mistake; volatile keyword mustappear after the type for it to affect the pointer variable.* src/intr/intr.cxx: Same. Remove volatile from local block.2000-10-05 Jesper Skov <jskov@redhat.co.uk>* src/intr/intr.cxx: Made dsr_table_tail volatile as well.* include/intr.hxx: Ditto.2000-10-05 Nick Garnett <nickg@cygnus.co.uk>* src/sched/sched.cxx:* include/sched.hxx: Converted asr_inhibit from a bool to acounter. This is necessary to permit nesting of ASR inhibitingfunctions.2000-10-04 Jesper Skov <jskov@redhat.co.uk>* include/intr.hxx: Made dsr_list volatile.* src/intr/intr.cxx: Same. Also fix compiler warning.2000-09-25 Nick Garnett <nickg@cygnus.co.uk>* src/sched/mlqueue.cxx:Added test for current thread not runnable inCyg_Scheduler_Implementation::timeslice(). This is possible if aprior DSR has caused the current thread to be descheduled. Addedan assert to Cyg_ThreadQueue_Implementation::rotate() foradditional paranoia. (This problem was originally identified andfixed (differently) by Andrew Lunn <andrew.lunn@ascom.ch>.)2000-09-13 Jesper Skov <jskov@redhat.com>* tests/kexcept1.c (cause_exception): Use separate cause_fpe function.* tests/except1.cxx (cause_exception): Same.* tests/kexcept1.c (cause_exception): Do not use division at all.* tests/except1.cxx (cause_exception): Same.* tests/kexcept1.c (cause_exception): Do not cause div-by-zero.* tests/except1.cxx (cause_exception): Same.2000-09-11 Jonathan Larmour <jlarmour@redhat.com>* cdl/instrument.cdl (CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER):Bring this option back from the dead2000-09-08 Nick Garnett <nickg@cygnus.co.uk>* include/sched.hxx:* include/sched.inl:Added Cyg_Scheduler::unlock_reschedule() function. This decrementsthe scheduler lock by one but also permits the current thread tobe rescheduled if it ready to sleep, or there is a higher prioritythread ready to run. This is to support use of varioussynchronization objects while the scheduler lock is claimed.* src/sched/sched.cxx (unlock_inner): Modified precondition toallow for functionality of unlock_reschedule().* src/sched/mlqueue.cxx:Now uses Cyg_SchedulerThreadQueue_Implementation for all runqueuepointers. It was using Cyg_ThreadQueue_Implementation in someplaces which meant we were trying to sort the run queues!Changed yield() so it can be called with the scheduler lockclaimed.Changed Cyg_Scheduler_Implementation::timeslice() to rotate thequeue itself rather than call yield(). The changes to yield() makeit unsafe to call here any more.* include/mlqueue.hxx (class Cyg_SchedulerThreadQueue_Implementation):Made enqueue() member public.* include/mboxt2.inl:* src/common/thread.cxx:* src/sync/mutex.cxx:* src/sync/cnt_sem2.cxx:Removed assertions for zero scheduler lock and replaced someinvocations of Cyg_Scheduler::unlock() withCyg_Scheduler::unlock_reschedule() or Cyg_Scheduler::reschedule()where appropriate.* tests/klock.c:* cdl/kernel.cdl:Added klock.c to test functionality while scheduler lock is claimed.2000-08-17 Hugo Tyson <hmt@cygnus.co.uk>* src/sched/sched.cxx (unlock_inner): Move an assert to some placewhere it's true *all* the time! There was a narrow margin where aDSR could confuse unlock_inner() by reanimating the current threadbefore it had a chance to sleep - hence the call appears to bepointless. Putting the assert before the DSR calls makes sense.* include/mboxt.inl:* src/sync/bin_sem.cxx:* src/sync/cnt_sem.cxx:* src/sync/flag.cxx:* src/sync/mutex.cxx:All of these now use Cyg_Scheduler::reschedule() rather than anunlock/lock pair to yield in their functions which can sleep.They therefore can be called safely and atomically with thescheduler already locked. This is a Good Thing[tm]. Since thenetwork stack synch primitives now use this feature, the assertsthat the scheduler was not locked must disappear: this change.2000-08-07 Jonathan Larmour <jlarmour@redhat.co.uk>* include/mutex.hxx (class Cyg_Mutex): Add comment explainingpresence of locked.2000-08-04 Jonathan Larmour <jlarmour@redhat.co.uk>* tests/stress_threads.c (STACK_SIZE_HANDLER): Increase stack sizesotherwise it crashes!2000-07-31 Jonathan Larmour <jlarmour@redhat.co.uk>* include/mempolt2.hxx: As per change of 2000-07-04, also delete - leftbehind accidentally2000-07-20 Nick Garnett <nickg@cygnus.co.uk>* include/mutex.hxx (class Cyg_Mutex): Added get_ceiling()accessor function.* src/sched/mlqueue.cxx: Fixed bug in sorted queue code thatresulted in an infinite loop if the thread being inserted is oflower priority than all threads in the queue. This case is nowdetected early.2000-07-17 Gary Thomas <gthomas@redhat.com>* tests/kflag1.c (FIRST_THREAD_WAIT_TIME): Parameterize threadsynchronization wait times (for understanding) and adjust forincredibly slow platforms. [Previous value allowed for the testto get out of sync because the code ran so slowly]2000-07-04 Jonathan Larmour <jlarmour@redhat.co.uk>* cdl/kernel.cdl: Remove all configury related to memory allocators,including tests. Make CYGFUN_KERNEL_API_C require CYGFUN_MEMALLOC_KAPI* include/memfixed.hxx, include/mempolt2.inl, include/mempoolt.hxx,include/mempoolt.inl, include/memvar.hxx, include/mfiximpl.hxx,include/mfiximpl.inl, include/mvarimpl.hxx, include/mvarimpl.inl,src/mem/memfixed.cxx, src/mem/memvar.cxx, tests/kmemfix1.c,tests/kmemvar1.c, tests/memfix1.cxx, tests/memfix2.cxx,tests/memvar1.cxx, tests/memvar2.cxx:Move to separate memory allocator package CYGPKG_MEMALLOC* include/kapi.h, include/kapidata.h, src/common/kapi.cxx:Remove memory allocator functionality - now implemented inCYGPKG_MEMALLOC* tests/dhrystone.c:Update configuration dependencies for new isoinfra design* tests/stress_threads.c:Likewise.Also fix early termination after DEATH_TIME_LIMIT so thatallocated resources are freed, and so more appropriatestatistics are reportedAlso update to use mallinfo() interface to memory allocator2000-06-23 Hugo Tyson <hmt@cygnus.co.uk>* include/kapi.h (cyg_scheduler_read_lock): New function, toreturn the value of the scheduler lock; this for implementing SPLXin the network stack.* src/common/kapi.cxx (cyg_scheduler_read_lock): New function.2000-06-20 Nick Garnett <nickg@cygnus.co.uk>* src/sched/mlqueue.cxx (Cyg_ThreadQueue_Implementation::enqueue):Rewrote code to insert threads into priority sorted queue. Theoriginal code could not cope with a queue all of whose memberswere lower priority than the new thread - it looped for ever. Alsoprovided fast paths for common and easily detected cases such asadding to a single element queue and adding at the front. Bytaking these cases out early, we can also simplify the code tosearch the queue.2000-06-16 Gary Thomas <gthomas@redhat.com>* cdl/kernel.cdl: Remove exception tests for CMA230 - not supportedby hardware.2000-06-16 Jesper Skov <jskov@redhat.com>* src/intr/intr.cxx (chain_isr): Only call default_isr if no isrsin the chain reacted to the interrupt.2000-06-15 Nick Garnett <nickg@cygnus.co.uk>* include/mutex.hxx (class Cyg_Condition_Variable): Added aninline function, get_queue(), to return a pointer to theunderlying thread queue. To be used mainly for comparing with athread's current queue to decide whether it is waiting for acondition variable.* include/kapi.h:* src/common/kapi.cxx:Changed return type of cyg_semaphore_wait() to match existingbehaviour of Cyg_Counting_Semaphore::wait().Changed return type of cyg_cond_wait() to match new behaviour ofCyg_Condition_Variable::wait().2000-06-09 Nick Garnett <nickg@cygnus.co.uk>* include/mutex.hxx:* src/sync/mutex.cxx:Modified non-timeout condition variable wait() API to returncyg_bool. A true result indicates that the wait() terminatednormally. A false result indicates that the wait() was terminatedas a result of a release() or destroy operation. For most usesthis distinction is irrelevant, but in some situations it is auseful bit of information to have.Also modified timeout condition variable wait to reacquire themutex under all circumstances. This is the correct and consistentthing to do.2000-06-08 Jesper Skov <jskov@redhat.com>* src/debug/dbg-thread-demux.c: Use generic HAL feature to allowROM/RAM intercalling.2000-06-06 Jesper Skov <jskov@redhat.com>* tests/kcache1.c (entry0): Skip invalidate tests on TX49. Too slow.2000-05-30 Gary Thomas <gthomas@redhat.com>* tests/dhrystone.c: Increase number of test loops for fasterStrongARM platforms.2000-05-22 Jonathan Larmour <jlarmour@redhat.co.uk>* cdl/scheduler.cdl (CYGIMP_KERNEL_SCHED_SORTED_QUEUES): Disable bydefault* src/sched/mlqueue.cxx (enqueue): Add to end of thread queue evenwhen not priority ordered2000-05-20 Jonathan Larmour <jlarmour@redhat.co.uk>* include/mqueue.hxx, include/mqueue.inl:Add POSIX-style message queue implementation* cdl/kernel.cdl: Add mqueue1 test* cdl/scheduler.cdl: Add new CYGIMP_KERNEL_SCHED_SORTED_QUEUES option* include/sema.hxx: Need thread.inl header, not just thread.hxxMake Cyg_Counting_Semaphore::peek() const since it is* src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, include/sema2.hxx:Make Cyg_Counting_Semaphore{2}::peek() const since it is* include/thread.hxx: don't want Cyg_Thread_queue::empty() to be markedinline in the class def, otherwise we get warnings elsewhere* include/mlqueue.hxx (Cyg_ThreadQueue_Implementation):Add set_thread_queue private methodAdd derived class Cyg_SchedulerThreadQueue_Implementation, andmake scheduler implementation use it instead ofCyg_ThreadQueue_Implementation* src/mlqueue.cxx: Fix typoSupport CYGIMP_KERNEL_SCHED_SORTED_QUEUES, i.e. allow insertioninto thread queue in order of thread priority, with oldest at thefront(Cyg_ThreadQueue_Implementation::set_thread_queue): Add(Cyg_SchedulerThreadQueue_Implementation::enqueue): Add, like oldone, except make it FIFO instead of LIFO by inserting at end of queue2000-05-16 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c: More loops on the TX492000-05-15 Jonathan Larmour <jlarmour@redhat.co.uk>* cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY):Default to CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY2000-05-04 Jonathan Larmour <jlarmour@redhat.co.uk>* include/instrmnt.h: Remove all CYG_UNUSED_PARAMs as they couldcause problems when used with volatile arguments* src/intr/intr.cxx: Use CYG_UNUSED_PARAM to silence warning thatappears because of the above change.2000-05-02 Gary Thomas <gthomas@redhat.com>* tests/kintr0.c:* tests/intr0.cxx: Correct test for cases when VSR_MIN orISR_MIN are not zero (bad assumption).2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>* cdl/thread.cdl (CYGNUM_KERNEL_THREADS_DATA_LIBC): Don't need libcslot. Replace with CYGNUM_KERNEL_THREADS_DATA_ERRNO slot instead.2000-04-28 Nick Garnett <nickg@cygnus.co.uk>* src/sched/sched.cxx (unlock_inner):A significant change to the behaviour of this function. Thenew_lock argument contains the value that the scheduler lockshould have after this function has completed. If it is zero thenthe lock is being released and some extra work (running ASRs,checking for DSRs) is done before returning. If it is non-zerothen it must equal the current value of the lock, and is used toindicate that we want to reacquire the scheduler lock beforereturning. This latter option only makes any sense if the currentthread is no longer runnable, otherwise this function will donothing.The result of this is that where we used to "blip" the schedulerlock to force a sleep, we now call reschedule(), which callsunlock_inner() with the current sched_lock value. The importantdifference is that there is not now the brief window between thecalls where the lock is unclaimed. It also prevents ASRs being runat inopportune moments. In future this will also allow us to forcethreads to sleep even when they are deeply nested in the schedulerlock.* include/mutex.hxx:Added Cyg_Mutex::get_owner() to return pointer to owning thread.* include/sched.hxx:* include/sched.inl:Added new_lock argument to unlock_inner(), added reschedule().Made set_asr_inhibit() and clear_asr_inhibit() available even whenASRs are disabled.* include/mboxt.inl:* src/sync/bin_sem.cxx:* src/sync/cnt_sem.cxx:* src/sync/flag.cxx:* src/sync/mutex.cxx:Converted instances of "blipping" the scheduler lock into calls toCyg_Scheduler::reschedule(), which is better behaved. Some callsto set_asr_inhibit() and clear_asr_inhibit() also added in variousplaces.2000-04-26 Jesper Skov <jskov@redhat.com>* tests/kcache1.c: Also to flush testing with unified caches.2000-04-26 Jesper Skov <jskov@redhat.com>* tests/clockcnv.cxx:* tests/dhrystone.c:Renamed 850 HAL package.2000-04-25 Jesper Skov <jskov@redhat.com>* tests/kcache1.c: Fixed cache check to also look for unifiedcaches.2000-04-19 Jesper Skov <jskov@cygnus.co.uk>* tests/clockcnv.cxx:* tests/dhrystone.c:Only a few laps around the block on the v850...2000-04-13 Nick Garnett <nickg@cygnus.co.uk>* include/clock.hxx:* src/common/clock.cxx:Added Cyg_Alarm::get_times() member function to allow reading oftrigger and interval values from an alarm.2000-04-12 Nick Garnett <nickg@cygnus.co.uk>* include/sched.hxx:* src/sched/sched.cxx:Added ASR support.* include/thread.hxx:Made Cyg_ThreadQueue::empty() an inline in class definition.* src/common/thread.cxx:Added CYG_REPORT_FUNCTION() to Cyg_Thread::exit().* include/kapidata.h:Brought thread structures up to date with kernel objects.* cdl/thread.cdl:* cdl/scheduler.cdl:Added ASR configuration, minor tidies.2000-04-12 Gary Thomas <gthomas@redhat.com>* src/common/kapi.cxx (cyg_scheduler_safe_lock):* include/kapi.h: Add 'cyg_scheduler_safe_lock()' function.2000-04-12 Jesper Skov <jskov@redhat.com>* cdl/interrupts.cdl:* cdl/scheduler.cdl:* cdl/counters.cdl:Don't let interfaces define anything.2000-04-07 Nick Garnett <nickg@cygnus.co.uk>* include/sched.hxx:* include/thread.inl:* src/sync/mutex.cxx:* src/sched/sched.cxx:* src/common/thread.cxx:General reorganization of priority inversion protocol support,addition of priority ceiling protocol.* include/mlqueue.hxx:* src/sched/mlqueue.cxx:Added timeslicing enable support.* cdl/thread.cdl:* cdl/synch.cdl:Reorganized priority inversion protocol configuration to permitdifferent protocols and dynamic choice. Added configuration forcondition variables to use a user-specified mutex.* cdl/scheduler.cdl:Added dynamic timeslicing enable option.* include/kapidata.h:Adjusted to match changes in other header files.* tests/mutex3.cxx:* tests/sync3.cxx:Modified these tests to match new priority inversion protocolsconfiguration options.2000-03-28 John Dallaway <jld@cygnus.co.uk>* cdl/counters.cdl,cdl/interrupts.cdl,cdl/kernel.cdl,cdl/scheduler.cdl,cdl/synch.cdl,cdl/thread.cdl:Adjust documentation URLs.2000-03-27 Gary Thomas <gthomas@redhat.com>* tests/except1.cxx:* tests/kexcept1.c: Avoid trying to generate data access errorson platforms that don't support them.* tests/kcache1.c: Ignore test if no [data] caches defined.* tests/stress_threads.c: Infer minimal configuration for platformswith small amount of memory (as opposed to platform special cases).2000-03-27 Jesper Skov <jskov@redhat.com>* src/sync/mutex.cxx:* src/sched/sched.cxx:* src/common/thread.cxx:* src/common/clock.cxx:Use cyg_bool instead of bool for check_this().* tests/dhrystone.c: Requires CYGPKG_LIBC_MALLOC2000-03-07 Jesper Skov <jskov@redhat.com>* tests/mutex3.cxx: Minor tweak from Hugo to allow reduced runtimeon sims.2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk>* src/debug/dbg-thread-demux.c:CYG_HAL_SPARCLITE_SLEB -> CYGPKG_HAL_SPARCLITE_SLEBAlso fix a comment typo2000-02-29 Jesper Skov <jskov@redhat.com>* tests/kcache1.c: Don't run last part of test on MIPS sim - it'svery slow.2000-02-25 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c:* tests/tm_basic.cxx:Don't allow use of devices for diag output when running performacetests.2000-02-17 Jonathan Larmour <jlarmour@redhat.co.uk>* include/pkgconf/kernel.h: MakeCYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE a cdl_componentsince it has children now2000-02-17 Jesper Skov <jskov@redhat.com>CR101202, CR902078* include/mvarimpl.inl: Avoid unlinking the list from the headduring coalescing.2000-02-11 Jesper Skov <jskov@redhat.com>* tests/dhrystone.c (PASSES): Reduced for MPC8xx targets.2000-02-10 Jesper Skov <jskov@redhat.com>* tests/except1.cxx (except0_main):* tests/kexcept1.c (except0_main):Also reclaim DATA_TLB_MISS vector if available.2000-02-03 Jesper Skov <jskov@redhat.com>* src/sched/lottery.cxx (schedule): CYG_HAL_POWERPC_x->CYGPKG_...2000-02-01 Jonathan Larmour <jlarmour@redhat.co.uk>* tests/tm_basic.cxx (NTEST_THREADS): Reduce further to fit on smalltargets(NMBOXES): Likewise(NCOUNTERS): Likewise* src/common/clock.cxx: Rework last change - change types ofclock_dsr_read and delta to unsigned instead2000-01-31 Jonathan Larmour <jlarmour@redhat.co.uk>* src/common/clock.cxx (isr): Use HAL_CLOCK_LATENCY, not HAL_CLOCK_READ(dsr): Likewise* cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY):Copy configury for this option here from include/pkgconf/kernel.h - itwas left behind by accident2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk>* cdl/*.cdl:Adjust help URLs in line with new doc layout.2000-01-31 Jesper Skov <jskov@redhat.com>* tests/tm_basic.cxx: Use CYG_TEST_NA insetad of PASS when notapplicable.2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk>* cdl/*.cdl:Adjust help URLs in line with new doc layout.2000-01-26 Hugo Tyson <hmt@cygnus.co.uk>* include/clock.hxx (class Cyg_Clock): Add members to convert toand from this clock resolution and others.* include/clock.inl (convert): New Cyg_Clock member.* src/common/clock.cxx (construct_converter): New routine tofactorize a rational (or very near neighbour) to help with clocktick conversions for a particular clock.(get_other_to_clock_converter):(get_clock_to_other_converter): Cyg_Clock member functions toconstruct converters to or from this clock, using above routine.* tests/clockcnv.cxx: New file: test the clock converters.* tests/PKGconf.mak (TESTS): Add clockcnv to the tests.* cdl/kernel.cdl: Add clockcnv to the tests.2000-01-20 Hugo Tyson <hmt@cygnus.co.uk>* cdl/synch.cdl(CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY):Change this to an active_if on simple prio-inh. Was broken.2000-01-19 Hugo Tyson <hmt@cygnus.co.uk>* cdl/*.cdl: Add descriptions to a number of options &c which werelacking same, also tidied up other typos as noticed en passant.Also reorganized calculated opts about per-thread-data inthread.cdl; these are really for info only.2000-01-19 Jesper Skov <jskov@cygnus.co.uk>CR 902054* tests/stress_threads.c: Don't assert requested priority =allocated. Allow some flexibility of handler priorities.2000-01-13 Hugo Tyson <hmt@cygnus.co.uk>* tests/mutex3.cxx (control_thread): Add a CYG_TEST_INIT();Whoops!2000-01-11 Hugo Tyson <hmt@cygnus.co.uk>* cdl/kernel.cdl: Add new kernel test mutex3, put in to testRELAY prio inheritance extension.* tests/mutex3.cxx: New test case. It tests mutex prioinheritance - or not - in a multiple thread manner, depending onlyon delays and the clock, so it tests that scheduling does theright thing, rather than simply checking reported priorities.* tests/PKGconf.mak: Add new kernel test mutex3, put in to testRELAY prio inheritance extension.2000-01-11 Hugo Tyson <hmt@cygnus.co.uk>* cdl/synch.cdl: New config option added,(CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).* include/pkgconf/kernel.h: New config option added,(CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).It is a child of ..._PRIORITY_INHERITANCE_SIMPLE and is reallyonly there to turn off if you really want the old implementation.* src/sync/mutex.cxx (unlock): Add call toCyg_SchedThread::relay_priority() when relinquishing the mutex, inorder to relay any raised priority to the new owner. Also countthe mutex we are waiting for as well as those held for correctrecovery in the case of inheriting priority then being killed, forexample.* include/sched.hxx (class Cyg_SchedThread::relay_priority): Newmember function declared.* src/sched/sched.cxx (Cyg_SchedThread::relay_priority): Newmember function to implement pass-it-on or "discovered ceiling"priority inheritance extension to the simple algorithm. Also useget_current_priority() in Cyg_SchedThread::inherit_priority() tolet this work.2000-01-11 Hugo Tyson <hmt@cygnus.co.uk>* include/clock.hxx (class Cyg_Counter::counter): make the countervolatile, otherwise a busy-wait loop for the real time clock tochange never completes.1999-12-23 Hugo Tyson <hmt@cygnus.co.uk>* src/sched/sched.cxx (inherit_priority): Fix bug; inheriting a2nd time would overwrite the saved initial_priority, sodisinheriting had no effect.1999-12-13 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/tm_basic.cxx (run_alarm_tests): Add new measurement oflatency between alarm firing and thread resume1999-12-13 Jonathan Larmour <jlarmour@cygnus.co.uk>* cdl/kernel.cdl: Fix some minor mistakes in the lists of tests tobuild conditionally1999-12-08 John Dallaway <jld@cygnus.co.uk>* cdl/kernel.cdl:Conditionally build the tests 'stress_threads', 'kcache1' and'kcache2'.1999-11-30 Hugo Tyson <hmt@cygnus.co.uk>* src/common/kapi.cxx (cyg_scheduler_lock, cyg_scheduler_unlock):assert good range for sched lock, and be defensive anyway. Thisis in response to a long time taken to track down a "unlocked toomany times" bug.1999-11-24 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Size tests based on available resources,using MLT files. Fall back if not available.1999-11-22 Nick Garnett <nickg@cygnus.co.uk>* src/sched/bitmap.cxx (Cyg_Scheduler_Implementation::add_thread):Fixed typo in assertion, and moved it to a more useful place.1999-11-03 John Dallaway <jld@cygnus.co.uk>* cdl/kernel.cdl: Define all tests.1999-10-29 Gary Thomas <gthomas@cygnus.co.uk>* tests/PKGconf.mak: Enable cache tests for Cirrus Logic boards.1999-10-27 John Dallaway <jld@cygnus.co.uk>* cdl/kernel.cdl:Specify CYGPKG_KERNEL_TESTS in terms of testingsource files.1999-10-26 John Dallaway <jld@cygnus.co.uk>* cdl/kernel.cdl:Define initial version of CYGPKG_KERNEL_TESTS forverification purposes.1999-10-19 John Dallaway <jld@cygnus.co.uk>* cdl/kernel.cdl:Define CDL options for package-specific CFLAGS.1999-10-08 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache1.c: Fix array size.* src/sched/bitmap.cxx (add_thread):* src/sched/mlqueue.cxx (add_thread):Check for valid thread priority.1999-10-07 John Dallaway <jld@cygnus.co.uk>* cdl/counters.cdl,cdl/interrupts.cdl,cdl/scheduler.cdl:Specify radio buttons using CDL interfaces.1999-10-06 Bart Veer <bartv@cygnus.co.uk>* cdl/scheduler.cdl:Make the schedulers mutually exclusive via a cdl_interface1999-10-05 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache1.c: Reduced memory footprint.1999-09-25 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c: Added date header and flush() calls.1999-09-16 Hugo Tyson <hmt@cygnus.co.uk>* tests/tm_basic.cxx (run_mutex_tests): Must unlock mutices beforedestroying, given the change below.* src/common/kapi.cxx (cyg_cond_destroy): Call the correctdestructor. As it happens, it didn't matter because all thesedestructors do is assert the queue is empty, and the queue is the2nd word in every case.(cyg_mutex_destroy): Call the destructor at all, so thatassertions are made.1999-09-13 Gary Thomas <gthomas@cygnus.co.uk>* src/intr/intr.cxx (call_pending_DSRs_inner): Add assert to checkfor valid DSR (before trying to use it).1999-09-13 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c: Print out malloc system info.(print_statistics): Fix buglet.1999-09-10 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c: Print out more info. Reduce dumpfrequency as test runs.1999-08-25 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/pkgconf/kernel.h: Add missing close brace inCYGIMP_KERNEL_COUNTERS_CLOCK_LATENCY CDL.1999-08-24 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache1.c (entry0): Depending on architecture, setcyg_test_is_simulator for last two tests. Otherwise they take fartoo long and time out.1999-08-23 Hugo Tyson <hmt@cygnus.co.uk>* tests/intr0.cxx (vsr0):* tests/kintr0.c (vsr0):Add a comment to the effect that vsr0() is NOT a valid VSR on anyknown platform; VSRs must be writ in assembler. Customerrequested this, the examples are rather confusing otherwise.1999-08-23 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:* src/common/clock.cxx:* tests/tm_basic.cxx:Added CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY to enable recordingof DSR latency figures. Added code controlled by this option toclock and tm_basic. Also made interrupt latency measurementprimarily dependent on CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY sincewhether HAL_CLOCK_LATENCY is defined is not sufficient.1999-08-17 John Dallaway <jld@cygnus.co.uk>* cdl/counters.cdl, cdl/interrupts.cdl, cdl/scheduler.cdl:Implement radio buttons using "FIXME radio" hack indescription field for now.1999-08-16 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/sload/sload.c: Rename AM32 to AM311999-08-12 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg_gdb.cxx (dbg_make_threadref): Extended test foruninitialized thread pointer.1999-07-29 Jesper Skov <jskov@cygnus.co.uk>* src/sync/mutex.cxx (lock): Removed assertion again. Not possibleto determine if a violation wil cause a deadlock.1999-07-27 Jesper Skov <jskov@cygnus.co.uk>* src/sync/mutex.cxx (lock): Added simple assertion check fordeadlocks.* tests/stress_threads.c: Only allow printf from main thread toprevent deadlocks.1999-07-14 Hugo Tyson <hmt@cygnus.co.uk>* tests/kcache1.c (entry0): Also perform timing tests withHAL_DCACHE_INVALIDATE_ALL and/or HAL_ICACHE_INVALIDATE_ALL in theloop if provided by the HAL. Invalidating the Data cache canspoil clock operation, so elapsed time appears to be 0.* tests/kcache2.c (entry0): Replace the "if (0)" for having acopy-back cache with a proper test on a HAL macro. Even though Icouldn't actually get those parts of the test to work on theplatform I'm currently working on.* tests/PKGconf.mak (TESTS): Do build kcache1 and kcache2 for theARM_EBSA285; it seems kosher. kcache2 does absolutely nothing, ofcourse.1999-07-09 Jesper Skov <jskov@cygnus.co.uk>PR 20210, 20142* tests/stress_threads.c: Shifted thread priorities to make roomfor main() at priority 0.Fixed indentation.1999-07-08 Jesper Skov <jskov@cygnus.co.uk>PR 20244* tests/stress_threads.c: Changed cyg_user_start() to main()ensuring a bigger stack (it calls sprintf).Increased STACK_SIZE by 2kB for printf calls.1999-06-30 Jesper Skov <jskov@cygnus.co.uk>* tests/dhrystone.c: Also NA-quit if CYGPKG_INFRA_DEBUG orCYGPKG_KERNEL_INSTRUMENT are enabled.1999-06-23 Jesper Skov <jskov@cygnus.co.uk>PR 20209* tests/dhrystone.c: Use fewer loops on ARM targets - they don'thave a cache.1999-06-22 Nick Garnett <nickg@cygnus.co.uk>* src/intr/intr.cxx (Cyg_Interrupt::chain_isr): Was testing the wrongmacro for the default ISR. Fixed.* src/common/clock.cxx (Cyg_RealTimeClock::isr): Add HANDLED bitto returned value.1999-06-21 Jesper Skov <jskov@cygnus.co.uk>PR 20209* tests/dhrystone.c: Don't run test on sims or synthetic target.Only run test when compiled with optimization.1999-06-18 Jesper Skov <jskov@cygnus.co.uk>* tests/dhrystone.c: Added unsupported header.1999-06-10 Hugo Tyson <hmt@cygnus.co.uk>* src/debug/dbg_gdb.cxx (dbg_threadinfo): Report counted sleepcorrectly; both COUNTSLEEP and SLEEPING are set.1999-06-01 Hugo Tyson <hmt@masala.cygnus.co.uk>* src/debug/dbg_gdb.cxx (dbg_threadinfo): Make the thread statestring a little more sensible when read as plain english.1999-05-31 Jesper Skov <jskov@cygnus.co.uk>* tests/dhrystone.c:* tests/PKGconf.mak (TESTS):Added dhrystone test.Updated to 2.1 from ftp.nosc.mil1999-05-27 Nick Garnett <nickg@cygnus.co.uk>* src/intr/intr.cxx (Cyg_Interrupt::chain_isr): CallsHAL_DEFAULT_ISR if it is defined and no chained ISRs havereported that they have handled the interrupt.* src/debug/dbg_gdb.cxx (dbg_make_threadref): Fixed this routineso that it copes with a NULL thread object.1999-05-27 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c: Output stackmon statusoccasionally. Output (simple) run time.1999-05-27 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache1.c: Added handling of unified caches.1999-05-26 Jesper Skov <jskov@cygnus.co.uk>* include/test/stackmon.h: Fixed some typos and thinkos.* tests/tm_basic.cxx: Include new stackmon header.* src/common/kapi.cxx:* include/kapi.h:Added kapi support for stackmon requirements.* include/stackmon.hxx: [deleted]* include/test/stackmon.h: [added]Made stackmon safe to use from both C and C++.1999-05-25 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c (setup_death_alarm): Only compile whenDEATH_TIME_LIMIT is defined.1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/except1.cxx:* tests/intr0.cxx (intr0_main):* tests/kexcept1.c:* tests/kintr0.c (kintr0_main):Change all mentions of CYG_HAL_TX39[_JMR3904] toCYG_HAL_MIPS_TX39[_JMR3904]* tests/kcache1.c: Use HAL_DCACHE_SYNC if possible1999-05-20 Hugo Tyson <hmt@cygnus.co.uk>* tests/tm_basic.cxx (run_all_tests): Added some more stack statsoutput using stackmon.hxx; also fixed a BUG associated with thedefinition of stacks in testaux.hxx (within tests dir) that wasmaking the main stack usage bogus.* include/stackmon.hxx: new file, to ease printing stuff aboutstack usage, particularly of interrupt stacks and the idlethread. It's not HAL specific, and it can apply to tests outsideof the kernel, which is why it's in a public include-place.It just contains inline functions which define empty if there's nohandle on the symbols available, so should be safe enough.1999-05-18 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c (main_program): Changed behavior ofcyg_thread_delete caller.1999-05-18 Hugo Tyson <hmt@cygnus.co.uk>* include/kapi.h (cyg_thread_delete): is now a boolean function toindicate success. Failure is when the thread needs to run inorder to become killed.* src/common/kapi.cxx (cyg_thread_delete): Try killing the threadif necessary before deleting; only run the destructor if it waskilled, and tell the caller so.(cyg_thread_kill): Back to the simpler version with no prioritydiddling; it's up to the called to determine that it _has_ died.* src/common/thread.cxx (kill): Only perform the state-changesimplied by kill if the thread has not already been killed;otherwise two kill()'s will remove a thread unconditionally,whether it's in the middle of a wait that needs tidying up or not.In other words, ensure idempotency.1999-05-17 Hugo Tyson <hmt@masala.cygnus.co.uk>* src/common/kapi.cxx (cyg_thread_kill): Up the priority of thekillee to make it terminate *now* if we have priorities and theyare not unique, otherwise asserts are likely with the bitmapscheduler. Likewise in thread delete. Condition out the bodiesof the priority ops if the scheduler does not support priorities.1999-05-16 Gary Thomas <gthomas@cygnus.co.uk>* src/intr/intr.cxx (call_pending_DSRs):* include/intr.hxx: Change mechanism for defining HAL functionto run DSRs. This was a "weak" symbol with override, but is nowa macro in <cyg/hal/hal_intr.h>.1999-05-13 Nick Garnett <nickg@cygnus.co.uk>The following changes were all made in a branch and are now beingmerged:1999-05-06 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-thread-demux.c:Use dbg-thread-syscall.h from HAL rather than local version.Made dbg_thread_syscall_rmt_1() generic to all MIPS targets.* src/debug/dbg-thread-syscall.h:Removed. Replaced by identical file in hal/common.1999-04-21 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:Added CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.Changed CYGNUM_KERNEL_COUNTERS_RTC_PERIOD to the correct value forVR4300.* include/instrmnt.h: Added CYG_INSTRUMENT_EVENT_THREAD_ENTERevent.* src/instrmnt/meminst.cxx (cyg_instrument): Added implementationof CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.* src/common/thread.cxx: Added extra instrumentation point onthread entry.1999-05-10 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c (main_program): Added workaround for afew PRs.1999-05-07 Jesper Skov <jskov@cygnus.co.uk>* src/common/kapi.cxx (cyg_scheduler_unlock, cyg_scheduler_lock):Make these simple calls to the scheduler.1999-05-07 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c (setup_death_alarm): Reduce run time onsynthetic target.1999-05-06 Jesper Skov <jskov@cygnus.co.uk>* tests/stress_threads.c: Reversed priorities of agents.1999-05-06 Jesper Skov <jskov@cygnus.co.uk>PRs 20040, (20027), 19991* tests/stress_threads.c: Added main_thread handling resourcedeallocation and printing.1999-04-27 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/stress_threads.c:If there aren't enough priorities, output an N/A, rather thanstopping compilation with a #error1999-04-28 Jesper Skov <jskov@cygnus.co.uk>PR 19850* tests/stress_threads.c: Don't print text from alarm handler.1999-04-28 Jesper Skov <jskov@cygnus.co.uk>PR 19945 workaround* tests/kexcept1.c:* tests/except1.cxx:Made NA to PowerPC SIM.1999-04-27 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx:Use/test 'cyg_thread_delete()' function.Add ability to compute statistics with first datum removed whichcan show up cache effects.Show thread stack usage.Fix merge screwup :-(1999-04-26 Hugo Tyson <hmt@cygnus.co.uk>* include/kapi.h: Add missing function cyg_thread_delete();otherwise there is no way in the C API to re-use thread memorysafely. It just calls the destructor of the Cyg_Thread class.* src/common/kapi.cxx (cyg_thread_delete): Implement it.1999-04-26 Hugo Tyson <hmt@cygnus.co.uk>* tests/stress_threads.c: Commit a better version for Mark since Ihappen to have it here; having addressed the main concern of myapproval process. It runs better in sims so long as theconstructor execution isn't messed with, nor timeslicing norpriority inheritance.1999-04-23 Mark Galassi <rosalia@cygnus.com>* tests/stress_threads.c (setup_death_alarm): shortened thesimulator time by another factor of 10, hoping that it will notslow down nightly testing for simulator platforms too much.(perform_stressful_tasks): added writing of a bit pattern to themalloc()-ed spaces. Also reduced stack requirements for threads.1999-04-23 Hugo Tyson <hmt@masala.cygnus.co.uk>* src/common/timer.cxx (Cyg_Timer::activate): we must also disablethe alarm when resetting it so as to remove it from its queue, sothat the enable afterwards places it on the right queue instead ofassuming that, being enabled, it's already there. (if notenabling, the behaviour is unchanged and correct) This wasdetected by uITRON tests[cx]4, with some random perms includingenable CYGIMP_KERNEL_COUNTERS_MULTI_LIST,value CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE {8}.The PR is 19475.1999-04-21 Hugo Tyson <hmt@cygnus.co.uk>* tests/bin_sem1.cxx (bin_sem1_main): Doh! Use priorities 4 and 5for the two threads so that they are unique (with a bitmapscheduler, the threads had prios 0 and 1 resp, which causes anassert in the attempt to set thread 0's prio to 1, "prios notunique"). PR 19904.1999-04-20 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/kcache2.c:Reduce iterations for time_ilock(), time_dlock(), and test_dzero()if a simulated environment is detectedFix for PR 198531999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/kill.cxx: Make delay ticks greater than 1 to preventscheduling problems if the clock rolls over immediatelyFix for PR 195161999-04-20 Mark Galassi <rosalia@cygnus.com>* tests/stress_threads.c: applied Hugo's patch to fix stack sizes.1999-04-19 Hugo Tyson <hmt@cygnus.co.uk>* tests/bin_sem1.cxx (bin_sem1_main): Add priorities to thethreads so that they run sequentially like the tester expected.Otherwise simple timing, and shorter timeslicing, causes failureto be reported; likewise if the kernel happens not to run entry0first!(another checkin)(bin_sem1_main): Add conditional use of set_priority onCYGIMP_THREAD_PRIORITY as it should be.1999-04-14 Jesper Skov <jskov@cygnus.co.uk>* src/debug/dbg_gdb.cxx: Fixed compiler warnings, cleaned up stubrequirements (removed FIX ME).1999-04-14 Gary Thomas <gthomas@cygnus.co.uk>* include/intr.hxx:* src/intr/intr.cxx (call_pending_DSRs_inner): Rework calling ofDSRs to allow calls from HAL code. This will allow for properuse of a separate interrupt stack.1999-04-14 Mark Galassi <rosalia@cygnus.com>* tests/PKGconf.mak: added an ifndef for the AEB-1 board so thatstress_threads is only built conditionally.* tests/stress_threads.c: added more config smarts suggested byJesper for his configurations.1999-04-13 Jesper Skov <jskov@cygnus.co.uk>PR 19822* src/debug/dbg_gdb.cxx: Current thread's registers live inregisters, not _registers.1999-04-13 Mark Galassi <rosalia@cygnus.com>* tests/stress_threads.c: simple stressing of threadcreation/deletion with some memory-intensive and alarm-basedtasks. This version is set so that it dies after DEATH_TIME_LIMITseconds, currently set to 120. #undef-ing DEATH_TIME_LIMIT makesthe test run forever. This is currently not working with thebitmap scheduler, probably for some simple reason, but I have notyet broken it down to see why.1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/except1.cxx:* tests/kexcept1.cxx:Remove now unnecessary tx39-specific setting ofCYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS VSRPart of cleanup for PR 197311999-04-09 Hugo Tyson <hmt@cygnus.co.uk>Generally: thread->to_queue_head() moves a thread to the head ofwhatever queue it is on, if relevant. This is so that a threadcan change priority and then put itself at the front of its newrun queue instead of the end; otherwise it yields too, which maybe undesirable. Particularly for internal use of priorities inthe uITRON compatibility layer.* include/thread.hxx (class Cyg_Thread): to_queue_head(): newfunction. Define Cyg_Thread::rotate_queue() for all schedulers.Public inheritance of Cyg_ThreadQueue_Implementation.* include/thread.inl (class Cyg_Thread): to_queue_head(): newfunction. Define Cyg_Thread::rotate_queue() for all schedulers.* include/mlqueue.hxx (class Cyg_SchedThread_Implementation):to_queue_head(), ...ThreadQueue...::to_head(): new functions.* src/sched/mlqueue.cxx (class Cyg_SchedThread_Implementation):to_queue_head(), ...ThreadQueue...::to_head(): new functions.* include/bitmap.hxx (class Cyg_SchedThread_Implementation):Add empty placeholders for rotate_queue() and to_queue_head() tomaintain commonality of interface.1999-04-08 Jesper Skov <jskov@cygnus.co.uk>PR 19667* kernel/current/src/common/thread.cxx:Removed obsolete Cyg_Thread constructor.* kernel/current/tests/testaux.hxx:* kernel/current/tests/thread0.cxx:* kernel/current/tests/thread1.cxx:Changed to use the new Cyg_Thread constructor.1999-04-08 Jesper Skov <jskov@cygnus.co.uk>* src/common/kapi.cxx: Minor indentation fixes.1999-04-07 Jesper Skov <jskov@cygnus.co.uk>PR 19743* include/mfiximpl.inl (Cyg_Mempool_Fixed_Implementation): Movedargument assertions before the first use of the arguments.1999-04-07 Hugo Tyson <hmt@cygnus.co.uk>* tests/kexcept1.c (except0_main):* tests/except1.cxx (except0_main):Use macro HAL_VSR_SET_TO_ECOS_HANDLER() if defined, to resetlikely exception handler VSRs to eCos' default handlers - thetarget side equivalent to CYG_TEST_GDBCMD("handle SIGBUS nostop");The VSR may not be the eCos standard one in some implementationsof cooperation with CygMon.1999-03-31 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):Fixed value of this option for TX39 66MHz to correct number.1999-03-25 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: More adjustments to get clock latency correct.Some fine tuning of messages and layout to fit well within 80 columns.1999-03-24 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h: Fixed an ifdef error.1999-03-24 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx (NTEST_THREADS): Reduce # threads so test canbuild on smaller machines. Also, only adjust timings by single"overhead" value instead of the more generous 2*overhead.* src/common/clock.cxx: Clock latency measurement defaults to 'off'.1999-03-23 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache2.c: Reduced number of loops in time_ilock(). On theMN10300 and TX39 this caused the test to timeout in the testingfarm.1999-03-23 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx:* src/common/clock.cxx: Add 'measure_clock_latency' boolean whichis used to turn clock latency measurements on/off.1999-03-23 Nick Garnett <nickg@cygnus.co.uk>* tests/tm_basic.cxx (run_all_tests): Changed initial delay from100 ticks to 2. This is adequate for the purpose of letting theclock get going, while 100 ticks was too long on simulators.1999-03-23 Hugo Tyson <hmt@cygnus.co.uk>* tests/kcache1.c:* tests/kcache2.c:* tests/kclock1.c:* tests/kexcept1.c:* tests/kflag1.c:* tests/kmbox1.c:* tests/kmemfix1.c:* tests/kmemvar1.c:* tests/kmutex1.c:* tests/ksched1.c:* tests/ksem1.c:* tests/kthread0.c:* tests/thread0.cxx:Use CYGNUM_HAL_STACK_SIZE_TYPICAL instead of "4096" and includehal_arch.h where necessary to get it.1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>* include/thread.inl (attach_stack):Fix typo in assert; missing comma.1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/debug/dbg-thread-syscall.h: Update copyright1999-03-22 Hugo Tyson <hmt@cygnus.co.uk>* include/thread.inl:* src/common/thread.cxx:* tests/kthread1.c:* tests/testaux.hxx:* tests/thread1.cxx:* tests/thread_gdb.c:* tests/tm_basic.cxx:Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead ofCYGNUM_HAL_MINIMUM_STACK_SIZE.Except for stack checking and the idle thread stack which usesCYGNUM_HAL_STACK_SIZE_MINIMUM.1999-03-19 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache1.c:* tests/kcache2.c:Made all CYG_INTERRUPT_STATE variables register variables. Thevalue of this variable has to survive cache invalidation and doesnot in some testing permutations that are unoptimized.Fixes PR 19165.* include/kapi.h: Type of cyg_tick_count_t changed to cyg_uint64.Response to PR 19320.1999-03-19 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Much better analysis of clock interrupt times.Print average deviation instead of variance. Also print "confidence"numbers which are a measure of "how likely" a particular number wouldbe relative to the mean and min of the sample set.1999-03-17 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Improve messages and layout.Better message for 'hardware clock tick' value.* src/common/clock.cxx: Be more careful about clock latency deltavalues that are used/kept - some hardware can yield incorrect values.* tests/testaux.hxx: Use HAL recommended stack size for default.1999-03-16 Nick Garnett <nickg@cygnus.co.uk>* src/common/thread.cxx:Removed MIPS specific definition of idle_thread_stack[]. This isso it gets the benefit of the redefinition ofCYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE. This definition has alsobeen made static, since the MIPS compiler would otherwise put itin the .data section.* include/intr.hxx (class Cyg_Interrupt):Changed implementation of Cyg_Interrupt::interrupts_enabled() totest the value of disable_counter, rather than the hardware.1999-03-15 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache1.c:* tests/kcache2.c:Added interrupt disables around cache operations. If these taketoo long, an inopportune interrupt can disrupt the cache contents,or result in the interrupt seeing an inconsistent world.1999-03-15 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Improved and cleaned up messages overall.1999-03-15 Jesper Skov <jskov@cygnus.co.uk>PR 19504* tests/tm_basic.cxx: Kill created threads after mutex, mbox andsemaphore tests.1999-03-12 Hugo Tyson <hmt@cygnus.co.uk>* src/debug/dbg-thread-demux.c:Only try handling the SPARClite-SLEB vector correctly ifCYG_HAL_USE_ROM_MONITOR_CYGMON ie. we are talking with CygMon.Otherwise the code is wrong, but also not used. No matter.1999-03-12 Hugo Tyson <hmt@cygnus.co.uk>* tests/kthread1.c:* tests/thread1.cxx:* tests/thread_gdb.c:Deal with CYGNUM_HAL_MINIMUM_STACK_SIZE requirement.1999-03-12 Gary Thomas <gthomas@cygnus.co.uk>* include/thread.inl (attach_stack): Add check/assert for minimumstack size (HAL defined)1999-03-11 Hugo Tyson <hmt@cygnus.co.uk>* src/debug/dbg-thread-demux.c (patch_dbg_syscalls):Use the correct vector table slot for SPARClite-SLEB; it's not 15on here, it's BSP_VEC_MT_DEBUG from the hal's hal_cygm.h1999-03-11 Nick Garnett <nickg@cygnus.co.uk>* tests/testaux.hxx:Move definition of inline placement operator new outside of ifdeffor NTHREADS so that it can be used by other code.* tests/intr0.cxx:* tests/thread1.cxx:Make use of placement operator new rather than dynamic one inintr0. Removed duplicate definition from thread1.1999-03-11 Jesper Skov <jskov@cygnus.co.uk>PR 19472* tests/kill.cxx: Increased delays for the synthetic target.1999-03-11 Jesper Skov <jskov@cygnus.co.uk>PR 19468* tests/intr0.cxx (intr0_main):* tests/kintr0.c (kintr0_main):Only attach interrupt handlers to vectors not in use.1999-03-10 Jesper Skov <jskov@cygnus.co.uk>PR 19368* src/sched/sched.cxx (start): Change the dependency forreferencing the RTC to make its inclusion independent of schedulerchoice.1999-03-10 Jesper Skov <jskov@cygnus.co.uk>PR 17357* src/intr/intr.cxx (attach): Assert that interrupt vector attachwill succeed.1999-03-10 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:Changed names used to control clock frequency on TX39 target.1999-03-08 Gary Thomas <gthomas@cygnus.co.uk>* src/sync/mutex.cxx: Allow 'Cyg_Condition_Variable::wait()'to be entered with the scheduler locked (and thsu exit inthe same state). This will allow for fully thread-safe useof 'Cyg_Condition_Variable::wait()'.1999-02-26 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/except1.cxx (except0_main):* tests/kexcept1.c (except0_main):Move CYG_TEST_GDBCMD back to being before CYG_TEST_INIT1999-02-26 Jesper Skov <jskov@cygnus.co.uk>PR 19283* src/common/kapi.cxx: Changed cyg_exception_call_handlerdefinition to be consistent with declaration.* include/kapi.h: Change cyg_code_t to signed type.* tests/except1.cxx (except0_main):* tests/kexcept1.c (except0_main):Init diag before making first output.1999-02-26 Jesper Skov <jskov@cygnus.co.uk>PR 19284* tests/mutex2.cxx (mutex2_main): Set priorities in a differentorder.1999-02-25 Nick Garnett <nickg@cygnus.co.uk>* include/sched.hxx (class Cyg_Scheduler_Base):Added CYGBLD_ATTRIB_ASM_ALIAS(cyg_scheduler_sched_lock) todeclaration of sched_lock member. This makes it have the givenname in the object and assembler files. This in turn eliminatesthe need to have a C++ mangled name in the HAL.* src/intr/intr.cxx:Cyg_Interrupt::detach() was not translating the vector to a tableindex correctly in the chained case. Fixed.1999-02-24 Nick Garnett <nickg@cygnus.co.uk>* include/intr.hxx:* src/intr/intr.cxx:Added an interrupt disable counter toCyg_Interrupt::disable_interrupts() andCyg_Interrupt::enable_interrupts().1999-02-23 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:Added support for 66MHz part.* include/instrmnt.h:Added CYG_INSTRUMENT_EVENT_MUTEX_RELEASE andCYG_INSTRUMENT_EVENT_MUTEX_RELEASED. This should have been part ofthe 1999-02-22 checkin.1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/clock0.cxx, tests/clock1.cxx, tests/except1.cxx,tests/kcache1.c, tests/kcache2.c, tests/kclock0.c, tests/kclock1.c,tests/kexcept1.c, tests/kflag0.c, tests/kflag1.c, tests/kill.cxx,tests/kintr0.c, tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c,tests/kmutex0.c, tests/kmutex1.c, tests/ksched1.c, tests/ksem0.c,tests/ksem1.c, tests/kthread0.c, tests/kthread1.c, tests/thread1.cxx:Use CYG_TEST_NA() rather than CYG_TEST_PASS_FINISH() for tests thatare not applicable for this configuration1999-02-22 Nick Garnett <nickg@cygnus.co.uk>* include/kapi.h:* include/mutex.hxx:* src/sync/mutex.cxx:* src/common/kapi.cxx:* tests/mutex2.cxx:* tests/PKGconf.mak:Added Kernel API support for thread release, which allows a threadto be broken out of any wait. Also added support for releasing allthreads waiting to lock a mutex, both at C++ and Kernel APIlevels. Added a test program, mutex2, to test this fuctionalityout.1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/except.hxx:* include/kapidata.hRename CYG_EXCEPTION_COUNT -> CYGNUM_HAL_EXCEPTION_COUNT in linewith HAL changesRename deliver_exception() -> cyg_hal_deliver_exception()QA improvements* src/common/clock.cxx:Rename CYG_VECTOR_RTC -> CYGNUM_HAL_INTERRUPT_RTC in line withHAL changes* src/common/except.cxx:Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in linewith HAL changesAllow for CYGNUM_HAL_EXCEPTION_MIN != 0Rename deliver_exception() -> cyg_hal_deliver_exception()Add more tracing, and fix some existingQA improvements* src/intr/intr.cxx:Rename CYG_ISR_* -> CYGNUM_HAL_ISR_* in line with HAL changesAdd more tracing, and fix some existingQA improvements* src/sched/bitmap.cxx:* src/sched/mlqueue.cxx:* src/sync/mutex.cxx:Add more tracing and fix some existingQA improvements* tests/except1.cxx:* tests/kexcept1.cRename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in linewith HAL changesQA improvementsUse new CYG_TEST_GDBCMD to tell GDB not to stopRemove special simulator case as it should now work* tests/intr0.cxx:* tests/kintr0.c:Rename CYG_ISR/VSR_* -> CYGNUM_HAL_ISR/VSR_* in linewith HAL changesQA improvements1999-02-16 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/kexcept1.c (except0_main): Tell GDB to not stop onSIGBUS or SIGSEGV since we know we're going to cause an exception1999-02-12 Hugo Tyson <hmt@cygnus.co.uk>* src/common/thread.cxx (idle_thread_stack):Override CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE ifCYGNUM_HAL_MINIMUM_STACK_SIZE demands it.* include/pkgconf/kernel.h (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE):Document that this option can be overridden by HALs demands.1999-02-11 Jesper Skov <jskov@cygnus.co.uk>* src/debug/dbg-thread-syscall.h:* src/debug/dbg-thread-demux.c:Added handling of dbg_scheduler_func calls.1999-02-11 Nick Garnett <nickg@cygnus.co.uk>* include/kapi.h:* src/common/kapi.cxx:Added API support for per-thread data.* include/kapi.h:* src/common/kapi.cxx:* tests/ksem1.c:* tests/tm_basic.cxx:Changed arguments to Kernel C API semaphore functions to takecyg_count32 rather than cyg_ucount32. This makes them consistentwith the underlying implementation and allows for negative countsin the future. Changed some tests to match.Fixes PR 17877.1999-02-08 Jesper Skov <jskov@cygnus.co.uk>* tests/kexcept1.c (entry0):* tests/except1.cxx (entry0):Don't call cause_exception on SIMs.1999-02-05 Jesper Skov <jskov@cygnus.co.uk>* src/common/clock.cxx (isr): Ignore a latency of 0 when findingmin_clock_latency.1999-02-04 Jesper Skov <jskov@cygnus.co.uk>PR 19075* include/instrmnt.h: Slightly overdid the use of CYG_UNUSED_PARAMmacros.1999-02-04 Jesper Skov <jskov@cygnus.co.uk>* src/intr/intr.cxx:Make instrumentation macros always use the parameters to avoidcompiler warnings.1999-02-03 Jesper Skov <jskov@cygnus.co.uk>PR 18075* tests/memfix1.cxx:* tests/kmemfix1.c:Make timing less sensitive.1999-02-02 Jesper Skov <jskov@cygnus.co.uk>* tests/bin_sem2.cxx: Fixed compiler warning.1999-02-02 Jesper Skov <jskov@cygnus.co.uk>PR 18971* tests/bin_sem2.cxx (bin_sem2_main): Reduce run time in SIM.1999-02-01 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache2.c: Added calls to HAL_DCACHE_SYNC() before allrelevant calls to HAL_DCACHE_DISABLE(). This should have been doneon 1999-01-25 where is was only done to one instance.1999-02-01 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Adjust stack sizes for platforms withlimited memory.1999-01-28 Nick Garnett <nickg@cygnus.co.uk>* src/intr/intr.cxx: When using chained interrupts,interrupt_end() is passed NULL as the intr argument. Ifinstrumentation is also enabled, the CYG_INSTRUMENT_INTR() callswill try to indirect through zero. Added ifdefs to avoidthis. Also test intr for NULL before trying to post the DSR.Fixes PR 18771.1999-01-28 Jesper Skov <jskov@cygnus.co.uk>* tests/tm_basic.cxx: Fixed strings.1999-01-26 Hugo Tyson <hmt@cygnus.co.uk>* tests/kcache1.c (time0): Waste much less time if running in asimulator. Do only 40 loops instead of 4000.In consequence the nasty meddling with MAX_STRIDE depending onHAL_xxx_SIM package definitions can go.1999-01-26 Jesper Skov <jskov@cygnus.co.uk>PR 18902* src/debug/dbg-thread-demux.c: Oops. Undid my change of 1999-01-21.1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/common/except.cxx: Make global exception initialisation objectbe constructed at INTERRUPT priority1999-01-25 Jesper Skov <jskov@cygnus.co.uk>PR 18002* tests/thread_gdb.c: Ensure that there are enough priorities.1999-01-25 Jesper Skov <jskov@cygnus.co.uk>PR 18875* tests/tm_basic.cxx: Ensure that there are enough priorities.1999-01-25 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache2.c (test_dstore): Added call to HAL_DCACHE_SYNC()before disabling cache. On some architectures disabling the cachewould cause the following call to do nothing.Fixes PR 18849.1999-01-22 Jesper Skov <jskov@cygnus.co.uk>* tests/tm_basic.cxx: Don't run on Linux target.1999-01-21 Hugo Tyson <hmt@cygnus.co.uk>These changes are to get tests working with the SPARClite port; itdoesn't do 8-byte register access unless it's properly aligned.* tests/philo.cxx (cyg_start):Use tests/testaux.hxx to get new threads, to get the alignmentrequired; see below.* tests/thread2.cxx (thread2_main):Use tests/testaux.hxx to get new threads, to get the alignmentrequired; see below.* tests/tm_basic.cxx:Larger stack for greedy processor.* tests/testaux.hxx:thread_obj[][] and stack[][] are now 8-byte aligned like certainprocessors require; Cyg_Thread contains cyg_tick_count which is64-bit so any "standalone" C++ object would be so aligned. Thesedynamically allocated ones should be too.1999-01-21 Jesper Skov <jskov@cygnus.co.uk>PR 18747* tests/flag1.cxx: Increase delays/timeouts to prevent failurewhen configured with full trace logging.1999-01-21 Jesper Skov <jskov@cygnus.co.uk>* src/debug/dbg-thread-demux.c: Removed PR 17327 workarounds.1999-01-19 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/sched/sched.cxx (start):CYG_REFERENCE_SYMBOL -> CYG_REFERENCE_OBJECT in line withcyg_type.h change1999-01-19 Jesper Skov <jskov@cygnus.co.uk>PR 18824* src/sync/mutex.cxx:* include/pkgconf/kernel.h: LetCYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT requireCYGFUN_KERNEL_THREADS_TIMER.1999-01-18 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-thread-demux.c (patch_dbg_syscalls): Added testfor CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT in patch_dbg_syscalls().1999-01-15 Gary Thomas <gthomas@cygnus.co.uk>* include/mvarimpl.inl (free): Memory list sort was incorrect.* tests/PKGconf.mak (TESTS): Don't build cache tests onsome platforms.1999-01-15 Jesper Skov <jskov@cygnus.co.uk>PR 18768* tests/kmbox1.c:* tests/mbox1.cxx:Increase delays used so the overhead of GDB packets doesn't makethe tests fail.1999-01-14 Jesper Skov <jskov@cygnus.co.uk>* src/sched/sched.cxx (start): Use new CYG_REFERENCE_SYMBOL macro.1999-01-14 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg_gdb.cxx: Extended return types to include success,fail and caller-do-it as required by msnyder.* src/debug/dbg-thread-demux.c: Moved prototype of dbg_scheduler()to dbg-threads-api.h.1999-01-13 Jesper Skov <jskov@cygnus.co.uk>* src/sched/sched.cxx (start): Better implementation of thereal_time_clock reference.1999-01-13 Jesper Skov <jskov@cygnus.co.uk>* include/pkgconf/kernel.h: Disable CYGSEM_KERNEL_SCHED_TIMESLICEin CYG_HAL_ROM_MONITOR magic.1999-01-07 Jesper Skov <jskov@cygnus.co.uk>* include/pkgconf/kernel.h: Added RTC values for i386/Linux.1999-01-12 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-thread-demux.c:Changed API of patch_dbg_syscalls() to take a pointer to the startof the vector and insert several vectors.* src/debug/dbg_gdb.cxx:Added dbg_scheduler() function to allow debuggers to lock andunlock the scheduler. This helps when stepping multithreaded code.* include/sched.hxx:* include/sched.inl:Added Cyg_Scheduler::unlock_simple() to decrement the lock withoutrescheduling.1999-01-05 Jesper Skov <jskov@cygnus.co.uk>PR 18574* src/sched/sched.cxx (start): Reference the real time clock toensure it is included when linking.1999-01-04 Jesper Skov <jskov@cygnus.co.uk>* tests/thread1.cxx:* tests/mbox1.cxx:* tests/kmbox1.c:* tests/kill.cxx:* tests/kflag1.c:* tests/kclock1.c:* tests/flag1.cxx:* src/common/thread.cxx:CYGFUN_KERNEL_THREADS_TIMER requires CYGVAR_KERNEL_COUNTERS_CLOCKso don't check for the latter explicitly.1999-01-04 Jesper Skov <jskov@cygnus.co.uk>PR 18573* tests/thread1.cxx:* tests/mbox1.cxx:* tests/kmbox1.c:* tests/kflag1.c:* tests/flag1.cxx:Don't run tests that rely on delay() when delay() is only definedas an empty function.1998-12-24 Bart Veer <bartv@cygnus.co.uk>* src/sync/mutex.cxx:* src/sync/mbox.cxx:* src/sync/flag.cxx:* src/sched/sched.cxx:* src/mem/memvar.cxx:* src/mem/memfixed.cxx:* src/common/thread.cxx:* src/common/clock.cxx:* include/mempoolt.inl:* include/mempolt2.inl:* include/mboxt2.inl:* include/mboxt.inl:check_this() member functions should now be const1998-12-22 Nick Garnett <nickg@cygnus.co.uk>* include/instrmnt.h: Fixed casts for arguments tocyg_instrument() to work in C. Fixes PR 18413.1998-12-21 Gary Thomas <gthomas@cygnus.co.uk>* include/pkgconf/kernel.h: Change AEB-1 clock scale.1998-12-17 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Calculate system clock resolutionbased on 'CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION'1998-12-16 Gary Thomas <gthomas@cygnus.co.uk>* include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):Add support for new ARM AEB-1.1998-12-16 Hugo Tyson <hmt@masala.cygnus.co.uk>* tests/intr0.cxx (intr0_main):* tests/kintr0.c (kintr0_main):Conditionally use a different interrupt vector number on tx39 whenin the simulator (according to cyg_test_is_simulator) so thatthese tests execute correctly in simulators.1998-12-16 Jesper Skov <jskov@cygnus.co.uk>PR 18546* tests/kill.cxx (cyg_start): Do NOP test if required kernelfunctionality is disabled.1998-12-15 Jesper Skov <jskov@cygnus.co.uk>* include/pkgconf/kernel.h: ChangedCYGDBG_KERNEL_DEBUG_GDB_INCLUDE_STUBS toCYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS.1998-12-14 Jesper Skov <jskov@cygnus.co.uk>* tests/tm_basic.cxx: Made use of cyg_mbox_get() conditional onCYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT.1998-12-14 Jesper Skov <jskov@cygnus.co.uk>* tests/tm_basic.cxx: Added requirement for kernel RTC.1998-12-11 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache2.c: Added tests of three more macros.1998-12-10 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache2.c: Added tests of three more macros.1998-12-10 Jesper Skov <jskov@cygnus.co.uk>* tests/PKGconf.mak:* tests/kcache2.c:Added new cache test.1998-12-04 Nick Garnett <nickg@cygnus.co.uk>* include/intr.hxx:* src/intr/intr.cxx (cyg_interrupt_post_dsr): Added this functionto allow functions in the HAL, which are always only in C, to callCyg_Interrupt::post_dsr(). Have also returned post_dsr() toprivate parts of Cyg_Interrupt.1998-12-04 Jesper Skov <jskov@cygnus.co.uk>* include/intr.hxx (class Cyg_Interrupt): Made post_dsr public soit can be called from HAL interrupt arbiters.1998-12-04 Jesper Skov <jskov@cygnus.co.uk>* include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):Set to the correct value for a 33.333MHz clock.1998-12-02 Jesper Skov <jskov@cygnus.co.uk>* src/intr/intr.cxx (interrupt_end, chain_isr): Got rid of magicinterrupt constants.1998-11-30 Gary Thomas <gthomas@cygnus.co.uk>* include/pkgconf/kernel.h: Fix spelling of CYGVAR_KERNEL_COUNTERS_CLOCK1998-11-25 Jesper Skov <jskov@cygnus.co.uk>* src/common/thread.cxx (check_this): Check that stack_ptr iswithin its limits.Wed Nov 25 18:45:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/sched.inl (unlock) (lock):* src/common/thread.cxx (thread_entry):* src/sched/sched.cxx (unlock_inner):Ensure all accesses to sched_lock cannot be reordered by theoptimiser1998-11-24 Jesper Skov <jskov@cygnus.co.uk>* src/common/thread.cxx (thread_entry): Prevent scheduler lockfrom being released too early.1998-11-23 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:* src/common/clock.cxx:Added CYGIMP_KERNEL_COUNTERS_SORT_LIST option to determine whetherthe alarm lists in counters are sorted or not.* tests/tm_basic.cxx: Added a test for many alarms firingseparately.1998-11-23 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache1.c: Only run with stride 1 on SIMs.1998-11-19 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Insure appropriate kernel configuration forbuilding tool. Needs at least kernel C API and multi-level scheduler.1998-11-18 Gary Thomas <gthomas@cygnus.co.uk>* tests/tm_basic.cxx: Add interrupt latency support. Printresults to 10ns accuracy.* tests/PKGconf.mak: Add 'tm_basic' (the kernel timing testprogram) to list of built tests.* src/intr/intr.cxx: Change usage of HAL_INTERRUPT_MASK to havetrailing ';' to match similar macros.* src/common/clock.cxx:* include/pkgconf/kernel.h: Add CDL optionCYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY used to define if interruptlatency measurements should be built into kernel.1998-11-17 Jesper Skov <jskov@cygnus.co.uk>* include/pkgconf/kernel.h: Renamed CYG_HAL_POWERPC_MP860 toCYG_HAL_POWERPC_MPC860.1998-10-28 David Moore <dsm@keema.cygnus.co.uk>* include/pkgconf/kernel.h(CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION): Changed default value forMIPS simulator to be 0.01 secs instead of 0.001 seconds.1998-10-28 Jesper Skov <jskov@cygnus.co.uk>* tests/kcache1.c (HAL_DCACHE_PURGE_ALL): Fixed compiler problemon PowerPC.1998-10-27 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache1.c:Added calls to HAL_DCACHE_PURGE_ALL() before each test. Addedlocal version of HAL_DCACHE_PURGE_ALL() if this is not supplied bythe HAL.1998-10-27 Hugo Tyson <hmt@cygnus.co.uk>* src/common/thread.cxx (wake):Remove the thread unconditionally from any queue it was on; for wehave just become not-asleep, so it must be OK. (Bug was: itdidn't happen in transit WAIT-SUSPEND -> SUSPEND, so synch objectstill believed the task was waiting on it). PR#179981998-10-26 Jesper Skov <jskov@cygnus.co.uk>PR 17527, PR 17837* tests/kcache1.c:* tests/kclock0.c:* tests/kclock1.c:* tests/clock1.cxx:* tests/clock0.cxx:Do N/A PASS when kernel real-time clock is configured out.1998-10-26 Jesper Skov <jskov@lassi.cygnus.co.uk>PR 17866* include/pkgconf/kernel.h(CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE): Doubled to prevent stackoverruns on PowerPC.1998-10-26 Jesper Skov <jskov@cygnus.co.uk>PR 17987* src/debug/dbg_gdb.cxx (dbg_threadinfo): Removed "more: <none>"output.1998-10-23 John Dallaway <jld@cygnus.co.uk>* tests/tm_basic.cxx: Added basic timing test.1998-10-23 Nick Garnett <nickg@cygnus.co.uk>* include/instrmnt.h:Improved documentation of cyg_instrument_enable() andcyg_instrument_disable().* src/instrmnt/meminst.cxx:Added code to enable and disable whole groups of events.1998-10-23 Jesper Skov <jskov@lassi.cygnus.co.uk>* include/generic-stub.h: Deleted. It was moved to hal common sometime ago.Fri Oct 23 04:45:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/kcache1.c:Remove forced warning of a warning which no longer applies1998-10-22 Nick Garnett <nickg@cygnus.co.uk>* src/common/clock.cxx:Stop searching the alarm list when the current alarm is in thefuture in Cyg_Counter::tick(). Changed sense of comparison inCyg_Counter::add_alarm() to sort alarms in ascending order.Thu Oct 22 18:21:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/pkgconf/kernel.h:Fix commenting within CDL "comments"Thu Oct 22 17:25:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/pkgconf/kernel.h:Remove CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER configurationoption. For PR 178381998-10-21 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):Changed value for JMR3904 board to 15360 which is correct for a24.576MHz board rather than 25MHz as before.* src/common/thread.cxx:Exchanged stack_base and stack_size in idle thread constructor.1998-10-20 Hugo Tyson <hmt@cygnus.co.uk>* tests/kflag1.c (kflag1_main):Only mess with f2 if it exists, ie. CYGFUN_KERNEL_THREADS_TIMER.1998-10-19 Mark Galassi <rosalia@cygnus.com>* include/pkgconf/kernel.h: updated the doc URL1998-10-19 Hugo Tyson <hmt@cygnus.co.uk>* include/kapi.h:* include/kapidata.h (struct cyg_flag_t):* src/common/kapi.cxx:Add flags (Cyg_Flag, kernel.../flag.hxx) to the C API.* tests/PKGconf.mak (TESTS):Add new tests for flags via the C API.* tests/kflag0.c:* tests/kflag1.c:New tests (well, versions of the plain C++ versions flag0.cxx andflag1.cxx) for flags via the kernel C API.1998-10-19 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:Fixed description of clock resolution.1998-10-17 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:Added a way of configuring the clock interrupt frequency.Thu Oct 15 21:31:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/pkgconf/kernel.h:Allow kernel to be disabled now* src/common/delete.cxx, src/common/memcpy.c, src/common/memset.c:Move these files to the infra package* src/PKGconf.mak:Don't build the above files any moreAbove changes are required for PR 172291998-10-15 Hugo Tyson <hmt@masala.cygnus.co.uk>* include/mempoolt.inl (Cyg_Mempoolt):* include/mempolt2.inl (Cyg_Mempolt2):Flesh out the destructors to awaken any waiting threadswith reason Cyg_Thread::DESTRUCT to support uITRONcreate and delete of memory pool objects.Note that only template mempolt2 is actually used.Wed Oct 14 21:45:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/thread_gdb.c:Remove unnecessary inclusion of <cyg/kernel/diag.h>* tests/kcache1.c:Add a warning to expect the "function declaration isn't aprototype" warning from infra/diag.h1998-10-14 Hugo Tyson <hmt@cygnus.co.uk>* src/common/thread.cxx (kill,reinitialize):Do not refer to member timer unless CYGFUN_KERNEL_THREADS_TIMER isdefined.1998-10-14 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-thread-demux.c:Now get dbg-threads-api.h from HAL.* src/debug/dbg_gdb.cxx:Tidied up info sent back by dbg_threadinfo().* src/common/thread.cxx:Changed constructor of idle thread to include initial priority anda thread name.* include/pkgconf/kernel.h:Moved GDB stub configuration code out to hal.h.* include/ktypes.h:Moved definition of CYG_LABEL_NAME() out to cyg_type.h.* src/debug/PKGconf.mak:* src/debug/dbg-threads-api.h:* src/debug/generic-stub.c:* src/debug/stubrom.c:* src/debug/thread-packets.c:* src/debug/thread-pkts.h:These files have all be relocated to hal/common.1998-10-14 Hugo Tyson <hmt@cygnus.co.uk>* include/thread.hxx (class Cyg_Thread):Add public members get_stack_base(), get_stack_size() andget_stack_limit();Add private members add_to_list() and remove_from_list() tocentralize handling of the CYGVAR_KERNEL_THREADS_LIST as it isknown.* include/thread.inl (class Cyg_Thread):Add public members get_stack_base(), get_stack_size() andget_stack_limit();* src/common/thread.cxx:Add private members add_to_list() and remove_from_list() tocentralize handling of the CYGVAR_KERNEL_THREADS_LIST as it isknown.Tidy up the two constructors to use them.Add CYG_REPORT_RETURN()/_RETVAL(...) logging throughout.Tidy up reinitialize() to use the 6-argument constructor,thus preserving the thread name.Fix some bugs in the CYGVAR_KERNEL_THREADS_LIST stuff wherere-adding a thread caused loops in the list, and the like.Fix bug in set_priority() when the thread is asleep but NOT on anyqueue, such as a plain counted_sleep().1998-10-14 Jesper Skov <jskov@cygnus.co.uk>* src/debug/thread-packets.c:* src/debug/dbg_gdb.cxx:Don't include hal_stub.h unless it's really, really, reallyneeded.1998-10-14 Jesper Skov <jskov@cygnus.co.uk>* src/debug/dbg_gdb.cxx: Don't include hal_stub.h unless it's reallyneeded.1998-10-13 Jesper Skov <jskov@cygnus.co.uk>* src/debug/generic-stub.c: Added thread support. Renaming a fewfunctions/variables to match the most recent libstubgeneric-stub.c.Use thread_get_register & thread_put_register when handling GDBregister packets.* src/debug/dbg_gdb.cxx (dbg_getthreadreg, dbg_getthreadreg):DTRT for current thread when CygMon is not configured.* src/debug/dbg_gdb.cxx (dbg_threadlist, dbg_getthreadreg,dbg_getthreadreg): return true/false rather than 0, 1, -1.* src/debug/dbg_gdb.cxx:* src/debug/dbg-threads-api.h:Added dbg_currthread_id.1998-10-08 Jesper Skov <jskov@lassi.cygnus.co.uk>* src/debug/generic-stub.c:* src/debug/generic-stub.h:Added control of interrupts.Removed unused functions set_debug_trap and initialize_stub.Tue Oct 13 17:36:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/test/tsttracc.c (cyg_start):Replace CYG_REPORT_FUNCARGSVOID with the correctCYG_REPORT_FUNCARGVOID1998-10-09 Hugo Tyson <hmt@cygnus.co.uk>* src/common/thread.cxx:clear_timer() is a static which always affects the executingthread and none other. Removed the "foo->" from various"foo->clear_timer()" calls to make this less confusing.Ditto set_timer().Changed a "clear_timer()" call to "timer.disable()" and added oneso that they affect _this_ thread, the thread which is beingkill()ed or reinitialize()d rather than the killer or theresuscitator. Otherwise the alarm list can still get a loop init when a thread's killed when waiting with a timeout andrestarted soon enough.1998-10-08 Hugo Tyson <hmt@cygnus.co.uk>In general, these changes are to support create/delete of uITRONobjects; this requires that an object can be destroyed whilstthere are threads waiting on it, and that they shall be awokenwith a specific return code.* include/thread.hxx:Cyg_Thread::DESTRUCT added to wake reasons, to deal with an objectbeing destroyed whilst a thread is waiting on it; it's handled ina manner very similar to release() and BREAK wake_reason.* src/common/thread.cxx:thread_entry(): threads now exit() if the entry_point returns.Cyg_Thread() constructors now initialize wake_reason to NONE.reinitialize() clears any pending timeout before callingconstructors.counted_sleep( [timeout] ) now both deal with the wake reason ingeneral, and with DESTRUCT in particular.exit() now clears any pending timeout.kill() now force_resumes the thread first.kill() now does not explicitly remove the thread from any queueit's on; wake() does that for you anyway.delay() clears the timer just in case and handles DESTRUCTproperly.DESTRUCT added to various switches for completeness.The fixes to counted_sleep()[x2] and kill() are a bugfix forPR#17688.* include/flag.hxx:* src/sync/flag.cxx:Add an argument, defaulting to 0, to the constructor which setsthe initial flag value.Add handing of DESTRUCT wake reason.Add a destructor which wakes all threads with DESTRUCTwake_reason.* include/mboxt2.inl:Add handing of DESTRUCT wake reason.Add a destructor which wakes all threads with DESTRUCTwake_reason.* src/sync/cnt_sem2.cxx:Add handing of DESTRUCT wake reason.Add a destructor which wakes all threads with DESTRUCTwake_reason.Correct typo in logic for queueing a waiting thread inCyg_Counting_Semaphore2::wait( cyg_tick_count abs_timeout ).This is a bugfix for PR#17687.* include/mboxt.inl:* include/mempoolt.inl:* include/mempolt2.inl:* src/sync/bin_sem.cxx:* src/sync/cnt_sem.cxx:* src/sync/mutex.cxx:All these gain handling of the DESTRUCT wake_reason, that's all.1998-10-08 Gary Thomas <gthomas@penang.cygnus.co.uk>* include/pkgconf/kernel.h:Add support for new architecture1998-10-07 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache1.c (entry0):Replaced CYG_TEST_FINISH() with CYG_TEST_PASS_FINISH().* src/debug/dbg-thread-demux.c:Added dbg_thread_syscall_rmt_1() to save/set and restore the $gpregister values when being called from Cygmon.Sun Sep 27 20:12:15 1998 David Moore <dsm@keema.cygnus.co.uk>* include/mlqueue.hxx:* include/bitmap.hxx:Disallow more than 32 priority levels* include/pkgconf/kernel.h:Changed range of allowed levels from 64 to 321998-09-27 Nick Garnett <nickg@cygnus.co.uk>* tests/memfix2.cxx:Changed message to say "Fixed memory pool 2 OK" rather than"Variable memory pool 2 OK".1998-09-26 Bart Veer <bartv@cygnus.co.uk>* include/intr.hxx (DSRs_pending):PR 17500: if DSR support is disabled completely then this inlinefunction should not be defined at all.1998-09-26 Nick Garnett <nickg@cygnus.co.uk>* tests/kcache1.c:Added this test program for cache API. Includes some performancetesting.1998-09-25 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg_gdb.cxx:Removed some debugging code.* tests/thread_gdb.c:Added this test program to allow for GDB thread support testing.1998-09-25 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:The GDB thread support requires the kernel to keep track of allthreads on a linked list. This is a separate option. An additionalrequires statement enforces the dependency.1998-09-25 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-thread-demux.c:Added include of <pkgconf/kernel.h>, removed debug code.1998-09-24 Bart Veer <bartv@cygnus.co.uk>* src/debug/dbg-thread-demux.c (dbg_thread_syscall_rmt):PR 17327. If kernel gdb thread support is disabled, do not compilein the relevant cases in the rmt switch statement. This is apartial solution to the general problem of how the HAL, kernel,cygmon, and gdb interact.1998-09-24 Nick Garnett <nickg@cygnus.co.uk>* src/common/clock.cxx (Cyg_RealTimeClock):Changed clock priority from zero to one, since it is now used toset the hardware interrupt priority.* src/intr/intr.cxx:Cyg_Interrupt::chain_isr() now only calls interrupt objects thathave the matching vector number.Call HAL_INTERRUPT_SET_LEVEL() when attaching interrupts using thepriority passed in the constructor.Added call to HAL_TRANSLATE_VECTOR() for attaching chainedinterrupts.* include/instrmnt.h (CYG_INSTRUMENT_EVENT_INTR_CHAIN_ISR):Added this event.Thu Sep 24 11:07:12 1998 David Moore <dsm@keema.cygnus.co.uk>* tests/except1.cxx:* tests/kexcept1.cxx:Made exception tests detect when CYGPKG_KERNEL_EXCEPTIONSis disabled.1998-09-22 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:Changed the kernel package from type bool to type dummy, sinceit is not yet possible to disable this package.1998-09-20 Mark Galassi <rosalia@cygnus.com>* include/pkgconf/kernel.h: updated CDL doc strings.fixed some typos in my doc strings.1998-09-18 Nick Garnett <nickg@cygnus.co.uk>* src/common/thread.cxx:* include/thread.inl:Modified threads list from a LIFO stack to a ring so that we canadd new ones to the end and present the threads to GDB in an orderthat more closely matches how it assigns thread ids.Wed Sep 16 19:11:22 1998 Hugo Tyson <hmt@cygnus.co.uk>* include/thread.inl (get_unique_id):Move this declaration to before its first use, so that the userknows it is inline at the point of use. Avoids a warning.Wed Sep 16 08:49:48 1998 Jesper Skov <jskov@cygnus.co.uk>PR 17269* src/common/except.cxx (Cyg_Exception_Control): ReplacedCYGNUM_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.* include/kapidata.h (struct cyg_exception_conrol): ReplacedCYG_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.* src/intr/intr.cxx:* include/intr.hxx (class Cyg_Interrupt): Replaced CYG_ISR_MAX+1with CYG_ISR_COUNT.* include/except.hxx: Replaced CYGNUM_EXCEPTION_COUNT withCYG_EXCEPTION_COUNT.* tests/kintr0.c:* tests/intr0.cxx: Replaced CYG_ISR_MAX (bug!) withCYG_ISR_COUNT.Tue Sep 15 19:19:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/mboxt2.hxx:Add inclusion of thread.inl to silence warning* tests/kexcept1.c:Insert void as parameter list of __default_exception_vsr() tosilence warningTue Sep 15 19:16:52 1998 David Moore <dsm@keema.cygnus.co.uk>* src/sched/sched.cxx: Cleaned up comments.1998-09-15 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-thread-demux.c:Stubbed out led() function.* src/debug/dbg_gdb.cxx:Decide whether to byteswap thread id depending on reported byteorder of target.Many small changes to debug code.* include/thread.inl (init_context):Changed CYG_DEBUG to CYGPKG_INFRA_DEBUG.Tue Sep 15 09:35:14 1998 Jesper Skov <jskov@cygnus.co.uk>PR 17236* src/common/clock.cxx (add_alarm): A retriggering alarm calledwith a trigger time in the past or now will be assigned a newtrigger time. Don't find the counter list until the final triggertime is known.Also added a few #else error statements to catch a situation whereno CYGIMP_KERNEL_COUNTERS_x_LIST implementation config isselected.* tests/clock0.cxx: Added extra ASSERT to ensure alarms enabledwith a trigger time of now or in the past actually fire.* tests/kclock0.c: Same.1998-09-15 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:Cleaning up coonfiguration data (mostly improving thedescriptions).Mon Sep 14 11:08:59 1998 Jesper Skov <jskov@lassi.cygnus.co.uk>PR 17230* include/pkgconf/kernel.h: CYGIMP_KERNEL_INTERRUPTS_CHAINrequires CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN.1998-09-14 Mark Galassi <rosalia@cygnus.com>* include/pkgconf/kernel.h: started adding CDL doc fields.1998-09-12 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:Sort out exception handling options (PR 16953)Added missing descriptions (PR 17184)Fri Sep 11 19:18:28 1998 Hugo Tyson <hmt@masala.cygnus.co.uk>* include/clock.hxx (class Cyg_Alarm):* src/common/clock.cxx (Cyg_Alarm::add_alarm):PR#17182Move the code to synchronize a repeating alarm which had beenfiring in the dim and distant past with times in the future, whichhad been inline in Cyg_Alarm::enable(), into a function of itsown, Cyg_Alarm::synchronize(). Call it from Cyg_Alarm::enable()and also from add_alarm() when the immediate time to fire is nowor in the past; otherwise an initial time of, say, NOW-10 with aninterval of 5 would just get lost. Also corrected/commented thelogic there to allow an alarm's handler to cancel itself.Wed Sep 9 17:43:26 1998 Hugo Tyson <hmt@cygnus.co.uk>* src/common/delete.cxx:Control the provision of empty delete functions rather better, viaan explicit option from the libc package. Read the rather lengthycomment in delete.cxx for the explanation.Also note that the correct place for this functionality is in theinfrastructure, and the same should be done for the C++ newfunctions also.1998-09-09 Nick Garnett <nickg@cygnus.co.uk>* src/common/thread.cxx:combined separate next_unique_id variables in both constructors.This would have caused duplicate thread ids to be generated.* include/thread.inl:Added code to initialize Cyg_HardwareThread::saved_context.* src/debug/dbg-thread-demux.c:* src/debug/dbg_gdb.cxx:Many changes to get thread API working with Cygmon. Debug codecurrently left in place until complete testing is possible.Tue Sep 8 17:17:32 1998 Hugo Tyson <hmt@cygnus.co.uk>* include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):Set up a sensible default RTC for CYG_HAL_MN10300_SIM differentfrom that for the MN103002 or CYG_HAL_MN10300_STDEVAL1, so thatsim tests run in less than geological time. This is the same asthe default value of before.Fri Sep 4 18:25:02 1998 Hugo Tyson <hmt@cygnus.co.uk>* src/sched/mlqueue.cxx (timeslice):* src/sched/sched.cxx (unlock_inner):Condition out the tracing macros here by default, for tracingthese consumes the whole quantum.1998-09-04 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h:Commented out the ROM monitor-specific option settings for now.* tests/kclock1.c:* include/pkgconf/kernel.h:* include/kapidata.h (struct cyg_counter):Fixed typos in configuration option names.1998-09-03 David Moore <dsm@cygnus.co.uk>* include/pkgconf/kernel.h(CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE):Fixed typo in configuration option name.* src/intr/intr.cxx:Fixed typo in configuration option name.Fixed cast to incorrect type.1998-09-03 Nick Garnett <nickg@cygnus.co.uk>* src/PKGconf.mak (COMPILE):Added debug/dbg-thread-demux.c to COMPILE list.* src/debug/dbg_gdb.cxx (dbg_threadinfo):Added first cut at providing thread state string.* src/debug/dbg-thread-syscall.h:* src/debug/dbg-thread-demux.c:Added these two files to implement the interface between Cygmonand eCos.1998-09-03 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h (CYGSEM_KERNEL_MEMORY_COALESCE):* include/mvarimpl.inl (Cyg_Mempool_Variable_Implementation):Fixed typo in configuration option name.* include/pkgconf/kernel.h:Fixed type in configuration option name.Wed Sep 2 19:01:02 1998 Hugo Tyson <hmt@cygnus.co.uk>* include/mboxt.hxx:* include/mboxt.inl:* include/mboxt2.hxx:* include/mboxt2.inl:* include/mempolt2.hxx:* include/mempolt2.inl:* include/mempoolt.hxx:* include/mempoolt.inl:* include/sema2.hxx:* src/sync/cnt_sem2.cxx:* include/flag.hxx:* src/sync/flag.cxx:* include/kapi.h:* src/common/kapi.cxx:* tests/kmbox1.c:* tests/kmemfix1.c:* tests/kmemvar1.c:* tests/mbox1.cxx:* tests/memfix1.cxx:* tests/memvar1.cxx:Memory pool (both types) and message boxes (both types) and flagsand cnt_sem2-type semaphores now all have absolute timeoutsinstead of relative ones in the timely wait functions.uITRON has changed to add the current time itself.Kapi changes are mainly name changes to make it clear thattimeouts are now absolute.The tests (incl. kapi) add in the time themselves now.1998-09-01 Tim Goodwin <tgoodwin@cygnus.co.uk>* include/kapi.h:* src/common/kapi.cxx:* tests/kclock1.c:* tests/kexcept1.c:* tests/kmbox1.c:* tests/kmemfix1.c:* tests/kmemvar1.c:* tests/kmutex1.c:* tests/ksched1.c:* tests/ksem1.c:* tests/kthread0.c:* tests/kthread1.c:* src/test/kcache1.c:* src/test/kphilo.c:* tests/kphilo.c:* tests/lottery.c:Changes to cyg_thread_create() interface.Tue Sep 1 18:49:06 1998 Hugo Tyson <hmt@masala.cygnus.co.uk>* include/pkgconf/kernel.h:Moved and renamed CYG_DIAG_USE_DEVICE to infra and toCYGDBG_INFRA_DIAG_USE_DEVICE; kernel.h now includes infra.h aswell as hal.h to ensure all its clients get the info too.* include/intr.hxx (class Cyg_Interrupt):Add static member interrupts_enabled() to poll the current status;just to avoid calling the HAL directly, really.* include/diag.h:Now just includes cyg/infra/diag.h, so that kernel-specificfeatures can be added later - original diag.h has moved to infra,and is that includee.* src/PKGconf.mak:Trace folder and its contents elided, now in infra.* src/trace/diag.c:* src/trace/fancy.cxx:* src/trace/null.cxx:* src/trace/simple.cxx:* src/trace/tcdiag.cxx:Deleted; all moved to infra, actually.1998-09-01 Nick Garnett <nickg@cygnus.co.uk>* src/debug/dbg-threads-api.h:* src/debug/dbg_gdb.cxx:Converted threadref from long long to char[8] as defined by Cygmonguys.* src/common/thread.cxx:Added scheduler lock around manipulations of thread list.* include/except.hxx:Now use CYG_EXCEPTION_COUNT to size handler arrays.Mon Aug 31 17:53:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/memfixed.hxx, include/mempolt2.hxx, include/mempolt2.inl,include/mempoolt.hxx, include/mempoolt.inl, include/memvar.hxx,include/mvarimpl.hxx, include/mvarimpl.inl, src/mem/memfixed.cxx,src/mem/memvar.cxx:Add new get_allocation_size() method to return the size of apreviously allocated block - trivial for fixed block allocator, andrequiring a bit of poking around for the variable block allocator.This is required for the C library realloc() implementation. Strictlythis only uses the variable block allocator, but the API can only beenhanced by also updating the template. As a result, this also meantdoing it for the fixed block allocator.Mon Aug 31 09:51:37 1998 Jesper Skov <jskov@cygnus.co.uk>* src/debug/stubrom.c (cyg_start): Renamed from main().Mon Aug 31 09:00:01 1998 Jesper Skov <jskov@cygnus.co.uk>* src/common/thread.cxx: Fixed typo.1998-08-28 Bart Veer <bartv@cygnus.co.uk>* include/pkgconf/kernel.h, include/bitmap.hxx, include/clock.hxx,include/except.hxx, include/flag.hxx, include/instrmnt.h,include/intr.hxx, include/kapi.h, include/kapidata.h,include/mbox.hxx, include/mboxt.hxx, include/mboxt.inl,include/mboxt2.hxx, include/mboxt2.inl, include/memfixed.hxx,include/mempolt2.hxx, include/mempolt2.inl,include/mempoolt.hxx, include/mempoolt.inl, include/memvar.hxx,include/mlqueue.hxx, include/mutex.hxx, include/mvarimpl.inl,include/sched.hxx, include/sema.hxx, include/sema2.hxx,include/thread.hxx, include/thread.inl,include/pkgconf/kernel.h:src/common/clock.cxx, src/common/except.cxx,src/common/kapi.cxx, src/common/thread.cxx,src/debug/dbg_gdb.cxx, src/debug/generic-stub.c,src/instrmnt/meminst.cxx, src/instrmnt/nullinst.cxx,src/intr/intr.cxx, src/mem/memfixed.cxx, src/mem/memvar.cxx,src/sched/bitmap.cxx, src/sched/lottery.cxx,src/sched/mlqueue.cxx, src/sched/sched.cxx,src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, src/sync/flag.cxx,src/sync/mbox.cxx, src/sync/mutex.cxx, src/test/diag.cxx,src/test/kcache1.c, src/test/main.cxx, src/test/timer.cxx,src/test/tstmbox.cxx:tests/clock0.cxx, tests/clock1.cxx, tests/except1.cxx,tests/flag1.cxx, tests/intr0.cxx, tests/kclock0.c,tests/kclock1.c, tests/kexcept1.c, tests/kintr0.c,tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c,tests/kmutex0.c, tests/kmutex1.c, tests/ksched1.c,tests/ksem0.c, tests/ksem1.c, tests/kthread0.c,tests/kthread1.c, tests/lottery.c, tests/mbox1.cxx,tests/memfix1.cxx, tests/memvar1.cxx, tests/sync3.cxx,tests/thread2.cxx :Provide configuration data and rename configuration optionsFri Aug 28 15:27:31 1998 Hugo Tyson <hmt@cygnus.co.uk>* src/trace/fancy.cxx:* src/trace/simple.cxx:* src/trace/null.cxx:Condition on newly named symbols from the infra package, whencethese units will be moved soon.Fri Aug 28 09:33:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/test/demo.cxx, src/test/kcache1.c, src/test/kphilo.c,src/test/main.cxx, src/test/philo.cxx, src/test/sload.c,src/test/timer.cxx, src/test/tstflag.cxx, src/test/tstmbox.cxx,src/test/tstmpf.cxx, src/test/tstmpool.cxx, src/test/tsttracc.c,src/test/tsttrace.cxx, tests/bin_sem0.cxx, tests/bin_sem1.cxx,tests/bin_sem2.cxx, tests/clock0.cxx, tests/clock1.cxx,tests/cnt_sem0.cxx, tests/cnt_sem1.cxx, tests/except1.cxx,tests/flag0.cxx, tests/flag1.cxx, tests/intr0.cxx, tests/kclock0.c,tests/kclock1.c, tests/kexcept1.c, tests/kill.cxx, tests/kintr0.c,tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c, tests/kmutex0.c,tests/kmutex1.c, tests/kphilo.c, tests/ksched1.c, tests/ksem0.c,tests/ksem1.c, tests/kthread0.c, tests/kthread1.c, tests/lottery.c,tests/mbox1.cxx, tests/memfix1.cxx, tests/memfix2.cxx,tests/memvar1.cxx, tests/memvar2.cxx, tests/mutex0.cxx,tests/mutex1.cxx, tests/philo.cxx, tests/release.cxx,tests/sched1.cxx, tests/sync2.cxx, tests/sync3.cxx,tests/thread0.cxx, tests/thread1.cxx, tests/thread2.cxx:Change entry points from main() to cyg_start(), and remove returncodes - while main returned an int, cyg_start() returns void. It hasno meaning anyway - what could you do with the code?* src/test/tsttracc.c, src/test/tsttrace.cxx:Also change trace calls (CYG_REPORT_...) to reflect that it is afunction called cyg_start with no args returning void, rather thanwhat it was for main(argc, argv)Fri Aug 28 09:24:41 1998 Jesper Skov <jskov@cygnus.co.uk>* src/debug/generic-stub.c: Moved strcpy/strlen from hal-stub togeneric-stub. Cleaned up a bit to avoid compiler warnings.Thu Aug 27 19:22:51 1998 Hugo Tyson <hmt@cygnus.co.uk>* tests/kphilo.c (Philosopher):* tests/philo.cxx (Philosopher):* src/test/philo.cxx (Philosopher):* src/test/kphilo.c (Philosopher):* src/common/kapi.cxx:Change CYG_RELEASE_DEBUG to CYGPKG_INFRA_DEBUG.These changes are self-contained, so they can go in right now.Thu Aug 27 15:20:31 1998 Hugo Tyson <hmt@cygnus.co.uk>* include/mvarimpl.inl (free):Remove a couple of warning due to pointer comparison without castsin coallesce(sic.) code.1998-08-26 Nick Garnett <nickg@cygnus.co.uk>* include/kapidata.h:Added saved_context to cyg_hardwarethread structure to trackGDB support in rest of kernel.1998-08-25 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:Added CYGIMP_KERNEL_THREAD_GDB_SUPPORT to configure for GDBinteractions with the kernel.* src/debug/dbg-threads-api.h:* src/debug/dbg_gdb.cxx:Added these files to repository to support GDB interactionswith the kernel. Note that dbg-threads-api.h is a copy of afile in devo/libstub. Any changes there must be merged in heretoo.* src/PKGconf.mak:Added debug/dbg_gdb.cxx to COMPILE list.* include/thread.inl:* include/thread.hxx:Added support for GDB, specifically for thread-aware debugging.* include/intr.hxx:* src/intr/intr.cxx:Added an extra argument to interrupt_end(): a pointer tothe saved register state. This is optionally used to providea more interesting saved register state for GDB.Tue Aug 25 02:36:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/generic-stub.h:Add void to empty prototype argument lists to silence compilerwarningsFri Aug 21 18:46:34 1998 Hugo Tyson <hmt@cygnus.co.uk>* src/common/clock.cxx (enable):Make the maths work right if we only just set up the clockthingy. Unsigned has a lot to answer for; when the next scheduledtick was all correct, the delta was -1, which correctly rounds tozero in the division. But it isn't -1 it's 18446744073709551615which gave a shift of 15 in the the uITRON test programs.Fri Aug 21 11:40:50 1998 Hugo Tyson <hmt@cygnus.co.uk>* include/mboxt2.inl (put):* include/mempolt2.inl (alloc):Tidy Nick's changes (1998-07-27) for set_timer() semantics a bit,make it a bit more efficient and smaller code.Thu Aug 20 17:37:35 BST 1998 Chris Provenzano <proven@cygnus.com>* include/mvarimpl.inl, include/pkgconf/kernel.h:Added memory coallecsing to the variable size memory allocator.This option is enabled my default.* tests/stdlib/malloc2.c: Only print 50 messages, not 500.1998-08-20 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:Moved definition of CYG_KERNEL_USE_INIT_PRIORITY from hereto hal.h.* include/thread.hxx:Changed argument to cyg_thread_entry() to CYG_ADDRWORD fromCYG_ADDRESS.* include/ktypes.h:Moved constructor priority ordering stuff out to infra/cyg_type.h.* include/kapi.h:* src/common/kapi.cxx:Added name and priority parameters to cyg_thread_create() andswapped stack size and base parameters. These changes arecurrently protected by DAY_OF_CHAOS ifdefs and are thereforeinactive.Wed Aug 19 19:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* tests/bin_sem1.cxx, tests/bin_sem2.cxx, tests/cnt_sem1.cxx,tests/flag1.cxx, tests/mbox1.cxx, tests/memfix2.cxx,tests/memvar2.cxx, tests/sync2.cxx, tests/sync3.cxx,tests/thread2.cxx, tests/release.cxx, tests/kill.cxx:Reorder inclusion of thread.inl to silence warningsWed Aug 19 18:48:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/kernel.hxx:Reorder inclusion of thread.inl to silence warningsWed Aug 19 18:21:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/common/kapi.cxx, src/sync/flag.cxx:Reorder inclusion of thread.inl to silence warnings* src/sync/bin_sem.cxx, src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx,src/sync/mbox.cxx:Add inclusion of thread.inl to silence warnings* src/common/memset.c:Make pointer arithmetic be on char *, not void * to silence warnings* include/diag.h, src/trace/diag.c:Make diag_init take void parameter, and give diag_printf explicitparameters in prototypes to silence warnings1998-08-19 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:* src/common/thread.cxx:Added ifdef for CYGIMP_IDLE_THREAD_YIELD to support singlepriority configurations.Tue Aug 18 16:56:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/thread.hxx, include/thread.inl:To silence compiler warnings, move register_exception inline definitionfrom the .hxx to the .inl. Also move attach_stack to before theconstructor where it is invoked from.1998-08-18 Nick Garnett <nickg@cygnus.co.uk>* include/pkgconf/kernel.h:Moved all HAL specific config options out to a HAL config file.* include/kapi.h:* src/common/kapi.cxx:Added cyg_scheduler_lock() and cyg_scheduler_unlock() to provideuser access to the scheduler lock.Mon Aug 17 21:39:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/kapi.h:Insert "void" to empty parameter lists to silence warningsFri Aug 14 18:10:20 1998 Hugo Tyson <hmt@masala.cygnus.co.uk>* src/common/thread.cxx (exit):Set the state explicitly to EXITED rather than or'ingit in; should be safe cos it's what kill does in the normal case.Needed to avoid suspend sort of states persisting after death.One character changes are always aesthetically pleasing.Fri Aug 14 17:28:01 1998 Hugo Tyson <hmt@cygnus.co.uk>* include/pkgconf/kernel.h:Add config options as below:* src/common/thread.cxx:Add asserts of CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERTand CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT if they are defined.Also lazily tidied format of func hdrs as per code review et al.1998-08-14 Nick Garnett <nickg@cygnus.co.uk>* include/kapidata.h:Added support for thread names and thread housekeeping list.* src/common/delete.cxx:Added include for cyg_type.h.* include/pkgconf/kernel.h:Added CYGIMP_THREAD_NAME and CYGIMP_THREAD_LIST options.* include/thread.inl:* include/thread.hxx:Added support for thread names and thread housekeeping list.* src/common/thread.cxx:Added support for thread names and thread housekeeping list.Fixed ordering bug in Cyg_Thread::delay().Thu Aug 13 15:33:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* include/ktypes.h:Remove inlined new and delete as they aren't strictly permitted andthey prevent a valid new and delete being defined anywhere else!* src/common/delete.cxx, src/PKGconf.mak:Add delete.cxx to provide default delete operation for when a Clibrary isn't present1998-07-28 Nick Garnett <nickg@cygnus.co.uk>* include/thread.hxx, include/sched.hxx, include/mlqueue.hxx,include/lottery.hxx, include/bitmap.hxx, src/common/thread.cxx,src/sched/sched.cxx, src/sched/mlqueue.cxx, src/sched/lottery.cxx,src/sched/bitmap.cxx:Added an alternative constructor to Cyg_Thread which takesarguments in new order, and includes a scheduling parametersargument. Propagated effects of this through Cyg_SchedThreadand Cyg_SchedThread_Implementation. This mostly takes the formof passing the scheduling parameters through to the constructors.1998-07-27 Nick Garnett <nickg@cygnus.co.uk>* src/sync/flag.cxx, src/sync/cnt_sem2.cxx, include/mempoolt.inl,include/mempolt2.inl, include/mboxt2.inl, include/mboxt.inl:Modified code in API calls that take a timeout to allow for atimeout in the past.NOTE: The timeouts have for now been left as relative delays, theyshould be converted to absolute timeouts.* src/common/thread.cxx:Modified code in counted_sleep to allow for a timeout in the past.Added handling of EXIT wake_reason in delay().1998-07-24 Nick Garnett <nickg@cygnus.co.uk>* include/thread.inl:Reordered code in Cyg_Thread::set_timer() to init the timer afterwake_reason has been assigned.* include/clock.inl:Removed Cyg_Alarm::enable().* src/sync/mutex.cxx (Cyg_Condition_Variable::wait):Modified order of code in timed version of wait to allow for atimout in the past.* src/sync/cnt_sem.cxx (Cyg_Counting_Semaphore::wait):Modified order of code in timed version of wait to allow for atimout in the past. Also modified timeout to be absolute ratherthan relative.* src/common/thread.cxx (Cyg_Thread::wake):Added test for whether a thread is actually asleep before wakingit. Allows us to apply wake() to awake threads without damage.* src/common/clock.cxx:Added code to Cyg_Counter::add_alarm() to deal with alarmsthat trigger now or in the past.Moved Cyg_Alarm::enable() here. Added code to do the right thingwhen reenabling previously disabled interval alarms.1998-07-23 Nick Garnett <nickg@cygnus.co.uk>* src/debug/stubrom.c: Added header comments.Thu Mar 26 18:25:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/test/philo.cxx:Rename CYG_DEBUG ifdef to CYG_RELEASE_DEBUGWed Mar 25 23:23:39 GMT 1998 Chris Provenzano <proven@cygnus.com>* configure.in: Fix so non_arch.h is updated even ifconfig.cache does exists.* include/kapi.h, include/kapidata.h, include/kernel.hxx* include/mboxt.inl, include/sched.hxx:#include <eccconf/kernel.h> instead of include <eccconf/kernel.h>* include/eccconf/kernel.h: Added. This was old devo/config.h* src/Makefile.am : Set CYG_CONFIGURATION to "<eccconf/kernel.h>"* src/test/Makefile.am : Build .gdbinit from gdbinit.inand tree from tree.inWed Mar 25 18:24:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk>* src/Makefile.am, src/common/memcpy.c, src/common/memset.c:Move memcpy and memset functions from C library into kernel tosatisfy the requirements of gcc - namely it must be available atat all time. Changed memcpy and memset to sit more cleanly in thekernel, and lose all dependencies on the C library* src/Makefile.in: regeneratedFri Mar 13 18:36:42 GMT 1998 Chris Provenzano <proven@cygnus.com>* configure.in : Add rule to get correct objcopy for target* src/test/Makefile.am : Add rule to build philo.srecFri Mar 13 11:47:23 GMT 1998 Chris Provenzano <proven@cygnus.com>* configure.in, non_arch.h.in, non_arch.shAdd support for the mn103000Thu Mar 12 11:38:28 GMT 1998 David Moore <dsm@cygnus.co.uk>* src/Makefile.am:Removed flag to leave comments in generated linker script.Thu Mar 12 10:55:20 GMT 1998 David Moore <dsm@cygnus.co.uk>* configure.in:Fixed setting of platform variableWed Mar 11 16:54:28 GMT 1998 Chris Provenzano <proven@cygnus.com>* src/test/Makefile.am, tests/Makefile.am:Make sure CXXFLAGS from configure are also usedWed Mar 11 16:16:57 GMT 1998 Chris Provenzano <proven@cygnus.com>* configure.in, non_arch.h.in. non_arch.sh:Added build support for mips* tests/Makefile.am, src/test/Makefile.amLink with -nostdlib -lgccWed Mar 11 14:43:36 GMT 1998 Chris Provenzano <proven@cygnus.com>* Makefile.am, configure.in, tests/Makefile.amsupport building tests in the tests directoryWed Mar 11 13:18:17 GMT 1998 Chris Provenzano <proven@cygnus.com>* acinclude.m4, stamp-h.in, non_arch.h.in, src/Makefile.am:Added to support new kernel configure/make process* Makefile.am: Modified to support new kernel configure/makeprocess.* src/acinclude.m4, src/aclocal.m4, src/configure, src/configure.inDeleted to support new kernel configure/make process* Makefile.in, configure, aclocal.m4, src/Makefile.in,src/configure: regenerated* non_arch.sh: New shellscript to change platform/startup/debugoptions after a configure is done.* src/devo/config.h: include non_arch.h, for platform/startup/debugoptions. This is generated at configure and modified by non_arch.sh//===========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//===========================================================================
