59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
|
/*
|
||
|
* Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
|
||
|
*
|
||
|
* SPDX-License-Identifier: BSD-3-Clause
|
||
|
*/
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#include "gicv3_private.h"
|
||
|
|
||
|
/*******************************************************************************
|
||
|
* GIC Distributor interface accessors for bit operations
|
||
|
******************************************************************************/
|
||
|
|
||
|
/*
|
||
|
* Accessor to read the GIC Distributor IGRPMODR corresponding to the
|
||
|
* interrupt `id`, 32 interrupt IDs at a time.
|
||
|
*/
|
||
|
uint32_t gicd_read_igrpmodr(uintptr_t base, unsigned int id)
|
||
|
{
|
||
|
return GICD_READ(IGRPMODR, base, id);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Accessor to write the GIC Distributor IGRPMODR corresponding to the
|
||
|
* interrupt `id`, 32 interrupt IDs at a time.
|
||
|
*/
|
||
|
void gicd_write_igrpmodr(uintptr_t base, unsigned int id, uint32_t val)
|
||
|
{
|
||
|
GICD_WRITE(IGRPMODR, base, id, val);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Accessor to get the bit corresponding to interrupt ID
|
||
|
* in GIC Distributor IGRPMODR.
|
||
|
*/
|
||
|
unsigned int gicd_get_igrpmodr(uintptr_t base, unsigned int id)
|
||
|
{
|
||
|
return GICD_GET_BIT(IGRPMODR, base, id);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Accessor to set the bit corresponding to interrupt ID
|
||
|
* in GIC Distributor IGRPMODR.
|
||
|
*/
|
||
|
void gicd_set_igrpmodr(uintptr_t base, unsigned int id)
|
||
|
{
|
||
|
GICD_SET_BIT(IGRPMODR, base, id);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Accessor to clear the bit corresponding to interrupt ID
|
||
|
* in GIC Distributor IGRPMODR.
|
||
|
*/
|
||
|
void gicd_clr_igrpmodr(uintptr_t base, unsigned int id)
|
||
|
{
|
||
|
GICD_CLR_BIT(IGRPMODR, base, id);
|
||
|
}
|