Commit Graph

4480 Commits

Author SHA1 Message Date
Sebastian Huber
1b84d2b360 libtests/ttest01: Fix typos 2019-10-02 06:38:07 +02:00
Sebastian Huber
a314544a27 record: Add wrappers for malloc() functions
Introduce new library librtemsrecordwrap.a which contains wrappers for
operating system functions which produce entry/exit events.

The wrappers can be selected during link time via the GNU ld --wrap
option.

Update #3665.
2019-10-01 09:55:07 +02:00
Sebastian Huber
c1eb577486 libtests/record01: Fix test failure
Update #3665.
2019-10-01 09:55:07 +02:00
Sebastian Huber
aeb981ea1b psxtests/psxualarm: Fix test failure
Update #3794.
2019-10-01 09:16:31 +02:00
Joel Sherrill
8798372261 Correct initial POSIX signals mask
+ Modify POSIX thread create extension to ensure expected
	  initial signal mask is provided to system threads, initial
	  tasks and threads, and inheritied by tasks and threads.
	+ Adds psxsignal07 to verify functionality when using a POSIX
	  Initialization thread and POSIX threads.
	+ Adds psxsignal08 to verify functionality when using a Classic API
	  Initialization task and Classic API tasks.

Closes #3794.
2019-09-24 16:27:57 -05:00
Sebastian Huber
c1a1f2c8da Add rtems_version_control_key_is_valid() 2019-09-11 07:28:34 +02:00
Vaibhav Gupta
5e5867a32a Add psxfenv01 test to psxtests
Note that this test requires a functional fenv implementation. Some
targets have multilib variants where the fenv implementation is not
100% passing.
2019-09-10 13:47:29 -05:00
Sebastian Huber
1c72ad73ae record: Add system events
Add system events for memory allocation/free.

Update #3665.
2019-08-30 15:03:14 +02:00
Sebastian Huber
8ace7eada4 record: Add system events
Add system events to identify the target system.  Add system events to
transfer blocks of memory and register sets.

Update #3665.
2019-08-30 11:18:47 +02:00
Sebastian Huber
58bd67bb35 record: Add more system events
Reduce the system dependencies to allow tracing of very low level
functions, for example the interrupt disable/enable.

Introduce general purpose RTEMS_RECORD_CALLER and RTEMS_RECORD_LINE
events.

Update #3665.
2019-08-29 10:07:02 +02:00
Sebastian Huber
807ea677b2 score: Add RTEMS_RETURN_ADDRESS() 2019-08-28 15:22:27 +02:00
Sebastian Huber
956a2ef78d record: Add variants for critical sections
Update #3665.
2019-08-28 15:22:27 +02:00
Sebastian Huber
3eb8d78369 record: Introduce <rtems/recordserver.h>
This helps to get rid of the <rtems/rtems/tasks.h> dependency in
<rtems/record.h>.

Update #3665.
2019-08-28 15:22:06 +02:00
Sebastian Huber
a2684c2b8d record: Use BSS section instead of per-CPU data
The .rtemsrwset section is used for the per-CPU data.  This section has
loadable content.  Place the ring buffers in the BSS section to avoid
large executable image sizes.

Not using the per-CPU data makes it possible to initialize the record
support earlier.

Update #3665.
2019-08-28 08:58:14 +02:00
Sebastian Huber
c91f6f5f4e record: Pass bintime to client handlers
This is a minor optimization.
2019-08-17 19:01:14 +02:00
Sebastian Huber
52c8ac7b69 record: Improve overflow handling
In case of a ring buffer overflow, the rtems_record_drain() will push
the complete ring buffer content to the client.  While the items are
processed by the client, new items may overwrite some items being
processed.  The overwritten items can be detected in the following
iteration once the next tail/head information is pushed to the client.
2019-08-17 19:01:10 +02:00
Sebastian Huber
cc91fae43a record: Change thread name encoding
This scheme is easier to decode.
2019-08-06 07:51:42 +02:00
Vaibhav Gupta
57e0173584 psxtests: Add ndbm test suite
Joel Sherrill <joel@rtems.org> modified the patch to
	add autoconf logic to avoid building this new test
	unless the tool chain include <ndbm.h>. The ensures
	that git bisect continues to work and that the addition
	of this test does not immediately force the entire
	community to update their tools.
2019-07-30 10:18:09 -05:00
Sebastian Huber
036717eda4 record: Add support for thread names 2019-07-30 07:25:10 +02:00
Chris Johns
5a678de90c libdl/arm: Fix ARM mode trampoline parsing of relocs
- No need to dump globals syms in test dl01 when tracing

