Commit Graph

627 Commits

Author SHA1 Message Date
Chris Johns
bba48d90bc libdl: Support link ordered loading of ELF sections.
The ARM C++ exception ABI uses an address ordered index table to
locate the correct frame data and this requires the EXIDX sections are
loaded in the order the order the matching text is loaded.

The EXIDX sections set the SHF_LINK_ORDER flag and link field. This patch
adds support to load those flagged sections in the linked-to section
order.

Updates #2955.
Closes #2959
2017-03-31 09:00:14 +11:00
Kevin Kirspel
1c6926c11f termios: Synchronize with latest FreeBSD headers
Adding modified FreeBSD headers to synchronize RTEMS termios with
FreeBSD.  Modify termios to support dedicated input and output baud for
termios structure.  Updated BSPs to use dedicated input and output baud
in termios structure.  Updated tools to use dedicated input and output
baud in termios structure.  Updated termios testsuites to use dedicated
input and output baud in termios structure.

Close #2897.
2017-03-22 11:55:04 +01:00
Sebastian Huber
902ffeddb5 termios09: Test send callback 2017-02-28 09:09:23 +01:00
Sebastian Huber
3663543392 termios: Implement non-blocking write 2017-02-28 09:09:23 +01:00
Sebastian Huber
a165a9607a termios: Make write POSIX compatible
Currently only blocking read/write operations are implemented.  A
blocking write must transfer at least one character.  It should not wait
for the device for the second character and so on.

Close #2917.
2017-02-28 09:09:19 +01:00
Sebastian Huber
5244d31ef7 termios: Simplify oproc()
Call rtems_termios_puts() only once.  Adjust column in one place.
2017-02-28 09:05:47 +01:00
Sebastian Huber
06d14667f7 termios09: Test output post processing 2017-02-28 09:05:47 +01:00
Sebastian Huber
c80f6aa916 termios: Fix infinite loop in receive path
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.

Close #2915.
2017-02-28 09:05:47 +01:00
Sebastian Huber
9fa0f543ec termios: Change receive callback invocation
Call the receive callback in case a read will succeed without to block.
This enables the use of the receive callback for a poll() and select()
support.  Increase raw input buffer size to allow buffering of one line.

Close #2916.
2017-02-28 09:05:42 +01:00
Sebastian Huber
9f69ac2a9d termios: Ignore carriage return early if desired
In case carriage return characters should be ignored in the input
(IGNCR), then drop them early before they reach the raw input buffer.
This makes it easier to calculate the content size of the raw input
buffer.
2017-02-28 08:51:31 +01:00
Chris Johns
c6eead1353 libdl: Add C++ exception support to loaded modules.
This has been tested on SPARC, i386, PowerPC and ARM.

Closes #2767.
2016-12-14 09:07:16 +11:00
Sebastian Huber
6a9282d9bb Rename is_internal to always_set_to_false
Update #2825.
2016-12-12 08:03:14 +01:00
Sebastian Huber
b6606e8d99 score: Remove fatal is internal indicator
The fatal is internal indicator is redundant since the fatal source and
error code uniquely identify a fatal error.  Keep the fatal user
extension is internal parameter for backward compatibility and set it to
false always.

Update #2825.
2016-12-09 08:47:51 +01:00
Chris Johns
a0d4e9933c cpukit: Add libdebugger, a remote debugger agent for GDB. 2016-11-29 08:50:40 +11:00
Sebastian Huber
46b534388f libtests/cpuuse: Check status only
We may own the allocator mutex during context switches.
2016-11-23 12:52:05 +01:00
Chris Johns
826f3afaf3 libmisc/xz: Add xz decompression.
Add support to untar XZ compressed files.
2016-10-13 13:11:40 +11:00
Sebastian Huber
55e0be3606 termios: Use IMFS nodes for new Termios devices
This makes the new Termios devices independent of device major/minor
numbers.  It enables BSP independent Termios device drivers which may
reside in the cpukit domain.  These drivers require an IMFS and do not
work with the device file system.  However, the device file system
should go away in the future.
2016-09-19 07:52:33 +02:00
Sebastian Huber
610b9ef120 libtests/devfs: Use printk()
This avoids problems with console drivers that use generic nodes of the
IMFS.
2016-09-19 07:52:33 +02:00
Sebastian Huber
29770e122e tests: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
Avoid unnecessary use of CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM.
2016-09-19 07:22:30 +02:00
Alexander Krutwig
a42be52bbf Add SPI bus framework
User API is compatible to Linux userspace API.  New test libtests/spi01.

Update #2776.
2016-09-16 09:36:44 +02:00
Chris Johns
d416061846 testsuite: Add libdl/dl05 reloc test. 2016-09-08 16:52:39 +10:00
Chris Johns
1c18ebf0d6 libmisc/capture: Remove the reserved _t in the types. 2016-09-01 11:11:45 +10: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
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
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
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
2e3ba71256 net: Fix byte order issue for getnameinfo() 2016-07-01 15:16:10 +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
Sebastian Huber
ede1a4182d Make rtems/print.h independent of rtems/bspIo.h 2016-06-22 07:29:26 +02:00
Chris Johns
d84e346b26 libmisc/untar: Support directory create and overwrites. Share the common code.
Support creating directories for files with a path depth greater than 1. Some
tar files can have files with a path depth greater than 1 and no directory
entry in the tar file to create a directory.

