summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/irq-extension.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-05-20Update company nameSebastian Huber1-1/+1
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2021-12-02rtems: Move all Interrupt Manager stuff to intr.hSebastian Huber1-2255/+2
Since the previous Interrupt Manager Extension API moved to the Interrupt Manager, we can move the interfaces to <rtems/rtems/intr.h> so that they are available via #include <rtems.h>.
2021-07-26rtems: Add rtems_interrupt_entry_install()Sebastian Huber1-0/+237
Add RTEMS_INTERRUPT_ENTRY_INITIALIZER(), rtems_interrupt_entry_initialize(), and rtems_interrupt_entry_remove(). This allows to install interrupt handlers using user-provided storage as an alternative to rtems_interrupt_handler_install() which has to allocate memory. Update #3269.
2021-07-26rtems: Add rtems_interrupt_is_pending()Sebastian Huber1-0/+54
Update #3269.
2021-07-26rtems: Add rtems_interrupt_vector_is_enabled()Sebastian Huber1-0/+50
Update #3269.
2021-07-26rtems: Add rtems_interrupt_vector_enable()Sebastian Huber1-0/+88
Add rtems_interrupt_vector_disable(). Update #3269.
2021-07-26rtems: Add rtems_interrupt_get_attributes()Sebastian Huber1-0/+207
Add a directive to query the attributes of an interrupt vector. This can be used for generic tests and system diagnostics. Update #3269.
2021-07-26rtems: Generate <rtems/irq-extension.h>Sebastian Huber1-476/+1354
Use <rtems/score/chain.h> which just provides the data types and avoid a dependency on <rtems/chain.h> which contains the full chain implementation. Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3269. Update #3899. Update #3993.
2021-04-28rtems: Generate <rtems/rtems/intr.h>Sebastian Huber1-1/+1
Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
2020-08-03rtems: Add rtems_interrupt_server_create()Sebastian Huber1-14/+129
Add rtems_interrupt_server_destroy(). Before this patch, the only way to create interrupt servers was rtems_interrupt_server_initialize(). This function creates the default interrupt server and in SMP configurations additional interrupt servers for the additional processors. The interrupt server is heavily used by libbsd. This includes the epoch based reclamation which performs time consuming resource and memory deallocation work. This does not work well with time critical services, for example an UART over SPI or I2C. One approach to address this problem is to allow the application to create custom interrupt servers with the right priority and task properties. The interrupt server API accounted for this, however, it was not implemented before this patch. Close #4034.
2020-04-02rtems: Fix Doxygen commentSebastian Huber1-2/+0
2019-09-20rtems: Add rtems_interrupt_server_entry_move()Sebastian Huber1-1/+23
The use case for this function is the libbsd. In FreeBSD, the interrupt setup and binding to a processor is done in two steps. Message based interrupts like PCIe MSI and MSI-X interrupts can be implemented through interrupt server entries. They are setup at the default interrupt server and may optionally move to an interrupt server bound to a specific processor.
2018-10-04Add rtems_interrupt_server_request_set_vector()Sebastian Huber1-0/+27
By default, the interrupt vector of an interrupt server request is set to a special value which is outside the range of vectors supported by the interrupt controller hardware. Add rtems_interrupt_server_request_set_vector() to set the interrupt vector in an interrupt server request. Calls to rtems_interrupt_server_request_submit() will disable the interrupt vector of the request. After processing of the request by the interrupt server the interrupt vector will be enabled again.
2017-07-12Add interrupt vector set/get affinitySebastian Huber1-0/+37
Close #3071.
2017-07-12Add interrupt server moveSebastian Huber1-0/+26
Update #3071.
2017-07-12Add interrupt server set affinitySebastian Huber1-0/+36
Update #3071.
2017-07-12Add interrupt server suspend/resumeSebastian Huber1-0/+39
This mechanism can be used to safely move the interrupt server from one scheduler instance to another for example. Update #3071.
2017-07-12Create one interrupt server per processorSebastian Huber1-59/+70
This allows load balancing of interrupt processing in SMP configurations. Update #3071.
2017-06-26Add rtems_interrupt_server_handler_iterate()Sebastian Huber1-0/+22
2017-02-23Add rtems_interrupt_server_request_submit()Sebastian Huber1-1/+181
This function may be used to do a two-step interrupt processing. The first step is done in interrupt context which calls this function. The second step is then done in the context of the interrupt server.
2016-01-20bsp/irq-server: Support shared interruptsSebastian Huber1-3/+4
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns1-1/+1
2014-03-06rtems: Add RTEMS_INTERRUPT_REPLACESebastian Huber1-6/+29
A new option RTEMS_INTERRUPT_REPLACE is introduced that permits updating the first interrupt handler for the registered interrupt vector and matching argument. If no match is found, the install function fails with RTEMS_UNSATISFIED. The Interrupt Manager Extension offers interrupt handlers with an argument pointer. It is impossible to update two words (handler and argument) atomically on most architectures. In order to avoid an SMP lock in bsp_interrupt_handler_dispatch() which would degrade the interrupt response time an alternative must be provided that makes it possible to tear-down interrupt sources without an SMP lock. Add RTEMS_INTERRUPT_REPLACE option to Interrupt Manager Extension. This enables a clean tear-down of interrupt sources on SMP configurations. Instead of an interrupt handler removal a replacement handler can be installed to silence an interrupt source. This can be used in contexts that allow no sophisticated synchronization (e.g. in atexit() or fatal handlers).
2013-01-10cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill1-2/+1
This is the result of a sed script which converts all uses of @{ into a consistent form.
2012-10-11Use proper 3 line form of license textJoel Sherrill1-2/+3
2011-03-072011-03-07 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber1-4/+8
* include/rtems/irq-extension.h: Documentation. * libmisc/monitor/mon-prmisc.c: Fix for multiprocessing configuration.
2009-10-21interrupt handler type changeThomas Doerfler1-1/+1
2009-08-052009-08-05 Sebastian Huber <sebastian.huber@embedded-brains.de>Joel Sherrill1-72/+131
* libcsupport/include/rtems/libio_.h, libcsupport/src/fs_null_handlers.c: Null handlers are now const. * libi2c/libi2c.c, libi2c/libi2c.h: Documentation. Do not create semaphores on the fly. * cpukit/libblock/src/bdpart.c: Fixed format specifier. * cpukit/libblock/include/rtems/bdbuf.h, rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/support.inl: Documentation. * include/rtems/irq-extension.h: Documentation. Added API for interrupt servers.
2009-05-152009-05-15 Sebastian Huber <sebastian.huber@embedded-brains.de>Joel Sherrill1-2/+2
* Doxygen.in: Fixed project name. Added project number. Enabled auto brief. Disabled include graphs. * include/rtems/irq-extension.h, libblock/include/rtems/bdpart.h, libblock/include/rtems/bdbuf.h, libblock/include/rtems/bdpart.h, libblock/include/rtems/blkdev.h, libblock/include/rtems/diskdevs.h, libblock/include/rtems/ramdisk.h, libblock/src/bdbuf.c, libblock/src/blkdev.c, libblock/src/diskdevs.c, libblock/src/ramdisk.c: Documentation. * libblock/src/bdpart.c: Documentation. Fixed NULL pointer access.
2009-02-192009-02-19 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-1/+1
* include/rtems/irq-extension.h, include/rtems/irq.h: Spelling errors and spacing.
2008-07-24New function rtems_interrupt_handler_iterate()Thomas Doerfler1-10/+46
for system information and diagnostics
2008-07-10added irq-extension.h declarationsThomas Doerfler1-0/+171