| Commit message (Collapse) | Author | Files | Lines |
|
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
|
|
- Add 'rtems_shell_init_environment()' so a user can create the
shell environment without needing to run a shell.
- Move 'rtems_shell_lookup_topic', 'rtems_shell_can_see_cmd',
and 'rtems_shell_execute_cmd' from the internal interface to
the public interface.
Closes #3096.
|
|
|
|
close #2030
|
|
Use this information to determine if a command is visible to the current
user and if the current user is allowed to execute this command.
|
|
Use the UID and GID of the executing user for the real and effective UID
and GID of the shell task in case no login check is present. This
prevents privilege escalation via shell scripts.
|
|
Remove rtems_current_shell_env as this is dangerous because
the env can be NULL if used outside of a valid shell with the
POSIX key to an env set up.
Clean up the usage of rtems_current_shell_env.
|
|
Provide rtems_global_shell_env as a public read-only variable for
backward compatibility.
|
|
Use posix keys for current shell environment instead of task variables. With
this patch the shell needs one posix-key and one posix-key-value-pair
configured.
Update documentation for the shell.
Adapt samples/fileio:
- Add necessary objects.
- Add login function and custom device name for better testing of the shell.
|
|
|
|
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
* libmisc/shell/shell.h: Add rtems_shell_main_monitor.
* libmisc/shell/cmds.c: Make rtems_shell_main_monitor non-static.
|
|
* libmisc/shell/cat_file.c: #include <rtems/shell.h>.
* libmisc/shell/filemode.c: #include "internal.h".
* libmisc/shell/shell.h: Declare functions "extern".
|
|
* libmisc/shell/shell-wait-for-input.c: New file.
* libmisc/Makefile.am: Reflect change above.
* libmisc/shell/shell.h: Declare rtems_shell_wait_for_input().
|
|
* libmisc/Makefile.am, libmisc/shell/main_chmod.c,
libmisc/shell/main_mdump.c, libmisc/shell/main_medit.c,
libmisc/shell/main_mfill.c, libmisc/shell/main_mmove.c,
libmisc/shell/main_msdosfmt.c, libmisc/shell/main_mwdump.c,
libmisc/shell/main_sleep.c, libmisc/shell/main_umask.c,
libmisc/shell/shell.h, libmisc/shell/shell_script.c,
libmisc/stringto/stringto_template.h: Convert all shell code to use
stringto.h mehods with better error checking.
* libmisc/shell/str2int.c: Removed.
|
|
* libblock/src/bdbuf.c: Update comments.
* libblock/src/bdpart.c, libblock/src/ide_part_table.c: Get the
device from the rdev field of the stat buf.
* libcsupport/include/rtems/libio.h: Add a path length to evalpath
handler. Add parent locations to rmmod and unlink handlers.
* libcsupport/include/rtems/libio_.h: Add a path length to
rtems_filesystem_evaluate_path. Add
rtems_filesystem_evaluate_relative_path, rtems_filesystem_dirname,
and rtems_filesystem_prefix_separators. Remove
rtems_filesystem_evaluate_parent.
* libcsupport/src/base_fs.c, libcsupport/src/chdir.c,
libcsupport/src/chmod.c, libcsupport/src/chown.c,
libcsupport/src/chroot.c, libcsupport/src/fchdir.c,
libcsupport/src/link.c, libcsupport/src/mount.c,
libcsupport/src/open.c, libcsupport/src/privateenv.c,
libcsupport/src/readlink.c, libcsupport/src/unmount.c,
libcsupport/src/utime.c, libcsupport/src/unmount.c,
libcsupport/src/utime.c, libfs/src/devfs/devfs.h,
libfs/src/devfs/devfs_eval.c, libfs/src/devfs/devstat.c,
libfs/src/dosfs/msdos_create.c, libfs/src/dosfs/msdos_misc.c,
libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_eval.c,
libfs/src/imfs/imfs_load_tar.c, libfs/src/imfs/ioman.c,
libfs/src/pipe/pipe.c, libmisc/fsmount/fsmount.c,
libnetworking/lib/ftpfs.c: Add the length parameter to the eval
call.
* libcsupport/src/eval.c: Add rtems_filesystem_prefix_separators,
rtems_filesystem_dirname,
rtems_filesystem_evaluate_relative_path. Add the length parameter
to the eval call.
* libcsupport/src/rmdir.c: Find the parent pathloc then the node
pathloc from that node. Remove the call to find the parent given
the node pathloc.
* libcsupport/src/stat.c: Add the length parameter to the eval
call. Set the device into the rdev field.
* libcsupport/src/unlink.c: Find the parent pathloc then the node
pathloc from that node. Remove the call to find the parent given
the node pathloc.
* libfs/src/dosfs/fat.c, libfs/src/dosfs/msdos_format.c: Get the
disk device number from the stat rdev field.
* libfs/src/dosfs/msdos.h: Add the length parameter to the eval
call. Add the parent pathloc to the rmnod handler.
* libfs/src/dosfs/msdos_dir.c: Add the parent pathloc to the rmnod
handler.
* libfs/src/dosfs/msdos_eval.c: Add the length parameter to the
eval and token call.
* libfs/src/imfs/imfs_directory.c: Add the parent pathloc to the
rmnod handler.
* libfs/src/imfs/imfs_fchmod.c: Do not test the mode flags for
only the allowed flags. Add the missing flags spec'ed in the POSIX
standard.
* libfs/src/imfs/imfs_fsunmount.c, libfs/src/imfs/imfs_rmnod.c,
libfs/src/imfs/imfs_unlink.c, libfs/src/imfs/memfile.c: Add the
parent node. Currently ignored in the IMFS.
* libfs/src/imfs/imfs_stat.c: Return the device number in the rdev
field.
* libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/imfs_symlink.c : Add
the length parameter to the token call.
* libfs/src/nfsclient/src/nfs.c: Add the length parameter to the
eval call and parent node to the rmnod and unlink command.
* libmisc/shell/internal.h: Remove the libc mounter decl to make
public.
* libmisc/shell/main_mount.c: Add support for hooking external
mount support for new file systems.
* libmisc/shell/shell.h: Add helper functions for the mount
command.
|
|
|
|
* Makefile.am, preinstall.am, libmisc/Makefile.am,
libmisc/shell/shell.c, libmisc/shell/shell.h, telnetd/check_passwd.c,
telnetd/telnetd.c, telnetd/telnetd.h:
Generalized login check.
* libmisc/shell/login.h, libmisc/shell/login_check.c,
libmisc/shell/login_prompt.c: New files.
* libmisc/stackchk/check.c: Changed format for blown stack message.
* libcsupport/src/libio_sockets.c: Removed superfluous cast.
* libnetworking/rtems/ftpfs.h: Documentation.
|
|
oparations table for mount command is now const.
* libnetworking/lib/ftpfs.c, libnetworking/rtems/ftpfs.h: Rewrite of
the FTP file system which implements now the trivial command state
machines of RFC 959. For the data transfer passive (= default) and
active (= fallback) modes are now supported.
* libmisc/shell/main_mount_ftp.c: Update for FTP file system changes.
|
|
boolean values from 'int' to 'bool'. Added option 'login' to enable or
disable a login prompt. Changed intialization of global shell
environment to static initialization. Changed stack size type to
'size_t' conforming to classic API.
* libmisc/shell/shellconfig.h: Fixed some typos.
|
|
* libmisc/serdbg/termios_printk.c, libmisc/serdbg/termios_printk.h:
Fixed incompatible return value.
* libmisc/cpuuse/cpuusagereport.c: Changed output format.
* libmisc/Makefile.am, libmisc/monitor/mon-editor.c: New file.
* libmisc/capture/capture-cli.c, libmisc/monitor/mon-command.c,
libmisc/monitor/mon-monitor.c, libmisc/monitor/mon-object.c,
libmisc/monitor/mon-prmisc.c, libmisc/monitor/mon-symbols.c,
libmisc/monitor/monitor.h, libmisc/shell/cat_file.c,
libmisc/shell/cmds.c, libmisc/shell/internal.h,
libmisc/shell/main_help.c, libmisc/shell/shell.c,
libmisc/shell/shell.h, libmisc/shell/shell_cmdset.c,
libmisc/shell/shell_getchar.c, libmisc/shell/str2int.c: Various global
data is now read only. Added 'const' qualifier to many pointer
parameters. It is no longer possible to remove monitor commands.
Moved monitor line editor into a separate file to avoid unnecessary
dependencies.
|
|
|
|
* libmisc/Makefile.am, libmisc/shell/shell.c, libmisc/shell/shell.h:
Split out rtems_shell_get_prompt() so it can be overridden by the
user.
* libmisc/shell/shell_getprompt.c: New file.
|
|
* libmisc/shell/shell.c, libmisc/shell/shell.h: New argument sequence
for rtems_shell_init(). This makes it possible to run the shell
forever or invoke it from a program as a subroutine, have a user
enter commands, and wait for it to exit.
|
|
* 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.
|
|
* 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.
|
|
* libmisc/Makefile.am, libmisc/shell/main_cp.c,
libmisc/shell/main_cpuuse.c, libmisc/shell/main_date.c,
libmisc/shell/main_mallocinfo.c, libmisc/shell/main_netstats.c,
libmisc/shell/main_perioduse.c, libmisc/shell/main_stackuse.c,
libmisc/shell/main_wkspaceinfo.c, libmisc/shell/print_heapinfo.c,
libmisc/shell/shell.c, libmisc/shell/shell.h,
libmisc/shell/shell_makeargs.c, libmisc/shell/shellconfig.c,
libmisc/shell/shellconfig.h, libmisc/shell/write_file.c: Add initial
capability to automatically execute a script from the filesystem. Add
echo command from NetBSD and sleep command.
* libmisc/shell/main_echo.c, libmisc/shell/main_sleep.c,
libmisc/shell/shell_script.c: New files.
|
|
* 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: fixed bug that always enabled strict order
mutexes.
* score/inline/rtems/score/coremutex.inl: Fixed coding standard.
* score/src/coremutex.c: Add the holder's thread to the lock_mutex
list if the mutex is initialised locked.
* libnetworking/rtems/rtems_glue.c: Changed semaphore error
message to show the error is an rtems-net error.
* libmisc/monitor/mon-network.c: Removed warnings.
* telnetd/icmds.c: Changed shell_* to rtems_shell_*.
* score/Makefile.am: Fixed typo that stopped 'make tags' working.
* libmisc/shell/err.c, libmisc/shell/err.h, libmisc/shell/errx.c,
libmisc/shell/extern-cp.h, libmisc/shell/fts.c,
libmisc/shell/fts.h, libmisc/shell/main_cp.c,
libmisc/shell/utils-cp.c, libmisc/shell/verr.c,
libmisc/shell/verrx.c, libmisc/shell/vwarn.c,
libmisc/shell/vwarnx.c, libmisc/shell/warn.c,
libmisc/shell/warnx.c: New. Ported from BSD.
* libmisc/shell/shellconfig.h: Add the cp command.
* libmisc/Makefile.am: Add the new files to the shell.
* libmisc/shell/shell.c, libmisc/shell/shell.h: Add scripting
support.
* libblock/src/flashdisk.c: Fixed disk drive count size setting
bug.
|
|
* libcsupport/Makefile.am, libcsupport/include/rtems/malloc.h,
libcsupport/src/free.c, libcsupport/src/malloc.c,
libcsupport/src/malloc_p.h,
libcsupport/src/malloc_report_statistics_plugin.c,
libmisc/shell/shell.c, libmisc/shell/shell.h,
score/src/objectinitializeinformation.c: Add posix_memalign. Split
out management of deferred frees to subroutines.
* libcsupport/src/malloc_deferred.c, libcsupport/src/posix_memalign.c: New files.
|
|
* libnetworking/rtems/tftp.h: Provide a decl to the TFTP file
system opts table.
* libnetworking/rtems/ftpfs.h: Provide a decl to the FTP file
system opts table.
* libmisc/Makefile.am: Add the mount command and supporting files.
* libmisc/preinstall.am: Rebuilt.
* libmisc/shell/cat_file.c, libmisc/shell/cmds.c,
libmisc/shell/main_alias.c, libmisc/shell/main_cat.c,
libmisc/shell/main_cd.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_dir.c, libmisc/shell/main_exit.c,
libmisc/shell/main_help.c, libmisc/shell/main_id.c,
libmisc/shell/main_logoff.c, libmisc/shell/main_ls.c,
libmisc/shell/main_mallocdump.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_mwdump.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_whoami.c,
libmisc/shell/shell.c, libmisc/shell/shell_cmdset.c,
libmisc/shell/shell_makeargs.c, libmisc/shell/str2int.c,
libmisc/shell/write_file.c: Move all shell_* types, variables and
functions to rtems_shell_* to avoid namespace clashes with
applications. The is an RTEMS shell after all.
* libmisc/shell/shell.h, libmisc/shell/internal.h,
libmisc/shell/shellconfig.h: Move all shell_* types, variables and
functions to rtems_shell_* to avoid namespace clashes with
applications. Add the mount command supporting types.
* libmisc/shell/main_mount.c, libmisc/shell/main_mount_ftp.c,
libmisc/shell/main_mount_msdos.c, libmisc/shell/main_mount_nfs.c,
libmisc/shell/main_mount_tftp.c: New.
|
|
* libmisc/Makefile.am, libmisc/shell/cmd_help.c, libmisc/shell/cmds.c,
libmisc/shell/internal.h, libmisc/shell/shell.c,
libmisc/shell/shell.h, libmisc/shell/shellconfig.h: Command set
processing now separated from main command loop. Addition of user
commands and aliases tested. Monitor registration now explicit.
* libmisc/shell/shell_cmdset.c, libmisc/shell/shell_makeargs.c,
libmisc/shell/write_file.c: New files.
|
|
* ChangeLog, preinstall.am, libmisc/Makefile.am, libmisc/shell/cmds.c,
libmisc/shell/shell.c, libmisc/shell/shell.h: Split shell commands
into multiple files and add initial stages of command configuration.
This seems to work but the monitor commands need to be integrated
this way and the ability to configure user commands needs to be
tested.
* libmisc/shell/cat_file.c, libmisc/shell/cmd_alias.c,
libmisc/shell/cmd_cat.c, libmisc/shell/cmd_cd.c,
libmisc/shell/cmd_chdir.c, libmisc/shell/cmd_chmod.c,
libmisc/shell/cmd_chroot.c, libmisc/shell/cmd_date.c,
libmisc/shell/cmd_dir.c, libmisc/shell/cmd_exit.c,
libmisc/shell/cmd_help.c, libmisc/shell/cmd_id.c,
libmisc/shell/cmd_logoff.c, libmisc/shell/cmd_ls.c,
libmisc/shell/cmd_mallocdump.c, libmisc/shell/cmd_mdump.c,
libmisc/shell/cmd_medit.c, libmisc/shell/cmd_mfill.c,
libmisc/shell/cmd_mkdir.c, libmisc/shell/cmd_mmove.c,
libmisc/shell/cmd_mwdump.c, libmisc/shell/cmd_pwd.c,
libmisc/shell/cmd_rm.c, libmisc/shell/cmd_rmdir.c,
libmisc/shell/cmd_tty.c, libmisc/shell/cmd_umask.c,
libmisc/shell/cmd_whoami.c, libmisc/shell/internal.h,
libmisc/shell/shellconfig.c, libmisc/shell/shellconfig.h,
libmisc/shell/str2int.c: New files.
|
|
* libmisc/shell/shell.h: Added comments for the parameters to the
shell_init function.
* libmisc/shell/shell.c: Only set cflags if tcflags is
non-zero. This means the shell can use the current cflags settings
and the application does not need to know the baudrate etc.
* libmisc/capture/capture.h: Fix the comment.
|
|
* libmisc/shell/shell.c, libmisc/shell/shell.h: Much cleanup but much
of the focus was on the beginning stages of making the login checker
pluggable just like the shell.
|
|
* libmisc/capture/capture-cli.h, libmisc/capture/capture.h,
libmisc/monitor/monitor.h, libmisc/rtmonuse/rtmonuse.h,
libmisc/shell/shell.h: Partial doxygenification.
* libmisc/capture/capture.h: Use INT32_C for constants.
|
|
* libmisc/capture/capture-cli.c, libmisc/cpuuse/cpuuse.c,
libmisc/dumpbuf/dumpbuf.c, libmisc/fsmount/fsmount.c,
libmisc/monitor/mon-command.c, libmisc/monitor/mon-config.c,
libmisc/monitor/mon-dname.c, libmisc/monitor/mon-driver.c,
libmisc/monitor/mon-extension.c, libmisc/monitor/mon-itask.c,
libmisc/monitor/mon-monitor.c, libmisc/monitor/mon-mpci.c,
libmisc/monitor/mon-object.c, libmisc/monitor/mon-prmisc.c,
libmisc/monitor/mon-queue.c, libmisc/monitor/mon-symbols.c,
libmisc/monitor/mon-task.c, libmisc/rtmonuse/rtmonuse.c,
libmisc/shell/cmds.c, libmisc/shell/shell.c, libmisc/shell/shell.h,
libmisc/stackchk/check.c, libmisc/untar/untar.c: Use
fprintf(stdout,...) instead of printf.
|
|
|
|
* libmisc/capture/capture-cli.c, libmisc/capture/capture.c,
libmisc/capture/capture.h, libmisc/cpuuse/cpuuse.c,
libmisc/devnull/devnull.c, libmisc/fsmount/fsmount.h,
libmisc/monitor/mon-config.c, libmisc/monitor/mon-dname.c,
libmisc/monitor/mon-driver.c, libmisc/monitor/mon-extension.c,
libmisc/monitor/mon-itask.c, libmisc/monitor/mon-monitor.c,
libmisc/monitor/mon-mpci.c, libmisc/monitor/mon-object.c,
libmisc/monitor/mon-prmisc.c, libmisc/monitor/mon-queue.c,
libmisc/monitor/mon-server.c, libmisc/monitor/mon-symbols.c,
libmisc/monitor/monitor.h, libmisc/monitor/symbols.h,
libmisc/mw-fb/mw_uid.c, libmisc/rtmonuse/rtmonuse.c,
libmisc/serdbg/serdbg.h, libmisc/serdbg/serdbgio.c,
libmisc/serdbg/termios_printk.c, libmisc/serdbg/termios_printk.h,
libmisc/shell/shell.c, libmisc/shell/shell.h, libmisc/stackchk/check.c,
libmisc/stackchk/internal.h: Convert to using c99 fixed size types.
|
|
* shell/Makefile.am, shell/README, shell/cmds.c, shell/shell.c,
shell/shell.h: Updates.
|
|
* monitor/mon-prmisc.c: Correct print line.
* shell/Makefile.am: Added new file telnetd.c.
* shell/telnetd.c, shell/telnetd.h, shell/pty.c: New files.
* shell/shell.c, shell/cmds.c, shell/shell.h: Numerous improvments:
- The shell_init has a new parameter 'forever' because in
/dev/console you need that this process runs forever but in
tcp/ip not. (respawn?)
- A new task for every session opened trought tcp/ip telnet client.
(the chargen,daytime and more are possible of implementation but
I ask me if they are necesary)
- Exit from the session delete the task and when the client fails too.
- More cmds have been implemented. (very reduced version of these)
umask, chmod, id, whoami, rm, cat, ...
- A reduced line edit has been implemented.
Ctrl-C abort the input,
Ctrl-d in the first position gives EOF (logout).
'\b' and DEL makes the rubout operation.
I think that readline() for every session spents a lot of resources.
|
|
* Added initial shell functionality.
* Makefile.am, configure.in, wrapup/Makefile.am:
* shell/.cvsignore, shell/Makefile.am, shell/README,
shell/cmds.c, shell/shell.c, shell/shell.h: New files.
|