| Commit message (Collapse) | Author | Files | Lines |
|
This code did not have any copyrights or licenses and a bit
of archeology was needed to determine authorship.
This code was in the initial import into the RTEMS CVS repository when
it was established in May 1995. There was very little, if any, code not
written by OAR Corporation in that initial import. After discussion
with Chris Johns, it was determined that this code was from OAR
Corporation and that he had added a few features later. Both
Chris Johns and OAR Corporation have given permission to relicense.
Updates #3053.
|
|
The RTEMS_USE_16_BIT_OBJECT define is not set by an RTEMS port. Remove
support for 16-bit object identifiers. If someone really wants to use
RTEMS on a 16-bit target, then it is better to use self-contained
objects instead of playing around with object identifier optimizations.
Update #3603.
|
|
|
|
Replace STATES_DELAYING with STATES_WAITING_FOR_TIME.
There is no need for separate timeout thread states. The
Thread_Control::Timer::header and Watchdog_Control::cpu members can be
used to figure out the kind of timeout.
|
|
Add thread state bit to identify thread queues that are embedded in an
object with identifier.
|
|
|
|
Rework _Thread_Restart_other() to use _Thread_Change_life_locked().
Cope with concurrent change requests by means of a pending request
counter.
Update #2555.
Update #2626.
|
|
Split _Thread_Close() into _Thread_Join() and _Thread_Cancel() to
prepare for a re-use in pthread_join() and pthread_cancel().
Update #2555.
Update #2626.
|
|
Update #2555.
|
|
|
|
|
|
|
|
|
|
This mutex implementation uses a thread priority queue with a simple
priority inheritance mechanism (similar to the object based mutexes).
The storage space must be supplied by the user (16 bytes on 32-bit
targets).
|
|
|
|
This avoids the "0x0xabc" output and is more compact.
|
|
|
|
A thread join is twofold. There is one thread that exists and an
arbitrary number of threads that wait for the thread exit (one-to-many
relation). The exiting thread may want to wait for a thread that wants
to join its exit (STATES_WAITING_FOR_JOIN_AT_EXIT in
_POSIX_Thread_Exit()). On the other side we need a thread queue for all
the threads that wait for the exit of one particular thread
(STATES_WAITING_FOR_JOIN in pthread_join()).
Update #2035.
|
|
|
|
|
|
CodeSonar flagged this as a case where the user could inject a format
string and cause issues. Since we were not printing anything but a
string, just switching to puts() rather than fprintf(stdout,...) was
sufficient to make this code safer.
|
|
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.
|
|
Use separate state for thread restart.
|
|
|
|
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.
|
|
|
|
Move implementation specific parts of states.h and states.inl into new
header file statesimpl.h. The states.h contains now only the
application visible API.
|
|
Move implementation specific parts of event.h, event.inl, eventset.h and
eventset.inl into new header file eventimpl.h. The event.h contains now
only the application visible API.
|
|
|
|
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/monitor/mon-network.c: Include <rtems/monitor.h>.
* libmisc/monitor/mon-object.c:
Make rtems_monitor_object_canonical_next_remote,
rtems_monitor_object_dump_1, rtems_monitor_object_dump_all static.
* libmisc/monitor/mon-prmisc.c:
Make rtems_monitor_dump_assoc_bitfield static.
* libmisc/monitor/mon-symbols.c:
Make rtems_monitor_symbol_dump_all static.
|
|
* include/rtems/irq-extension.h: Documentation.
* libmisc/monitor/mon-prmisc.c: Fix for multiprocessing configuration.
|
|
|
|
|
|
* libmisc/monitor/mon-prmisc.c: Fix warning if
defined(RTEMS_USE_16_BIT_OBJECT).
|
|
* 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/monitor/mon-extension.c, libmisc/monitor/mon-itask.c,
libmisc/monitor/mon-part.c, libmisc/monitor/mon-prmisc.c,
libmisc/monitor/mon-queue.c, libmisc/monitor/mon-region.c,
libmisc/monitor/mon-sema.c, libmisc/monitor/mon-task.c,
libmisc/monitor/monitor.h: Use rtems_object_get_name() instead of
internal routine. This makes it possible to also print string names
of POSIX objects. Adjust task report to realign since we can have
longer names.
|
|
* libmisc/monitor/mon-prmisc.c, rtems/include/rtems/rtems/attr.h:
Review association tables in monitor.
|
|
|
|
* monitor/monitor.h: Let rtems_monitor_config_dump return int.
* monitor/mon-config.c: Ditto. Use PRI*N macros.
* monitor/mon-itask.c, monitor/mon-prmisc.c: Use PRI*N macros.
|
|
* monitor/mon-prmisc.c, monitor/monitor.h: Let rtems_monitor_dump
return int's not uint32_t (They are printf return values).
|
|
* libmisc/monitor/mon-prmisc.c, libmisc/monitor/monitor.h:
rtems_monitor_dump_char(char ch).
|
|
* 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.
|
|
* capture/capture-cli.c: Add config-header support.
* capture/capture.c: Add config-header support.
* cpuuse/cpuuse.c: Add config-header support.
* devnull/devnull.c: Add config-header support.
* dummy/dummy.c: Add config-header support.
* dumpbuf/dumpbuf.c: Add config-header support.
* monitor/mon-command.c: Add config-header support.
* monitor/mon-config.c: Add config-header support.
* monitor/mon-dname.c: Add config-header support.
* monitor/mon-driver.c: Add config-header support.
* monitor/mon-extension.c: Add config-header support.
* monitor/mon-itask.c: Add config-header support.
* monitor/mon-manager.c: Add config-header support.
* monitor/mon-monitor.c: Add config-header support.
* monitor/mon-mpci.c: Add config-header support.
* monitor/mon-object.c: Add config-header support.
* monitor/mon-prmisc.c: Add config-header support.
* monitor/mon-queue.c: Add config-header support.
* monitor/mon-server.c: Add config-header support.
* monitor/mon-symbols.c: Add config-header support.
* monitor/mon-task.c: Add config-header support.
* mw-fb/mw_fb.c: Add config-header support.
* mw-fb/mw_uid.c: Add config-header support.
* rtmonuse/rtmonuse.c: Add config-header support.
* serdbg/serdbg.c: Add config-header support.
* serdbg/serdbgio.c: Add config-header support.
* serdbg/termios_printk.c: Add config-header support.
* shell/cmds.c: Add config-header support.
* stackchk/check.c: Add config-header support.
* untar/untar.c: Add config-header support.
|
|
* PR148.
* monitor/mon-prmisc.c: Fixed to print task states correctly.
|
|
* 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.
|
|
|