Commit Graph

1073 Commits

Author SHA1 Message Date
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
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
c1d8ee4cdc libcsupport: Accept NULL for zero-length entries 2013-12-20 10:31:53 +01: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
Chris Johns
6122cb6af6 PR2158: Add support for dup2.
Split the dub call into dup and dup2 in fcntl.c. This requires
a private command which is placed in the internal libio header.
2013-12-10 12:35:29 +11:00
Bryan Dunsmore
77b1de22cc gettimeofday: Add restrict keyword 2013-11-29 17:24:41 -06:00
Chirayu Desai
4f8ac347f3 libcsupport: readlink: add c99 'restrict' keyword
Signed-off-by: Chirayu Desai <cdesai@cyanogenmod.org>
2013-11-29 17:24:41 -06:00
Joel Sherrill
03e54614a3 statvfs filesystem handlers: Remove restrict 2013-11-27 13:06:16 -06:00
Daniel Ramirez
bb81e04ae3 statvfs and ALL filesystem handlers: Add restrict keyword. 2013-11-21 16:56:48 -06:00
Sebastian Huber
8cb28826ff Filesystem: Add kernel event filter handler
This handler is necessary to implement the KQUEUE(2) system calls.

Add <sys/event.h> from FreeBSD 8.4.
2013-11-04 15:22:48 +01:00
Sebastian Huber
1682946057 Filesystem: Add poll() handler
This handler is necessary to implement the SELECT(2) and POLL(2) system
calls.

Add <sys/poll.h> from FreeBSD 8.4.
2013-11-04 15:22:47 +01:00
Sebastian Huber
ba120d1aaa Filesystem: Use ENOTTY for default ioctl() handler
This is in line with Linux and FreeBSD.
2013-10-31 14:32:25 +01:00
Sebastian Huber
8d66446c2b Filesystem: Documentation 2013-10-31 14:32:24 +01:00
Sebastian Huber
61e3d1ad1e Filesystem: Clear open flag early in close()
This helps to prevent the usage of a file descriptor which is about to
close in some situations.
2013-10-31 14:30:41 +01:00
Sebastian Huber
d44d31ca0e Filesystem: Zero flags in rtems_libio_free() 2013-10-31 14:30:37 +01:00
Sebastian Huber
5fe19134c0 Filesystem: PR2146: Documentation 2013-10-23 10:59:38 +02:00
Sebastian Huber
b8de8281cb libcsupport: Updates from latest FreeBSD version 2013-10-16 15:19:30 +02:00
Sebastian Huber
816a9cad30 Filesystem: PR2146: Documentation 2013-10-15 09:10:38 +02:00
Joel Sherrill
37a7c27e29 getdents.c: Fix missing prototype warnings 2013-09-22 10:34:20 -05:00
Joel Sherrill
59a2b2b251 ctermid.c: Fix missing prototype warnings 2013-09-22 10:32:20 -05:00
Joel Sherrill
359b6d0ce9 getpwent.c: Fix missing prototype warnings 2013-09-22 10:31:08 -05:00
Joel Sherrill
f3a5d86fc9 newlibc_init.c: Fix missing prototype warnings 2013-09-22 10:29:45 -05:00
Joel Sherrill
01b7b69481 __times.c: Fix missing prototype warnings 2013-09-22 10:28:23 -05:00
Joel Sherrill
59abbecebb stat.c: Fix missing prototype warnings 2013-09-22 10:24:39 -05:00