summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/irq-extension.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Update company nameSebastian Huber2023-05-201-1/+1
| | | | | The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
* rtems: Move all Interrupt Manager stuff to intr.hSebastian Huber2021-12-021-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>.
* rtems: Add rtems_interrupt_entry_install()Sebastian Huber2021-07-261-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.
* rtems: Add rtems_interrupt_is_pending()Sebastian Huber2021-07-261-0/+54
| | | | Update #3269.
* rtems: Add rtems_interrupt_vector_is_enabled()Sebastian Huber2021-07-261-0/+50
| | | | Update #3269.
* rtems: Add rtems_interrupt_vector_enable()Sebastian Huber2021-07-261-0/+88
| | | | | | Add rtems_interrupt_vector_disable(). Update #3269.
* rtems: Add rtems_interrupt_get_attributes()Sebastian Huber2021-07-261-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.
* rtems: Generate <rtems/irq-extension.h>Sebastian Huber2021-07-261-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.
* rtems: Generate <rtems/rtems/intr.h>Sebastian Huber2021-04-281-1/+1
| | | | | | | | Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
* rtems: Add rtems_interrupt_server_create()Sebastian Huber2020-08-031-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.
* rtems: Fix Doxygen commentSebastian Huber2020-04-021-2/+0
|
* rtems: Add rtems_interrupt_server_entry_move()Sebastian Huber2019-09-201-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.
* Add rtems_interrupt_server_request_set_vector()Sebastian Huber2018-10-041-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.
* Add interrupt vector set/get affinitySebastian Huber2017-07-121-0/+37
| | | | Close #3071.
* Add interrupt server moveSebastian Huber2017-07-121-0/+26
| | | | Update #3071.
* Add interrupt server set affinitySebastian Huber2017-07-121-0/+36
| | | | Update #3071.
* Add interrupt server suspend/resumeSebastian Huber2017-07-121-0/+39
| | | | | | | This mechanism can be used to safely move the interrupt server from one scheduler instance to another for example. Update #3071.
* Create one interrupt server per processorSebastian Huber2017-07-121-59/+70
| | | | | | | This allows load balancing of interrupt processing in SMP configurations. Update #3071.
* Add rtems_interrupt_server_handler_iterate()Sebastian Huber2017-06-261-0/+22
|
* Add rtems_interrupt_server_request_submit()Sebastian Huber2017-02-231-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.
* bsp/irq-server: Support shared interruptsSebastian Huber2016-01-201-3/+4
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* rtems: Add RTEMS_INTERRUPT_REPLACESebastian Huber2014-03-061-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).
* cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill2013-01-101-2/+1
| | | | | This is the result of a sed script which converts all uses of @{ into a consistent form.
* Use proper 3 line form of license textJoel Sherrill2012-10-111-2/+3
|
* 2011-03-07 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber2011-03-071-4/+8
| | | | | * include/rtems/irq-extension.h: Documentation. * libmisc/monitor/mon-prmisc.c: Fix for multiprocessing configuration.
* interrupt handler type changeThomas Doerfler2009-10-211-1/+1
|
* 2009-08-05 Sebastian Huber <sebastian.huber@embedded-brains.de>Joel Sherrill2009-08-051-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-15 Sebastian Huber <sebastian.huber@embedded-brains.de>Joel Sherrill2009-05-151-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-19 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2009-02-191-1/+1
| | | | | * include/rtems/irq-extension.h, include/rtems/irq.h: Spelling errors and spacing.
* New function rtems_interrupt_handler_iterate()Thomas Doerfler2008-07-241-10/+46
| | | | for system information and diagnostics
* added irq-extension.h declarationsThomas Doerfler2008-07-101-0/+171