Functions related to doorbells which a core can use to raise IRQs on itself or the other core. More...

Macros

#define DOORBELL_IRQ_NUM(doorbell_num)
 Returns the irq_num_t for processor interrupts for the given doorbell number. More...
 

Functions

void multicore_doorbell_claim (uint doorbell_num, uint core_mask)
 Cooperatively claim the use of this hardware alarm_num. More...
 
int multicore_doorbell_claim_unused (uint core_mask, bool required)
 Cooperatively claim the use of this hardware alarm_num. More...
 
void multicore_doorbell_unclaim (uint doorbell_num, uint core_mask)
 Cooperatively release the claim on use of this hardware alarm_num. More...
 
static void multicore_doorbell_set_other_core (uint doorbell_num)
 Activate the given doorbell on the other core. More...
 
static void multicore_doorbell_clear_other_core (uint doorbell_num)
 Deactivate the given doorbell on the other core. More...
 
static void multicore_doorbell_set_current_core (uint doorbell_num)
 Activate the given doorbell on this core. More...
 
static void multicore_doorbell_clear_current_core (uint doorbell_num)
 Deactivate the given doorbell on this core. More...
 
static bool multicore_doorbell_is_set_current_core (uint doorbell_num)
 Determine if the given doorbell is active on the other core. More...
 
static bool multicore_doorbell_is_set_other_core (uint doorbell_num)
 Determine if the given doorbell is active on the this core. More...
 

Detailed Description

Functions related to doorbells which a core can use to raise IRQs on itself or the other core.

Macro Definition Documentation

◆ DOORBELL_IRQ_NUM

#define DOORBELL_IRQ_NUM (   doorbell_num)

Returns the irq_num_t for processor interrupts for the given doorbell number.

Note this macro is intended to resolve at compile time, and does no parameter checking

Function Documentation

◆ multicore_doorbell_claim()

void multicore_doorbell_claim ( uint  doorbell_num,
uint  core_mask 
)

Cooperatively claim the use of this hardware alarm_num.

This method hard asserts if the hardware alarm is currently claimed.

Parameters
doorbell_numthe doorbell number to claim
core_mask0b01: core 0, 0b10: core 1, 0b11 both core 0 and core 1
See also
hardware_claiming

◆ multicore_doorbell_claim_unused()

int multicore_doorbell_claim_unused ( uint  core_mask,
bool  required 
)

Cooperatively claim the use of this hardware alarm_num.

This method attempts to claim an unused hardware alarm

Parameters
core_mask0b01: core 0, 0b10: core 1, 0b11 both core 0 and core 1
requiredif true the function will panic if none are available
Returns
the doorbell number claimed or -1 if required was false, and none are available
See also
hardware_claiming

◆ multicore_doorbell_clear_current_core()

static void multicore_doorbell_clear_current_core ( uint  doorbell_num)
inlinestatic

Deactivate the given doorbell on this core.

Parameters
doorbell_numthe doorbell number

◆ multicore_doorbell_clear_other_core()

static void multicore_doorbell_clear_other_core ( uint  doorbell_num)
inlinestatic

Deactivate the given doorbell on the other core.

Parameters
doorbell_numthe doorbell number

◆ multicore_doorbell_is_set_current_core()

static bool multicore_doorbell_is_set_current_core ( uint  doorbell_num)
inlinestatic

Determine if the given doorbell is active on the other core.

Parameters
doorbell_numthe doorbell number

◆ multicore_doorbell_is_set_other_core()

static bool multicore_doorbell_is_set_other_core ( uint  doorbell_num)
inlinestatic

Determine if the given doorbell is active on the this core.

Parameters
doorbell_numthe doorbell number

◆ multicore_doorbell_set_current_core()

static void multicore_doorbell_set_current_core ( uint  doorbell_num)
inlinestatic

Activate the given doorbell on this core.

Parameters
doorbell_numthe doorbell number

◆ multicore_doorbell_set_other_core()

static void multicore_doorbell_set_other_core ( uint  doorbell_num)
inlinestatic

Activate the given doorbell on the other core.

Parameters
doorbell_numthe doorbell number

◆ multicore_doorbell_unclaim()

void multicore_doorbell_unclaim ( uint  doorbell_num,
uint  core_mask 
)

Cooperatively release the claim on use of this hardware alarm_num.

Parameters
doorbell_numthe doorbell number to unclaim
core_mask0b01: core 0, 0b10: core 1, 0b11 both core 0 and core 1
See also
hardware_claiming