picotm
0.9.0
|
Public interfaces of picotm's Transactional Memory module. More...
#include <picotm/compiler.h>
#include <picotm/config/picotm-tm-config.h>
#include <stddef.h>
#include <stdint.h>
Macros | |
#define | PICOTM_TM_LOAD_TX(__name, __type) |
#define | PICOTM_TM_PRIVATIZE_LOADSTORE |
#define | PICOTM_TM_PRIVATIZE_TX(__name, __type) |
#define | PICOTM_TM_STORE_TX(__name, __type) |
Enumerations | |
enum | { PICOTM_TM_PRIVATIZE_LOAD, PICOTM_TM_PRIVATIZE_STORE } |
Functions | |
static _Bool | load__Bool_tx (const _Bool *addr) |
static char | load_char_tx (const char *addr) |
static double | load_double_tx (const double *addr) |
static float | load_float_tx (const float *addr) |
static int | load_int_tx (const int *addr) |
static long double | load_ldouble_tx (const long double *addr) |
static long long | load_llong_tx (const long long *addr) |
static long | load_long_tx (const long *addr) |
static void * | load_ptr_tx (const void *addr) |
static signed char | load_schar_tx (const signed char *addr) |
static short | load_short_tx (const short *addr) |
static void | load_tx (const void *addr, void *buf, size_t siz) |
static unsigned char | load_uchar_tx (const unsigned char *addr) |
static unsigned int | load_uint_tx (const unsigned int *addr) |
static unsigned long long | load_ullong_tx (const unsigned long long *addr) |
static unsigned long | load_ulong_tx (const unsigned long *addr) |
static unsigned short | load_ushort_tx (const unsigned short *addr) |
static void | loadstore_tx (const void *laddr, void *saddr, size_t siz) |
static void | privatize__Bool_tx (const _Bool *addr, unsigned long flags) |
static void | privatize_c_tx (const void *addr, int c, unsigned long flags) |
static void | privatize_char_tx (const char *addr, unsigned long flags) |
static void | privatize_double_tx (const double *addr, unsigned long flags) |
static void | privatize_float_tx (const float *addr, unsigned long flags) |
static void | privatize_int_tx (const int *addr, unsigned long flags) |
static void | privatize_ldouble_tx (const long double *addr, unsigned long flags) |
static void | privatize_llong_tx (const long long *addr, unsigned long flags) |
static void | privatize_long_tx (const long *addr, unsigned long flags) |
static void | privatize_schar_tx (const signed char *addr, unsigned long flags) |
static void | privatize_short_tx (const short *addr, unsigned long flags) |
static void | privatize_tx (const void *addr, size_t siz, unsigned long flags) |
static void | privatize_uchar_tx (const unsigned char *addr, unsigned long flags) |
static void | privatize_uint_tx (const unsigned int *addr, unsigned long flags) |
static void | privatize_ullong_tx (const unsigned long long *addr, unsigned long flags) |
static void | privatize_ulong_tx (const unsigned long *addr, unsigned long flags) |
static void | privatize_ushort_tx (const unsigned short *addr, unsigned long flags) |
static void | store__Bool_tx (_Bool *addr, _Bool value) |
static void | store_char_tx (char *addr, char value) |
static void | store_double_tx (double *addr, double value) |
static void | store_float_tx (float *addr, float value) |
static void | store_int_tx (int *addr, int value) |
static void | store_ldouble_tx (long double *addr, long double value) |
static void | store_llong_tx (long long *addr, long long value) |
static void | store_long_tx (long *addr, long value) |
static void | store_ptr_tx (void *addr, const void *ptr) |
static void | store_schar_tx (signed char *addr, signed char value) |
static void | store_short_tx (short *addr, short value) |
static void | store_tx (void *addr, const void *buf, size_t siz) |
static void | store_uchar_tx (unsigned char *addr, unsigned char value) |
static void | store_uint_tx (unsigned int *addr, unsigned int value) |
static void | store_ullong_tx (unsigned long long *addr, unsigned long long value) |
static void | store_ulong_tx (unsigned long *addr, unsigned long value) |
static void | store_ushort_tx (unsigned short *addr, unsigned short value) |
#define PICOTM_TM_LOAD_TX | ( | __name, | |
__type | |||
) |
Defines a C function for conveniently loading a value of a specific type into a transaction. The helper function's name is load_<__name>_tx.
__name | The name of the type. |
__type | The C type. |
#define PICOTM_TM_PRIVATIZE_LOADSTORE |
Privatizes a memory region for loading and storing.
#define PICOTM_TM_PRIVATIZE_TX | ( | __name, | |
__type | |||
) |
Defines a C function for conveniently privatizing a value of a specific type into a transaction. The helper function's name is store_<__name>_tx.
__name | The name of the type. |
__type | The C type. |
#define PICOTM_TM_STORE_TX | ( | __name, | |
__type | |||
) |
Defines a C function for conveniently storing a value of a specific type into a transaction. The helper function's name is store_<__name>_tx.
__name | The name of the type. |
__type | The C type. |
anonymous enum |
|
inlinestatic |
Loads a value of type ' _Bool ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' char ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' double ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' float ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' int ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' long double ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' long long ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' long ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a pointer into a buffer.
addr | The address to load from. |
|
inlinestatic |
Loads a value of type ' signed char ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' short ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads the memory at address into a buffer.
addr | The address to load from. |
buf | The transaction-local buffer to store the loaded value in. |
siz | The number of bytes to load. |
|
inlinestatic |
Loads a value of type ' unsigned char ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' unsigned int ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' unsigned long long ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' unsigned long ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Loads a value of type ' unsigned short ' with transactional semantics.
addr | The source address. |
|
inlinestatic |
Copies data between non-transactional memory regions.
laddr | The address of the source region. |
saddr | The address of the destination region. |
siz | The number of bytes ot copy. |
|
inlinestatic |
Privatizes a value of type ' _Bool '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes the memory region starting at address, ending at character 'c'.
addr | The address to privatize. |
c | The region's terminating character. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' char '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' double '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' float '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' int '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' long double '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' long long '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' long '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' signed char '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' short '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes the memory region starting at address.
addr | The address to privatize. |
siz | The number of bytes to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' unsigned char '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' unsigned int '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' unsigned long long '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' unsigned long '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Privatizes a value of type ' unsigned short '.
addr | The address to privatize. |
flags | Privatizes for loading and/or storing. |
|
inlinestatic |
Stores a value of type ' _Bool ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' char ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' double ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' float ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' int ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' long double ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' long long ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' long ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores the pointer in memory.
addr | The address to store to. |
ptr | The pointer value to store. |
|
inlinestatic |
Stores a value of type ' signed char ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' short ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores the buffer at address in memory.
addr | The address to store to. |
buf | The transaction-local buffer to load the loaded value from. |
siz | The number of bytes to store. |
|
inlinestatic |
Stores a value of type ' unsigned char ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' unsigned int ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' unsigned long long ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' unsigned long ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |
|
inlinestatic |
Stores a value of type ' unsigned short ' with transactional semantics.
addr | The destination address. |
value | The value to store at 'addr'. |