* libnetworking/kern/kern_sysctl.c: Change int to int32_t.
* libnetworking/net/if_loop.c: Add cast to long.
These plus a patch to machine/param.h let the h8300 build multilib.
* libnetworking/machine/in_cksum.h: Replaced PPC and
i386 assembly algorithms (must not assume carry bit is preserved
across multiple asms). Added packet header as a 'm' input
operand for all CPU variants. Added carry bit to clobber list.
PR 1124/rtems
* score/include/rtems/score/threadq.h, score/src/coremutexseize.c,
score/src/coremutexsurrender.c, score/src/threadqenqueue.c,
score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c:
The placement of the changing a thread's priority when using priority
ceiling should be on the successful transfer of the mutex -- not when
the thread tries to acquire. Plus the lack of a dispatch disable
point lead to the potential for a thread timing out and already
having inherited the ceiling priority.
Victor V. Vengerov <Victor.Vengerov@oktetlabs.ru>
* score/include/rtems/score/mpci.h,
score/include/rtems/score/threadmp.h,
score/inline/rtems/score/threadmp.inl,
score/macros/rtems/score/threadmp.inl, score/src/threadmp.c,
score/src/threadqenqueue.c: Victor spotted the problem that
_MPCI_Receive_server_tcb and _Thread_MP_Receive were duplicate
variables and needed to be set to the same value. I took that
idea and just removed _Thread_MP_Receive. All uses are now
_MPCI_Receive_server_tcb.
PR 761/rtems
* score/src/threadhandler.c: Add volatile cast so test is weak function
is present will do something. Otherwise, it can be assume by gcc to
always be a true condition.
PR 830/filesystem
* libcsupport/src/termios.c: termios ioctl(FIONREAD) reported wrong
number of characters. So add chars in low-level/raw buffer to total
count.
PR 850/rtems
* score/src/watchdogtickle.c: A Watchdog (used to timeout an event)
with a delay of 1 sometimes does not seem to timeout. The problem
occurs, because for whatever reason when the watchdog tickle function
executes, the watchdog->delta_interval is 0. it is then decremented
before being tested, becomes huge and so doesnt time out. It is
thought there is a race condition where the watchdog->delta_interval
is calculated by reference to a head (also with a delay of 1). But
before it can be added after the head, the head is removed, so the
new head now has a delay of 0.
PR 852/filesystem
* libblock/src/bdbuf.c: Increase performance of MSDOS file accesses by
using a simple read-ahead and write-combining scheme. Improvement is
dramatic.
PR 866/rtems
* score/include/rtems/system.h, score/include/rtems/score/isr.h,
score/inline/rtems/score/thread.inl,
score/macros/rtems/score/thread.inl: Added memory barriers to enter
and exit of dispatching and interrupt critical sections so GCC will
not optimize and reorder code out of a critical section.
PR 890/networking
* httpd/webs.c: The webservers enters an infinite loop when a POST
request with less data than indicated in the Content-Length header is
received. It also consumes additional heap memory and a file
descriptor for each invalid POST.