summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* arm: Fix ARMv7-M interrupt processing4.11.2Sebastian Huber2017-07-072-30/+48
| | | | | | | | | | | | Right after a "msr basepri_max, %[basepri]" instruction an interrupt service may still take place (observed at least on Cortex-M7). However, pendable service calls that are activated during this interrupt service may be delayed until interrupts are enable again. The _ARMV7M_Pendable_service_call() did not check that a thread dispatch is allowed. Move this test from _ARMV7M_Interrupt_service_leave() to _ARMV7M_Pendable_service_call(). Close #3060.
* libdl: Back port C++ exception throw and catch from 4.12.Chris Johns2017-04-0434-259/+1239
| | | | Closes #2956.
* dosfs: Fix file name searchSebastian Huber2017-03-211-17/+7
| | | | | | | Do not use our long file name entry count to optimize the file name search. The Unicode comparison must be taken into account. Close #2939.
* dosfs: Fix race condition msdos_dir_read()Sebastian Huber2017-03-211-5/+5
| | | | | | Obtain file system instance lock before member access. Close #2937.
* dosfs: Rename fat_entries to lfn_entriesSebastian Huber2017-03-211-20/+20
| | | | | The name "fat_entries" for long file name directory entries is quite misleading.
* dosfs: Fix long file name paddingSebastian Huber2017-03-211-3/+3
| | | | Close #2934.
* dosfs: msdos_filename_utf8_to_short_name_for_saveSebastian Huber2017-03-211-15/+10
| | | | Simplify.
* dosfs: Fix msdos_add_file()Sebastian Huber2017-03-211-245/+155
| | | | | | Make sure that long file names work accross cluster boundaries. Close #2929.
* dosfs: Simplify msdos_add_file()Sebastian Huber2017-03-211-4/+2
| | | | Update #2929.
* dosfs: Add and use msdos_lfn_checksum()Sebastian Huber2017-03-213-22/+25
| | | | Update #2929.
* dosfs: Simplify fat_file_open()Sebastian Huber2017-03-211-3/+1
| | | | Update #2929.
* dosfs: Simplify msdos_creat_node()Sebastian Huber2017-03-211-21/+14
| | | | Update #2929.
* dosfs: Fix fat_file_write()Sebastian Huber2017-03-213-30/+11
| | | | | | | | Remove forced overwrite which leads to file data corruption. The logic to determine a forced overwrite was fundamentally broken. For simplity, disable this feature. Close #2622.
* dosfs: Fix msdos_utf8_normalize_and_fold()Sebastian Huber2017-03-211-2/+2
| | | | | | | | It is all right in case the result uses the full destination buffer. Without this fix the handling of a maximum 8.3 short file name is broken. Close #2928.
* libio: Fix deadlock in location managementSebastian Huber2017-03-217-13/+17
| | | | | | | | Perform a context-dependent deferred location release to avoid a deadlock on the file system instance locks, for example during a chdir(). Close #2936.
* termios: Fix infinite loop in receive pathSebastian Huber2017-02-281-5/+9
| | | | | | | In canonical mode, the raw input buffer or the canonical buffer may overflow without an end of line. Avoid an infinite loop in this case. Update #2915.
* termios: Protect raw input buffer with device lockSebastian Huber2017-02-281-16/+36
| | | | | | | Use the device lock to protect the raw input buffer management, e.g. tail, head and buffer content updates. Update #2914.
* termios: Simplify rtems_termios_read_tty()Sebastian Huber2017-02-281-9/+4
| | | | | | Remove dead code. Update #2914.
* dosfs: Fix FAT32 formatterSebastian Huber2017-02-281-2/+2
| | | | | | | | | The second FAT entry contains a bit to indicate if the FAT32 filesystem is not dirty and a bit to indicate if there was no IO error. Set both bits for a fresh filesystem. This prevents a warning if mounted on Windows. Update #2913.
* dosfs: Directories should have a file size of 0Sebastian Huber2017-02-281-1/+6
| | | | Update #2755.
* Remove old CVS keywordsNick Withers2017-02-152-2/+2
| | | | Close #2388.
* Fix exception handler for supporting FPUSudarshan Rajagopalan2017-02-151-4/+4
| | | | Close #2401.
* dosfs: Fix msdos_find_file_in_directory()Sebastian Huber2017-02-141-1/+1
| | | | | | For a filename match the entry must match without anything remaining. Update #2908.
* Change version to 4.11.1.99Sebastian Huber2017-01-261-1/+1
| | | | Update #2886.
* bsps/arm: do not introduce CPU_CACHE_LINE_BYTES in 4.11 and correct ↵Pavel Pisa2016-10-031-4/+2
| | | | CPU_STRUCTURE_ALIGNMENT.
* libdl/rtl-obj.c: synchronize cache should not depend on CPU_CACHE_LINE_BYTES.Pavel Pisa2016-10-031-3/+6
| | | | | | | | | | The CPU_CACHE_LINE_BYTES has been introduced after 4.11 branch fork and is not available for all architectures on RTEMS 4.11. Use of rtems_cache_get_maximal_line_size() is more descriptive choice. The min/max data/instruction cache line size is not critical there, value is used for optimization only to use single operation for decently following sections.
* libdl/rtl-obj.c: synchronize cache after code relocation.Pavel Pisa2016-10-024-0/+74
| | | | | | | | | Memory content changes caused by relocation has to be propagated to memory/cache level which is used/snooped during instruction cache fill. Closes #2438 Updates #2782
* rtems+bsps/cache: Define cache manager operations for code synchronization ↵Pavel Pisa2016-10-022-1/+30
| | | | | | | | | | | | | | | | and maximal alignment. There is need for unambiguous named and defined cache function which should be called when code is updated, loaded or is self-modifying. There should be function to obtain maximal cache line length as well. This function can and should be used for allocations which can be used for data and or code and ensures that there are no partial cache lines overlaps on start and end of allocated region. Updates #2782
* score/arm: Ensure that copile time alignment is 64 bytes for Cortex-A multilib.Pavel Pisa2016-10-022-2/+11
| | | | | | | | Some/many Cortex-A cores have data cache line length 64 bytes and maximum value has to be used for system structures alignment. Updates #2782 Updates #2783
* arm/score and shared: define ARM hypervisor mode and alternate vector table ↵Pavel Pisa2016-10-021-0/+1
| | | | | | | | | | | base access. The main reason for inclusion of minimum hypervisor related defines is that current ARM boards firmware and loaders (U-boot for example) start loaded operating system kernel in HYP mode to allow it take control of virtualization (Linux/KVM for example). Updates #2783
* score: Fix C/C++ compatibility issueSebastian Huber2016-09-2318-67/+17
| | | | | | | | | Only use CPU_Per_CPU_control if it contains at least one filed. In GNU C empty structures have a size of zero. In C++ structures have a non-zero size. In case CPU_PER_CPU_CONTROL_SIZE is defined to zero, then this structure is not used anymore. Close #2789.
* libdl: Fix cache corruption bugs.Chris Johns2016-08-153-30/+86
| | | | | | | | | This patch fixes a number of bugs in the cache when requests are made to read close to the end of the file and the data is copied from the top of the cache buffer to the bottom of the buffer. This was compounded by attempting to read past the end of the file. Closes #2754.
* libdl: Add trace output when reading section headers.Chris Johns2016-08-151-0/+3
|
* posix: Fix pthread_spin_unlock() error statusSebastian Huber2016-05-253-17/+7
| | | | Update #2719.
* fat: Fix for invalid cluster sizesSebastian Huber2016-05-201-1/+3
| | | | | | | A cluster size > 32KiB resulted in an infinite loop in fat_init_volume_info() due to an integer overflow. Update #2717.
* posix: Fix return states of pthread_kill()Sebastian Huber2016-05-171-17/+11
| | | | | | POSIX mandates that an error code is returned and not -1 plus errno. Update #2715.
* posix: Fix return status of pthread_cancel()Sebastian Huber2016-05-171-1/+1
| | | | | | | POSIX recommends ESRCH in case no thread exists for the specified identifier. Update #2713.
* Filesystem: Export most generic path eval functionSebastian Huber2016-02-023-22/+6
| | | | | | | | Add path length parameter to rtems_filesystem_eval_path_start_with_root_and_current() so that users may pass paths without a '\0' termination. Update #2558.
* score: Fix simple timecounter supportSebastian Huber2016-01-274-17/+67
| | | | Close #2502.
* Clearly mark SMP support as experimental in 4.11Sebastian Huber2016-01-111-3/+7
|
* score: Fix watchdog insertSebastian Huber2016-01-051-4/+12
| | | | | | | | | Under certain conditions a new watchdog was inserted with a wrong and very large delta interval due to a wrong iterator update. Bug was introduced by 1ccbd052910ed16131c74b0d5595c8a94066942d. Close #2507.
* score: Fix watchdog removalSebastian Huber2015-12-211-1/+10
| | | | | | | | | Under certain conditions a new watchdog was inserted with a wrong and very large delta interval due to an incomplete iterator update. Bug was introduced by 1ccbd052910ed16131c74b0d5595c8a94066942d. Close #2501.
* Fix _Assert() statementSebastian Huber2015-11-252-2/+2
|
* untar: do not exit with error when created directory already exists.Pavel Pisa2015-11-232-2/+46
| | | | | | | | | | | | | | The problem exists for both RTEMS untar implementations and their variants: Untar_FromMemory(), Untar_FromFile() and rtems_tarfs_load(). If filesystem object already exists at extracted directory path then if it is directory, creation is ignored. Attempt to delete/unlink object and make directory is tried for other cases. This simple approach problem reported in ticket fixes #2413. Behavior follows GNU tar and BSD tar practice for directories but much more work is required to achieve full semantics of the full featured tar implementation still.
* sparc: Fix context switch on SMPDaniel Cederman2015-11-171-0/+3
| | | | | | | | | | | | | | | | | | We must not load registers (e.g. PSR) from the heir context area before the heir stopped execution. With this patch the write to PSR is divided into two steps. We first update the current window pointer and then we restore the status registers and enable traps. This allows us to move the first write to PSR to be before the write to WIM, as there is now no risk that we get an interrupt where the CWP and WIM would be inconsistent. We only need to make sure that we do not use any of the non-global registers or instructions that affects CWP for three instructions after the write. In the earlier code the non-global %o1 register was used right after the write to PSR, which required the use of three nop:s. Close #2472.
* score: Fix race condition on SMPSebastian Huber2015-11-173-41/+67
| | | | | | | | We must ensure that the Thread_Control::Wait information update is visible to the target thread before we update its wait flags, otherwise we may return out of date events or a wrong status. Close #2471.
* Fix interrupt epilogue for ARMv7-AR and PowerPCSebastian Huber2015-11-171-0/+27
| | | | Close #2470.
* libblock: Avoid NULL pointer accessSebastian Huber2015-11-021-1/+3
|
* ada: Add missing includeJan Sommer2015-10-301-0/+1
| | | | | Include stackimpl.h otherwise PTHREAD_MINIMUM_STACK_SIZE cannot be evaluated.
* CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK was undocumented and not error checkedJoel Sherrill2015-10-271-0/+14
| | | | closes #2431.