| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Perform a context-dependent deferred location release to avoid a
deadlock on the file system instance locks, for example during a
chdir().
Close #2936.
|
|
|
|
|
|
|
|
| |
Add path length parameter to
rtems_filesystem_eval_path_start_with_root_and_current() so that users
may pass paths without a '\0' termination.
Update #2558.
|
|
|
|
| |
Only a few BSPs use this and it should not have been in libcsupport.
|
| |
|
|
|
|
|
|
|
| |
These header files were only used by one BSP and they are
hardware dependent. The hardware dependency always made
them bad candidates for where they were in the tree. But
this fixes that.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Drop parameter check from previously unused
rtems_libio_iop_to_descriptor().
|
| |
|
| |
|
|
|
|
| |
Use the fstat handler instead.
|
| |
|
|
|
|
|
|
|
| |
Use the heap handler statistics instead. Add heap walk option to MALLOC
shell command.
close #1367
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
This rippled into the handful of files that should have been using
<rtems/tod.h>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
With this patch C++ applications now eventually need additional POSIX-keys and
POSIX-key-value-pairs configured.
|
|
|
|
| |
The rtems_gxx_key_dtor function is not longer used by gcc.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Split the dub call into dup and dup2 in fcntl.c. This requires
a private command which is placed in the internal libio header.
|
| |
|
| |
|
|
|
|
|
|
| |
This handler is necessary to implement the KQUEUE(2) system calls.
Add <sys/event.h> from FreeBSD 8.4.
|
|
|
|
|
|
|
| |
This handler is necessary to implement the SELECT(2) and POLL(2) system
calls.
Add <sys/poll.h> from FreeBSD 8.4.
|
|
|
|
| |
This is in line with Linux and FreeBSD.
|
| |
|
| |
|
| |
|
| |
|