Support overwriting existing files and directories failing in a similar
way to tar on common hosts. If a file is replaced with a file delete the
file and create a new file. If a directory replaces a file remove the file
and create the directory. If a file replaces a directory remove the directory,
and if the directory is not empty and cannot be removed report an error. If a
directory alreday exists do nothing leaving the contents untouched.

The untar code now shares the common header parsing and initial processing
with the actual writes still separate. No changes to the IMFS have been made.

Updates #2415.
Closes #2207.
2016-06-03 18:14:20 +10:00
Chris Johns
addf1aa868 testsuite: Fix printk format warnings. 2016-05-25 15:47:34 +10:00
Chris Johns
24d0ee57a4 cpukit, testsuite: Add rtems_printf and rtems_printer support.
This change adds rtems_printf and related functions and wraps the
RTEMS print plugin support into a user API. All references to the
plugin are removed and replaced with the rtems_printer interface.

Printk and related functions are made to return a valid number of
characters formatted and output.

The function attribute to check printf functions has been added
to rtems_printf and printk. No changes to remove warrnings are part
of this patch set.

The testsuite has been moved over to the rtems_printer. The testsuite
has a mix of rtems_printer access and direct print control via the
tmacros.h header file. The support for begink/endk has been removed
as it served no purpose and only confused the code base. The testsuite
has not been refactored to use rtems_printf. This is future work.
2016-05-25 15:47:34 +10:00
Sebastian Huber
dab902d5b2 testsuites: Avoid Giant lock
Replace _Thread_Disable_dispatch() with _Thread_Dispatch_disable().
Replace _Thread_Enable_dispatch() with _Thread_Dispatch_enable().

This is a preparation to remove the Giant lock.

Update #2555.
2016-05-20 07:49:41 +02:00
Joel Sherrill
4cf41fd511 block[08|09|10]/init.c: Include <stdlib.h> to fix warning on exit() 2016-04-20 11:00:57 -05:00
Sebastian Huber
d7e68c96b4 malloc: Fix early realloc() allocation 2016-04-06 13:50:16 +02:00
Sebastian Huber
354064b92a libtests/syscall01: Explicitly request close
This makes the test more reliable in case an interrupt driven console
driver is used.
2016-03-07 15:24:19 +01:00
Sebastian Huber
9d1f394345 malloc: Add _Malloc_System_state()
Replace malloc_is_system_state_OK() with _Malloc_System_state() to allow
early allocations, e.g. in bsp_start().  Here the _Thread_Executing is
NULL, thus an _API_Mutex_Lock() would lead to a NULL pointer access.

Move malloc() support code to general case
rtems_heap_allocate_aligned_with_boundary().  Use
rtems_heap_allocate_aligned_with_boundary() to avoid duplicated code.
2016-02-25 11:35:54 +01:00
Sebastian Huber
bb291a4a87 libtests/devfs: Inc max dev to support more BSPs 2016-01-19 08:36:18 +01:00
Joel Sherrill
f6a8663ec5 Remove H8300 port
updates #2452.
2016-01-04 11:07:26 -06:00
Joel Sherrill
f5201df0dc Remove M32R architecture
updates #2446.
2016-01-04 11:07:00 -06:00
Aun-Ali Zaidi
d5154d0f6a api: Remove deprecated Notepads
Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.

In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:

 - 16 32-bit integers were allocated.
 - A total of 64 bytes per task per thread.

This is especially critical in low memory and safety-critical applications.

They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.

Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.

updates #2493.
2015-12-24 16:52:34 -06:00
Sebastian Huber
459ebc8397 libtests/termios04: Avoid use of freed memory 2015-11-12 08:28:45 +01:00
Sebastian Huber
08a807b0ad libblock: Print block sizes and count 2015-11-02 08:21:49 +01:00
Sebastian Huber
f97536dcd3 basdefs.h: Add and use RTEMS_UNUSED 2015-10-26 09:13:19 +01:00
Ben Gras
7e06bd982b Fail gracefully if pax is not found
The $(PAX) variable is used unconditionally so it shouldn't be
left empty if not found at configure time. Fixes #2437.
2015-10-22 21:56:50 +02:00
Sebastian Huber
c03c71b170 libfdt: Merge into librtemscpu
This allows BSPs to use this library.
2015-10-19 09:51:28 +02:00
Sebastian Huber
175263ec91 libfdt: Initial import
Import from:

git://git.kernel.org/pub/scm/utils/dtc/dtc.git

Commit:

604e61e081e3c6c8fa1a8189c71cb3908a5bbc1e

Date:

2015-09-29T09:09:08Z
2015-10-16 07:46:56 +02:00
Sebastian Huber
10c4636947 rbheap: Fix rtems_rbheap_free()
Remove unused descriptor of merged free chunks from the free chain and
add them to the spare descriptors.

Close #2417.
2015-09-11 11:28:13 +02:00