Commit Graph
3711 Commits
Author SHA1 Message Date
Chris Johns d416061846 testsuite: Add libdl/dl05 reloc test. 2016-09-08 16:52:39 +10:00
Sebastian Huber 3709987d96 score: Add _Chain_Initialize_one() 2016-09-06 10:52:20 +02:00
Sebastian Huber 83b0229071 score: Add _RBTree_Initialize_one() 2016-09-06 10:52:19 +02:00
Chris Johns 1c18ebf0d6 libmisc/capture: Remove the reserved _t in the types. 2016-09-01 11:11:45 +10:00
Chris Johns 6da06c559f libmisc/capture: Fix the capture engine on SMP.
This patches some issues with the capture engine:

 1. Check is the engine is open in ctrace commands.
 2. Check all record open and appends for overflow.
 3. Fix the record open to take the size of user data and
    not the record header.
 4. Use packed structs for data being written to the per
    cpu buffers.
 5. Remove direct struct access to the capture buffers to
    avoid misaligned accesses.
 6. Add support to extract records, no struct access to the
    capture buffers.
 7. Update ctrace to extract records from the capture buffers.
 8. Add support to ctrace to always print the task name if it
    has one.
 9. Add support to manage names or the lack of a name.
10. Range of minor fixes.
11. Fix a long standing bug in ctset's handling of args.

Closes #2780.
2016-09-01 11:11:22 +10:00
Sebastian Huber 5d1fc66ce7 psxtests: Adjust sporadic server tests
According to POSIX priority value returned from pthread_getschedparam()
shall be the value specified by the most recent pthread_setschedparam(),
pthread_setschedprio(), or pthread_create() call affecting the target
thread.  Read this as though a temporary lower priority due to the
sporadic server policy shall not be visible through
pthread_getschedparam().  Thus, use rtems_task_set_priority() to get the
current priority of the threads.

Use a priority ceiling mutex to prevent sporadic server priority
adjustments.
2016-08-18 07:28:00 +02:00
Chris Johns 381c42b01e testsuite: Add libdl/dl04 cache test. 2016-08-15 17:58:01 +10:00
Chris Johns 97d395bac3 testsuite: Add libdl/dl03 cache test. 2016-08-15 15:45:10 +10:00
Sebastian Huber 55faa44768 score: Improve _RBTree_Insert_inline()
Return if the inserted node is the new minimum node or not.
2016-08-12 11:16:45 +02:00
Chris Johns 03c1038edb librtems++: Remove from RTEMS.
This is old and there are better design patterns for threading and C++.
We recommend you use the new C++ standards based support.

Closes #2777.
2016-08-11 17:24:06 +10:00
Chris Johns 9a4eca5843 build-system: Always enable C++ if the compiler is present.
We always build a C++ compiler and building with C++ does not effect
RTEMS or the runtime. This patch always enabled the support. There is
no need to manually enable it any more.

You can disable C++ with '--disable-cxx'.

If an architecture does not have a C++ compiler support is automatically
disabled.
2016-08-11 17:20:10 +10:00
Sebastian Huber 21d736554c sptests/splinkersets01: Fix for small-data area 2016-08-10 10:00:11 +02:00
Chris Johns b0f08c83e2 libmisc/untar: Set the perms to the value in the tar file.
This patch parses the mode field in the tar header and sets the
directory or file to the mode value in the header.

Closes #2768.
2016-08-09 17:22:26 +10:00
Sebastian Huber 5c09e9dd1f sptests/splinkersets01: Fix warnings 2016-08-08 09:47:06 +02:00
Sebastian Huber aaaf9610db score: Add debug support to red-black trees
This helps to detect double insert and extract errors.
2016-08-08 09:34:29 +02:00
Christian Mauderer 5fe6d07ad5 linker set: Allow adding any variable into content
The newly created macro adds any kind of variable into a linker set. It
allows (for example) the saving an execution state of a function using
the following method:

- put a group of different variables into one linker set
- save the memory area containing the group of variables before the
  execution of a function
