Commit Graph
808 Commits
Author SHA1 Message Date
Sebastian Huber 038faca160 rtems: Add rtems_cache_coherent_allocate()
Add rtems_cache_coherent_free() and rtems_cache_coherent_add_area().
2014-11-27 10:33:30 +01:00
Josh Oguin 72f63eeff0 libcsupport/src/newlibc_exit.c: Remove dead code
This was flagged as an empty for statement by CodeSonar but is actually
unreachable code that should be removed.
2014-11-26 07:51:58 -06:00
Josh Oguin f18fd4f2bc libcsupport/src/mount.c: Remove unnecessary operation
This was flagged by CodeSonar.
2014-11-26 07:51:57 -06:00
Joel Sherrill 3211e8e9c0 cpukit/libcsupport/src/pwdgrp.c: Check return value
Coverity Id 1255518. mkdir() could fail. Check return value and return
on failure. Behavior is similar to if open() failed while writing the
files.
2014-11-25 12:57:09 -06:00
Sebastian Huber 7e5c9b895e rtems: Move rtems_cache_aligned_malloc()
Make sure also the size is cache aligned since otherwise we may have
some overlap with the next allocation block.  A cache invalidate on this
area would be fatal.
2014-11-25 16:08:16 +01:00
Sebastian Huber 0273349594 libcsupport: malloc_is_system_state_OK()
Move system state check to malloc_is_system_state_OK().
2014-11-25 16:08:16 +01:00
Joel Sherrill 5dff7425bd libcsupport/src/termios.c: Explicitly ignore return value (Coverity ID 1255347)
Coverity spotted that we were ignoring a return value. But ignoring
it is intentional. Adding (void) clearly indicates it is being ignored
explicitly.
2014-11-21 13:13:20 -06:00
Sebastian Huber e02d5dd9b3 Ensure security of default user environment 2014-11-20 10:30:24 +01:00
Sebastian Huber b8bd90f68f Add supplementary groups to user environment 2014-11-20 10:30:23 +01:00
Sebastian Huber ffa71f1cd0 libcsupport: Implement getgroups() 2014-11-20 10:30:22 +01:00
Sebastian Huber 395e5d4d7a libcsupport: Use POSIX key for getgrent() 2014-11-20 10:30:22 +01:00
Sebastian Huber 002f351e15 libcsupport: Minimal /etc/passwd and /etc/group
Create a minimal /etc/passwd and /etc/group with user root and group
root only with no passwords.
2014-11-20 10:30:22 +01:00
Sebastian Huber 6935428a29 libcsupport: Avoid TOCTOU and format errors 2014-11-20 10:30:22 +01:00
Sebastian Huber 80055514bb libcsupport: Use pthread_once() 2014-11-20 10:30:21 +01:00
Sebastian Huber b471854bc2 libcsupport: Split passwd/group support 2014-11-20 10:30:21 +01:00
Sebastian Huber d82f9de1c9 libcsupport: Add copyrights according to rev hist 2014-11-20 10:30:21 +01:00
Chris Johns ea9232d016 ilibcsupport: Add realpath call. 2014-10-24 16:05:59 -07:00
Sebastian Huber 22cd2821de IMFS: Avoid NULL pointer access
Avoid NULL pointer access in IMFS_is_imfs_instance().  File systems
mounted via mount() always have a valid type string.
2014-10-08 11:26:27 +02:00
Sebastian Huber 7fd5e89c96 termios: Partially hide rtems_termios_tty
Move interrupt lock to device context and expose only this structure to
the read, write and set attributes device handler.  This makes these
device handler independent of the general Termios infrastructure
suitable for direct use in printk() support.
2014-10-07 16:35:13 +02:00
Sebastian Huber a830cb864d termios: Separate flow control from normal handler 2014-10-07 16:27:51 +02:00
Sebastian Huber ff7217b2f0 termios: Fix transmit daemon
Do not call rtems_termios_refill_transmitter() in case a PPP line
discipline is present.  This is similar to
rtems_termios_dequeue_characters().
2014-10-07 15:09:47 +02:00
Sebastian Huber 8dab980932 libcsupport: Use RTEMS_DECONST() 2014-09-08 07:53:02 +02:00
Kolja Waschk 3654667f77 rtems_termios_puts: Copy and write more than one char at once
Renamed startXmit(), nToSend is unsigned, just check FL_ORCVXOF, no (void) cast anymore, compute nToSend in single if/else if/else.
2014-08-18 18:39:44 -05:00
Sebastian Huber 93726e5205 termios: Add rtems_termios_set_best_baud() 2014-07-09 15:56:43 +02:00
Sebastian Huber a0fb29fb80 termios: PR1279: Use first open status 2014-07-09 12:07:49 +02:00
Sebastian Huber 32fc6a3490 termios: PR1279: Use set attributes status 2014-07-09 12:07:49 +02:00
Sebastian Huber ef8c00bc88 termios: PR2153: New low-level device API
Add a new low-level device API to Termios that passes the TTY structure
to the low-level device functions.  This greatly simplifies the
low-level device drivers since they are no longer forced to derive their
private data from the minor number.

It makes it possible to use the TTY low-level lock in the device driver
low-level functions which is necessary for proper SMP support.  For
example to set the attributes it is often necessary to perform a
read-modify-write operation on a control register used also by interrupt
routines.

