Commit Graph

1106 Commits

Author SHA1 Message Date
Sebastian Huber
c625a64121 Filesystem: Delete node type operation
Use the fstat handler instead.
2015-01-22 07:52:40 +01:00
Sebastian Huber
25e5f616fe libcsupport: Do not use _Assert() for sync()
Use a best-effort approach.
2014-12-12 13:16:29 +01:00
Sebastian Huber
7bdb765a67 Add POSIX key value pairs to resource snapshot 2014-12-12 13:16:28 +01:00
Sebastian Huber
2c3c657625 score: Return heap stats via _Heap_Get_information
Print out heap statistics via the MALLOC and WKSPACE shell commands.
2014-11-28 13:09:07 +01:00
Sebastian Huber
01557b0c6e libcsupport: Delete malloc statistics
Use the heap handler statistics instead.  Add heap walk option to MALLOC
shell command.

close #1367
2014-11-28 11:23:53 +01:00
Joel Sherrill
e22af784cd sync.c: Add asserts to document and check assumptions 2014-11-27 10:06:23 -06:00
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
c3350e7d4a Filesystem: Typo 2014-11-20 10:30:22 +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
Joel Sherrill
65f71f8472 libcsupport/include/clockdrv.h: Remove rtems_clock_major/minor 2014-10-13 10:33:32 -05: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
Joel Sherrill
f535fe5311 tod.h -> libcsupport like other driver and helper prototype files
This rippled into the handful of files that should have been using
<rtems/tod.h>.
2014-09-16 16:09:13 -05:00
Joel Sherrill
8fbe2e69b5 Use correct prototype of benchmark_timer_read()
This change starts with removing the effectively empty file
timerdrv.h. The prototypes for benchmark_timer_XXX() were in
btimer.h which was not universally used. Thus every use of
timerdrv.h had to be changed to btimer.h. Then the prototypes
for benchmark_timer_read() had to be adjusted to return
benchmark_timer_t rather than int or uint32_t.

I took this opportunity to also correct the file headers to
separate the copyright from the file description comments which
is needed to ensure the copyright isn't propagated into Doxygen
output.
2014-09-16 16:09:12 -05: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
Christian Mauderer
8074342c9b termios: Add rtems_termios_get_termios() 2014-07-09 13:33:06 +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
25a978354c ringbuf: Fix ISR lock initialization/destruction 2014-04-01 14:10:22 +02: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