Functions
picotm-tm-ctypes.h File Reference

Provides Transactional Memory operations for native C types. More...

#include <picotm/compiler.h>
#include <picotm/config/picotm-tm-config.h>
#include "picotm-tm.h"

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 signed char load_schar_tx (const signed char *addr)
 
static short load_short_tx (const short *addr)
 
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 privatize__Bool_tx (const _Bool *addr, 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_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_schar_tx (signed char *addr, signed char value)
 
static void store_short_tx (short *addr, short value)
 
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)
 

Function Documentation

◆ load__Bool_tx()

static _Bool load__Bool_tx ( const _Bool *  addr)
inlinestatic

Loads a value of type ' _Bool ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_char_tx()

static char load_char_tx ( const char *  addr)
inlinestatic

Loads a value of type ' char ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_double_tx()

static double load_double_tx ( const double *  addr)
inlinestatic

Loads a value of type ' double ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_float_tx()

static float load_float_tx ( const float *  addr)
inlinestatic

Loads a value of type ' float ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_int_tx()

static int load_int_tx ( const int *  addr)
inlinestatic

Loads a value of type ' int ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_ldouble_tx()

static long double load_ldouble_tx ( const long double *  addr)
inlinestatic

Loads a value of type ' long double ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_llong_tx()

static long long load_llong_tx ( const long long *  addr)
inlinestatic

Loads a value of type ' long long ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_long_tx()

static long load_long_tx ( const long *  addr)
inlinestatic

Loads a value of type ' long ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_schar_tx()

static signed char load_schar_tx ( const signed char *  addr)
inlinestatic

Loads a value of type ' signed char ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_short_tx()

static short load_short_tx ( const short *  addr)
inlinestatic

Loads a value of type ' short ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_uchar_tx()

static unsigned char load_uchar_tx ( const unsigned char *  addr)
inlinestatic

Loads a value of type ' unsigned char ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_uint_tx()

static unsigned int load_uint_tx ( const unsigned int *  addr)
inlinestatic

Loads a value of type ' unsigned int ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_ullong_tx()

static unsigned long long load_ullong_tx ( const unsigned long long *  addr)
inlinestatic

Loads a value of type ' unsigned long long ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_ulong_tx()

static unsigned long load_ulong_tx ( const unsigned long *  addr)
inlinestatic

Loads a value of type ' unsigned long ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ load_ushort_tx()

static unsigned short load_ushort_tx ( const unsigned short *  addr)
inlinestatic

Loads a value of type ' unsigned short ' with transactional semantics.

Parameters
addrThe source address.
Returns
The transaction-local value loaded from address 'addr'.

◆ privatize__Bool_tx()

static void privatize__Bool_tx ( const _Bool *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' _Bool '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_char_tx()

static void privatize_char_tx ( const char *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' char '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_double_tx()

static void privatize_double_tx ( const double *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' double '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_float_tx()

static void privatize_float_tx ( const float *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' float '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_int_tx()

static void privatize_int_tx ( const int *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' int '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_ldouble_tx()

static void privatize_ldouble_tx ( const long double *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' long double '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_llong_tx()

static void privatize_llong_tx ( const long long *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' long long '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_long_tx()

static void privatize_long_tx ( const long *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' long '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_schar_tx()

static void privatize_schar_tx ( const signed char *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' signed char '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_short_tx()

static void privatize_short_tx ( const short *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' short '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_uchar_tx()

static void privatize_uchar_tx ( const unsigned char *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' unsigned char '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_uint_tx()

static void privatize_uint_tx ( const unsigned int *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' unsigned int '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_ullong_tx()

static void privatize_ullong_tx ( const unsigned long long *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' unsigned long long '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_ulong_tx()

static void privatize_ulong_tx ( const unsigned long *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' unsigned long '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ privatize_ushort_tx()

static void privatize_ushort_tx ( const unsigned short *  addr,
unsigned long  flags 
)
inlinestatic

Privatizes a value of type ' unsigned short '.

Parameters
addrThe address to privatize.
flagsPrivatizes for loading and/or storing. Not setting flags discards the buffer.

◆ store__Bool_tx()

static void store__Bool_tx ( _Bool *  addr,
_Bool  value 
)
inlinestatic

Stores a value of type ' _Bool ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_char_tx()

static void store_char_tx ( char *  addr,
char  value 
)
inlinestatic

Stores a value of type ' char ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_double_tx()

static void store_double_tx ( double *  addr,
double  value 
)
inlinestatic

Stores a value of type ' double ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_float_tx()

static void store_float_tx ( float *  addr,
float  value 
)
inlinestatic

Stores a value of type ' float ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_int_tx()

static void store_int_tx ( int *  addr,
int  value 
)
inlinestatic

Stores a value of type ' int ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_ldouble_tx()

static void store_ldouble_tx ( long double *  addr,
long double  value 
)
inlinestatic

Stores a value of type ' long double ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_llong_tx()

static void store_llong_tx ( long long *  addr,
long long  value 
)
inlinestatic

Stores a value of type ' long long ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_long_tx()

static void store_long_tx ( long *  addr,
long  value 
)
inlinestatic

Stores a value of type ' long ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_schar_tx()

static void store_schar_tx ( signed char *  addr,
signed char  value 
)
inlinestatic

Stores a value of type ' signed char ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_short_tx()

static void store_short_tx ( short *  addr,
short  value 
)
inlinestatic

Stores a value of type ' short ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_uchar_tx()

static void store_uchar_tx ( unsigned char *  addr,
unsigned char  value 
)
inlinestatic

Stores a value of type ' unsigned char ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_uint_tx()

static void store_uint_tx ( unsigned int *  addr,
unsigned int  value 
)
inlinestatic

Stores a value of type ' unsigned int ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_ullong_tx()

static void store_ullong_tx ( unsigned long long *  addr,
unsigned long long  value 
)
inlinestatic

Stores a value of type ' unsigned long long ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_ulong_tx()

static void store_ulong_tx ( unsigned long *  addr,
unsigned long  value 
)
inlinestatic

Stores a value of type ' unsigned long ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.

◆ store_ushort_tx()

static void store_ushort_tx ( unsigned short *  addr,
unsigned short  value 
)
inlinestatic

Stores a value of type ' unsigned short ' with transactional semantics.

Parameters
addrThe destination address.
valueThe value to store at 'addr'.