This is the mail archive of the
ecos-cvs@sources.redhat.com
mailing list for the ecos project.
eCos anonymous CVS repository updated
- To: ecos-cvs at sources dot redhat dot com
- Subject: eCos anonymous CVS repository updated
- From: Jonathan Larmour <jlarmour at sources dot redhat dot com>
- Date: Fri, 10 Aug 2001 20:28:01 +0100
The eCos anonymous CVS repository has been updated today (2001-08-10).
The following changes were made to NEWS and ChangeLogs:
Index: packages/NEWS
===================================================================
RCS file: /cvs/ecos/ecos/packages/NEWS,v
retrieving revision 1.39
diff -u -0 -r1.39 NEWS
--- NEWS 2001/07/31 21:15:36 1.39
+++ NEWS 2001/08/10 19:24:09
@@ -0,0 +1,2 @@
+* Generic SMP support added.
+* RedBoot support added to AM33-STB port.
Index: packages/compat/posix/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/compat/posix/current/ChangeLog,v
retrieving revision 1.17
diff -u -0 -r1.17 ChangeLog
--- ChangeLog 2001/06/15 22:45:04 1.17
+++ ChangeLog 2001/08/10 19:24:15
@@ -0,0 +1,71 @@
+2001-08-06 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/posix.cdl: Reorganize dependencies so that signals, timers
+ and pthreads really can be disabled, and the relevant files don't
+ get built.
+ Build new mutex.cxx file.
+ Remove duplicate CYGPKG_POSIX_SCHED dependency for pthreads.
+
+ * include/limits.h: Don't include irrelevant header dependencies.
+
+ * include/muttypes.h: New type defining mutex/cond var types separately
+ from other pthread types.
+
+ * include/types.h: Remove mutex/cond var types.
+
+ * include/signal.h: Conditionalize on CYGPKG_POSIX_SIGNALS
+
+ * include/sigsetjmp.h: Don't include irrelevant header dependencies.
+ Rewrite sigsetjmp in a much more compiler friendly (and readable)
+ way with less type punning.
+
+ * src/misc.cxx: Don't include sysconf cases when pthreads or
+ CYGPKG_POSIX_TIMERS not enabled.
+
+ * src/mutex.cxx: New file, broken out of pthreads.cxx, as most
+ of it is not fixed to the pthreads implementation, and I've fixed
+ the bits that were too tied to it.
+
+ * src/pprivate.h: Conditionalize definitions that are specific
+ to CYGPKG_POSIX_PTHREAD. Ditto for prototypes for CYGPKG_POSIX_SIGNALS
+ and CYGPKG_POSIX_TIMERS. Move PTHREAD_ENTRY/RETURN etc. macros
+ here so they can be used throughout the package.
+
+ * src/pthread.cxx: Remove mutex/cond var implementation, and
+ entry/return macros, as per above.
+
+ * src/signal.cxx (cyg_sigqueue): Don't just set non-queueable signals
+ pending - also forcibly wake up any blocked threads.
+ (siglongjmp): Use new layout of sigjmp_buf.
+
+ * tests/mutex3.c:
+ * tests/pthread1.c:
+ * tests/pthread2.c:
+ * tests/pthread3.c:
+ * tests/signal1.c:
+ * tests/sigsetjmp.c:
+ * tests/timer1.c:
+ * tests/tm_basic.cxx:
+ Correct configuration dependencies, and do NA appropriately.
+
+2001-08-03 Nick Garnett <nickg@cygnus.co.uk>
+
+ Imported from a development branch:
+
+ 2001-06-27 Nick Garnett <nickg@cygnus.co.uk>
+
+ * tests/pthread3.c:
+ Modified the loop that waits for the threads to get going so that
+ it will function correctly in an SMP system, where the threads
+ will run in parallel.
+
+ * tests/mutex3.c: Disabled this test for SMP systems. It depends
+ too much on predicting the priority-driven execution order of the
+ threads. In an SMP system, some threads will run in parallel and
+ falsify the assumptions.
+
+ 2001-05-25 Nick Garnett <nickg@cygnus.co.uk>
+
+ * src/signal.cxx (siglongjmp): Minor change to satisfy latest C++
+ compiler.
+
Index: packages/devs/flash/amd/am29xxxxx/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/flash/amd/am29xxxxx/current/ChangeLog,v
retrieving revision 1.5
diff -u -0 -r1.5 ChangeLog
--- ChangeLog 2001/07/29 02:00:08 1.5
+++ ChangeLog 2001/08/10 19:24:22
@@ -0,0 +1,4 @@
+2001-08-10 Jesper Skov <jskov@redhat.com>
+
+ * include/flash_am29xxxxx.inl (flash_hwr_init): Fix block number.
+
Index: packages/devs/flash/arm/iq80310/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/flash/arm/iq80310/current/ChangeLog,v
retrieving revision 1.3
diff -u -0 -r1.3 ChangeLog
--- ChangeLog 2001/06/15 22:45:05 1.3
+++ ChangeLog 2001/08/10 19:24:30
@@ -0,0 +1,4 @@
+2001-08-04 Mark Salter <msalter@redhat.com>
+
+ * src/flash.h (FLASH_P2V): First 4K of flash now mapped at 0xd0000000.
+
Index: packages/devs/flash/intel/28fxxx/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/flash/intel/28fxxx/current/ChangeLog,v
retrieving revision 1.4
diff -u -0 -r1.4 ChangeLog
--- ChangeLog 2001/06/29 14:45:50 1.4
+++ ChangeLog 2001/08/10 19:24:35
@@ -0,0 +1,9 @@
+2001-08-10 Jesper Skov <jskov@redhat.com>
+
+ * cdl/flash_intel_28fxxx.cdl: Added options for variants.
+
+ * include/flash_28fxxx.inl: Support bootblock parts. Support
+ locking. Buffered writes are broken though.
+
+ * include/flash_28fxxx_parts.inl: Created.
+
Index: packages/devs/flash/mn10300/stb/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/flash/mn10300/stb/current/ChangeLog,v
retrieving revision 1.1
diff -u -0 -r1.1 ChangeLog
--- ChangeLog 2001/06/10 19:35:25 1.1
+++ ChangeLog 2001/08/10 19:24:41
@@ -0,0 +1,4 @@
+2001-08-03 David Howells <dhowells@redhat.com>
+
+ * src/mn10300_stb_flash.c: updated to latest AMD flash interface.
+
Index: packages/devs/usb/sa11x0/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/usb/sa11x0/current/ChangeLog,v
retrieving revision 1.3
diff -u -0 -r1.3 ChangeLog
--- ChangeLog 2001/06/01 22:16:36 1.3
+++ ChangeLog 2001/08/10 19:24:46
@@ -0,0 +1,5 @@
+2001-08-06 Bart Veer <bartv@redhat.com>
+
+ * src/usbs_sa11x0.c:
+ Add initial support for USB testing.
+
Index: packages/hal/arm/iq80310/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/iq80310/current/ChangeLog,v
retrieving revision 1.7
diff -u -0 -r1.7 ChangeLog
--- ChangeLog 2001/06/22 18:18:48 1.7
+++ ChangeLog 2001/08/10 19:24:50
@@ -0,0 +1,5 @@
+2001-08-04 Mark Salter <msalter@redhat.com>
+
+ * include/hal_platform_setup.h: Fix mapping so first MB of SDRAM has
+ ECC turned on. Now map first 4K of flash at 0xd0000000.
+
Index: packages/hal/common/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/common/current/ChangeLog,v
retrieving revision 1.64
diff -u -0 -r1.64 ChangeLog
--- ChangeLog 2001/07/29 02:00:08 1.64
+++ ChangeLog 2001/08/10 19:24:56
@@ -0,0 +1,23 @@
+2001-08-03 Nick Garnett <nickg@redhat.com>
+
+ Imported from a development branch:
+
+ 2001-07-11 Nick Garnett <nickg@redhat.com>
+
+ * include/drv_api.h:
+ * src/drv_api.c:
+ Added API for controlling routing of interrupts to CPUs in SMP
+ configurations.
+
+ 2001-06-29 Nick Garnett <nickg@cygnus.co.uk>
+
+ * include/drv_api.h:
+ * src/drv_api.c:
+ Added API for using spinlocks.
+
+2001-08-03 Jesper Skov <jskov@redhat.com>
+
+ * tests/vaargs.c: Added.
+ * cdl/hal.cdl: Added CYGPKG_HAL_BUILD_COMPILER_TESTS to allow cpp1
+ and vaargs tests to be compiled conditionally.
+
Index: packages/hal/mips/rm7000/ocelot/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/rm7000/ocelot/current/ChangeLog,v
retrieving revision 1.4
diff -u -0 -r1.4 ChangeLog
--- ChangeLog 2001/06/22 18:18:56 1.4
+++ ChangeLog 2001/08/10 19:25:01
@@ -0,0 +1,17 @@
+2001-08-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/plf_intr.h: Move HAL_INTERRUPT_ interrupt controller
+ access macros to variant HAL as they are generic.
+
+2001-08-08 Chris Morrow <cmorrow@YottaYotta.com>
+
+ * include/plf_intr.h (HAL_INTERRUPT_MASK): Use correct comparison
+ for determining when to use interrupt control register.
+ Also use cfc rather than mfc insns. Also simplify a fraction.
+ (HAL_INTERRUPT_UNMASK): Ditto.
+
+2001-08-03 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_mips_rm7000_ocelot.cdl: Removed obsolete and wrong
+ gdb_module build runes.
+
Index: packages/hal/mips/rm7000/var/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mips/rm7000/var/current/ChangeLog,v
retrieving revision 1.4
diff -u -0 -r1.4 ChangeLog
--- ChangeLog 2001/06/25 18:24:35 1.4
+++ ChangeLog 2001/08/10 19:25:07
@@ -0,0 +1,5 @@
+2001-08-09 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/var_intr.h: Move HAL_INTERRUPT_ interrupt controller
+ access macros here from Ocelot HAL.
+
Index: packages/hal/mn10300/stb/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mn10300/stb/current/ChangeLog,v
retrieving revision 1.3
diff -u -0 -r1.3 ChangeLog
--- ChangeLog 2001/02/13 01:23:31 1.3
+++ ChangeLog 2001/08/10 19:25:14
@@ -0,0 +1,25 @@
+2001-08-03 David Howells <dhowells@redhat.com>
+
+ * cdl/hal_mn10300_am33_stb.cdl: added vector support and made to
+ work with RedBoot and flash.
+ * include/plf_intr.h: ditto.
+ * include/plf_io.h: ditto.
+ * include/plf_stub.h: ditto.
+ * include/pkgconf/mlt_mn10300_am33_stb_rom.h: ditto.
+ * include/pkgconf/mlt_mn10300_am33_stb_rom.mlt: ditto.
+ * include/pkgconf/mlt_mn10300_am33_stb_sram1.h: ditto.
+ * include/pkgconf/mlt_mn10300_am33_stb_sram1.ldi: ditto.
+ * include/pkgconf/mlt_mn10300_am33_stb_sram1.mlt: ditto.
+ * misc/redboot_RAM.ecm: ditto.
+ * misc/redboot_ROM.ecm: ditto.
+ * misc/redboot_SRAM1.ecm: ditto.
+ * src/plf_misc.c: ditto.
+ * src/plf_stub.c: ditto.
+ * src/ser_stb.c: ditto.
+
+2001-08-02 Nick Garnett <nickg@redhat.com>
+
+ * include/plf_io.h:
+ Added this file to match assumption now made in arch files that it
+ exists.
+
Index: packages/hal/mn10300/stdeval1/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/mn10300/stdeval1/current/ChangeLog,v
retrieving revision 1.15
diff -u -0 -r1.15 ChangeLog
--- ChangeLog 2001/02/13 01:23:31 1.15
+++ ChangeLog 2001/08/10 19:25:20
@@ -0,0 +1,6 @@
+2001-08-02 Nick Garnett <nickg@redhat.com>
+
+ * include/plf_io.h:
+ Added this file to match assumption now made in arch files that it
+ exists.
+
Index: packages/hal/sh/cq7750/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sh/cq7750/current/ChangeLog,v
retrieving revision 1.8
diff -u -0 -r1.8 ChangeLog
--- ChangeLog 2001/07/18 11:38:41 1.8
+++ ChangeLog 2001/08/10 19:25:25
@@ -0,0 +1,6 @@
+2001-08-08 Jesper Skov <jskov@redhat.com>
+
+ * misc/redboot_ROM.ecm: Added.
+
+ * cdl/hal_sh_sh7750_cq7750.cdl: Added RedBoot build rule.
+
Index: packages/hal/sh/dreamcast/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sh/dreamcast/current/ChangeLog,v
retrieving revision 1.1
diff -u -0 -r1.1 ChangeLog
--- ChangeLog 2001/07/31 21:15:40 1.1
+++ ChangeLog 2001/08/10 19:25:33
@@ -0,0 +1,4 @@
+2001-08-06 Jesper Skov <jskov@redhat.com>
+
+ * cdl/hal_sh_sh7750_dreamcast.cdl: Set linux boot parameters.
+
Index: packages/hal/sh/sh4/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/sh/sh4/current/ChangeLog,v
retrieving revision 1.11
diff -u -0 -r1.11 ChangeLog
--- ChangeLog 2001/07/29 02:00:09 1.11
+++ ChangeLog 2001/08/10 19:25:38
@@ -0,0 +1,4 @@
+2001-08-08 Jesper Skov <jskov@redhat.com>
+
+ * include/mod_7750.h: Don't use UBC as handling of it is broken.
+
Index: packages/infra/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/infra/current/ChangeLog,v
retrieving revision 1.21
diff -u -0 -r1.21 ChangeLog
--- ChangeLog 2001/07/20 10:23:19 1.21
+++ ChangeLog 2001/08/10 19:25:43
@@ -0,0 +1,22 @@
+2001-08-03 Nick Garnett <nickg@cygnus.co.uk>
+
+ Imported from a development branch:
+
+ 2001-06-27 Nick Garnett <nickg@cygnus.co.uk>
+
+ * src/diag.cxx:
+ * src/tcdiag.cxx:
+ Added use of CYG_HAL_DIAG_LOCK() and CYG_HAL_DIAG_UNLOCK() to
+ diag_printf(), cyg_assert_msg() and cyg_test_output() to prevent
+ messages from different CPUs being mingled.
+
+ 2001-05-22 Nick Garnett <nickg@cygnus.co.uk>
+
+ * include/cyg_type.h (CYGBLD_ANNOTATE_VARIABLE_*):
+ Added better way of supplying default definitions for these.
+
+ 2001-04-27 Nick Garnett <nickg@cygnus.co.uk>
+
+ * include/cyg_type.h:
+ Added default variable annotation macros.
+
Index: packages/io/eth/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/eth/current/ChangeLog,v
retrieving revision 1.19
diff -u -0 -r1.19 ChangeLog
--- ChangeLog 2001/07/06 19:11:35 1.19
+++ ChangeLog 2001/08/10 19:25:50
@@ -0,0 +1,16 @@
+2001-08-09 Hugo Tyson <hmt@redhat.com>
+
+ * src/net/eth_drv.c (eth_drv_recv): Add a pair of
+ CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP() on entry and exit;
+ this function is intercalled between RedBoot and the application.
+ A minor re-org at the ending to accommodate these macros' nesting.
+ (eth_drv_tx_done): CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP().
+
+ * src/stand_alone/eth_drv.c (eth_drv_tx_done): Add a pair of
+ CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP() on entry and exit;
+ this function is intercalled between RedBoot and the application.
+ Also make printing message about "tx_done for other key" also
+ conditional on net_debug variable - it's commonplace.
+ (eth_drv_recv): CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP().
+ (eth_drv_copy_recv): CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP().
+
Index: packages/io/flash/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/flash/current/ChangeLog,v
retrieving revision 1.16
diff -u -0 -r1.16 ChangeLog
--- ChangeLog 2001/07/29 02:00:10 1.16
+++ ChangeLog 2001/08/10 19:25:57
@@ -0,0 +1,7 @@
+2001-08-10 Jesper Skov <jskov@redhat.com>
+
+ * cdl/io_flash.cdl: Changed flavor of
+ CYGHWR_IO_FLASH_BLOCK_LOCKING to booldata.
+ * include/flash.h: Matching changes.
+ * src/flash.c: Matching changes.
+
Index: packages/io/usb/slave/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/usb/slave/current/ChangeLog,v
retrieving revision 1.2
diff -u -0 -r1.2 ChangeLog
--- ChangeLog 2001/06/29 07:16:29 1.2
+++ ChangeLog 2001/08/10 19:26:05
@@ -0,0 +1,5 @@
+2001-08-06 Bart Veer <bartv@redhat.com>
+
+ * include/usbs.h:
+ Define additional data structures required for USB testing.
+
Index: packages/isoinfra/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/isoinfra/current/ChangeLog,v
retrieving revision 1.10
diff -u -0 -r1.10 ChangeLog
--- ChangeLog 2001/07/29 02:00:10 1.10
+++ ChangeLog 2001/08/10 19:26:10
@@ -0,0 +1,7 @@
+2001-08-06 Jonathan Larmour <jlarmour@redhat.com>
+
+ * cdl/isoinfra.cdl: Add a separate POSIX mutex types header option.
+ * include/sys/types.h: Include it.
+ * include/time.h: Provide a default struct timespec even if the
+ implementation doesn't provide something better.
+
Index: packages/kernel/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/kernel/current/ChangeLog,v
retrieving revision 1.62
diff -u -0 -r1.62 ChangeLog
--- ChangeLog 2001/07/29 02:00:10 1.62
+++ ChangeLog 2001/08/10 19:26:16
@@ -0,0 +1,300 @@
+2001-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 the
+ priority inversion protocol for a mutex.
+
+ * src/common/kapi.cxx: Export the new function above and
+ set_ceiling into the C API.
+
+ * include/mutex.hxx (class Cyg_Mutex): New member function
+ set_protocol().
+
+ * include/kapi.h (cyg_protcol): Define new emumeration for mutex
+ priority protocol setting, and headers for the new function to set
+ it.
+
+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 of
+ set_need_reschedule() to a better implementation of the intended
+ algorithm.
+
+ * include/kapi.h:
+ * src/common/kapi.cxx:
+ Added API for controlling routing of interrupts to CPUs in SMP
+ configurations.
+
+ 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 the
+ SMP-modified scheduling infrastructure. The bitmap scheduler
+ is not currently SMP-enabled, only single CPU configurations are
+ supported - 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() in
+ Cyg_Scheduler::start_cpu(). This was a relic from the days when
+ the interrupt enable state was not part of the thread state. Now
+ it is, and loading the first thread will cause interrupts to be
+ enabled.
+
+ * src/intr/intr.cxx:
+ Changed initial values of Cyg_Interrupt::disable_counter[]s to
+ zero 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 extended
+ to 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() and
+ Cyg_Interrupt::enable_interrupts(). These now claim and release a
+ spinlock in addition to disabling and enabling interrupts. The
+ original interrupt state is also preserved and restored. This is
+ necessary in SMP systems to allow drivers etc. to correctly
+ synchronize with threads and DSRs that may be running on different
+ CPUs. In the single CPU case this mechanism reduces to the
+ original simple interrupt disable code.
+ [Later change] Backed off addition of volatile modifier to
+ interrupt_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 thread0
+ to execute its wait. This is necessary in SMP systems where the
+ threads will execute in parallel, but is also benign in single CPU
+ systems.
+
+ * tests/mutex2.cxx:
+ * tests/mutex3.cxx:
+ * tests/sync3.cxx:
+ * tests/thread2.cxx:
+ These tests depend on predicting the behaviour of threads at
+ different priorities to pass. In an SMP system, several threads
+ will run in parallel, and the execution order will not be as
+ expected. These tests are therefore disabled in SMP
+ configurations.
+
+ * src/sched/mlqueue.cxx (add_thread): Moved call to
+ set_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 SMP
+ systems. The previous version removed all runnable threads from
+ the run queues when they were executing. This resulted in serious
+ complications and messy code, particularly when dealing with
+ priority changes and timeslicing. The new version keeps running
+ threads in the run queues, just like the single-CPU version. The
+ main disadvantage of this is that we may have to search past
+ threads running on other CPUs before we find one available to run
+ on this CPU. However, the pending count array and map mean that we
+ only need search one run queue, and in any case the search remains
+ bounded by the number of CPUs available.
+ Another change is in the way that timeslicing is handled. Now, the
+ CPU that takes the clock interrupt decrements the timeslice counts
+ for all CPUs and if any go zero, sends a TIMESLICE message to
+ that CPU.
+
+ * src/sched/sched.cxx (unlock_inner):
+ Removed call to requeue(), no longer needed as a result of
+ scheduler reorganization.
+
+ * src/common/thread.cxx:
+ Added test in Cyg_Thread::exit() to check that the thread has not
+ already been killed. This is only an issue if the thread is
+ calling exit() when it is kill()ed from another CPU. The test is
+ redundant in single-CPU systems, but it does no harm having it.
+ Added code to Cyg_Thread::set_priority() to check for reschedule
+ when another thread is being changed in priority.
+ Added call in idle thread constructor to scheduler to install the
+ idle thread as the default current thread for a CPU.
+
+ * include/smp.hxx:
+ Added CYG_KERNEL_CPU_TIMESLICE_INTERRUPT(), did some miscellaneous
+ tidying.
+
+ * include/instrmnt.h: Added SMP_RESCHED_SEND and SMP_RESCHED_RECV
+ events.
+
+ * 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 done
+ in the idle thread constructor.
+ Added code here to set up interrupts for SMP inter-processor
+ interrupts. This is not very tidy and may need to be
+ changed in the future.
+
+ * src/sched/mlqueue.cxx:
+ Added local set_need_reschedule() function to set the
+ need_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 be
+ tidied up and the SMP-specific changes integrated better into the
+ code. Also, timesliceing currently only works on the CPU that
+ takes 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 other
+ interrupt types to worry about.
+ Added annotations to scheduler data items.
+
+ * include/sched.hxx:
+ Split set_current_thread() into two functions, the original works
+ only on the current CPU, the new one sets another CPU's current
+ thread. This latter function is only used to prime the current
+ threads during initialization.
+ Added second need_reschedule() function that takes a thread
+ argument. This is intended to be overridden by a scheduler
+ specific function that sets the need_reschedule flag if the
+ supplied thread is more deserving of CPU time that any current
+ thread.
+
+ * include/mlqueue.hxx:
+ Made cyg_scheduler_set_need_reschedule() a friend of
+ Cyg_Scheduler_Implementation class.
+ Added override set_need_reschedule() functions.
+
+ * include/kapidata.h: Added cpu field to cyg_thread structure when
+ in SMP systems.
+
+ * include/intr.hxx:
+ * src/intr/intr.cxx:
+ Added Cyg_Interrupt::set_cpu() and Cyg_Interrupt::get_cpu() for
+ SMP systems.
+
+ * include/instrmnt.h: Added events for INTR_GET_CPU and
+ INTR_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 by
+ ifdeffing 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_switches
+ into CPU indexed arrays. Added member functions to get and set
+ these indirectly.
+ Added start_cpu() to do per-CPU scheduler startup.
+
+ * include/sched.inl:
+ Converted scheduler lock/unlock functions to use new schedlock
+ class.
+
+ * src/sched/sched.cxx:
+ Changed in line with sched.hxx.
+ Added call to requeue() in unlock_inner() to restore current
+ thread to run queue if necessary.
+ Moved most of scheduler startup to Cyg_Scheduler::start_cpu().
+ Cyg_Scheduler::start() now also starts secondary CPUs in SMP
+ systems.
+ Added cyg_kernel_smp_startup() as entry point from HAL into kernel
+ for secondary CPUs.
+
+ * include/mlqueue.hxx:
+ Added Cyg_RunQueue type and removed
+ Cyg_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 record
+ thread's current CPU.
+
+ * src/sched/mlqueue.cxx:
+ Changed behaviour when in SMP system to remove scheduled thread
+ from run queue and replace it when preempted.
+ Added some extra asserts, and removed some that are no longer true
+ in an SMP system.
+
+ * src/instrmnt/meminst.cxx: In SMP systems: added spinlock to
+ protect instrument buffer, added CPU Id in top 4 bits of thread Id
+ field.
+
+ * src/common/thread.cxx:
+ Converted to use accessor functions for need_reschedule and
+ current_thread.
+ Rearranged idle thread creation to create one for each CPU.
+
+ * include/test/stackmon.h: Extended to handle stack usage for
+ multiple idle threads.
+
+ * include/thread.inl:
+ Added some extra instrumentation.
+
+ * include/smp.hxx:
+ Added this file to contain all kernel SMP support. The main
+ definitions exported by this file are spin lock and scheduler lock
+ implementation classes, for both SMP and uniprocessor
+ configurations.
+
+ * src/intr/intr.cxx:
+ * include/intr.hxx:
+ Converted interrupt disable counter to CPU indexed array. In
+ intr.cxx: added lock of scheduler lock in interrupt_end() rather
+ than 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 now
+ used to declare the chain table so that architectures which have
+ different sizes for the interrupt table and vector count will work
+ correctly.
+
+ 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 to
+ CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP as it appears in the code.
+
Index: packages/language/c/libc/stdio/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/language/c/libc/stdio/current/ChangeLog,v
retrieving revision 1.10
diff -u -0 -r1.10 ChangeLog
--- ChangeLog 2001/07/29 02:00:10 1.10
+++ ChangeLog 2001/08/10 19:26:34
@@ -0,0 +1,13 @@
+2001-08-10 Robin Farine <robin.farine@terminus.org>
+
+ * src/output/vfnprintf.cxx (cvt): Handles the cases of finite,
+ NaN and infinite numbers separately.
+
+ * src/common/stream.cxx (read): Read correct number of bytes when
+ a character has been "ungot".
+
+2001-08-03 Jonathan Larmour <jlarmour@redhat.com>
+
+ * include/streambuf.inl (~Cyg_StdioStreamBuffer): use correct configury
+ to decide when to call free.
+
Index: packages/language/c/libc/string/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/language/c/libc/string/current/ChangeLog,v
retrieving revision 1.1
diff -u -0 -r1.1 ChangeLog
--- ChangeLog 2000/08/25 17:33:41 1.1
+++ ChangeLog 2001/08/10 19:26:42
@@ -0,0 +1,11 @@
+2001-08-10 Robin Farine <acnrf@dial.eunet.ch>
+
+ * src/memchr.cxx (__memchr): Don't check string validity if number
+ of bytes to operate on is 0.
+ * src/memcmp.cxx (__memcmp): Ditto.
+ * src/memmove.cxx (__memmove): Ditto.
+ * src/strncat.cxx (__strncat): Ditto.
+ * src/strncmp.cxx (__strncmp): Ditto.
+ * src/strncpy.cxx (__strncpy): Ditto.
+ * src/strxfrm.cxx (__strxfrm): Ditto.
+
Index: packages/redboot/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/redboot/current/ChangeLog,v
retrieving revision 1.36
diff -u -0 -r1.36 ChangeLog
--- ChangeLog 2001/08/03 12:27:34 1.36
+++ ChangeLog 2001/08/10 19:26:50
@@ -0,0 +1,29 @@
+2001-08-10 Jesper Skov <jskov@redhat.com>
+
+ * src/flash.c (do_flash_init): Print error message instead of
+ error code on init failure.
+ Don't print error codes where error messages are printed. Make
+ failure reporting strings look consistent.
+ CYGHWR_IO_FLASH_BLOCK_LOCKING flavor changed to booldata.
+
+2001-08-08 Jonathan Larmour <jlarmour@redhat.com>
+
+ * src/io.c (gets): Match $ as indicating GDB anywhere in a line.
+
+2001-08-07 Julian Smart <julians@redhat.com>
+
+ * src/version.c: added commented-out CYGDAT_REDBOOT_CUSTOM_VERSION
+ define that can be replaced using the RedBoot release script by
+ a specific version in a customer branch.
+
+2001-08-06 Jesper Skov <jskov@redhat.com>
+
+ * src/fs/disk.c: Simple fix for DISK_IDE_CDROM partition type.
+
+ * cdl/redboot.cdl: Added (unused) CYGSEM_REDBOOT_DISK_ISO9660 option.
+
+2001-08-03 David Howells <dhowells@redhat.com>
+
+ * src/net/net_io.c: Show the MAC address of the ethernet device
+ amongst the boot banners.
+
====================================
Here is a summary of the files modified:
M host/tools/Utils/common/Subprocess.cpp
M host/tools/configtool/common/common/build.cxx
M host/tools/configtool/standalone/wxwin/CHANGES.txt
M host/tools/configtool/standalone/wxwin/TODO.txt
M host/tools/configtool/standalone/wxwin/admindlg.cpp
M host/tools/configtool/standalone/wxwin/configtool.h
M host/tools/configtool/standalone/wxwin/configtooldoc.cpp
M host/tools/configtool/standalone/wxwin/configtooldoc.h
M host/tools/configtool/standalone/wxwin/mainwin.cpp
M host/tools/configtool/standalone/wxwin/mainwin.h
R host/tools/configtool/standalone/wxwin/readme.html
M host/tools/configtool/standalone/wxwin/symbols.h
M packages/NEWS
M packages/compat/posix/current/ChangeLog
M packages/compat/posix/current/cdl/posix.cdl
M packages/compat/posix/current/include/limits.h
A packages/compat/posix/current/include/muttypes.h
M packages/compat/posix/current/include/signal.h
M packages/compat/posix/current/include/sigsetjmp.h
M packages/compat/posix/current/include/types.h
M packages/compat/posix/current/src/misc.cxx
A packages/compat/posix/current/src/mutex.cxx
M packages/compat/posix/current/src/pprivate.h
M packages/compat/posix/current/src/pthread.cxx
M packages/compat/posix/current/src/signal.cxx
M packages/compat/posix/current/tests/mutex3.c
M packages/compat/posix/current/tests/pthread1.c
M packages/compat/posix/current/tests/pthread2.c
M packages/compat/posix/current/tests/pthread3.c
M packages/compat/posix/current/tests/signal1.c
M packages/compat/posix/current/tests/sigsetjmp.c
M packages/compat/posix/current/tests/timer1.c
M packages/compat/posix/current/tests/tm_basic.cxx
M packages/devs/flash/amd/am29xxxxx/current/ChangeLog
M packages/devs/flash/amd/am29xxxxx/current/include/flash_am29xxxxx.inl
M packages/devs/flash/arm/iq80310/current/ChangeLog
M packages/devs/flash/arm/iq80310/current/src/flash.h
M packages/devs/flash/intel/28fxxx/current/ChangeLog
M packages/devs/flash/intel/28fxxx/current/cdl/flash_intel_28fxxx.cdl
M packages/devs/flash/intel/28fxxx/current/include/flash_28fxxx.inl
A packages/devs/flash/intel/28fxxx/current/include/flash_28fxxx_parts.inl
M packages/devs/flash/mn10300/stb/current/ChangeLog
M packages/devs/flash/mn10300/stb/current/src/mn10300_stb_flash.c
M packages/devs/usb/sa11x0/current/ChangeLog
M packages/devs/usb/sa11x0/current/src/usbs_sa11x0.c
M packages/hal/arm/iq80310/current/ChangeLog
M packages/hal/arm/iq80310/current/include/hal_platform_setup.h
M packages/hal/common/current/ChangeLog
M packages/hal/common/current/cdl/hal.cdl
M packages/hal/common/current/include/drv_api.h
M packages/hal/common/current/src/drv_api.c
A packages/hal/common/current/tests/vaargs.c
M packages/hal/mips/rm7000/ocelot/current/ChangeLog
M packages/hal/mips/rm7000/ocelot/current/cdl/hal_mips_rm7000_ocelot.cdl
M packages/hal/mips/rm7000/ocelot/current/include/plf_intr.h
M packages/hal/mips/rm7000/var/current/ChangeLog
M packages/hal/mips/rm7000/var/current/include/var_intr.h
M packages/hal/mn10300/stb/current/ChangeLog
M packages/hal/mn10300/stb/current/cdl/hal_mn10300_am33_stb.cdl
M packages/hal/mn10300/stb/current/include/plf_intr.h
A packages/hal/mn10300/stb/current/include/plf_io.h
M packages/hal/mn10300/stb/current/include/plf_stub.h
M packages/hal/mn10300/stb/current/include/pkgconf/mlt_mn10300_am33_stb_rom.h
M packages/hal/mn10300/stb/current/include/pkgconf/mlt_mn10300_am33_stb_rom.mlt
A packages/hal/mn10300/stb/current/include/pkgconf/mlt_mn10300_am33_stb_sram1.h
A packages/hal/mn10300/stb/current/include/pkgconf/mlt_mn10300_am33_stb_sram1.ldi
A packages/hal/mn10300/stb/current/include/pkgconf/mlt_mn10300_am33_stb_sram1.mlt
A packages/hal/mn10300/stb/current/misc/redboot_RAM.ecm
A packages/hal/mn10300/stb/current/misc/redboot_ROM.ecm
A packages/hal/mn10300/stb/current/misc/redboot_SRAM1.ecm
M packages/hal/mn10300/stb/current/src/plf_misc.c
M packages/hal/mn10300/stb/current/src/plf_stub.c
A packages/hal/mn10300/stb/current/src/ser_stb.c
M packages/hal/mn10300/stdeval1/current/ChangeLog
A packages/hal/mn10300/stdeval1/current/include/plf_io.h
M packages/hal/sh/cq7750/current/ChangeLog
M packages/hal/sh/cq7750/current/cdl/hal_sh_sh7750_cq7750.cdl
A packages/hal/sh/cq7750/current/misc/redboot_ROM.ecm
M packages/hal/sh/dreamcast/current/ChangeLog
M packages/hal/sh/dreamcast/current/cdl/hal_sh_sh7750_dreamcast.cdl
M packages/hal/sh/sh4/current/ChangeLog
M packages/hal/sh/sh4/current/include/mod_7750.h
M packages/infra/current/ChangeLog
M packages/infra/current/include/cyg_type.h
M packages/infra/current/src/diag.cxx
M packages/infra/current/src/tcdiag.cxx
M packages/io/eth/current/ChangeLog
M packages/io/eth/current/src/net/eth_drv.c
M packages/io/eth/current/src/stand_alone/eth_drv.c
M packages/io/flash/current/ChangeLog
M packages/io/flash/current/cdl/io_flash.cdl
M packages/io/flash/current/include/flash.h
M packages/io/flash/current/src/flash.c
M packages/io/usb/slave/current/ChangeLog
M packages/io/usb/slave/current/include/usbs.h
M packages/isoinfra/current/ChangeLog
M packages/isoinfra/current/cdl/isoinfra.cdl
M packages/isoinfra/current/include/time.h
M packages/isoinfra/current/include/sys/types.h
M packages/kernel/current/ChangeLog
M packages/kernel/current/cdl/instrument.cdl
M packages/kernel/current/cdl/kernel.cdl
M packages/kernel/current/cdl/scheduler.cdl
M packages/kernel/current/include/bitmap.hxx
M packages/kernel/current/include/instrmnt.h
M packages/kernel/current/include/intr.hxx
M packages/kernel/current/include/kapi.h
M packages/kernel/current/include/kapidata.h
M packages/kernel/current/include/mlqueue.hxx
M packages/kernel/current/include/mutex.hxx
M packages/kernel/current/include/sched.hxx
M packages/kernel/current/include/sched.inl
A packages/kernel/current/include/smp.hxx
M packages/kernel/current/include/thread.inl
M packages/kernel/current/include/test/stackmon.h
M packages/kernel/current/src/common/kapi.cxx
M packages/kernel/current/src/common/thread.cxx
M packages/kernel/current/src/instrmnt/meminst.cxx
M packages/kernel/current/src/intr/intr.cxx
M packages/kernel/current/src/sched/bitmap.cxx
M packages/kernel/current/src/sched/mlqueue.cxx
M packages/kernel/current/src/sched/sched.cxx
M packages/kernel/current/src/sync/mutex.cxx
M packages/kernel/current/tests/mutex2.cxx
M packages/kernel/current/tests/mutex3.cxx
M packages/kernel/current/tests/release.cxx
A packages/kernel/current/tests/smp.cxx
M packages/kernel/current/tests/sync3.cxx
M packages/kernel/current/tests/thread2.cxx
M packages/kernel/current/tests/tm_basic.cxx
M packages/language/c/libc/stdio/current/ChangeLog
M packages/language/c/libc/stdio/current/include/streambuf.inl
M packages/language/c/libc/stdio/current/src/common/stream.cxx
M packages/language/c/libc/stdio/current/src/output/vfnprintf.cxx
M packages/language/c/libc/string/current/ChangeLog
M packages/language/c/libc/string/current/src/memchr.cxx
M packages/language/c/libc/string/current/src/memcmp.cxx
M packages/language/c/libc/string/current/src/memmove.cxx
M packages/language/c/libc/string/current/src/strncat.cxx
M packages/language/c/libc/string/current/src/strncmp.cxx
M packages/language/c/libc/string/current/src/strncpy.cxx
M packages/language/c/libc/string/current/src/strxfrm.cxx
M packages/redboot/current/ChangeLog
M packages/redboot/current/cdl/redboot.cdl
M packages/redboot/current/src/flash.c
M packages/redboot/current/src/io.c
M packages/redboot/current/src/version.c
M packages/redboot/current/src/fs/disk.c
M packages/redboot/current/src/net/net_io.c