A compatibility layer is provided to support device drivers using the
old callback functions so it is not necessary to modify existing device
drivers.
2014-07-09 11:55:00 +02:00
Sebastian Huber f6b1e0630b termios: Make tty list static 2014-06-30 11:18:42 +02:00
Sebastian Huber 69aa33490b score: Simplify thread control initialization
The thread control block contains fields that point to application
configuration dependent memory areas, like the scheduler information,
the API control blocks, the user extension context table, the RTEMS
notepads and the Newlib re-entrancy support.  Account for these areas in
the configuration and avoid extra workspace allocations for these areas.

This helps also to avoid heap fragementation and reduces the per thread
memory due to a reduced heap allocation overhead.
2014-04-15 08:37:12 +02:00
Joel Sherrill eb2c8133aa privateenv.c: Remove unused variable warning 2014-04-04 09:24:17 -05:00
Sebastian Huber 23fec9f0e1 score: PR2152: Use allocator mutex for objects
Use allocator mutex for objects allocate/free.  This prevents that the
thread dispatch latency depends on the workspace/heap fragmentation.
2014-03-31 08:29:44 +02:00
Sebastian Huber 1b1be254e7 score: Thread life cycle re-implementation
The thread deletion is now supported on SMP.

This change fixes the following PRs:

PR1814: SMP race condition between stack free and dispatch

PR2035: psxcancel reveals NULL pointer access in _Thread_queue_Extract()

The POSIX cleanup handler are now called in the right context (should be
called in the context of the terminating thread).

http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html

Add a user extension the reflects a thread termination event.  This is
used to reclaim the Newlib reentrancy structure (may use file
operations), the POSIX cleanup handlers and the POSIX key destructors.
2014-03-31 08:29:43 +02:00
Christian Mauderer 5c0c0cf2a6 privateenv: Use POSIX keys instead of task variables. 2014-03-27 14:50:36 +01:00
Christian Mauderer 7d5c27e308 privateenv: Remove sharing of user environment between threads. 2014-03-27 14:50:36 +01:00
Christian Mauderer 5ef9f23fb4 libcsupport: Use POSIX keys for GXX key functions
With this patch C++ applications now eventually need additional POSIX-keys and
POSIX-key-value-pairs configured.
2014-03-24 08:31:49 +01:00
Christian Mauderer 9d9df8b44e libcsupport: Remove unused gxx-wrapper function.
The rtems_gxx_key_dtor function is not longer used by gcc.
2014-03-24 08:31:49 +01:00
Christian Mauderer a5385b1f72 score: Unify pthread and gxx_wrapper once and move to score. 2014-03-21 11:21:49 +01:00
Chris Johns c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Sebastian Huber 53ad908a64 score: Add SMP lock profiling support 2014-03-14 08:46:49 +01:00
Sebastian Huber 28779c70ff score: Add function to destroy SMP locks 2014-03-11 10:58:09 +01:00
Sebastian Huber d50acdbb6c score: Add local context to SMP lock API
Add a local context structure to the SMP lock API for acquire and
release pairs.  This context can be used to store the ISR level and
profiling information.  It may be later used to enable more
sophisticated lock algorithms, e.g. MCS locks.

There is only one lock that cannot be used with a local context.  This
is the per-CPU lock since here we would have to transfer the local
context through a context switch which is very complicated.
2014-03-11 10:58:09 +01:00
Sebastian Huber b1196e3268 printk: Add support for long long 2014-03-11 10:58:05 +01:00
Sebastian Huber 83bf105486 score: Rename _Internal_error_Occurred()
Rename _Internal_error_Occurred() into _Terminate().
2014-02-21 09:38:24 +01:00
Sebastian Huber bab16de267 score: Change debug helper functions
Rename rtems_internal_error_description() to
rtems_internal_error_text().  Rename rtems_fatal_source_description() to
rtems_fatal_source_text().  Rename rtems_status_code_description() to
rtems_status_text().  Remove previous implementation of
rtems_status_text().
2014-02-12 09:18:00 +01:00
Joel Sherrill cfbeaf6da0 calloc.c: Remove use of register keyword 2014-02-03 17:45:32 -06:00
Daniel Ramirez 35b8f48a4b libcsupport: Refactor rtems_deviceio_errno
Renames rtems_deviceio_errno to rtems_status_code_to_errno and
integrates it into the Classic API Status Handler. This function
can now be called by including status.h
2014-01-08 15:24:09 -06:00
Daniel Ramirez 564ce0f42d libcsupport: implemented termios functions cfsetspeed and cfmakeraw 2014-01-07 10:34:31 -06:00
Sebastian Huber 56bea4339f Filesystem: Use default kqfilter and poll handler 2013-12-20 10:31:53 +01:00
Sebastian Huber 2f68778f08 Filesystem: Add readv/writev handlers
The readv() and writev() support was implemented in terms of multiple
calls to the read and write handlers.  This imposes a problem on device
files which use an IO vector as single request entity.  For example a
low-level network device (e.g. BPF(4)) may use an IO vector to create
one frame from multiple protocol layers each with its own IO vector
entry.
2013-12-20 10:31:53 +01:00
Sebastian Huber 95a57280eb libcsupport: Add and use rtems_libio_iovec_eval() 2013-12-20 10:31:53 +01:00