| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement a mechanism for making changes in the kernel<->driver PPS interface without breaking ABI or API compatibility with existing drivers.
The existing data structures used to communicate between the kernel and
driver portions of PPS processing contain no spare/padding fields and no
flags field or other straightforward mechanism for communicating changes
in the structures or behaviors of the code. This makes it difficult to
MFC new features added to the PPS facility. ABI compatibility is
important; out-of-tree drivers in module form are known to exist. (Note
that the existing api_version field in the pps_params structure must
contain the value mandated by RFC 2783 and any RFCs that come along after.)
These changes introduce a pair of abi-version fields which are filled in
by the driver and the kernel respectively to indicate the interface
version. The driver sets its version field before calling the new
pps_init_abi() function. That lets the kernel know how much of the
pps_state structure is understood by the driver and it can avoid using
newer fields at the end of the structure that it knows about if the driver
is a lower version. The kernel fills in its version field during the init
call, letting the driver know what features and data the kernel supports.
To implement the new version information in a way that is backwards
compatible with code from before these changes, the high bit of the
lightly-used 'kcmode' field is repurposed as a flag bit that indicates the
driver is aware of the abi versioning scheme. Basically if this bit is
clear that indicates a "version 0" driver and if it is set the driver_abi
field indicates the version.
These changes also move the recently-added 'mtx' field of pps_state from
the middle to the end of the structure, and make the kernel code that uses
this field conditional on the driver being abi version 1 or higher. It
changes the only driver currently supplying the mtx field, usb_serial, to
use pps_init_abi().
Reviewed by: hselasky@
Update #3175.
|
|
|
|
|
|
| |
Use sbuf_printf() for sysctl strings instead of stack buffers and snprintf().
Update #3175.
|
|
|
|
|
|
|
|
|
| |
Add mutex support to the pps_ioctl() API in the kernel. Bump kernel version to reflect structure change.
PR: 196897
MFC after: 1 week
Update #3175.
|
|
|
|
| |
Update #2740.
|
|
|
|
| |
Closes #2829.
|
| |
|
|
|
|
|
|
| |
Use Processor_mask instead.
Update #2514.
|
|
|
|
| |
Update #2514.
|
| |
|
|
|
|
| |
Update #2514.
|
|
|
|
|
|
|
|
| |
Set default thread processor affinity to all processors of the
pre-allocated set. This allows to constify the
_POSIX_Threads_Default_attributes.
Update #2514.
|
|
|
|
|
|
|
|
|
| |
Simplify
* pthread_attr_setstack(), and
* pthread_attr_setstacksize().
Update #2514.
|
|
|
|
|
| |
Update #2514.
Close #3174.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Return stack area via pthread_getattr_np().
Simplify
* pthread_attr_setaffinity_np(), and
* pthread_attr_getaffinity_np()
and let the scheduler do the more sophisticated error checks.
Make
* pthread_setaffinity_np(),
* pthread_getaffinity_np(),
* pthread_attr_setaffinity_np(), and
* pthread_attr_getaffinity_np()
available in all configurations.
Update #2514.
Close #3145.
Close #3168.
|
|
|
|
|
|
|
|
| |
The timestamp are based on the uptime. There is no need for a 64-bit
seconds part. The signed 32-bit seconds part of the sbintime_t limits
the uptime to roughly 68 years.
Close #2740.
|
|
|
|
|
|
|
| |
Use the timestamps only for uptime based values. Use struct timespec
for the absolute time values (TOD).
Update #2740.
|
|
|
|
| |
Update #2740.
|
|
|
|
|
| |
This was accidentally removed during a merge conflict by
89fc9345dea5c675f8d93546fa3c723918d3279a.
|
| |
|
|
|
|
| |
Update #3155.
|
|
|
|
| |
Update #3155.
|
|
|
|
| |
Update #3111.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For semaphore object pointer and object validation see
POSIX_SEMAPHORE_VALIDATE_OBJECT().
Destruction or close of a busy semaphore returns an error status. The
object is not flushed.
POSIX semaphores are now available in all configurations and no longer
depend on --enable-posix.
Update #2514.
Update #3116.
|
|
|
|
|
|
| |
Reduce size of pthread_once_t and make it zero-initialized.
Update #3142.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This Newlib check ensures that we have a 64-bit time_t and
self-contained POSIX synchronization objects.
Update #2514.
Update #3111.
Update #3112.
Update #3113.
Update #3114.
Update #3115.
Update #3116.
|
|
|
|
|
|
|
|
| |
The internal status codes encode a Classic rtems_status_code and error
codes used by the POSIX and C11/C++11 APIs. In case the POSIX API is
disabled, the C11/C++11 support must still work.
Close #3167.
|
|
|
|
| |
Update #3164.
|
|
|
|
| |
Close #3163.
|
|
|
|
|
|
|
|
| |
The RTEMS_MILLISECONDS_TO_TICKS() macro doesn't round up. Do not use it
to calculate the program timeout in ticks. Check program done condition
after the timeout check to account for pre-emptions.
Update #3162.
|
|
|
|
| |
Update #3161.
|
|
|
|
|
|
|
|
|
|
| |
The refactoring of pci_dev_create() was incorrect since the code relied on
different defines before including pci/cfg.h. This reverts back to the
original code having two pci_dev_create() one in auto and one in read library.
confdefs.h selectes between the two libraries so both there is no link
conflict.
Updates #3029
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Make the RBTree_Node layout independent of RTEMS_DEBUG (and all other
build configuration options). This allows the use of this structure in
Newlib.
Update #3112.
|
| |
|
|
|
|
|
|
|
| |
Rename struct Scheduler_Control to _Scheduler_Control to allow its use
in standard header files, e.g. <pthread.h>.
Update #3112.
|
| |
|
|
|
|
| |
Update #3059.
|
|
|
|
| |
Close #3153.
|
|
|
|
|
| |
Update #2132.
Close #3140.
|
|
|
|
| |
Update #3122.
|
|
|
|
| |
Close #3137.
|
|
|
|
| |
Close #3126.
|
|
|
|
| |
Close #3125.
|
|
|
|
|
|
| |
This member was apparently unused.
Close #3133.
|