- restore the memory area after the function has been executed
2016-08-02 07:47:04 +02:00
Sebastian Huber d79df38c2b score: Add deadlock detection
The mutex objects use the owner field of the thread queues for the mutex
owner.  Use this and add a deadlock detection to
_Thread_queue_Enqueue_critical() for thread queues with an owner.

Update #2412.
Update #2556.
Close #2765.
2016-07-27 10:55:30 +02:00
Sebastian Huber 1fcac5adc5 score: Turn thread lock into thread wait lock
The _Thread_Lock_acquire() function had a potentially infinite run-time
due to the lack of fairness at atomic operations level.

Update #2412.
Update #2556.
Update #2765.
2016-07-27 10:55:30 +02:00
Alexander Krutwig 6a174c024a Add Untar_FromGzChunk_Print() + Test 2016-07-26 10:00:04 +02:00
Alexander Krutwig 1a8fe67acf Add Untar_FromChunk_Print() + Test 2016-07-26 10:00:04 +02:00
Sebastian Huber c1b815abe0 sptests/spextensions01: Avoid NULL pointer access 2016-07-26 09:57:11 +02:00
Gedare Bloom 6e98ea9157 posix: add clock_nanosleep and tests
updates #2732
2016-07-25 12:44:47 -04:00
Sebastian Huber 57a00bc6af smptests/smpmutex02: New test
Update #2765.
2016-07-25 14:18:34 +02:00
Sebastian Huber 0fd6f25507 score: Relax thread begin extension environment
Update #2752.
2016-07-25 08:40:14 +02:00
Sebastian Huber 059529e685 score: Add debug support to chains
This helps to detect

 * double insert, append, prepend errors, and
 * get from empty chain errors.
2016-07-22 09:13:07 +02:00
Sebastian Huber 6f6cf78501 score: Postpone SMP shutdown in _Terminate()
This enables fatal extensions to continue program execution after some
fatal errors.
2016-07-06 09:33:32 +02:00
Sebastian Huber 2e3ba71256 net: Fix byte order issue for getnameinfo() 2016-07-01 15:16:10 +02:00
Sebastian Huber c0bd0064ac rtems: Fix rtems_task_set_scheduler() API
Task priorities are only valid within a scheduler instance. The
rtems_task_set_scheduler() directive moves a task from one scheduler
instance to another using the current priority of the thread. However,
the current task priority of the source scheduler instance is undefined
in the target scheduler instance. Add a third parameter to specify the
priority.

Close #2749.
2016-07-01 11:51:49 +02:00
Sebastian Huber 4280dff7cf smptests/smpstrongapa01: Simplify 2016-06-30 11:01:05 +02:00
Sebastian Huber 4fe0e97f91 smptests/smpstrongapa01: Add test cases 2016-06-30 09:54:41 +02:00
Christian Mauderer 195d412d39 libnetworking: Add minimal getnameinfo()
This implementation just falls back to giving a string representation of
the IP.  It supports IPv4 only.

Add test for getnameinfo().
2016-06-28 13:01:47 +02:00
Christian Mauderer 187a074404 libcsupport: Add dummy for setgroups().
The dummy for setgroups() allows applications using it to build (for example
civetweb webserver).
2016-06-28 13:01:37 +02:00
Sebastian Huber 254dc82daf score: Change Priority_Control to 64-bit
A 32-bit Priority_Control limits the uptime to 49 days with a 1ms clock
tick in case the EDF scheduler is used.  Increase it to 64-bit to enable
proper operation of the EDF scheduler,

