* shared/interrupts/vectorexceptions.c: New file to decode
exception code and vector appropriate NON-interrupt exception.
* shared/interrupts/Makefile.am: Modified to reflect above.
* libc/libio.c (rtems_libio_allocate): Make sure size and offset
fields are cleared on each file open. Before this field was cleared,
this resulted in the value from the last time that IOP was used
being still in place. Discovered by Andrew Bythell
<abythell@nortelnetworks.com>.
* libc/open.c: Remove redundant setting of iop->offset.
* src/imfs/memfile.c (memfile_open): Did not set iop->size
and thus the value was incorrect. Before this field was cleared,
this resulted in the value from the last time that IOP was used
being still in place. Discovered by Andrew Bythell
<abythell@nortelnetworks.com>.
* psxfile01/test.c, psxfile01/psxfile01.scn : Added test case for
open, write, reopen, append twice from Andrew Bythell
<abythell@nortelnetworks.com> that tripped an initialization
problem in the IMFS.
* lib/rtems_bsdnet_ntp.c: Modifications to make the RTEMS NTP
synchronization a little more robust -- no NTP daemon yet, but
at least it trys a little harder when the primary NTP server is down.
* start.S: Modificatins to preserve the current CWP and adjust the
WIM accordingly. This improves compatibility with the remote
debugger and the mkprom prom-builder.
* include/rtems/libio_.h, libc/chroot.c, libc/privateenv.c:
Private environment and chroot() enhancements and fixes. Comments:
+ privateenv has been modified to let at chroot() to be more
POSIX like Sergei Organov recommended.
+ A task owner lets that rtems_set_private_env() will be
called twice or more times.
+ chroot() can be called without a previous
rtems_set_private_env(); (transpanrently)
+ The second call of rtems_set_private_env() makes a internal
chroot("/") into global imfs_root.
+ chroot() runs like chdir() without a previous chdir("/") with
the global root.
+ The current directory can be in a wrong place like Linux and
many other Unices.
* modem/ppp.c, pppd/main.c, pppd/pppmain.c, pppd/rtems-ppp.c,
pppd/modem_example/modem.c, pppd/modem_example/ppp.c: Translated
Polish comments and other strings into English
* pppd/STATUS: Updated to reflect the changes
* mcp750 directory renamed new_exception processing as it
supports many more CPU models.
* configure.in, src/powerpc/Makefile.am,
src/powerpc/new_exception_processing/Makefile.am,
src/powerpc/new_exception_processing/remdeb_f.x: New files
formerly in mcp750 plus modifications.
* src/powerpc/mcp750/.cvsignore, src/powerpc/mcp750/Makefile.am,
src/powerpc/mcp750/remdeb.h, src/powerpc/mcp750/remdeb_f.x,
src/powerpc/mcp750/remdeb_svc.c, src/powerpc/mcp750/remdeb_xdr.c:
Removed when moved to new_exception_processing.
* configure.in, src/powerpc/Makefile.am,
src/powerpc/new_exception_processing/Makefile.am,
src/powerpc/new_exception_processing/remdeb_f.x: Modified as
part of this effort to add support for the MPC8xx.
* itronmbf01/itronmbf01.scn, itronmbox01/init.c,
itronsem01/itronsem01.scn, itrontime01/init.c: Various
adjustments so test output matches screens more reliably.
* devnull/devnull.c (null_initialize): Added check to
ensure that the driver is only initialized once. Otherwise,
it will abort when the device /dev/null is present.
(null_write): Do not dereference a NULL pointer.
* src/imfs/imfs_debug.c (IMFS_print_jnode): Modified to print
only information that does not vary based on target or memory
configuration. The old prints are still there in case they
are needed in the future to debug. Printing target dependent
addresses makes the test output vary by target unnecessarily.
* mongoosev/duart/mg5uart.c (mg5uart_enable_interrupts): Honor
the other bits set in the Peripheral Function Interrupt Mask
Register when modifying those enabled for the DUART.
* mongoosev/include/mongoose-v.h (MONGOOSEV_ATOMIC_MASK,
MONGOOSEV_PFICR, MONGOOSEV_PFIMR, mongoosev_set_in_pficr,
mongoosev_clear_in_pficr, mongoosev_set_in_pfimr,
mongoosev_clear_in_pfimr, MONGOOSEV_UART_ALL_IRQ_BITS): New macros.
* include/bsp.h (Clear_tm27_intr): Stop the timer and disable
the interrupt. This was not quite right before and we were
getting uncontrolled interrupt nesting in tm27.
* timer/timer.c (Timer_Initialize): Added an extra reset and
changed the ITMR register so we will never get an interrupt.
(Read_timer): Fixed so the timer actually stops before it
is read. Before some times reported were outraguously high.
* start/start.S: Major clean including using stack in linkcmds,
deleting unused code, and zeroing the BSS using the linkcmds
information.
* startup/linkcmds: Put heap in lower memory than workspace
and move _clear_end so both are zeroed.
* cpu_asm.S: Added code to save and restore SR and EPC to
properly support nested interrupts. Note that the ISR
(not RTEMS) enables interrupts allowing the nesting to occur.