summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-05-06Use rtems_get_version_string()Sebastian Huber1-3/+3
Update #3970.
2020-04-28doxygen: Switch @brief and @ingroupSebastian Huber29-29/+58
This order change fixes the Latex documentation build via Doxygen.
2020-04-16Canonicalize config.h includeSebastian Huber12-20/+20
Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
2020-04-15libmisc/shell: Fix the handling of joel scripts in telnetChris Johns1-101/+268
- Fix the passing of std[in/out] to child threads - Fix deleting of managed memory in the key destructor - Only set the key in the main loop thread - Only allocate a shell env outside of the main loop - Fix memory leak if the task start fails - Remove error level from shell env, it cannot be returned this way. Add exit_code but the API is broken so it cannot be returned. Closes #3859
2020-02-28score: Fix context switch extensions (SMP)Sebastian Huber1-3/+23
In uniprocessor and SMP configurations, the context switch extensions were called during _Thread_Do_dispatch(): void _Thread_Do_dispatch( Per_CPU_Control *cpu_self, ISR_Level level ) { Thread_Control *executing; executing = cpu_self->executing; ... do { Thread_Control *heir; heir = _Thread_Get_heir_and_make_it_executing( cpu_self ); ... _User_extensions_Thread_switch( executing, heir ); ... _Context_Switch( &executing->Registers, &heir->Registers ); ... } while ( cpu_self->dispatch_necessary ); ... } In uniprocessor configurations, this is fine and the context switch extensions are called for all thread switches except the very first thread switch to the initialization thread. However, in SMP configurations, the context switch may be invalidated and updated in the low-level _Context_Switch() routine. See: https://docs.rtems.org/branches/master/c-user/symmetric_multiprocessing_services.html#thread-dispatch-details In case such an update happens, a thread will execute on the processor which was not seen in the previous call of the context switch extensions. This can confuse for example event record consumers which use events generated by a context switch extension. Fixing this is not straight forward. The context switch extensions call must move after the low-level context switch. The problem here is that we may end up in _Thread_Handler(). Adding the context switch extensions call to _Thread_Handler() covers now also the thread switch to the initialization thread. We also have to save the last executing thread (ancestor) of the processor. Registers or the stack cannot be used for this purpose. We have to add it to the per-processor information. Existing extensions may be affected, since now context switch extensions use the stack of the heir thread. The stack checker is affected by this. Calling the thread switch extensions in the low-level context switch is difficult since at this point an intermediate stack is used which is only large enough to enable servicing of interrupts. Update #3885.
2020-02-25config: Add _SMP_Is_enabledSebastian Huber1-1/+1
Move the is SMP enabled configuration constant out of the configuration table. Since this was the last configuration constant in rtems_configuration_table, remove this type. Update #3875.
2020-02-25config: Simplify initialization task configSebastian Huber2-4/+8
With the removal of the CONFIGURE_HAS_OWN_INIT_TASK_TABLE configuration option at most one Classic API user initialization task can be configured. Provide an RTEMS API configuration table for backward compatibility. Update #3873.
2020-02-17monitor: Use proper API for all config constantsSebastian Huber1-7/+4
2020-02-04stackchk: Add RTEMS_SYSINIT_ISR_STACKSebastian Huber1-2/+2
Use a dedicated system initialization step for the stack checker interrupt stack support. Update #3838.
2019-12-19libmisc/top: Fix the idle time and priorities on SMPChris Johns1-11/+27
- This patch is based on the patch attached to #3552 submitted by jameszxj. Closes #3552
2019-12-19config: CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORSSebastian Huber1-1/+1
Rename CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS into CONFIGURE_MAXIMUM_FILE_DESCRIPTORS. Update #3753.
2019-12-13config: Add _MPCI_ConfigurationSebastian Huber3-15/+7
Replace the user MPCI configuration table with a system provided _MPCI_Configuration. Update #3735.
2019-12-11rtems: Optimize semaphore control blockSebastian Huber1-5/+9
Move variant, discipline, and global information to flags stored in a node pointer of active semaphores. Update #3833.
2019-11-26untar: Properly make parent pathSebastian Huber1-144/+46
Close #3823.
2019-11-25untar: Make path also for symbolic linksSebastian Huber1-9/+8
Close #3823.
2019-11-25untar: Unify untar supportSebastian Huber1-94/+87
Update #3823.
2019-11-19Move feature macro before "config.h" includeSebastian Huber4-9/+12
This allows to use header includes in "config.h" to reduce the build configuration checks. Update #3818.
2019-07-30Add and use THREAD_DEFAULT_MAXIMUM_NAME_SIZESebastian Huber1-1/+1
2019-07-02misc/rtemsdefaultconfig: Add bdbuf so libbsd can be used with configure.Chris Johns1-1/+2
2019-06-28score: Add and use _Thread_Get_unmapped_priority().Sebastian Huber2-6/+3
Add and use _Thread_Get_unmapped_real_priority().
2019-05-14shell: Avoid rtems_error()Sebastian Huber1-9/+0
Do not use the rtems_error() function since this function pulls in exit() and abort(). The abort() function pulls in raise() which pulls in the whole POSIX signals support. This change saves about 16KiB of text/rodata on ARM Thumb-2 systems.
2019-04-09rtems: Add rtems_scheduler_get_processor_maximum()Sebastian Huber4-6/+6
Add rtems_scheduler_get_processor_maximum() as a replacement for rtems_get_processor_count(). The rtems_get_processor_count() is a bit orphaned. Adopt it by the Scheduler Manager. The count is also misleading, since the processor set may have gaps and the actual count of online processors may be less than the value returned by rtems_get_processor_count(). Update #3732.
2019-04-09rtems: Add rtems_scheduler_get_processor()Sebastian Huber1-2/+2
Add rtems_scheduler_get_processor() as a replacement for rtems_get_current_processor(). The rtems_get_current_processor() is a bit orphaned. Adopt it by the Scheduler Manager. This is in line with the glibc sched_getcpu() function. Deprecate rtems_get_current_processor(). Update #3731.
2019-03-26build: Move test support to librtemstest.aSebastian Huber5-546/+0
One reason to move the test support into a dedicated library are the standard output __wrap_*() functions. They may conflict with application level wrappers. Update #3199.
2019-03-14main_edit.c: Use strncpy() to eliminate potential buffer overflow.Joel Sherrill1-4/+5
2019-03-14Remove superfluous <rtems/system.h> includesSebastian Huber4-4/+0
2019-03-08shell: Correct argument order of `mfill`Jonathan Brandmeyer1-1/+1
Close #3720.
2019-02-28Remove explicit file names from @fileSebastian Huber1-1/+1
This makes the @file documentation independent of the actual file name. Update #3707.
2019-02-09libmisc: Fix rtems_print_bufferChris Johns1-1/+1
Closes #3684
2019-01-23libmisc: Fix swapped parameters and enable floating point usage.Maksim E. Kozlov1-1/+1
2019-01-10Fix format warnings due to ino_t changesSebastian Huber2-4/+8
2019-01-07Fix format warningsSebastian Huber2-7/+11
2018-12-27drvmgr: Improve LP64 compatibilitySebastian Huber1-1/+2
2018-12-14rtems: Use object information to get config maxSebastian Huber1-9/+9
Use functions instead of macros. Add missing rtems_configuration_get_maximum_*() functions. Update #3621.
2018-12-03testsupport: Include missing <rtems/bspIo.h>Sebastian Huber1-0/+1
2018-11-21score: Remove support for RTEMS_USE_16_BIT_OBJECTSebastian Huber2-8/+0
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.
2018-11-12rtems: Move internal structures to extensiondata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to tasksdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to regiondata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12rtems: Move internal structures to partdata.hSebastian Huber1-0/+1
Update #3598.
2018-11-12m32c: Remove this targetSebastian Huber1-8/+4
Update #3599.
2018-11-09rtems: Deprecate region_information_blockSebastian Huber2-2/+2
The region_information_block typedef as no corresponding API. It has no proper namespace prefix. A user can do nothing with it. Close #3591.
2018-11-08monitor: Remove dead codeSebastian Huber2-19/+0
Update #3587. Update #3589.
2018-11-08score: Rename interrupt stack symbolsSebastian Huber1-1/+1
Rename * _Configuration_Interrupt_stack_area_begin in _ISR_Stack_area_begin, * _Configuration_Interrupt_stack_area_end in _ISR_Stack_area_end, and * _Configuration_Interrupt_stack_size in _ISR_Stack_size. Move definitions to <rtems/score/isr.h>. The new names are considerable shorter and in the right namespace. Update #3459.
2018-10-29posix: Provide threads by defaultSebastian Huber2-10/+2
Update #2514.
2018-10-10build: Merge libmisc/Makefile.amSebastian Huber1-199/+0
2018-10-09build: Remove specialized CPPFLAGSSebastian Huber1-1/+0
2018-10-09shell: Use #include "..." for local header filesSebastian Huber30-37/+36
Update #3375.
2018-10-02Use rtems_task_exit()Sebastian Huber4-4/+4
Update #3530. Update #3533.
2018-09-24stackchk: Fix interrupt stack preparationSebastian Huber1-9/+11
We have to prepare the interrupt stack of each processor. Update #3459.