| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.
This has at least seven problems:
* The make preinstall step itself needs time and disk space.
* Errors in header files show up in the build tree copy. This makes it
hard for editors to open the right file to fix the error.
* There is no clear relationship between source and build tree header
files. This makes an audit of the build process difficult.
* The visibility of all header files in the build tree makes it
difficult to enforce API barriers. For example it is discouraged to
use BSP-specifics in the cpukit.
* An introduction of a new build system is difficult.
* Include paths specified by the -B option are system headers. This
may suppress warnings.
* The parallel build had sporadic failures on some hosts.
This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.
The new cpukit include directories are:
* cpukit/include
* cpukit/score/cpu/@RTEMS_CPU@/include
* cpukit/libnetworking
The new BSP include directories are:
* bsps/include
* bsps/@RTEMS_CPU@/include
* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include
There are build tree include directories for generated files.
The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.
The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.
Update #3254.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous rtems_panic() implementation was quite heavy weight. It
depended on _exit() which calls the global destructors. It used
fprintf(stderr, ...) for output which depends on an initialized console
device and the complex fprintf().
Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic()
and output via vprintk().
Update #3244.
|
|
|
|
|
|
|
| |
This assert helps to detect an invalid reference counting in RTEMS_DEBUG
configurations.
Update #3132.
|
|
|
|
|
|
|
|
| |
POSIX mutexes are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3112.
|
|
|
|
|
|
|
|
| |
POSIX condition variables are now available in all configurations and no
longer depend on --enable-posix.
Update #2514.
Update #3113.
|
|
|
|
|
|
|
|
| |
POSIX rwlocks are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3115.
|
|
|
|
|
|
|
|
| |
POSIX barriers are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3114.
|
|
|
|
|
|
| |
This member was apparently unused.
Close #3133.
|
|
|
|
| |
Update #3136.
|
|
|
|
|
|
|
| |
Check iop reference count in close() and return -1 with errno set to
EBUSY in case the file descriptor is still in use.
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
|
|
|
|
|
| |
Replace rtems_libio_check_fd(), rtems_libio_iop(),
rtems_libio_check_open() and rtems_libio_check_permissions()
combinations with new LIBIO_GET_IOP() and LIBIO_GET_IOP_WITH_ACCESS()
macros.
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
| |
Update #3132.
|
|
|
|
|
|
|
| |
Rename rtems_libio_check_permissions_with_error() in
rtems_libio_check_permissions().
Update #3132.
|
|
|
|
|
|
|
| |
Remove rtems_libio_check_permissions() and convert single user to
rtems_libio_check_permissions_with_error().
Update #3132.
|
|
|
|
|
|
| |
This simplifies error handling later.
Update #3132.
|
|
|
|
|
|
|
| |
Remove the file descriptor validation. This is the job of
rtems_libio_check_fd(). Use an inline function instread of a macro.
Update #3132.
|
|
|
|
| |
Close #3134.
|
|
|
|
|
|
| |
The top-level IO library structures should contain no special-case data.
Update #2859.
|
|
|
|
|
|
|
|
|
|
|
| |
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r.
Updated each file handler object to support the default mmap handler.
Updated mmap() to call the mmap handler for MAP_SHARED.
Added a mmap file handler for shm
Added support for MAP_ANON in mmap().
Updates #2859
|
|
|
|
| |
Update #2833.
|
|
|
|
|
|
|
| |
Remove obsolete support for OFILL, OFDEL, NLDLY, CRDLY, BSDLY, VTDLY,
and FFDLY which is not present on FreeBSD and not implemented in Linux.
Update #2833.
|
|
|
|
| |
Update #2859.
|
|
|
|
| |
Update #2897.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Perform a context-dependent deferred location release to avoid a
deadlock on the file system instance locks, for example during a
chdir().
Update #2936.
|
|
|
|
| |
Optimize callout invocation check.
|
|
|
|
| |
Real implementation is provided by libbsd.
|
|
|
|
|
|
| |
This enables early printk() support.
Update #2838.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add a new interrupt server driven Termios mode (TERMIOS_IRQ_DRIVEN).
This mode is identical to the interrupt driven mode except that a mutex
is used for device level locking. The intended use case for this mode
are device drivers that use the interrupt server, e.g. SPI or I2C
connected devices.
Update #2839.
|
|
|
|
|
|
|
|
|
|
| |
Termios has a task driven mode (TERMIOS_TASK_DRIVEN). This mode aims to
avoid long sections with disabled interrupts. This is only partly
implemented since the device level state is still protected by disabled
interrupts. Use a mutex to protect the device level state in task driven
mode to fix this issue.
Update #2838.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turn pthread_spinlock_t into a self-contained object. On uni-processor
configurations, interrupts are disabled in the lock/trylock operations
and the previous interrupt status is restored in the corresponding
unlock operations. On SMP configurations, a ticket lock is a acquired
and released in addition.
The self-contained pthread_spinlock_t object is defined by Newlib in
<sys/_pthreadtypes.h>.
typedef struct {
struct _Ticket_lock_Control _lock;
__uint32_t _interrupt_state;
} pthread_spinlock_t;
This implementation is simple and efficient. However, this test case of
the Linux Test Project would fail due to call of printf() and sleep()
during spin lock ownership:
https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c
There is only limited support for profiling on SMP configurations.
Delete CORE spinlock implementation.
Update #2674.
|
|
|
|
| |
Update #2785.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mq_open() function returns a descriptor to a POSIX message queue
object identified by a name. This is similar to sem_open(). In
contrast to the POSIX semaphore the POSIX message queues use a separate
object for the descriptor. This extra object is superfluous, since the
object identifier can be used directly for this purpose, just like for
the semaphores.
Update #2702.
Update #2555.
|
|
|
|
|
|
|
|
|
|
|
| |
These were in libcsupport for historical reasons and the placement
no longer made sense.
As part of this move, some of the files were placed under subdirectories
which reflect their installed location.
Thank you git for allowing us to move files. Years of CVS resulted
in files being somewhere they no longer belonged.
|
|
|
|
| |
Update #2408.
|
| |
|
|
|
|
| |
Update #2408.
|
|
|
|
|
|
|
|
| |
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.
|