Close 2173.
2016-06-24 14:44:31 +02:00
Sebastian Huber 9f61ad60c0 testsuites: Increase invalid priority values
Increase the invalid priority values to support test runs with
alternative schedulers offering a significant higher maximum priority
value, e.g. EDF.
2016-06-24 14:44:31 +02:00
Sebastian Huber 50a56dff13 score: Move SCHEDULER_EDF_PRIO_MSB
This is an implementation detail of the EDF scheduler.
2016-06-24 11:52:57 +02:00
Sebastian Huber b364d386c9 sptests/spintrcritical23: Explicity set scheduler
This test uses scheduler-specific data structures, thus it must use the
right scheduler.
2016-06-24 10:27:53 +02:00
Sebastian Huber b679b4929d sptests/sp42: Relax priority requirements 2016-06-23 10:36:23 +02:00
Sebastian Huber ec5d95e15e smptests/smpmrsp01: Fix due to API changes
Commit 77ff5599e0 introduced a change in
the rtems_semaphore_create() behaviour for MrsP semaphores.  The ceiling
priorities for all schedulers except the scheduler of the executing
thread are initialized to zero.
2016-06-23 10:36:22 +02:00
Sebastian Huber 9bfad8cd51 score: Add thread priority to scheduler nodes
The thread priority is manifest in two independent areas.  One area is
the user visible thread priority along with a potential thread queue.
The other is the scheduler.  Currently, a thread priority update via
_Thread_Change_priority() first updates the user visble thread priority
and the thread queue, then the scheduler is notified if necessary.  The
priority is passed to the scheduler via a local variable.  A generation
counter ensures that the scheduler discards out-of-date priorities.

This use of a local variable ties the update in these two areas close
together.  For later enhancements and the OMIP locking protocol
implementation we need more flexibility.  Add a thread priority
information block to Scheduler_Node and synchronize priority value
updates via a sequence lock on SMP configurations.

Update #2556.
2016-06-22 14:44:56 +02:00
Sebastian Huber 77ff5599e0 score: Introduce map priority scheduler operation
Introduce map/unmap priority scheduler operations to map thread priority
values from/to the user domain to/from the scheduler domain.  Use the
map priority operation to validate the thread priority.  The EDF
schedulers use this new operation to distinguish between normal
priorities and priorities obtain through a job release.

Update #2173.
Update #2556.
2016-06-22 14:36:40 +02:00
Sebastian Huber c82835a231 rtems: Rework RTEMS API to SuperCore priority
Use same structure as POSIX API for thread priority conversion to/from
SuperCore.
2016-06-22 14:00:28 +02:00
Sebastian Huber ce6e9ec22f posix: pthread_mutexattr_setprioceiling()
Accept all priority values in pthread_mutexattr_setprioceiling().  This
is in line with POSIX and FreeBSD.  The priority is validated in
pthread_mutex_init().  Validate the priority only for priority ceiling
mutexes.
2016-06-22 14:00:27 +02:00
Sebastian Huber 3d9fd2ce55 sptests/sp20: Use printer task
This avoids test failures due to slow output devices.
2016-06-22 07:45:49 +02:00
Sebastian Huber 506bfc8580 Move printer initialization to separate header
The RTEMS print user need to know nothing about a particular printer
implementation.  In particular get rid of the <stdio.h> include which
would be visible via <rtems.h>.
2016-06-22 07:29:26 +02:00
Sebastian Huber ede1a4182d Make rtems/print.h independent of rtems/bspIo.h 2016-06-22 07:29:26 +02:00
Sebastian Huber e8020d1914 Rename and move RTEMS_PRINTF_ATTRIBUTE()
Rename RTEMS_PRINTF_ATTRIBUTE() into RTEMS_PRINTFLIKE() (similar to
<sys/cdefs.h> __printflike()) and move it to <rtems/score/basedefs.h>.
2016-06-22 07:29:26 +02:00
Sebastian Huber 7222a65f0e sptests/spcpucounter01: Resurrect workaround
Resurrect workaround accidentially removed by
3e2a3c4948.
2016-06-21 15:54:18 +02:00
Sebastian Huber 3e2a3c4948 sptests/spcpucounter01: Add some statistics 2016-06-20 13:56:34 +02:00
Sebastian Huber bc47ec1c99 score: Refine system initialization order 2016-06-20 08:11:16 +02:00
Sebastian Huber 6a6a22586b sptests/spsysinit01: Move begin of test message 2016-06-20 08:11:16 +02:00