1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /*
- * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #ifndef SDEI_FLAGS_H
- #define SDEI_FLAGS_H
- #include <lib/utils_def.h>
- /* Internal: SDEI flag bit positions */
- #define SDEI_MAPF_DYNAMIC_SHIFT_ 1U
- #define SDEI_MAPF_BOUND_SHIFT_ 2U
- #define SDEI_MAPF_SIGNALABLE_SHIFT_ 3U
- #define SDEI_MAPF_PRIVATE_SHIFT_ 4U
- #define SDEI_MAPF_CRITICAL_SHIFT_ 5U
- #define SDEI_MAPF_EXPLICIT_SHIFT_ 6U
- /* SDEI event 0 */
- #define SDEI_EVENT_0 0
- /* Placeholder interrupt for dynamic mapping */
- #define SDEI_DYN_IRQ 0U
- /* SDEI flags */
- /*
- * These flags determine whether or not an event can be associated with an
- * interrupt. Static events are permanently associated with an interrupt, and
- * can't be changed at runtime. Association of dynamic events with interrupts
- * can be changed at run time using the SDEI_INTERRUPT_BIND and
- * SDEI_INTERRUPT_RELEASE calls.
- *
- * SDEI_MAPF_DYNAMIC only indicates run time configurability, where as
- * SDEI_MAPF_BOUND indicates interrupt association. For example:
- *
- * - Calling SDEI_INTERRUPT_BIND on a dynamic event will have both
- * SDEI_MAPF_DYNAMIC and SDEI_MAPF_BOUND set.
- *
- * - Statically-bound events will always have SDEI_MAPF_BOUND set, and neither
- * SDEI_INTERRUPT_BIND nor SDEI_INTERRUPT_RELEASE can be called on them.
- *
- * See also the is_map_bound() macro.
- */
- #define SDEI_MAPF_DYNAMIC BIT(SDEI_MAPF_DYNAMIC_SHIFT_)
- #define SDEI_MAPF_BOUND BIT(SDEI_MAPF_BOUND_SHIFT_)
- #define SDEI_MAPF_EXPLICIT BIT(SDEI_MAPF_EXPLICIT_SHIFT_)
- #define SDEI_MAPF_SIGNALABLE BIT(SDEI_MAPF_SIGNALABLE_SHIFT_)
- #define SDEI_MAPF_PRIVATE BIT(SDEI_MAPF_PRIVATE_SHIFT_)
- #define SDEI_MAPF_NORMAL 0
- #define SDEI_MAPF_CRITICAL BIT(SDEI_MAPF_CRITICAL_SHIFT_)
- #endif /* SDEI_FLAGS_H */
|