coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
atomic.h File Reference
#include <arch/encoding.h>
Include dependency graph for atomic.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  atomic_t
 

Macros

#define disable_irqsave()   clear_csr(mstatus, MSTATUS_MIE)
 
#define enable_irqrestore(flags)   set_csr(mstatus, (flags) & MSTATUS_MIE)
 
#define atomic_set(v, val)   ((v)->counter = (val))
 
#define atomic_read(v)   ((v)->counter)
 

Functions

static int atomic_add (atomic_t *v, int inc)
 
static int atomic_swap (atomic_t *v, int swp)
 
static int atomic_cas (atomic_t *v, int cmp, int swp)
 
static int atomic_inc (atomic_t *v)
 
static int atomic_dec (atomic_t *v)
 

Macro Definition Documentation

◆ atomic_read

#define atomic_read (   v)    ((v)->counter)

Definition at line 14 of file atomic.h.

◆ atomic_set

#define atomic_set (   v,
  val 
)    ((v)->counter = (val))

Definition at line 13 of file atomic.h.

◆ disable_irqsave

#define disable_irqsave ( )    clear_csr(mstatus, MSTATUS_MIE)

Definition at line 10 of file atomic.h.

◆ enable_irqrestore

#define enable_irqrestore (   flags)    set_csr(mstatus, (flags) & MSTATUS_MIE)

Definition at line 11 of file atomic.h.

Function Documentation

◆ atomic_add()

static int atomic_add ( atomic_t v,
int  inc 
)
inlinestatic

Definition at line 24 of file atomic.h.

References atomic_t::counter, disable_irqsave, and enable_irqrestore.

Referenced by atomic_dec(), atomic_inc(), and smp_pause().

Here is the caller graph for this function:

◆ atomic_cas()

static int atomic_cas ( atomic_t v,
int  cmp,
int  swp 
)
inlinestatic

Definition at line 42 of file atomic.h.

References atomic_t::counter, disable_irqsave, and enable_irqrestore.

◆ atomic_dec()

static int atomic_dec ( atomic_t v)
inlinestatic

Definition at line 56 of file atomic.h.

References atomic_add().

Here is the call graph for this function:

◆ atomic_inc()

static int atomic_inc ( atomic_t v)
inlinestatic

Definition at line 51 of file atomic.h.

References atomic_add().

Here is the call graph for this function:

◆ atomic_swap()

static int atomic_swap ( atomic_t v,
int  swp 
)
inlinestatic

Definition at line 33 of file atomic.h.

References atomic_t::counter, disable_irqsave, and enable_irqrestore.

Referenced by spinlock_lock().

Here is the caller graph for this function: