summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* dev/sc16is752: Add name space for field names.Christian Mauderer2018-08-152-95/+98
| | | | | | | The field names for the registers generated a name collision (MSR_RI on the power pc). This patch adds a SC16IS752_ prefix for all field names. Closes #3501.
* bsps/x86_64: Add APIC timer based clock driverAmaan Cheval2018-08-131-0/+23
| | | | | | | | | The APIC timer is calibrated by running the i8254 PIT for a fraction of a second (determined by PIT_CALIBRATE_DIVIDER) and counting how many times the APIC counter has ticked. The calibration can be run multiple times (determined by APIC_TIMER_NUM_CALIBRATIONS) and averaged out. Updates #2898.
* bsps/x86_64: Add support for RTEMS interruptsAmaan Cheval2018-08-136-33/+250
| | | | Updates #2898.
* bsps/x86_64: Add paging support with 1GiB super pagesAmaan Cheval2018-08-131-0/+13
| | | | Updates #2898.
* bsps/x86_64: Reorganize header files and compile-optionsAmaan Cheval2018-08-137-22/+81
| | | | Updates #2898.
* score: Fix _Addresses_Subtract()Sebastian Huber2018-08-104-16/+13
| | | | | | Use architecture-specific integer type for an address difference. Update #3486.
* rtems: Parameter types in rtems_partition_create()Sebastian Huber2018-08-102-7/+7
| | | | | | | | | | Use uintptr_t to specify the length of the partition buffer area instead of uint32_t. This is in line with rtems_region_create(). On 64-bit targets, the length may exceed 4GiB. Use size_t for the buffer size, since on some targets the single object size is less than the overall address range, e.g. m32c sizeof(uintptr_t) > sizeof(size_t). Update #3486.
* Add dummy PRI_MIN_KERN to <sys/priority.h>Sebastian Huber2018-08-101-0/+1
| | | | Update #3472.
* posix: Add configure check for mprotect()Sebastian Huber2018-08-102-0/+14
| | | | Update #3491.
* sys/event.h: Update version FreeBSD tagSebastian Huber2018-08-081-1/+1
| | | | Update #3472.
* Make the definition of struct kevent in event.h match what the man page for ↵dab2018-08-081-4/+4
| | | | | | | | | | | | | | | kevent(2) says. This is a trivial comment-only fix. The man page for kevent(2) gives the definition of struct kevent, including a comment on each field. The actual definition in sys/event.h omitted the comments on some fields. Add the comments in. Not only does this make the man page and include file agree, but the comments are useful in and of themselves. Reviewed by: kib (D15778: commented that this should be a separate commit) MFC after: 3 days Sponsored by: Dell EMC
* Address some (although not all) style(9) issues in event.h after r335776.dab2018-08-081-10/+10
| | | | | | Reported by: bde@ MFC after: 1 day Sponsored by: Dell EMC
* Fix compilation error in r335765 under gcc 4.2.1.dab2018-08-081-4/+1
| | | | | | | | | | | The anonymous object initialization introduced in r335765 was acceptable to clang, but not gcc 4.2.1. Fix it for both. Reported by: jhibbits@ Pointy Hat: myself MFC after: 1 week X-MFC-with: r335765 Sponsored by: Dell EMC
* Remove potential identifier conflict in the EV_SET macro.dab2018-08-081-0/+20
| | | | | | | | | | | | | | | | | | | | | | PR43905 pointed out a problem with the EV_SET macro if the passed struct kevent pointer were specified with an expression with side effects (e.g., "kevp++"). This was fixed in rS110241, but by using a local block that defined an internal variable (named "kevp") to get the pointer value once. This worked, but could cause issues if an existing variable named "kevp" is in scope. To avoid that issue, jilles@ pointed out that "C99 compound literals and designated initializers allow doing this cleanly using a macro". This change incorporates that suggestion, essentially verbatim from jilles@ comment on PR43905, except retaining the old definition for pre-C99 or non-STDC (e.g., C++) compilers. PR: 43905 Submitted by: Jilles Tjoelker (jilles@) Reported by: Lamont Granquist <lamont@scriptkiddie.org> Reviewed by: jmg (no comments), jilles MFC after: 1 week Sponsored by: Dell EMC Differential Revision: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=43905
* sys/sys: further adoption of SPDX licensing ID tags.pfg2018-08-081-0/+2
| | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
* Decode kevent structures logged via ktrace(2) in kdump.jhb2018-08-081-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add a new KTR_STRUCT_ARRAY ktrace record type which dumps an array of structures. The structure name in the record payload is preceded by a size_t containing the size of the individual structures. Use this to replace the previous code that dumped the kevent arrays dumped for kevent(). kdump is now able to decode the kevent structures rather than dumping their contents via a hexdump. One change from before is that the 'changes' and 'events' arrays are not marked with separate 'read' and 'write' annotations in kdump output. Instead, the first array is the 'changes' array, and the second array (only present if kevent doesn't fail with an error) is the 'events' array. For kevent(), empty arrays are denoted by an entry with an array containing zero entries rather than no record. - Move kevent decoding tables from truss to libsysdecode. This adds three new functions to decode members of struct kevent: sysdecode_kevent_filter, sysdecode_kevent_flags, and sysdecode_kevent_fflags. kdump uses these helper functions to pretty-print kevent fields. - Move structure definitions for freebsd11 and freebsd32 kevent structures to <sys/event.h> so that they can be shared with userland. The 32-bit structures are only exposed if _WANT_KEVENT32 is defined. The freebsd11 structures are only exposed if _WANT_FREEBSD11_KEVENT is defined. The 32-bit freebsd11 structure requires both. - Decode freebsd11 kevent structures in truss for the compat11.kevent() system call. - Log 32-bit kevent structures via ktrace for 32-bit compat kevent() system calls. - While here, constify the 'void *data' argument to ktrstruct(). Reviewed by: kib (earlier version) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D12470
* Add abstime kqueue(2) timers and expand struct kevent members.kib2018-08-081-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | This change implements NOTE_ABSTIME flag for EVFILT_TIMER, which specifies that the data field contains absolute time to fire the event. To make this useful, data member of the struct kevent must be extended to 64bit. Using the opportunity, I also added ext members. This changes struct kevent almost to Apple struct kevent64, except I did not changed type of ident and udata, the later would cause serious API incompatibilities. The type of ident was kept uintptr_t since EVFILT_AIO returns a pointer in this field, and e.g. CHERI is sensitive to the type (discussed with brooks, jhb). Unlike Apple kevent64, symbol versioning allows us to claim ABI compatibility and still name the new syscall kevent(2). Compat shims are provided for both host native and compat32. Requested by: bapt Reviewed by: bapt, brooks, ngie (previous version) Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D11025
* Fix typo.pkelsey2018-08-081-1/+1
| | | | | | hist -> hint MFC after: 3 days
* CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZESebastian Huber2018-08-083-1/+8
| | | | | | Make CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE configurable by the user. Update #3434.
* libblock: Add RTEMS_DEPRECATEDSebastian Huber2018-08-076-152/+57
| | | | Close #3358.
* dosfs: Avoid deprecated routineSebastian Huber2018-08-074-2/+5
| | | | Update #3358.
* libblock: Use rtems_blkdev_create_partition()Sebastian Huber2018-08-072-16/+2
| | | | Update #3358.
* flashdisk: Use rtems_blkdev_create()Sebastian Huber2018-08-071-47/+22
| | | | Update #3358.
* nvdisk: Use rtems_blkdev_create()Sebastian Huber2018-08-071-51/+19
| | | | Update #3358.
* ramdisk: Use rtems_blkdev_create()Sebastian Huber2018-08-073-40/+10
| | | | Update #3358.
* rfs: Remove erroneous call of rtems_disk_release()Sebastian Huber2018-08-071-1/+0
| | | | | | | The function rtems_rfs_buffer_sync() erroneously calls rtems_disk_release(). This screws up the reference counting of the disk. Close #3484.
* score: Remove superfluous semicolonSebastian Huber2018-08-031-1/+1
| | | | | | | | | | This avoids warnings like this: warning: ISO C does not allow extra ';' outside of a function [-Wpedantic] RTEMS_DECLARE_GLOBAL_SYMBOL( abc ); ^ Update #3459.
* rtems: Relax partition buffer area alignmentSebastian Huber2018-08-021-2/+2
| | | | | | | | | | | | | | | The partition buffer area alignment required by rtems_partition_create() was too strict since it was checked via _Addresses_Is_aligned() which uses CPU_ALIGNMENT. The CPU_ALIGNMENT must take long double and vector data type alignment requirements into account. For the partition maintenance only pointer alignment is required (Chain_Node, which consists of two pointers). The user should ensure that its partition buffer area is suitable for the items it wants to manage. The user should not be burdened to provide buffers with the maximum architecture alignment, e.g. why need a 16 byte aligned buffer if you want to manage items with 4 byte integers only? Update #3482.
* score: Remove CPU_PARTITION_ALIGNMENTSebastian Huber2018-08-0221-228/+23
| | | | | | | | | | | | | | Use the CPU_SIZEOF_POINTER alignment instead. The internal alignment requirement is defined by the use of Chain_Node (consisting of two pointers) to manage the free chain of partitions. It seems that previously the condition CPU_PARTITION_ALIGNMENT >= sizeof(Chain_Node) was true on all CPU ports. Now, we need an additional check. Update #3482.
* riscv: Fix CPU_ALIGNMENTSebastian Huber2018-08-021-1/+3
| | | | Update #3433.
* confdefs: Fix uniprocessor configurationSebastian Huber2018-07-302-43/+44
| | | | | | | | | | Introduce a new internal define _CONFIGURE_MAXIMUM_PROCESSORS and ensure that it is _CONFIGURE_MAXIMUM_PROCESSORS > 1 only in SMP configurations. This avoids to allocate data structures for non-existing additional processors in uniprocessor configuration. Update #3459.
* riscv: Rework CPU counter supportSebastian Huber2018-07-274-5/+91
| | | | Update #3433.
* riscv: Add CLINT and PLIC supportSebastian Huber2018-07-251-5/+45
| | | | | | The CLINT and PLIC need some per-processor state. Update #3433.
* riscv: Use wfi instruction for idle taskSebastian Huber2018-07-252-12/+3
| | | | Update #3433.
* riscv: Rework exception handlingSebastian Huber2018-07-256-144/+54
| | | | | | | | | | | Remove _CPU_ISR_install_raw_handler() and _CPU_ISR_install_vector() functions. Applications can install an exception handler via the fatal error handler to handle synchronous exceptions. Handle interrupt exceptions via _RISCV_Interrupt_dispatch() which must be provided by the BSP. Update #3433.
* riscv: New CPU_Exception_frameSebastian Huber2018-07-254-64/+203
| | | | | | | Use the CPU_Interrupt_frame for the volatile context. Add non-volatile registers and extra state on top of it. Update #3433.
* riscv: Add exception codesSebastian Huber2018-07-251-0/+39
| | | | Update #3433.
* score: _SMP_Inter_processor_interrupt_handler()Sebastian Huber2018-07-251-1/+1
| | | | | | Optimize _SMP_Inter_processor_interrupt_handler() for the common case in which the inter-processor interrupt is only used to trigger a thread dispatch.
* score: RTEMS_PREDICT_TRUE(), RTEMS_PREDICT_FALSE()Sebastian Huber2018-07-258-19/+49
| | | | | | | Add RTEMS_PREDICT_TRUE() and RTEMS_PREDICT_FALSE() for static branch prediction hints. Close #3475.
* _SMP_Start_multitasking_on_secondary_processor()Sebastian Huber2018-07-252-11/+22
| | | | | Pass current processor control as first parameter to make dependency more explicit.
* score: _SMP_Inter_processor_interrupt_handler()Sebastian Huber2018-07-251-5/+4
| | | | | Pass current processor control via parameter since it may be already available at the caller side.
* tm27: Fix prototype warningsSebastian Huber2018-07-251-3/+4
|
* powerpc: Fix _CPU_Instruction_illegal()Sebastian Huber2018-07-251-1/+1
| | | | | Apparently the .word assembler directive is not the right thing on this target.
* score: Add _CPU_Instruction_illegal()Sebastian Huber2018-07-2319-0/+100
| | | | | | | | On some architectures/simulators it is difficult to provoke an exception with misaligned or illegal data loads. Use an illegal instruction instead. Update #3433.
* score: Add _CPU_Instruction_no_operation()Sebastian Huber2018-07-2019-0/+100
| | | | | This helps to reduce the use of architecture-specific defines throughout the code base.
* score: Move context validation declarationsSebastian Huber2018-07-2038-203/+199
| | | | | | | The context validation support functions _CPU_Context_validate() and _CPU_Context_volatile_clobber() are used only by one test program (spcontext01). Move the function declarations to the CPU port implementation header file.
* score: Remove obsolete CPU port definesSebastian Huber2018-07-203-34/+0
|
* dtc: Update VERSIONSebastian Huber2018-07-201-3/+3
|
* libfdt: fdt_address_cells() and fdt_size_cells()Sebastian Huber2018-07-202-23/+14
| | | | | | | | Add internal fdt_cells() to avoid copy and paste. Test error cases and default values. Fix typo in fdt_size_cells() documentation comment. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
* capture: Include missing header fileSebastian Huber2018-07-191-0/+2
|