Closes #3775
2019-07-28 09:12:53 +10:00
Joel Sherrill
6eae586050 ticker/init.c: Error should say clock set not get 2019-07-22 12:52:46 -05:00
Vaibhav Gupta
d9fcb22a61 psxtests: Add psxinttypes01 for <inttypes.h> methods 2019-06-19 11:03:35 -05:00
Sebastian Huber
5fa893ea20 score: Add _SMP_Unicast_action() 2019-05-20 09:31:25 +02:00
Sebastian Huber
577293f0a9 score: Add _SMP_Synchronize() 2019-05-20 09:01:15 +02:00
Sebastian Huber
fe24820e95 smpipi01: Use per-CPU jobs for IPI flood test 2019-05-20 08:54:31 +02:00
Sebastian Huber
21e691b7d7 smpipi01: Ensure IPI works on all processors 2019-05-20 08:54:31 +02:00
Sebastian Huber
7cb881f5b1 smpipi01: Use per-CPU jobs for pending IPI test 2019-05-20 08:54:31 +02:00
Sebastian Huber
c63e8bbeb9 score: Modify _Per_CPU_Perform_jobs()
Process only the jobs initially registered on the processing list.  This
makes it possible to add jobs for the current processor in a job
handler.  These jobs are processed with the next
SMP_MESSAGE_PERFORM_JOBS message.  The lock is only acquired and
released once.
2019-05-20 08:54:27 +02:00
Sebastian Huber
85d6e845d2 score: Add _Per_CPU_Add_job() 2019-05-20 08:52:39 +02:00
Sebastian Huber
3b2481f9a7 score: Simplify _SMP_Multicast_action()
Move resposibility to disable thread dispatching to the caller of
_SMP_Multicast_action().  Using an interrupt disable for this purpose is
questionable.
2019-05-20 08:49:39 +02:00
Sebastian Huber
658700449d score: Add _SMP_Broadcast_action() 2019-05-20 08:49:39 +02:00
Sebastian Huber
9f52acb5e5 smptests: Move SMP broadcast action test case 2019-05-20 08:49:39 +02:00
Sebastian Huber
317997fd1b smpmulticast01: Use T_TEST_CASE() 2019-05-20 08:49:39 +02:00
Joel Sherrill
6d3e3934cd Makefile.am: Add psxhdrs/termios files to build 2019-05-07 15:01:03 -05:00
Jacob Shin
7bd38f88c7 psxhdrs: Add POSIX API Signature Compliance Tests for termios.h 2019-05-07 14:35:30 -05:00
Chris Johns
b36c52097f libdl: Do not access the ELF file while the allocator is locked.
- Load symbols before allocation.
- Parse reloc records and place any reloc recs in a cache to use
  while the allocator is locked.
- Relocate symbols after section allocation.
- Split section loading into allocation/locating and loading.
- Update all arch back-ends with a new reloc interface to control
  tramp handling.
- Add `-a` and `-t` to the object list shell command.

Closes #3741
2019-05-03 10:15:20 +10:00
Sebastian Huber
ef9d20f691 score: More robust _SMP_Multicast_action()
If the caller already disabled interrupts, then do not disable thread
dispatching.  Calling _SMP_Multicast_action() with interrupts disabled
is a questionable use case.
2019-04-12 11:15:40 +02:00
Sebastian Huber
f410b31be4 score: Improve _SMP_Multicast_action()
Let it work during system initialization.
2019-04-12 09:44:48 +02:00
Sebastian Huber
e90486ab41 score: Rework SMP multicast action
Use a FIFO list of jobs per processor to carry out the SMP multicast
action.  Use a done indicator per job to reduce the bus traffic a bit.
2019-04-12 09:44:48 +02:00
Sebastian Huber
df8d7bd76f score: Use processor mask in _SMP_Multicast_action
Processor_mask is the internal data type to deal with processor sets.
2019-04-12 09:44:48 +02:00
Sebastian Huber
18d45d9d25 score: Add _ISR_lock_Set_name()
Add _ISR_lock_Set_name() to optimize the initialization of
zero-initialized locks.
2019-04-12 09:12:03 +02:00
Sebastian Huber
ad87de4a67 score: Rename _SMP_Get_processor_count()
Rename _SMP_Get_processor_count() in _SMP_Get_processor_maximum() to be
in line with the API level rtems_scheduler_get_processor_maximum().

Update #3732.
2019-04-11 09:19:12 +02:00
Sebastian Huber
71c5b005c7 spmisc01: Use RTEMS_CONST
Update #3734.
2019-04-09 08:18:28 +02:00
Sebastian Huber
f9219db2a9 rtems: Add rtems_scheduler_get_processor_maximum()
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-09 08:06:46 +02:00
Sebastian Huber
03c9f24061 rtems: Add rtems_scheduler_get_processor()
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-04-09 08:06:46 +02:00
Sebastian Huber
cbfc341560 ttest01: New test
This is an example test using the RTEMS Test Framework.  It tests also
the framework itself.

Add T_FILE_NAME command line define to get rid of the full file path.
This is important to reduce the read-only data of test files and make
them build system independent.

Update #3199.
2019-03-27 07:21:31 +01:00
Sebastian Huber
6fe01e4b3d build: Move test support to librtemstest.a
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-26 11:29:58 +01:00
Joel Sherrill
127ee3a552 psxhdrs/stdio/v*.c: Fix warnings in varargs tests 2019-03-25 16:27:44 -05:00
Chris Johns
dad6fd4333 libdl: Add an archive command
- The archive command lists archives, symbols and any duplicate
  symbols.
- Change the RTL shell commands to the rtems_printer to allow
  the output to be captured.
2019-03-22 14:16:52 +11:00
Sebastian Huber
3fe215502a Remove superfluous <rtems/system.h> includes 2019-03-14 13:13:27 +01:00