Commit Graph
25254 Commits
Author SHA1 Message Date
Sebastian Huber aabfcd0c33 smp: Fix _Thread_Dispatch_decrement_disable_level
We must obtain the processor ID after interrupts are disabled since a
non-optimizing compiler may store the value on the stack and read it
back.
2013-06-12 16:12:54 +02:00
Sebastian Huber df244cfc30 smp: Protect decrement operation 2013-06-12 16:12:53 +02:00
Sebastian Huber a8ef3bf053 smp: Add and use _Per_CPU_Lock_acquire()
Add and use _Per_CPU_Lock_release().
2013-06-12 16:12:53 +02:00
Sebastian Huber f70526a761 score: Avoid cyclic include dependency 2013-06-12 16:12:53 +02:00
Sebastian Huber 127044069b score: Add missing include 2013-06-12 16:12:53 +02:00
Sebastian Huber 15f3a91858 libchip: Use Termios API change for NS16550
This avoids a race condition on SMP configurations.
2013-06-12 16:12:52 +02:00
Sebastian Huber 6896ca22bb libchip: Delete superfluous assignments 2013-06-12 16:12:52 +02:00
Sebastian Huber 65483f807d termios: SMP support 2013-06-12 16:12:50 +02:00
Sebastian Huber fed92f5f67 termios: Notify driver about inactive transmit
Returning this state in the return value leads to race conditions on
SMP.  The inactive state notification must be inside the critical
section.
2013-06-12 16:11:25 +02:00
Sebastian Huber 7338299c96 termios: Expand critical section
Use interrupt disable/enable to protect the complete refill state
change.  This avoids race conditions for the task driven configuration
and a later SMP support.
2013-06-12 16:11:25 +02:00
Sebastian Huber 58cde54dcb termios: Move wake up writer task action 2013-06-12 16:11:25 +02:00
Sebastian Huber 2a8713aa54 termios: Avoid second return path 2013-06-12 16:11:24 +02:00
Sebastian Huber c7bc6d44cb rtems: Add interrupt locks
Interrupt locks are low-level lock to protect critical sections accessed
by threads and interrupt service routines.
2013-06-12 16:11:24 +02:00
Sebastian Huber 3ccce23aa4 score: Always provide <rtems/score/smplock.h> 2013-06-12 16:11:24 +02:00
Sebastian Huber aec0e1958e configure: Documentation 2013-06-12 16:11:24 +02:00
Sebastian Huber 18e2fbe70d smp: Fix PowerPC context switch 2013-06-07 17:06:43 +02:00
Sebastian Huber 7cf2ec6f0d smp: Set state PER_CPU_STATE_UP on main processor 2013-06-07 17:06:43 +02:00
Sebastian Huber 2d2352bab9 score: Add and use _Objects_Put()
Add and use _Objects_Put_without_thread_dispatch().  These two functions
pair with the _Objects_Get() function.  This helps to introduce object
specific SMP locks to avoid lock contention.
2013-06-07 17:06:43 +02:00
Sebastian Huber 54e9216a0e score: Add _Objects_Put_for_get_isr_disable()
Provide SMP support.  The ISR disable/enable is not enough to ensure
mutual exclusion for SMP configurations.
2013-06-07 17:06:38 +02:00
Sebastian Huber c398c6603a score: Align _Objects_Get_isr_disable()
Align ISR disable/enable sequence in _Objects_Get_isr_disable() with
thread dispatch disable/enable sequence in _Objects_Get().
2013-06-07 17:02:26 +02:00
Sebastian Huber 4fc370e3c6 score: Move thread dispatch content to new file
Move thread dispatch declarations and inline functions to new header
<rtems/score/threaddispatch.h> to make it independent of the
Thread_Control structure.  This avoids a cyclic dependency in case
thread dispatch functions are used for the object implementation.
2013-06-07 17:02:26 +02:00
Sebastian Huber 4f5baffd75 score: Simplify _CORE_mutex_Seize_interrupt_try* 2013-06-07 17:02:26 +02:00
Sebastian Huber dcb4daf8e1 score: Simplify _CORE_semaphore_Seize_isr_disable 2013-06-07 17:02:26 +02:00
Sebastian Huber 17ce1034cf score: Simplify _Thread_Create_idle_helper()
The _Thread_Initialize() function has nothing to do with thread
dispatching it simply initializes the thread control.
2013-06-07 17:02:25 +02:00
Sebastian Huber 62da44e6d0 rtems: Move unnest dispatch after ISR enable
This prevents a lock order reversal.
2013-06-07 17:02:25 +02:00
Sebastian Huber 2f49cfdf87 rtems: Fix system event send for remote threads 2013-06-07 17:02:25 +02:00
Sebastian Huber 9bfd7ff09e dosfs: Documentation 2013-06-07 17:02:25 +02:00
Sebastian Huber 1f3ce602f9 termios: Fix warning 2013-06-07 17:02:24 +02:00
Sebastian Huber 36ae561c8e nfsclient: Add rpcSetXIDs() 2013-06-05 17:19:34 +02:00
Sebastian Huber a2854fd55e nfsclient: Fix warnings 2013-06-05 17:19:33 +02:00
Sebastian Huber 442db915f8 nfsclient: Delete superfluous mask operation 2013-06-05 17:19:33 +02:00
Sebastian Huber c295e098c6 nfsclient: Delete superfluous assignment 2013-06-05 17:19:33 +02:00
Sebastian Huber cffa5b7838 libblock: Use UTF-8 converter in media manager 2013-06-04 13:56:19 +02:00
Ralf Kirchner 27170bae58 dosfs: Documentation 2013-06-03 17:28:42 +02:00
Ralf Kirchner 581c9982a3 fsdsosfsname01: Ensure endian correctness 2013-06-03 17:28:41 +02:00
Ralf Kirchner e1483973c4 fsdosfsname01: Add compatibility tests
Test handling of file names and directory names according to Microsofts
specification for the FAT file system. Tests for compatibility with a
genuine MS Windows FAT file system have been added.
2013-06-03 17:28:41 +02:00
Ralf Kirchner 52f3aa0519 fsdosfsname01: Add multibyte tests
Test handling of file names and directory names according to Microsofts specification
for the FAT file system. Tests for multibyte file names and directory names have been added.
2013-06-03 17:28:41 +02:00
Ralf Kirchner 83a4cbb69d dosfs: UTF-8 Support: Multibyte conversions
Add optional conversion methods for multibyte strings. With these
conversions which make use of iconv and utf8proc it becomes possible to
use strings from any language (Czech, Chinese, Arabian, Hebrew, Corean,
...) for file names and directory names.

