summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* libmisc/shell: Add an 'rtems' command to report a running buildChris Johns2022-08-031-0/+6
| | | | - Report version, cpu, bsp, tools and options.
* score: Allow linker garbage collectionSebastian Huber2022-07-282-3/+3
| | | | | | | Place the object control blocks in dedicated sections to allow a linker garbage collection. Update #4678.
* score: Use PTHREAD_CANCELED for _Thread_Cancel()Sebastian Huber2022-07-281-4/+1
| | | | | | | | | | The rtems_task_delete() directive is basically just a combined pthread_cancel() and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The exit value returned by pthread_join() of threads cancelled by rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value instead of NULL which could be a normal exit value. Close #4680.
* score: Use priority inheritance for thread joinSebastian Huber2022-07-282-31/+78
| | | | | | | | | | | | | | | | | | | | | Threads may join the thread termination of another thread using the pthread_join() or rtems_task_delete() directives. The thread cancel operation used a special case priority boosting mechanism implemented by _Thread_Raise_real_priority(). The problem was that this approach * is not transitive, * does not account for priority adjustments of the calling task while waiting for the join, * does not support clustered scheduling, and * does not detect deadlocks. All these problems are fixed by using a priority inheritance thread queue for the join operation. Close #4679.
* score: Fix objects local table initializationSebastian Huber2022-07-272-4/+2
| | | | | | | | The objects local table must be statically zero-initialized so that _Objects_Get() and _Objects_Get_no_protection() return NULL if no object is associated with the identifier. Update #4678.
* score: Remove PRIORITY_PSEUDO_ISR thread prioritySebastian Huber2022-07-267-123/+243
| | | | | | | | | | | | | | | The uniprocessor schedulers had some special case logic for the PRIORITY_PSEUDO_ISR priority. Tasks with a priority of PRIORITY_PSEUDO_ISR were allowed to preempt a not preemptible task. If other higher priority task are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible task, then the other tasks run before the not preemptible task. This made the RTEMS_NO_PREEMPT mode ineffective. Remove the PRIORITY_PSEUDO_ISR special case logic. This simplifies the uniprocessor schedulers. Move the uniprocessor-specific scheduler support to the new header file <rtems/score/scheduleruniimpl.h>. Close #2365.
* imfs: Add <rtems/imfsimpl.h>Sebastian Huber2022-07-252-37/+93
|
* libtest: Add missing initializerSebastian Huber2022-07-251-1/+1
|
* Support _REENT_THREAD_LOCAL Newlib configurationMatt Joyce2022-07-214-14/+27
| | | | | | | | | In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the struct _reent is not defined (there is only a forward declaration in <sys/reent.h>). Instead, the usual members of struct _reent are available as dedicatd thread-local storage objects. Update #4560.
* score: Fix unlimited objects supportSebastian Huber2022-07-181-4/+25
| | | | | | | | Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static Objects_Information initialization") introduced an off-by-one error in the maintenance of inactive objects. Close #4677.
* score: Extend memory dirty/zero actionsSebastian Huber2022-07-151-1/+13
| | | | | | Dirty or zero also the part of the .noinit section used by RTEMS. Close #4678.
* score: Place object controls into .noinit sectionsSebastian Huber2022-07-152-5/+11
| | | | | | | | | | | | Place the statically allocated object control blocks, local tables, and thread queue heads into the dedicated .noinit intput sections. The output section is not zero initialized. Placing these elements into the .noinit section reduces the system initialization time by decreasing the .bss section size. It may improve the cache efficiency since the mostly read local tables are placed in a contiguous memory area. Update #4678.
* score: Conditional _Thread_Priority_replace()Sebastian Huber2022-07-071-0/+2
| | | | This function is only used in SMP configurations.
* gcov: Add functions to dump the gcov informationSebastian Huber2022-07-042-0/+93
| | | | Update #4670.
* score: Account for <sys/bitset.h> API changesSebastian Huber2022-06-231-17/+73
| | | | Update #4667.
* score: Remove unused _Processor_mask_Nand()Sebastian Huber2022-06-231-16/+0
| | | | Update #4667.
* score: Make SMP only code explicitSebastian Huber2022-06-231-28/+5
| | | | | | | Conditional expressions with inline functions are not optimized away if optimization is disabled. Avoid such expressions to prevent dead branches. It helps also during code review to immediately see if a loop is used or not.
* TFTPFS: Implement block and window size optionsFrank Kühndel2022-06-211-14/+393
| | | | | | | | | | | | | | | | | | | | | The original file cpukit/libfs/src/ftpfs/tftpDriver.c is split into two: tftpfs.c - This file contains the code from tftpDriver.c related to file system operations such as mount(), open(), read(), and so on. tftpDriver.c - In the original file remains only the code related to networking. This code implements the Trivial File Transfer Protocol (TFTP). Moreover, the code is extended to support * RFC 2347 TFTP Option Extension * RFC 2348 TFTP Blocksize Option * RFC 7440 TFTP Windowsize Option Update #4666.
* timecounter.h: Add _Timecounter_Discipline()Gabriel Moyano2022-05-231-0/+17
| | | | Update #2349.
* score: Rename tc_getfrequency()Gabriel Moyano2022-05-231-0/+8
| | | | | | Rename tc_getfrequency() to _Timecounter_Get_frequency(). Update #2349.
* score: Add SMP priority affinity scheduler yieldTian Ye2022-05-121-1/+7
|
* ftpd.h: Add file header and licenseRyan Long2022-05-041-1/+30
| | | | | This file had no header, copyright, or license. Based on git history, added appropriate copyright and license.
* cpukit/include/rtems: Add file headers and licensesRyan Long2022-05-042-0/+53
| | | | | These files had no header, copyright, or licenses. Based on git history, added appropriate copyright and license.
* cpukit/include: Adding file headers and licensesRyan Long2022-05-044-2/+113
| | | | | These files had no file header, copyright, or license. Based on git history, added appropriate copyright and license.
* heap: Fix heap statistics with protection enabledSebastian Huber2022-04-281-9/+1
| | | | Close #4644.
* shell: Add rtems_shell_run_main_loop()Sebastian Huber2022-04-061-0/+25
| | | | | | | In contrast to rtems_shell_main_loop(), this new function does not perform all sorts of initialization based on environment settings. For example, due to the use of isatty() in rtems_shell_main_loop() it is impossible to run an interactive shell through a socket connection.
* Update email address of Fernando Ruiz Casas to <fruizcasas@gmail.com>Joel Sherrill2022-04-053-14/+20
| | | | This was requested to be executed prior to relicensing to BSD-2.
* cpukit/include/rtems/timespec.h: Change license to BSD-2Joel Sherrill2022-04-011-3/+22
| | | | | | Permission received from Krzysztof Miesowicz. Updates #3053.
* cpukit/include/rtems/cbs.h: Change license to BSD-2Joel Sherrill2022-04-011-3/+22
| | | | | | Permission received from Petr Benes Updates #3053.
* rtems: Clarify scheduler of created taskSebastian Huber2022-03-291-3/+3
|
* cpukit/include/rtems/confdefs/libpci.h: Manual file header clean upJoel Sherrill2022-03-251-8/+8
|
* cpukit/include/sys: Change license to BSD-2.Joel Sherrill2022-03-2529-91/+642
| | | | Updates #3053.
* cpukit/include/rtems: Change license to BSD-2Joel Sherrill2022-03-2573-219/+1606
| | | | Updates #3053.
* cpukit/: Update Eric Norum contact info and normalize file headersJoel Sherrill2022-03-241-7/+28
|
* smp: Add fatal errorSebastian Huber2022-03-241-1/+2
| | | | | | | Add SMP-specifc SMP_FATAL_MULTITASKING_START_ON_NOT_ONLINE_PROCESSOR fatal error. This fatal error helps to diagnose a broken SMP startup sequence. Without this error a context switch using the NULL pointer for the thread control block happens which may be difficult to debug.
* libtest: Add scheduler test supportSebastian Huber2022-03-241-0/+290
| | | | | | | | | Add support to record scheduler operations. This support is especially important for tests in SMP configurations since the thread switch extension is quite difficult to use due to the asynchronous nature of thread dispatching. In contrast, the scheduler operations occur normally in a deterministic order. Update #3716.
* score: Add _IO_Relax()Sebastian Huber2022-03-241-0/+8
| | | | | | | This function may be used to burn a couple of processor cycles with minimum impact on the system bus. It may be used in busy wait loops. Since it is a global function, it is possible to wrap it in device driver test code.
* thread.hpp: Fix redefinition of default argumentSebastian Huber2022-03-181-18/+14
| | | | | | A default argument shall be defined only once. Close #4632.
* bsps/irq: Improve affinity set handlingSebastian Huber2022-03-161-1/+8
| | | | | | | | Restrict the affinity set to the set of online processors. Make sure the affinity set for an interrupt vector contains at least one online processor. Update #3269.
* cpukit: Automated IMD header file clean upChristian Mauderer2022-03-106-6/+6
| | | | | | Use the same form of IMD in all copyright lines Update #4625.
* bsps and cpukit: Manual file header clean upChristian Mauderer2022-03-105-80/+53
| | | | Updates #4625.
* cpukit/: Scripted embedded brains header file clean upJoel Sherrill2022-03-1041-254/+4
| | | | Updates #4625.
* cpukit/include/rtems/posix/*.h: Change license to BSD-2Joel Sherrill2022-02-2826-78/+572
| | | | Updates #3053.
* cpukit/include/rtems/rtems/*.h: Change license to BSD-2Joel Sherrill2022-02-2834-102/+748
| | | | Updates #3053.
* cpukit/include/rtems/score/[s-z]*.h: Change license to BSD-2Joel Sherrill2022-02-2853-159/+1166
| | | | Updates #3053.
* cpukit/include/rtems/score/[a-r]*.h: Change license to BSD-2Joel Sherrill2022-02-2850-150/+1100
| | | | Updates #3053.
* kern_ntptime.c: Port to RTEMSSebastian Huber2022-02-211-0/+9
| | | | | | Remove previous adjtime() implementation. Update #2348.
* config: CONFIGURE_DISABLE_NEWLIB_REENTRANCYSebastian Huber2022-02-211-8/+9
| | | | | | | Do not initialize Thread_Control::libc_reent if CONFIGURE_DISABLE_NEWLIB_REENTRANCY is defined. This helps to catch errors with a NULL pointer exception rather than a corruption of the thread control block.
* termios: Pass number of sent chars to l_startChristian Mauderer2022-02-101-1/+5
| | | | | | | | | | | | | At the moment the line discipline start function (l_start) has no possibility to get feedback about the number of characters that have been sent. This patch passes that information via an additional parameter. The change might trigger a warning on existing code because of a pointer mismatch but it shouldn't break it. An existing function with the old API will just ignore the additional parameter. Update #4493
* Remove obsolete rtems_gxx_*() implementationSebastian Huber2022-01-272-82/+2
| | | | | | | | | | | GCC versions prior to 6.1 used a RTEMS thread model based on rtems_gxx_*() functions. GCC version 6.1 or later uses the self-contained synchronization objects of Newlib <sys/lock.h> for the RTEMS thread model. Remove the obsolete implementation. Close #3143.