Atlas Runtime
|
Functions | |
void | NVM_Initialize () |
void | NVM_Finalize () |
void | nvm_acquire (void *lock_address) |
void | nvm_release (void *lock_address) |
void | nvm_rwlock_rdlock (void *lock_address) |
void | nvm_rwlock_wrlock (void *lock_address) |
void | nvm_rwlock_unlock (void *lock_address) |
void | nvm_begin_durable () |
void | nvm_end_durable () |
void | nvm_store (void *addr, size_t sz) |
void | nvm_memset (void *addr, size_t sz) |
void | nvm_memcpy (void *dst, size_t sz) |
void | nvm_memmove (void *dst, size_t sz) |
size_t | nvm_strlen (char *dst) |
void | nvm_strcpy (char *dst, size_t sz) |
void | nvm_strcat (char *dst, size_t sz) |
void | nvm_log_alloc (void *addr) |
void | nvm_log_free (void *addr) |
void | nvm_barrier (void *p) |
void | nvm_psync (void *start_addr, size_t sz) |
void | nvm_psync_acq (void *start_addr, size_t sz) |
void nvm_acquire | ( | void * | lock_address | ) |
void nvm_barrier | ( | void * | p | ) |
void nvm_begin_durable | ( | ) |
The following 2 interfaces demarcate a failure-atomic section of code, i.e. code where persistent locations are updated and all-or-nothing behavior of those updates is required. Note that no isolation among threads is provided by these 2 interfaces.
void nvm_end_durable | ( | ) |
void NVM_Finalize | ( | ) |
Finalize Atlas internal data structures. This should be called before normal program exit. If not called, the implementation will assume that program exit was abnormal and will require invocation of recovery before restart.
void NVM_Initialize | ( | ) |
Initialize Atlas internal data structures. This should be called before persistent memory access.
void nvm_log_alloc | ( | void * | addr | ) |
void nvm_log_free | ( | void * | addr | ) |
void nvm_memcpy | ( | void * | dst, |
size_t | sz | ||
) |
void nvm_memmove | ( | void * | dst, |
size_t | sz | ||
) |
void nvm_memset | ( | void * | addr, |
size_t | sz | ||
) |
void nvm_psync | ( | void * | addr, |
size_t | sz | ||
) |
Persistent sync of a range of addresses
void nvm_psync_acq | ( | void * | addr, |
size_t | sz | ||
) |
Persistent sync of a range of addresses without a trailing barrier
void nvm_release | ( | void * | lock_address | ) |
void nvm_rwlock_rdlock | ( | void * | lock_address | ) |
void nvm_rwlock_unlock | ( | void * | lock_address | ) |
void nvm_rwlock_wrlock | ( | void * | lock_address | ) |
void nvm_store | ( | void * | addr, |
size_t | sz | ||
) |
void nvm_strcat | ( | char * | dst, |
size_t | sz | ||
) |
void nvm_strcpy | ( | char * | dst, |
size_t | sz | ||
) |
size_t nvm_strlen | ( | char * | dst | ) |