* libmisc/dummy/dummy.c, sapi/include/confdefs.h: Add checks for
application configuration errors. If any POSIX objects or a POSIX
init thread is configured without POSIX being configure, then error
out. Similarly for ITRON. Add
CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER configuration
parameter so the application has to explicitly configure the Clock
driver in or out if the Timer driver is not configured. Also verify
RTEMS was built for multiprocessing, if the user tries to configure a
multiprocessing application.
* libmisc/shell/shell.c, libmisc/shell/shell.h,
libmisc/shell/shell_script.c: Add support to echo the commands to
stdout. This is useful with the -v script option to show commands
as the run. Also added support to chdir to the directory the task
invoking the script is in.
* libmisc/shell/extern-cp.h, libmisc/shell/main_cp.c,
libmisc/shell/utils-cp.c: Update tro the latest FreeBSD version.
* libcsupport/Makefile.am, libcsupport/src/fchown.c: Add fchown
support.
* libmisc/shell/shell.c: Copy the cmd line to a buffer to split
into argv parts. Was using the command line history buffer so the
history was being corrupted.
* libfs/src/nfsclient/src/librtemsNfs.h,
libfs/src/nfsclient/src/nfs.c: Remove CEXP references. CEXP is
external to RTEMS and even if in the cpukit it should not cross
reference in this way.
* libmisc/shell/shell_getchar.c: New. Taken from the monitor.
* libmisc/Makefile.am: Add shell_getchar.c and clean up a little
in the shell area.
* libmisc/shell/shell.c, libmisc/shell/shell.h: Add line editting
support.
* sapi/include/confdefs.h: Do not reserve 2 * minimum stack size
for the ITRON initialization tasks ALL the time.
Do not reserve memory for the object name table since it does not
exist any longer.
* sapi/include/rtems/sptables.h: Fix typo.
* rtems/Makefile.am, rtems/include/rtems/rtems/clock.h,
rtems/src/clockget.c:
* rtems/src/clockgetsecondssinceepoch.c,
rtems/src/clockgettickspersecond.c,
rtems/src/clockgettickssinceboot.c, rtems/src/clockgettod.c,
rtems/src/clockgettodtimeval.c: New files.
Refactored rtems_clock_get into 5 methods which are single purpose
and more strongly typed. They are:
rtems_clock_get_tod - Get TOD in Classic API structure
rtems_clock_get_tod_timeval - Get TOD in struct timeval
rtems_clock_get_seconds_since_epoch - Get TOD as seconds since 1988
rtems_clock_get_ticks_since_boot - Get ticks since boot
rtems_clock_get_ticks_per_second - Get ticks per second
* libmisc/shell/main_cp.c, libmisc/shell/main_netstats.c,
libmisc/shell/shell_script.c: Add memset() of getopt_data to
ensure it is zeroed out each time we use getopt_r().
* libmisc/shell/shell.c: Do not echo commands if input is not a tty.
This makes the scripts behave more like UNIX scripts.
* itron/include/rtems/itron/task.h, itron/src/cre_tsk.c,
posix/src/pthreadcreate.c, rtems/src/taskcreate.c,
rtems/src/taskdelete.c, rtems/src/timerserver.c,
score/src/threadclose.c, score/src/threadcreateidle.c,
score/src/threadinitialize.c: Switch task create and delete
operations to using API Allocator Mutex. This moves almost all uses
of the RTEMS Workspace from dispatching disabled to mutex protected
which should improve deterministic behavior. The implementation was
carefully done to allow task create and delete extensions to invoke
more services. In particular, a task delete extension should be able
to do mutex and file operations.
* libmisc/shell/cat_file.c, libmisc/shell/main_alias.c,
libmisc/shell/main_blksync.c, libmisc/shell/main_cat.c,
libmisc/shell/main_chdir.c, libmisc/shell/main_chmod.c,
libmisc/shell/main_chroot.c, libmisc/shell/main_cpuuse.c,
libmisc/shell/main_date.c, libmisc/shell/main_help.c,
libmisc/shell/main_id.c, libmisc/shell/main_logoff.c,
libmisc/shell/main_ls.c, libmisc/shell/main_mallocinfo.c,
libmisc/shell/main_mdump.c, libmisc/shell/main_medit.c,
libmisc/shell/main_mfill.c, libmisc/shell/main_mkdir.c,
libmisc/shell/main_mmove.c, libmisc/shell/main_mount.c,
libmisc/shell/main_mount_nfs.c, libmisc/shell/main_msdosfmt.c,
libmisc/shell/main_mwdump.c, libmisc/shell/main_perioduse.c,
libmisc/shell/main_pwd.c, libmisc/shell/main_rm.c,
libmisc/shell/main_rmdir.c, libmisc/shell/main_stackuse.c,
libmisc/shell/main_tty.c, libmisc/shell/main_umask.c,
libmisc/shell/main_unmount.c, libmisc/shell/main_whoami.c,
libmisc/shell/shell.h: Clean up done while writing documentation.
Some command improvements such as date now allows setting of the
current TOD. Often commands did not use stdout/stderr per
expectations and did not return -1 on an error.
* configure.ac, libfs/Makefile.am: Add nfsclient to cpukit. Although
the use of RPC/XDR could be an issue, the code does build multilib
across all targets. There are a few remaining warnings to deal with.
* libfs/src/nfsclient/.cvsignore, libfs/src/nfsclient/ChangeLog.slac,
libfs/src/nfsclient/LICENSE, libfs/src/nfsclient/Makefile.am,
libfs/src/nfsclient/README, libfs/src/nfsclient/preinstall.am,
libfs/src/nfsclient/rfc1094.txt,
libfs/src/nfsclient/proto/mount_prot.h,
libfs/src/nfsclient/proto/mount_prot.x,
libfs/src/nfsclient/proto/mount_prot_xdr.c,
libfs/src/nfsclient/proto/nfs_prot.h,
libfs/src/nfsclient/proto/nfs_prot.x,
libfs/src/nfsclient/proto/nfs_prot_xdr.c,
libfs/src/nfsclient/src/cexphelp.c,
libfs/src/nfsclient/src/dirutils.c,
libfs/src/nfsclient/src/librtemsNfs.h, libfs/src/nfsclient/src/nfs.c,
libfs/src/nfsclient/src/nfs.modini.c,
libfs/src/nfsclient/src/nfsTest.c, libfs/src/nfsclient/src/rpcio.c,
libfs/src/nfsclient/src/rpcio.h,
libfs/src/nfsclient/src/rpcio.modini.c,
libfs/src/nfsclient/src/sock_mbuf.c,
libfs/src/nfsclient/src/xdr_mbuf.c: New files.
* sapi/include/rtems/config.h, sapi/include/rtems/sptables.h: Add
missing field to default multiprocessing configuration table. Also
document fields in Doxygen format.
* libmisc/Makefile.am, libmisc/shell/main_wkspaceinfo.c,
libmisc/shell/shell.c, libmisc/shell/shellconfig.h: Add route and
ifconfig commands. The code for these was previously in the
networking guide. Disable NFS filesystem mount until that code is in
cpukit.
* libmisc/shell/main_ifconfig.c, libmisc/shell/main_route.c: New files.
* posix/src/mqueueunlink.c, score/Makefile.am,
score/include/rtems/score/object.h,
score/inline/rtems/score/object.inl: Enhance
_Objects_Namespace_remove() to handle freeing object names which are
strings. All changed _Objects_Close() to call
_Objects_Namespace_remove(). The resulting code was then moved from
inline routines to function calls.
* score/src/objectclose.c, score/src/objectnamespaceremove.c: New files.
* libcsupport/src/printk.c: Added width and padding for %s.
* libmisc/cpuuse/cpuusagereport.c: Support object names that are
strings longer than 4 chanracters.
PR 1277/networking
* libnetworking/netinet/in_cksum_i386.h: Use q instead of r in
constraint for assembly language. This restricts the register choice
to the a-d registers.
* libnetworking/kern/uipc_socket2.c,
libnetworking/netinet/tcp_usrreq.c,
libnetworking/netinet/udp_usrreq.c,
libnetworking/rtems/rtems_bsdnet.h, libnetworking/rtems/rtems_glue.c:
Add configuration parameters for network stack efficiency multiplier
and default socket buffer sizes. Change default multiplier from 8 to
2 to match GNU/Linux. This has no impact on performance on the BSPs
tested.
* rtems/src/rtemsobjectsetname.c, score/src/objectgetinfoid.c,
score/src/objectgetnameasstring.c, score/src/objectidtoname.c: Handle
Object Id of SELF.