coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
smp.c File Reference
#include <arch/barrier.h>
#include <arch/encoding.h>
#include <arch/smp/smp.h>
#include <arch/smp/atomic.h>
#include <console/console.h>
#include <mcall.h>
Include dependency graph for smp.c:

Go to the source code of this file.

Macros

#define SYNCA   (OTHER_HLS(working_hartid)->entry.sync_a)
 
#define SYNCB   (OTHER_HLS(working_hartid)->entry.sync_b)
 

Functions

void smp_pause (int working_hartid)
 
void smp_resume (void(*fn)(void *), void *arg)
 

Macro Definition Documentation

◆ SYNCA

#define SYNCA   (OTHER_HLS(working_hartid)->entry.sync_a)

◆ SYNCB

#define SYNCB   (OTHER_HLS(working_hartid)->entry.sync_b)

Function Documentation

◆ smp_pause()

void smp_pause ( int  working_hartid)

Definition at line 10 of file smp.c.

References atomic_add(), atomic_read, atomic_set, barrier, HLS, MIP_MSIP, MSTATUS_MIE, set_msip(), SYNCA, and SYNCB.

Referenced by stage_entry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smp_resume()

void smp_resume ( void(*)(void *)  fn,
void arg 
)

Definition at line 54 of file smp.c.

References arg, die(), HLS, NULL, OTHER_HLS, and set_msip().

Referenced by arch_prog_run().

Here is the call graph for this function:
Here is the caller graph for this function: