* Per PR147 addressed problems when reseting and inserting a timer
into a timer chain that did not honor time passage since the last
time the timer server was scheduled and the new insertion.
* include/rtems/rtems/timer.h, src/timerreset.c, src/timerserver.c,
src/timerserverfireafter.c, src/timerserverfirewhen.c: Broke up
the "reset server" routine into a set of very specific routines
that allowed the server to be unscheduled, timer chains to be
"synchronized" with the current time before inserting a new timer.
* cpu.c: Replace NO_TABLE_MOVE-support by external function
(code moved to libcpu/sparc/tbr/tbr.c).
* cpu.h: Replace NO_TABLE_MOVE-support by external function
(code moved to libcpu/sparc/tbr/tbr.h).
* sparc.h: Add sparc_init_tbr (implemented in libcpu/sparc/tbr/tbr.c).
* PR132 requested some tinkering ot lower memory.
* include/confdefs.h: Lowered footprint of device driver table
and statically configure user extensions. Now if no static
extensions are configured, then the table is not instantiated.
* PR144
* nfs/bootp_subr.c bootpc_init(): Performs a write to memory address
0 when called for the first time. This is done when trying to clear
the variable "dhcp_hostname".
* PR162
* net/if_ppp.c ppp_txdaemon(), net/if_pppvar.h pppstart(): Local
variables must not be used in a device write routines. Now
ppp_softc structure have own character for writing to device
(sc_outchar). I think that converting local variables to static
is not a right solution, because problems will occur in the case
of two or more ppp instances.
* net/ppp_tty.c pppstart(): Type of the ioffset variable must be
u_long, otherwise in the case of the big output packet endless
loop may occur.
* src/bdbuf.c (avl_insert, avl_remove): Reimplemented from scratch
to avoid using GPLed sources in RTEMS core.
* src/bdbuf.c, include/rtems/bdbuf.h: Remove "binary tree"
implementation which was used for debugging only.
* PR158
* libc/rcmd.c, libc/rcmd.c: Enable the rcmd() library call by
commenting out the parts that deal with signals. This enables
RTEMS to 'rsh' command to a server connecting fd to remote stdio.
The 'server-side' parts of this file which deal with authentication
are disabled since they are not needed.
* cpu_asm.S: Fixed a sneaky return from int w/ ints disabled bug.
* rtems/score/cpu.h: Fixed register numbering in comments and made
interrupt enable/disable more robust.
* cpu_asm.S: Added support for the debug exception vector, cleaned
up the exception processing & exception return stuff. Re-added
EPC in the task context structure so the gdb stub will know where
a thread is executing. Should've left it there in the first place...
* idtcpu.h: Added support for the debug exception vector.
* cpu.c: Added ___exceptionTaskStack to hold a pointer to the
stack frame in an interrupt so context switch code can get the
userspace EPC when scheduling.
* rtems/score/cpu.h: Re-added EPC to the task context.
* src/pthreadonce.c: Task is not preemptable while running a
pthread_once init function. This is slightly less heavy handed
than disabling dispatching and seems better than consuming a mutex.
* libc/gxx_wrappers.c: Task is not preemptable while running a
pthread_once init function. This is slightly less heavy handed
than disabling dispatching and seems better than consuming a mutex.
* cpu_asm.S: Fixed exception return address, modified FP context
switch so FPU is properly enabled and also doesn't screw up the
exception FP handling.
* idtcpu.h: Added C0_TAR, the MIPS target address register used for
returning from exceptions.
* iregdef.h: Added R_TAR to the stack frame so the target address
can be saved on a per-exception basis. The new entry is past the
end of the frame gdb cares about, so doesn't affect gdb or cpu.h
stuff.
* rtems/score/cpu.h: added an #ifdef so cpu_asm.S can include it
to obtain FPU defines without systax errors generated by the C
defintions.
* cpu.c: Improved interrupt level saves & restores.
* Submitted by Victor V. Vengerov <vvv@oktet.ru> and merged
into the RTEMS source.
* ChangeLog, Makefile.am, README, configure.ac, include/Makefile.am,
include/rtems/bdbuf.h, include/rtems/blkdev.h, include/rtems/diskdevs.h,
include/rtems/ramdisk.h, include/rtems/.cvsignore, include/.cvsignore,
src/Makefile.am, src/bdbuf.c, src/blkdev.c, src/diskdevs.c,
src/ramdisk.c, src/.cvsignore, .cvsignore: New files.
* net/if_ppp.c, pppd/auth.c, pppd/chat.c, pppd/pppd.h,
pppd/sys-rtems.c: Add server with pap-authorization
capabilities as well as eliminate some warnings.
* net/radix.c: Properly handle fetching the default route when there
is no route. This was a bug in the original FreeBSD code and this
fix is from an updated version of their code.
* cpu_asm.S: Enhanced to save/restore more registers on
exceptions.
* rtems/score/cpu.h (CPU_Interrupt_frame): Enhanced to list every
register individually and document when it is saved.
* idtcpu.h: Added constants for the coprocessor 1 registers
revision and status.
* pppd/rtemspppd.c (rtems_pppd_disconnect): Modified to avoid bringing
the link down too fast.
NOTE: Mike reports successfully running at 56K baud on a direct link.