Parlib
Easing Cross-Platform Development of Next Generation Parallel Systems
Amplab

Table Of Contents

Previous topic

Slab Memory Allocator

Next topic

About

This Page

Atomic Memory Operations

To access the atomic memory operations API, include the following header file:

#include <parlib/atomic.h>

Types

typedef void* atomic_t;
atomic_t

API Calls

void atomic_init(atomic_t *number, long val);
void *atomic_swap_ptr(void **addr, void *val);
long atomic_swap(atomic_t *addr, long val);
uint32_t atomic_swap_u32(uint32_t *addr, uint32_t val);

#define mb()
#define cmb()
#define rmb()
#define wmb()
#define wrmb()
#define rwmb()
#define mb_f()
#define rmb_f()
#define wmb_f()
#define wrmb_f()
#define rwmb_f()
void atomic_init(atomic_t *number, long val)
void *atomic_swap_ptr(void **addr, void *val)
long atomic_swap(atomic_t *addr, long val)
uint32_t atomic_swap_u32(uint32_t *addr, uint32_t val)
#define mb()
#define cmb()
#define rmb()
#define wmb()
#define wrmb()
#define rwmb()
#define mb_f()
#define rmb_f()
#define wmb_f()
#define wrmb_f()
#define rwmb_f()