Commit Graph
698 Commits
Author SHA1 Message Date
Sebastian Huber cb513f0a5a shell: Improve LSOF output 2014-10-16 13:02:03 +02:00
Joel Sherrill 388a4e439a libmisc/redirector/stdio-redirect.c: Use sleep not usleep and do not overflow 16-bit int 2014-10-13 10:32:39 -05:00
Joel Sherrill 308bb9b83f shell/main_cp.c: Delete unused -rtems_shell_cp_exit() 2014-10-13 10:32:39 -05:00
Sebastian Huber 1c1b08251f shell/lsof: Fix warnings 2014-10-10 10:28:04 +02:00
Chris Johns 56ed56a641 libmisc/shell: Remove the need for -lm when linking from the ping command.
Remove the use of sqrt and so the need to link to -lm.
Clean up some warnings.
2014-10-04 08:55:12 +10:00
Sebastian Huber c040b113da redirector: Rename rtems_stdio_redirect_t
Rename rtems_stdio_redirect_t to rtems_stdio_redirect since the
namespace *_t is reserved by POSIX, see also The Open Group Base
Specifications Issue 6 IEEE Std 1003.1, 2004 Edition, 2.2.2 The Name
Space.
2014-09-17 07:21:35 +02:00
Joel Sherrill 2195a95fb7 Libmisc/Makefile.am: Build with networking disabled 2014-09-16 17:41:43 -05:00
Chris Johns b299960aed shell: Add an md5 hash command for files.
This command lets you get an MD5 hash for a file in an RTEMS file system.
2014-09-16 15:19:58 +10:00
Chris Johns ebf9a057b5 libmisc: Add a stdio redirector helper.
This module makes it easy to redirect and capture stdout, stderr or any
other fd in your application.

The captured data can be sent off board, for example using syslog,
or buffered and displayed in a web page.
2014-09-16 15:19:58 +10:00
Chris Johns a8fa078f1e shell: Add a ping command.
The ping code is taken from a recent FreeBSD release. Some options have been
tested, other not tested or do not work. This could be due to the age of
our TCP/IP stack.

This version of ping will not work if more than 64 file descriptors are
open at once because the select FD size is 64 as set in newlib.
2014-09-16 15:19:58 +10:00
Jennifer Averett 2a86615b98 capture: Add support for variable length records. 2014-09-05 06:50:29 -05:00
Jennifer Averett 133962bf2f capture: Split user extension methods out. 2014-09-05 06:50:29 -05:00
Joel Sherrill 06ac8b7122 shell.c: Add cast to match printf() expectations for width specifier 2014-09-04 09:08:05 -05:00
Jennifer Averett 463de590f0 capture: Fix capture engine to handle new extensions. 2014-07-11 09:48:50 -05:00
Jennifer Averett 1af8634a84 capture: Update comment block style in capture engine.
Doxygen added and comment blocks standardized.
2014-07-11 09:48:35 -05:00
Chris Johns bb581906a6 shell: Add rtems_shell_dup_current_env to get a default env.
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.
2014-06-04 22:32:55 +10:00
Sebastian Huber 5f0ab5cfb5 shell: Make rtems_global_shell_env public
Provide rtems_global_shell_env as a public read-only variable for
backward compatibility.
2014-05-28 17:39:27 +02:00
Sebastian Huber f39f667a69 score: Simplify _Thread_Change_priority()
The function to change a thread priority was too complex.  Simplify it
with a new scheduler operation.  This increases the average case
performance due to the simplified logic.  The interrupt disabled
critical section is a bit prolonged since now the extract, update and
enqueue steps are executed atomically.  This should however not impact
the worst-case interrupt latency since at least for the Deterministic
Priority Scheduler this sequence can be carried out with a wee bit of
instructions and no loops.

Add _Scheduler_Change_priority() to replace the sequence of
  - _Thread_Set_transient(),
  - _Scheduler_Extract(),
  - _Scheduler_Enqueue(), and
  - _Scheduler_Enqueue_first().

Delete STATES_TRANSIENT, _States_Is_transient() and
_Thread_Set_transient() since this state is now superfluous.

With this change it is possible to get rid of the
SCHEDULER_SMP_NODE_IN_THE_AIR state.  This considerably simplifies the
implementation of the new SMP locking protocols.
2014-05-15 12:18:44 +02:00
Sebastian Huber c21c5912a8 score: Add STATES_RESTARTING
Use separate state for thread restart.
2014-05-14 16:49:27 +02:00
Sebastian Huber 0e8d55b0ca monitor: Support STATES_MIGRATING 2014-05-14 16:49:27 +02:00
Sebastian Huber 38b59a6d30 score: Implement forced thread migration
The current implementation of task migration in RTEMS has some
implications with respect to the interrupt latency. It is crucial to
preserve the system invariant that a task can execute on at most one
processor in the system at a time. This is accomplished with a boolean
indicator in the task context. The processor architecture specific
low-level task context switch code will mark that a task context is no
longer executing and waits that the heir context stopped execution
before it restores the heir context and resumes execution of the heir
task. So there is one point in time in which a processor is without a
task. This is essential to avoid cyclic dependencies in case multiple
tasks migrate at once. Otherwise some supervising entity is necessary to
prevent life-locks. Such a global supervisor would lead to scalability
problems so this approach is not used. Currently the thread dispatch is
performed with interrupts disabled. So in case the heir task is
currently executing on another processor then this prolongs the time of
disabled interrupts since one processor has to wait for another
processor to make progress.

It is difficult to avoid this issue with the interrupt latency since
interrupts normally store the context of the interrupted task on its
stack. In case a task is marked as not executing we must not use its
task stack to store such an interrupt context. We cannot use the heir
stack before it stopped execution on another processor. So if we enable
interrupts during this transition we have to provide an alternative task
independent stack for this time frame. This issue needs further
investigation.
2014-05-07 14:26:28 +02:00
Sebastian Huber 3380ee8194 score: Use common names for per-CPU variables
Use "cpu" for an arbitrary Per_CPU_Control variable.

Use "cpu_self" for the Per_CPU_Control of the current processor.

Use "cpu_index" for an arbitrary processor index.

Use "cpu_index_self" for the processor index of the current processor.

Use "cpu_count" for the processor count obtained via
_SMP_Get_processor_count().

Use "cpu_max" for the processor maximum obtained by
rtems_configuration_get_maximum_processors().
2014-04-22 08:34:45 +02:00
Sebastian Huber 2ca0a7be22 capture: Use ISR lock for SMP support 2014-04-14 08:37:04 +02:00
Sebastian Huber 4bc8d2e717 rtems: Rename rtems_smp_get_processor_count()
Rename rtems_smp_get_processor_count() in rtems_get_processor_count().
Make rtems_get_processor_count() a function in uni-processor
configurations to enable ABI compatibility with SMP configurations.
2014-04-11 08:52:54 +02:00
Sebastian Huber 263f4becea score: Statically initialize IO manager
This simplifies the RTEMS initialization and helps to avoid a memory
overhead.  The workspace demands of the IO manager were not included in
the <rtems/confdefs.h> workspace size estimate.  This is also fixed as a
side-effect.

Update documentation and move "Specifying Application Defined Device
Driver Table" to the section end.  This sub-section is not that
important for the user.  Mentioning this at the beginning may lead to
confusion.
2014-04-10 12:37:40 +02:00
Sebastian Huber 03e8928753 score: Delete CORE_mutex_Control::lock
The holder field is enough to determine if a mutex is locked or not.

This leads also to better error status codes in case a
rtems_semaphore_release() is done for a mutex without having the
ownership.
2014-03-31 10:14:42 +02:00
Sebastian Huber b1ce11614b score: Delete CORE_mutex_Control::holder_id
We can use the holder pointer to get the identifier if necessary.
2014-03-31 10:14:42 +02:00
Sebastian Huber 1b1be254e7 score: Thread life cycle re-implementation
The thread deletion is now supported on SMP.

This change fixes the following PRs:

PR1814: SMP race condition between stack free and dispatch

PR2035: psxcancel reveals NULL pointer access in _Thread_queue_Extract()

The POSIX cleanup handler are now called in the right context (should be
called in the context of the terminating thread).

http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html

Add a user extension the reflects a thread termination event.  This is
used to reclaim the Newlib reentrancy structure (may use file
operations), the POSIX cleanup handlers and the POSIX key destructors.
2014-03-31 08:29:43 +02:00
Sebastian Huber a5ac9da307 score: Add and use thread get/set CPU functions 2014-03-31 08:29:42 +02:00
Chris Johns c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Christian Mauderer 6cd4a5ca2e cpukit/shell: Replace task variables with posix keys.
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.
2014-03-20 09:10:26 +01:00
Ralf Kirchner 27545fcac8 network: Add help text for ifconfig 2014-03-13 16:10:52 +01:00
Allan Hessenflow 66bf2cc909 mw_uid: corrects uid_read_message short timeouts 2014-01-09 10:07:48 -05:00
Chris Johns 6a26e9bbf5 cpukit/capture: Print the uptime and diff in ctrace.
Print the uptime and difference in nanoseconds to the previous
record in the ctrace output. For example:

    0:00:59.474927121     14760 0a01000c TNTD 235 235 CREATED_BY
    0:00:59.474927418       297 0a010012 /dev 235 235 CREATED
    0:00:59.474930799      3381 0a01000c TNTD 235 235 STARTED_BY
    0:00:59.474931105       306 0a010012 /dev 235 235 STARTED
    0:00:59.475072297    141192 0a01000c TNTD 235 235 SWITCHED_OUT
2013-12-24 18:08:29 +11:00
Chris Johns 9f9c0bbf47 cpukit/capture: Use the new RTEMS API to get the uptime in nanoseconds.
Use the new API to get the uptime in nanoseconds and update the capture
engine.
2013-12-24 16:46:19 +11:00
Daniel Ramirez 2bafb96037 rtems: classic api to/from core priority conversions 2013-12-21 20:09:02 -05:00
Chris Johns db8a89e212 cpukit/capture: Update the capture engine.
The capture did not work due to changes in the workspace allocator.
The engine now scans all existing tasks when enabled and does any
allocations then.

Fixed a bug in the ctset commandi in the CLI.

Updated the capture engine to use 64bit nanosec timestamps.

Fixed the CLI showing the stack usage.
2013-12-19 19:01:23 +11:00
Chris Johns 259328a78d cpukit/shell: Control help break with SHELL_LINES env variable.
Control the help command break with the SHELL_LINES evironment variable
where the numeric value is the number of lines to break on. If the
value is 0 the output is not broken. The default is 16 lines.

Add shell documentation for the help command.
2013-12-16 11:59:51 +11:00
Bryan Dunsmore 77b1de22cc gettimeofday: Add restrict keyword 2013-11-29 17:24:41 -06:00
Sebastian Huber 17ba41982a monitor: Add support for BSD wakeup state 2013-11-14 15:58:03 +01:00
Joel Sherrill db97feb50d internal.h/main_mdump.c: Convert main methods to static 2013-09-23 08:22:02 -05:00
Joel Sherrill 2cdace7e80 main_mv.c: Address set but not used warning
It looks like the paths that use tval are if 0'ed for RTEMS.
Making all conditional on __rtems__ including the declaration.
2013-09-21 15:45:51 -05:00
Joel Sherrill 7071eb3ada mouse_parser.c: Fix warning by properly checking return code 2013-09-21 15:41:50 -05:00
Gedare Bloom 36fdd0bcff uuid: make integer arithmetic conversion explicit
Upcast multiplication to 64-bit integer arithmetic.
2013-09-05 14:50:46 -04:00
Gedare Bloom e075b38872 untar: check return value from mkdir
Check the return value from mkdir instead of failing silently.

1063857 Unchecked return value from library
2013-09-05 14:10:52 -04:00
Gedare Bloom 96654dcc1a shell: Out-of-bounds access
In case the length of cwd path plus the userScriptName exceeds
PATH_MAX (255), the strncat calls will overflow scriptFile. Also
check for getcwd failure.
2013-09-05 12:15:27 -04:00
Cynthia Rempel df533f10c0 Stop a resource leak
Stops a resource leak in the event that the system cannot malloc
2013-08-26 09:18:37 +02:00
Sebastian Huber ae75429ca1 PR766: Delete __RTEMS_VIOLATE_KERNEL_VISIBILITY__ 2013-08-08 14:11:22 +02:00
R. Diez ffa2defc78 Fix compiler warnings 2013-08-06 11:02:56 +02:00
Sebastian Huber f031df0e63 score: Rename tod.h to todimpl.h 2013-08-01 16:45:45 +02:00