You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.7 KiB
56 lines
1.7 KiB
/*
|
|
* 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 */
|
|
|