NOTE: Iconv support must be activated during the build of the tool chain
for these conversion methods (options --enable-newlib-iconv
--enable-newlib-iconv-encodings=[ENCODINGS_YOU_WANT]).  Alternatively
you can provide your own conversion methods.
2013-06-03 17:28:41 +02:00
Ralf Kirchner 2ee8b15863 libtests: Add new test: utf8proc01
utf8proc is a library for processing UTF-8 encoded Unicode strings.
Some features are Unicode normalization, stripping of default ignorable characters, case folding and detection of grapheme cluster boundaries.
For now utf8proc is intended for normalizing and folding strings for comparison purposes within the UTF-8 support of the FAT file system.
This test will call interface methods of library utf8proc in order to make sure they compiled and linked ok.
The library is third party, thus it should be sufficient for us to make sure we can build it correctly.
2013-06-03 17:28:41 +02:00
Ralf Kirchner 46b7f92152 libmisc: Add utf8proc-v1.1.5
utf8proc is a small library for processing UTF-8 encoded Unicode strings.
Some features are Unicode normalization, stripping of default ignorable characters, case folding and detection of grapheme cluster boundaries.
For the time beeing utf8proc is intended to be used for normalizing and folding UTF-8 strings
for comparison purposes when adding UTF-8 support to the FAT file system.
2013-06-03 17:28:40 +02:00
Ralf Kirchner ccd212efab fsdosfsname01: New test
Test handling of file names and directory names according to Microsofts
specification for the FAT file system. So far tested only for the
default character set (code page 850).
2013-06-03 17:28:40 +02:00
Ralf Kirchner d2e0bb36e3 dosfs: UTF-8 Support: UI, backwards compatibility
User interface and backwards compatibility for UTF-8 support in the FAT
file system.  Purpose of UTF-8 support is to permit file names and
directory names with characters from all kinds of languages (Czech,
Chinese, Arabian, Hebrew, Korean, ...).  This commit does not yet
support multibyte characters. It only contains the user interface and
the backwards compatibility.
2013-06-03 17:28:40 +02:00
Sebastian Huber 8bed60314e bsp/lm3s69xx: Typos 2013-06-03 10:03:44 +02:00
Sebastian Huber 94c17afd9c bsp/qoriq: Add missing #ifdef RTEMS_SMP 2013-06-03 10:03:10 +02:00
Sebastian Huber db42c079a0 bsps/arm: Add SMP support 2013-05-31 15:20:33 +02:00
Sebastian Huber f2f211c543 smp: Add ARM support 2013-05-31 15:20:32 +02:00
Sebastian Huber bd39add8fa bsp/qoriq: Add SMP support 2013-05-31 15:20:32 +02:00
Sebastian Huber ffbeb6f6a3 smp: Add PowerPC support 2013-05-31 15:20:32 +02:00
Sebastian Huber bbed18668f smptests/smplock01: New test 2013-05-31 15:20:32 +02:00
Sebastian Huber e358088fc2 smp: New SMP lock API
Move the SMP lock implementation to the CPU port.  An optimal SMP lock
implementation is highly architecture dependent.  For example the memory
models may be fundamentally different.

The new SMP lock API has a flaw.  It does not provide the ability to use
a local context for acquire and release pairs.  Such a context is
necessary to implement for example the Mellor-Crummey and Scott (MCS)
locks.  The SMP lock is currently used in _Thread_Disable_dispatch() and
_Thread_Enable_dispatch() and makes them to a giant lock acquire and
release.  Since these functions do not pass state information via a
local context there is currently no use case for such a feature.
2013-05-31 15:20:32 +02:00