Files | Macros | Enumerations | Functions
The C Standard Library Module

Covers the C Standard Library module. This module offers many features of the C Standard Library and POSIX standard, such as string and memory functions, memory allocation, and file-descriptor I/O. More...

Files

file  errno.h
 Transactional wrappers for interfaces of <errno.h>.
 
file  fcntl-tm.h
 Transactional wrappers for interfaces of <fcntl.h>.
 
file  fcntl.h
 Transactional wrappers for interfaces of <fcntl.h>.
 
file  picotm-libc.h
 Public interfaces of picotm's libc module.
 
file  sched.h
 Transactional wrappers for interfaces of <sched.h>.
 
file  socket-tm.h
 Transactional wrappers for interfaces of <sys/socket.h>.
 
file  socket.h
 Transactional wrappers for interfaces of <sys/socket.h>.
 
file  stat-tm.h
 Transactional wrappers for interfaces of <sys/stat.h>.
 
file  stat.h
 Transactional wrappers for interfaces of <sys/stat.h>.
 
file  stdbool.h
 Transactional wrappers for interfaces of <stdbool.h>.
 
file  stddef.h
 Transactional wrappers for interfaces of <stddef.h>.
 
file  stdint.h
 Transactional wrappers for interfaces of <stdint.h>.
 
file  stdio-tm.h
 Transactional wrappers for interfaces of <stdio.h>.
 
file  stdio.h
 Transactional wrappers for interfaces of <stdio.h>.
 
file  stdlib-tm.h
 Transactional wrappers for interfaces of <stdlib.h>.
 
file  stdlib.h
 Transactional wrappers for interfaces of <stdlib.h>.
 
file  string-tm.h
 Transactional wrappers for interfaces of <string.h>.
 
file  string.h
 Transactional wrappers for interfaces of <string.h>.
 
file  types.h
 Transactional wrappers for interfaces of <sys/types.h>.
 
file  unistd-tm.h
 Transactional wrappers for interfaces of <unistd.h>.
 
file  unistd.h
 Transactional wrappers for interfaces of <unistd.h>.
 

Macros

#define errno_tx
 

Enumerations

enum  picotm_libc_cc_mode { PICOTM_LIBC_CC_MODE_NOUNDO, PICOTM_LIBC_CC_MODE_2PL }
 
enum  picotm_libc_error_recovery { PICOTM_LIBC_ERROR_RECOVERY_AUTO, PICOTM_LIBC_ERROR_RECOVERY_FULL }
 
enum  picotm_libc_file_type {
  PICOTM_LIBC_FILE_TYPE_CHRDEV, PICOTM_LIBC_FILE_TYPE_FIFO, PICOTM_LIBC_FILE_TYPE_REGULAR, PICOTM_LIBC_FILE_TYPE_DIR,
  PICOTM_LIBC_FILE_TYPE_SOCKET
}
 
enum  picotm_libc_write_mode { PICOTM_LIBC_WRITE_BACK, PICOTM_LIBC_WRITE_THROUGH }
 

Functions

PICOTM_NOTHROW PICOTM_NORETURN void _exit_tx (int status)
 
PICOTM_NOTHROW PICOTM_NORETURN void _Exit_tx (int status)
 
PICOTM_NOTHROW PICOTM_NORETURN void abort_tx (void)
 
PICOTM_NOTHROW int accept_tm (int socket, struct sockaddr *address, socklen_t *address_len)
 
PICOTM_NOTHROW int accept_tx (int socket, struct sockaddr *address, socklen_t *address_len)
 
PICOTM_NOTHROW int bind_tm (int socket, const struct sockaddr *address, socklen_t address_len)
 
PICOTM_NOTHROW int bind_tx (int socket, const struct sockaddr *address, socklen_t address_len)
 
PICOTM_NOTHROW void * calloc_tx (size_t nmemb, size_t size)
 
PICOTM_NOTHROW int chdir_tm (const char *path)
 
PICOTM_NOTHROW int chdir_tx (const char *path)
 
PICOTM_NOTHROW int chmod_tm (const char *path, mode_t mode)
 
PICOTM_NOTHROW int chmod_tx (const char *path, mode_t mode)
 
PICOTM_NOTHROW int close_tx (int fildes)
 
PICOTM_NOTHROW int connect_tm (int socket, const struct sockaddr *address, socklen_t address_len)
 
PICOTM_NOTHROW int connect_tx (int socket, const struct sockaddr *address, socklen_t address_len)
 
PICOTM_NOTHROW int creat_tm (const char *path, mode_t mode)
 
PICOTM_NOTHROW int creat_tx (const char *path, mode_t mode)
 
PICOTM_NOTHROW int dup2_tx (int fildes, int fildes2)
 
PICOTM_NOTHROW int dup_tx (int fildes)
 
PICOTM_NOTHROW PICOTM_NORETURN void exit_tx (int status)
 
PICOTM_NOTHROW int fchdir_tx (int fildes)
 
PICOTM_NOTHROW int fchmod_tx (int fildes, mode_t mode)
 
PICOTM_NOTHROW int fcntl_tm (int fildes, int cmd,...)
 
PICOTM_NOTHROW int fcntl_tx (int fildes, int cmd,...)
 
PICOTM_NOTHROW void free_tm (void *ptr)
 
PICOTM_NOTHROW void free_tx (void *ptr)
 
PICOTM_NOTHROW int fstat_tm (int fildes, struct stat *buf)
 
PICOTM_NOTHROW int fstat_tx (int fildes, struct stat *buf)
 
PICOTM_NOTHROW int fsync_tx (int fildes)
 
PICOTM_NOTHROW char * getcwd_tm (char *buf, size_t size)
 
PICOTM_NOTHROW char * getcwd_tx (char *buf, size_t size)
 
PICOTM_NOTHROW int link_tm (const char *path1, const char *path2)
 
PICOTM_NOTHROW int link_tx (const char *path1, const char *path2)
 
PICOTM_NOTHROW int listen_tx (int socket, int backlog)
 
static blkcnt_t load_blkcnt_t_tx (const blkcnt_t *addr)
 
static blksize_t load_blksize_t_tx (const blksize_t *addr)
 
static bool load_bool_tx (const bool *addr)
 
static clock_t load_clock_t_tx (const clock_t *addr)
 
static clockid_t load_clockid_t_tx (const clockid_t *addr)
 
static dev_t load_dev_t_tx (const dev_t *addr)
 
static div_t load_div_t_tx (const div_t *addr)
 
static fsblkcnt_t load_fsblkcnt_t_tx (const fsblkcnt_t *addr)
 
static fsfilcnt_t load_fsfilcnt_t_tx (const fsfilcnt_t *addr)
 
static gid_t load_gid_t_tx (const gid_t *addr)
 
static id_t load_id_t_tx (const id_t *addr)
 
static ino_t load_ino_t_tx (const ino_t *addr)
 
static int16_t load_int16_t_tx (const int16_t *addr)
 
static int32_t load_int32_t_tx (const int32_t *addr)
 
static int64_t load_int64_t_tx (const int64_t *addr)
 
static int8_t load_int8_t_tx (const int8_t *addr)
 
static int_fast16_t load_int_fast16_t_tx (const int_fast16_t *addr)
 
static int_fast32_t load_int_fast32_t_tx (const int_fast32_t *addr)
 
static int_fast64_t load_int_fast64_t_tx (const int_fast64_t *addr)
 
static int_fast8_t load_int_fast8_t_tx (const int_fast8_t *addr)
 
static int_least16_t load_int_least16_t_tx (const int_least16_t *addr)
 
static int_least32_t load_int_least32_t_tx (const int_least32_t *addr)
 
static int_least64_t load_int_least64_t_tx (const int_least64_t *addr)
 
static int_least8_t load_int_least8_t_tx (const int_least8_t *addr)
 
static intmax_t load_intmax_t_tx (const intmax_t *addr)
 
static intptr_t load_intptr_t_tx (const intptr_t *addr)
 
static key_t load_key_t_tx (const key_t *addr)
 
static ldiv_t load_ldiv_t_tx (const ldiv_t *addr)
 
static lldiv_t load_lldiv_t_tx (const lldiv_t *addr)
 
static mode_t load_mode_t_tx (const mode_t *addr)
 
static nlink_t load_nlink_t_tx (const nlink_t *addr)
 
static off_t load_off_t_tx (const off_t *addr)
 
static pid_t load_pid_t_tx (const pid_t *addr)
 
static ptrdiff_t load_ptrdiff_t_tx (const ptrdiff_t *addr)
 
static size_t load_size_t_tx (const size_t *addr)
 
static ssize_t load_ssize_t_tx (const ssize_t *addr)
 
static suseconds_t load_suseconds_t_tx (const suseconds_t *addr)
 
static time_t load_time_t_tx (const time_t *addr)
 
static timer_t load_timer_t_tx (const timer_t *addr)
 
static uid_t load_uid_t_tx (const uid_t *addr)
 
static uint16_t load_uint16_t_tx (const uint16_t *addr)
 
static uint32_t load_uint32_t_tx (const uint32_t *addr)
 
static uint64_t load_uint64_t_tx (const uint64_t *addr)
 
static uint8_t load_uint8_t_tx (const uint8_t *addr)
 
static uint_fast16_t load_uint_fast16_t_tx (const uint_fast16_t *addr)
 
static uint_fast32_t load_uint_fast32_t_tx (const uint_fast32_t *addr)
 
static uint_fast64_t load_uint_fast64_t_tx (const uint_fast64_t *addr)
 
static uint_fast8_t load_uint_fast8_t_tx (const uint_fast8_t *addr)
 
static uint_least16_t load_uint_least16_t_tx (const uint_least16_t *addr)
 
static uint_least32_t load_uint_least32_t_tx (const uint_least32_t *addr)
 
static uint_least64_t load_uint_least64_t_tx (const uint_least64_t *addr)
 
static uint_least8_t load_uint_least8_t_tx (const uint_least8_t *addr)
 
static uintmax_t load_uintmax_t_tx (const uintmax_t *addr)
 
static uintptr_t load_uintptr_t_tx (const uintptr_t *addr)
 
static wchar_t load_wchar_t_tx (const wchar_t *addr)
 
PICOTM_NOTHROW off_t lseek_tx (int fildes, off_t offset, int whence)
 
PICOTM_NOTHROW int lstat_tm (const char *path, struct stat *buf)
 
PICOTM_NOTHROW int lstat_tx (const char *path, struct stat *buf)
 
PICOTM_NOTHROW void * malloc_tx (size_t size)
 
PICOTM_NOTHROW void * memccpy_tm (void *restrict dest, const void *restrict src, int c, size_t n)
 
PICOTM_NOTHROW void * memccpy_tx (void *restrict dest, const void *restrict src, int c, size_t n)
 
PICOTM_NOTHROW void * memchr_tm (const void *s, int c, size_t n)
 
PICOTM_NOTHROW void * memchr_tx (const void *s, int c, size_t n)
 
PICOTM_NOTHROW int memcmp_tm (const void *s1, const void *s2, size_t n)
 
PICOTM_NOTHROW int memcmp_tx (const void *s1, const void *s2, size_t n)
 
PICOTM_NOTHROW void * memcpy_tm (void *restrict dest, const void *restrict src, size_t n)
 
PICOTM_NOTHROW void * memcpy_tx (void *restrict dest, const void *restrict src, size_t n)
 
PICOTM_NOTHROW void * memmove_tm (void *dest, const void *src, size_t n)
 
PICOTM_NOTHROW void * memmove_tx (void *dest, const void *src, size_t n)
 
PICOTM_NOTHROW void * memrchr_tm (const void *s, int c, size_t n)
 
PICOTM_NOTHROW void * memrchr_tx (const void *s, int c, size_t n)
 
PICOTM_NOTHROW void * memset_tm (void *s, int c, size_t n)
 
PICOTM_NOTHROW void * memset_tx (void *s, int c, size_t n)
 
PICOTM_NOTHROW int mkdir_tm (const char *path, mode_t mode)
 
PICOTM_NOTHROW int mkdir_tx (const char *path, mode_t mode)
 
PICOTM_NOTHROW char * mkdtemp_tm (char *template)
 
PICOTM_NOTHROW char * mkdtemp_tx (char *template)
 
PICOTM_NOTHROW int mkfifo_tm (const char *path, mode_t mode)
 
PICOTM_NOTHROW int mkfifo_tx (const char *path, mode_t mode)
 
PICOTM_NOTHROW int mknod_tm (const char *path, mode_t mode, dev_t dev)
 
PICOTM_NOTHROW int mknod_tx (const char *path, mode_t mode, dev_t dev)
 
PICOTM_NOTHROW int mkstemp_tm (char *template)
 
PICOTM_NOTHROW int mkstemp_tx (char *template)
 
PICOTM_NOTHROW int open_tm (const char *path, int oflag,...)
 
PICOTM_NOTHROW int open_tx (const char *path, int oflag,...)
 
PICOTM_NOTHROW void picotm_libc_acquire_proc_signal (int signum, void(*nontx_sigaction)(int, siginfo_t *, void *), struct picotm_error *error)
 Acquires the signal handler from the process. More...
 
PICOTM_NOTHROW void picotm_libc_add_signal (int signum, _Bool is_recoverable, struct picotm_error *error)
 Enable recovery for a UNIX signal. More...
 
PICOTM_NOTHROW void picotm_libc_clear_signals (void)
 Disable recovery for all UNIX signals.
 
PICOTM_NOTHROW enum picotm_libc_error_recovery picotm_libc_get_error_recovery (void)
 
PICOTM_NOTHROW enum picotm_libc_cc_mode picotm_libc_get_file_type_cc_mode (enum picotm_libc_file_type file_type)
 
PICOTM_NOTHROW void picotm_libc_release_proc_signal (int signum, struct picotm_error *error)
 Releases a previously acquired signal to the process. More...
 
PICOTM_NOTHROW void picotm_libc_remove_signal (int signum)
 Disable recovery for a UNIX signal. More...
 
PICOTM_NOTHROW void picotm_libc_save_errno (void)
 
PICOTM_NOTHROW void picotm_libc_set_error_recovery (enum picotm_libc_error_recovery recovery)
 
PICOTM_NOTHROW void picotm_libc_set_file_type_cc_mode (enum picotm_libc_file_type file_type, enum picotm_libc_cc_mode cc_mode)
 
PICOTM_NOTHROW int pipe_tm (int fildes[2])
 
PICOTM_NOTHROW int pipe_tx (int fildes[2])
 
PICOTM_NOTHROW int posix_memalign_tm (void **memptr, size_t alignment, size_t size)
 
PICOTM_NOTHROW int posix_memalign_tx (void **memptr, size_t alignment, size_t size)
 
PICOTM_NOTHROW ssize_t pread_tm (int fildes, void *buf, size_t nbyte, off_t offset)
 
PICOTM_NOTHROW ssize_t pread_tx (int fildes, void *buf, size_t nbyte, off_t offset)
 
static void privatize_blkcnt_t_tx (const blkcnt_t *addr, unsigned long flags)
 
static void privatize_blksize_t_tx (const blksize_t *addr, unsigned long flags)
 
static void privatize_bool_tx (const bool *addr, unsigned long flags)
 
static void privatize_clock_t_tx (const clock_t *addr, unsigned long flags)
 
static void privatize_clockid_t_tx (const clockid_t *addr, unsigned long flags)
 
static void privatize_dev_t_tx (const dev_t *addr, unsigned long flags)
 
static void privatize_div_t_tx (const div_t *addr, unsigned long flags)
 
static void privatize_fsblkcnt_t_tx (const fsblkcnt_t *addr, unsigned long flags)
 
static void privatize_fsfilcnt_t_tx (const fsfilcnt_t *addr, unsigned long flags)
 
static void privatize_gid_t_tx (const gid_t *addr, unsigned long flags)
 
static void privatize_id_t_tx (const id_t *addr, unsigned long flags)
 
static void privatize_ino_t_tx (const ino_t *addr, unsigned long flags)
 
static void privatize_int16_t_tx (const int16_t *addr, unsigned long flags)
 
static void privatize_int32_t_tx (const int32_t *addr, unsigned long flags)
 
static void privatize_int64_t_tx (const int64_t *addr, unsigned long flags)
 
static void privatize_int8_t_tx (const int8_t *addr, unsigned long flags)
 
static void privatize_int_fast16_t_tx (const int_fast16_t *addr, unsigned long flags)
 
static void privatize_int_fast32_t_tx (const int_fast32_t *addr, unsigned long flags)
 
static void privatize_int_fast64_t_tx (const int_fast64_t *addr, unsigned long flags)
 
static void privatize_int_fast8_t_tx (const int_fast8_t *addr, unsigned long flags)
 
static void privatize_int_least16_t_tx (const int_least16_t *addr, unsigned long flags)
 
static void privatize_int_least32_t_tx (const int_least32_t *addr, unsigned long flags)
 
static void privatize_int_least64_t_tx (const int_least64_t *addr, unsigned long flags)
 
static void privatize_int_least8_t_tx (const int_least8_t *addr, unsigned long flags)
 
static void privatize_intmax_t_tx (const intmax_t *addr, unsigned long flags)
 
static void privatize_intptr_t_tx (const intptr_t *addr, unsigned long flags)
 
static void privatize_key_t_tx (const key_t *addr, unsigned long flags)
 
static void privatize_ldiv_t_tx (const ldiv_t *addr, unsigned long flags)
 
static void privatize_lldiv_t_tx (const lldiv_t *addr, unsigned long flags)
 
static void privatize_mode_t_tx (const mode_t *addr, unsigned long flags)
 
static void privatize_nlink_t_tx (const nlink_t *addr, unsigned long flags)
 
static void privatize_off_t_tx (const off_t *addr, unsigned long flags)
 
static void privatize_pid_t_tx (const pid_t *addr, unsigned long flags)
 
static void privatize_ptrdiff_t_tx (const ptrdiff_t *addr, unsigned long flags)
 
static void privatize_size_t_tx (const size_t *addr, unsigned long flags)
 
static void privatize_ssize_t_tx (const ssize_t *addr, unsigned long flags)
 
static void privatize_suseconds_t_tx (const suseconds_t *addr, unsigned long flags)
 
static void privatize_time_t_tx (const time_t *addr, unsigned long flags)
 
static void privatize_timer_t_tx (const timer_t *addr, unsigned long flags)
 
static void privatize_uid_t_tx (const uid_t *addr, unsigned long flags)
 
static void privatize_uint16_t_tx (const uint16_t *addr, unsigned long flags)
 
static void privatize_uint32_t_tx (const uint32_t *addr, unsigned long flags)
 
static void privatize_uint64_t_tx (const uint64_t *addr, unsigned long flags)
 
static void privatize_uint8_t_tx (const uint8_t *addr, unsigned long flags)
 
static void privatize_uint_fast16_t_tx (const uint_fast16_t *addr, unsigned long flags)
 
static void privatize_uint_fast32_t_tx (const uint_fast32_t *addr, unsigned long flags)
 
static void privatize_uint_fast64_t_tx (const uint_fast64_t *addr, unsigned long flags)
 
static void privatize_uint_fast8_t_tx (const uint_fast8_t *addr, unsigned long flags)
 
static void privatize_uint_least16_t_tx (const uint_least16_t *addr, unsigned long flags)
 
static void privatize_uint_least32_t_tx (const uint_least32_t *addr, unsigned long flags)
 
static void privatize_uint_least64_t_tx (const uint_least64_t *addr, unsigned long flags)
 
static void privatize_uint_least8_t_tx (const uint_least8_t *addr, unsigned long flags)
 
static void privatize_uintmax_t_tx (const uintmax_t *addr, unsigned long flags)
 
static void privatize_uintptr_t_tx (const uintptr_t *addr, unsigned long flags)
 
static void privatize_wchar_t_tx (const wchar_t *addr, unsigned long flags)
 
PICOTM_NOTHROW ssize_t pwrite_tm (int fildes, const void *buf, size_t nbyte, off_t offset)
 
PICOTM_NOTHROW ssize_t pwrite_tx (int fildes, const void *buf, size_t nbyte, off_t offset)
 
PICOTM_NOTHROW void qsort_tm (void *base, size_t nel, size_t width, int(*compar)(const void *, const void *))
 
PICOTM_NOTHROW void qsort_tx (void *base, size_t nel, size_t width, int(*compar)(const void *, const void *))
 
PICOTM_NOTHROW int rand_r_tm (unsigned int *seed)
 
PICOTM_NOTHROW int rand_r_tx (unsigned int *seed)
 
PICOTM_NOTHROW void * rawmemchr_tm (const void *s, int c)
 
PICOTM_NOTHROW void * rawmemchr_tx (const void *s, int c)
 
PICOTM_NOTHROW ssize_t read_tm (int fildes, void *buf, size_t nbyte)
 
PICOTM_NOTHROW ssize_t read_tx (int fildes, void *buf, size_t nbyte)
 
PICOTM_NOTHROW void * realloc_tm (void *ptr, size_t size)
 
PICOTM_NOTHROW void * realloc_tx (void *ptr, size_t size)
 
PICOTM_NOTHROW ssize_t recv_tm (int socket, void *buffer, size_t length, int flags)
 
PICOTM_NOTHROW ssize_t recv_tx (int socket, void *buffer, size_t length, int flags)
 
PICOTM_NOTHROW int sched_yield_tx (void)
 
PICOTM_NOTHROW ssize_t send_tm (int socket, const void *buffer, size_t length, int flags)
 
PICOTM_NOTHROW ssize_t send_tx (int socket, const void *buffer, size_t length, int flags)
 
PICOTM_NOTHROW int shutdown_tx (int socket, int how)
 
PICOTM_NOTHROW unsigned sleep_tx (unsigned seconds)
 
PICOTM_NOTHROW int snprintf_tm (char *restrict s, size_t n, const char *restrict format,...)
 
PICOTM_NOTHROW int snprintf_tx (char *restrict s, size_t n, const char *restrict format,...)
 
PICOTM_NOTHROW int socket_tx (int domain, int type, int protocol)
 
PICOTM_NOTHROW int sscanf_tm (const char *restrict s, const char *restrict format,...)
 
PICOTM_NOTHROW int sscanf_tx (const char *restrict s, const char *restrict format,...)
 
PICOTM_NOTHROW int stat_tm (const char *path, struct stat *buf)
 
PICOTM_NOTHROW int stat_tx (const char *path, struct stat *buf)
 
static void store_blkcnt_t_tx (blkcnt_t *addr, blkcnt_t value)
 
static void store_blksize_t_tx (blksize_t *addr, blksize_t value)
 
static void store_bool_tx (bool *addr, bool value)
 
static void store_clock_t_tx (clock_t *addr, clock_t value)
 
static void store_clockid_t_tx (clockid_t *addr, clockid_t value)
 
static void store_dev_t_tx (dev_t *addr, dev_t value)
 
static void store_div_t_tx (div_t *addr, div_t value)
 
static void store_fsblkcnt_t_tx (fsblkcnt_t *addr, fsblkcnt_t value)
 
static void store_fsfilcnt_t_tx (fsfilcnt_t *addr, fsfilcnt_t value)
 
static void store_gid_t_tx (gid_t *addr, gid_t value)
 
static void store_id_t_tx (id_t *addr, id_t value)
 
static void store_ino_t_tx (ino_t *addr, ino_t value)
 
static void store_int16_t_tx (int16_t *addr, int16_t value)
 
static void store_int32_t_tx (int32_t *addr, int32_t value)
 
static void store_int64_t_tx (int64_t *addr, int64_t value)
 
static void store_int8_t_tx (int8_t *addr, int8_t value)
 
static void store_int_fast16_t_tx (int_fast16_t *addr, int_fast16_t value)
 
static void store_int_fast32_t_tx (int_fast32_t *addr, int_fast32_t value)
 
static void store_int_fast64_t_tx (int_fast64_t *addr, int_fast64_t value)
 
static void store_int_fast8_t_tx (int_fast8_t *addr, int_fast8_t value)
 
static void store_int_least16_t_tx (int_least16_t *addr, int_least16_t value)
 
static void store_int_least32_t_tx (int_least32_t *addr, int_least32_t value)
 
static void store_int_least64_t_tx (int_least64_t *addr, int_least64_t value)
 
static void store_int_least8_t_tx (int_least8_t *addr, int_least8_t value)
 
static void store_intmax_t_tx (intmax_t *addr, intmax_t value)
 
static void store_intptr_t_tx (intptr_t *addr, intptr_t value)
 
static void store_key_t_tx (key_t *addr, key_t value)
 
static void store_ldiv_t_tx (ldiv_t *addr, ldiv_t value)
 
static void store_lldiv_t_tx (lldiv_t *addr, lldiv_t value)
 
static void store_mode_t_tx (mode_t *addr, mode_t value)
 
static void store_nlink_t_tx (nlink_t *addr, nlink_t value)
 
static void store_off_t_tx (off_t *addr, off_t value)
 
static void store_pid_t_tx (pid_t *addr, pid_t value)
 
static void store_ptrdiff_t_tx (ptrdiff_t *addr, ptrdiff_t value)
 
static void store_size_t_tx (size_t *addr, size_t value)
 
static void store_ssize_t_tx (ssize_t *addr, ssize_t value)
 
static void store_suseconds_t_tx (suseconds_t *addr, suseconds_t value)
 
static void store_time_t_tx (time_t *addr, time_t value)
 
static void store_timer_t_tx (timer_t *addr, timer_t value)
 
static void store_uid_t_tx (uid_t *addr, uid_t value)
 
static void store_uint16_t_tx (uint16_t *addr, uint16_t value)
 
static void store_uint32_t_tx (uint32_t *addr, uint32_t value)
 
static void store_uint64_t_tx (uint64_t *addr, uint64_t value)
 
static void store_uint8_t_tx (uint8_t *addr, uint8_t value)
 
static void store_uint_fast16_t_tx (uint_fast16_t *addr, uint_fast16_t value)
 
static void store_uint_fast32_t_tx (uint_fast32_t *addr, uint_fast32_t value)
 
static void store_uint_fast64_t_tx (uint_fast64_t *addr, uint_fast64_t value)
 
static void store_uint_fast8_t_tx (uint_fast8_t *addr, uint_fast8_t value)
 
static void store_uint_least16_t_tx (uint_least16_t *addr, uint_least16_t value)
 
static void store_uint_least32_t_tx (uint_least32_t *addr, uint_least32_t value)
 
static void store_uint_least64_t_tx (uint_least64_t *addr, uint_least64_t value)
 
static void store_uint_least8_t_tx (uint_least8_t *addr, uint_least8_t value)
 
static void store_uintmax_t_tx (uintmax_t *addr, uintmax_t value)
 
static void store_uintptr_t_tx (uintptr_t *addr, uintptr_t value)
 
static void store_wchar_t_tx (wchar_t *addr, wchar_t value)
 
PICOTM_NOTHROW char * stpcpy_tm (char *restrict dest, const char *restrict src)
 
PICOTM_NOTHROW char * stpcpy_tx (char *restrict dest, const char *restrict src)
 
PICOTM_NOTHROW char * stpncpy_tm (char *restrict dest, const char *restrict src, size_t n)
 
PICOTM_NOTHROW char * stpncpy_tx (char *restrict dest, const char *restrict src, size_t n)
 
PICOTM_NOTHROW char * strcat_tm (char *restrict dest, const char *restrict src)
 
PICOTM_NOTHROW char * strcat_tx (char *restrict dest, const char *restrict src)
 
PICOTM_NOTHROW char * strchr_tm (const char *s, int c)
 
PICOTM_NOTHROW char * strchr_tx (const char *s, int c)
 
PICOTM_NOTHROW int strcmp_tm (const char *s1, const char *s2)
 
PICOTM_NOTHROW int strcmp_tx (const char *s1, const char *s2)
 
PICOTM_NOTHROW int strcoll_l_tm (const char *s1, const char *s2, locale_t locale)
 
PICOTM_NOTHROW int strcoll_l_tx (const char *s1, const char *s2, locale_t locale)
 
PICOTM_NOTHROW char * strcpy_tm (char *restrict dest, const char *restrict src)
 
PICOTM_NOTHROW char * strcpy_tx (char *restrict dest, const char *restrict src)
 
PICOTM_NOTHROW size_t strcspn_tm (const char *s, const char *reject)
 
PICOTM_NOTHROW size_t strcspn_tx (const char *s, const char *reject)
 
PICOTM_NOTHROW char * strdup_tm (const char *s)
 
PICOTM_NOTHROW char * strdup_tx (const char *s)
 
PICOTM_NOTHROW size_t strlen_tm (const char *s)
 
PICOTM_NOTHROW size_t strlen_tx (const char *s)
 
PICOTM_NOTHROW char * strncat_tm (char *restrict dest, const char *restrict src, size_t n)
 
PICOTM_NOTHROW char * strncat_tx (char *restrict dest, const char *restrict src, size_t n)
 
PICOTM_NOTHROW int strncmp_tm (const char *s1, const char *s2, size_t n)
 
PICOTM_NOTHROW int strncmp_tx (const char *s1, const char *s2, size_t n)
 
PICOTM_NOTHROW char * strncpy_tm (char *restrict dest, const char *restrict src, size_t n)
 
PICOTM_NOTHROW char * strncpy_tx (char *restrict dest, const char *restrict src, size_t n)
 
PICOTM_NOTHROW char * strndup_tm (const char *s, size_t n)
 
PICOTM_NOTHROW char * strndup_tx (const char *s, size_t n)
 
PICOTM_NOTHROW size_t strnlen_tm (const char *s, size_t maxlen)
 
PICOTM_NOTHROW size_t strnlen_tx (const char *s, size_t maxlen)
 
PICOTM_NOTHROW char * strpbrk_tm (const char *s, const char *accept)
 
PICOTM_NOTHROW char * strpbrk_tx (const char *s, const char *accept)
 
PICOTM_NOTHROW char * strrchr_tm (const char *s, int c)
 
PICOTM_NOTHROW char * strrchr_tx (const char *s, int c)
 
PICOTM_NOTHROW size_t strspn_tm (const char *s, const char *accept)
 
PICOTM_NOTHROW size_t strspn_tx (const char *s, const char *accept)
 
PICOTM_NOTHROW char * strstr_tm (const char *haystack, const char *needle)
 
PICOTM_NOTHROW char * strstr_tx (const char *haystack, const char *needle)
 
PICOTM_NOTHROW char * strtok_r_tm (char *restrict str, const char *restrict delim, char **restrict saveptr)
 
PICOTM_NOTHROW char * strtok_r_tx (char *restrict str, const char *restrict delim, char **restrict saveptr)
 
PICOTM_NOTHROW void sync_tx (void)
 
PICOTM_NOTHROW int unlink_tm (const char *path)
 
PICOTM_NOTHROW int unlink_tx (const char *path)
 
PICOTM_NOTHROW int vsnprintf_tm (char *restrict s, size_t n, const char *restrict format, va_list ap)
 
PICOTM_NOTHROW int vsnprintf_tx (char *restrict s, size_t n, const char *restrict format, va_list ap)
 
PICOTM_NOTHROW int vsscanf_tm (const char *restrict s, const char *restrict format, va_list arg)
 
PICOTM_NOTHROW int vsscanf_tx (const char *restrict s, const char *restrict format, va_list arg)
 
PICOTM_NOTHROW ssize_t write_tm (int fildes, const void *buf, size_t nbyte)
 
PICOTM_NOTHROW ssize_t write_tx (int fildes, const void *buf, size_t nbyte)
 

Detailed Description

The C Standard Library Module covers many features of the C Standard Library and the POSIX standard.

Error Handling

The C Standard Library module provides transaction-safe errno as errno_tx. With a few exceptions, the transactional functions will handle errors for you. Only rarely you should have a need to examine the errno status. If accessed, the errno value is saved and restored during aborts.

Signal Handling

The C Standard library module can handle signals automatically and execute recovery for a signal.

Memory allocation

You can allocate memory with malloc_tx(), calloc_tx() or posix_memalign_tx(). The allocation is transaction-safe. On aborts, allocated memory blocks will automatically be released. To explicitly release a block of memory call free_tx(). If the transaction aborts afterwards, the released memory block will be available again. For reallocations call realloc_tx(). This call combines memory allocation and releases in a single function.

String and Memory functions.

The C Standard Library module supports a wide range of string and memory helpers, such as strcpy(), strdup(), memmove(), or memcmp().

File-Descriptor I/O

File descriptors can be used transactionally. The module protects file descriptors, open file description, and file buffer; if possible. Call open_tx() and close_tx() to open and close files within a transaction.

File content is read with read_tx() or pread_tx(), and written with write_tx() or pwrite_tx(). Depending on the operation, the file position is updated.

The module also supports FIFO and socket buffers; although some operations require irrevocability.

File-System Support

The file system is already a shared resource. Since the module only supports process-local transactions, at least POSIX-like semantics are available. For example, link_tx() is performed immediately and atomically, or temporary files created with mkstemp_tx() are removed automatically on aborts.

Macro Definition Documentation

◆ errno_tx

#define errno_tx

A transaction-safe implementation of errno.

Enumeration Type Documentation

◆ picotm_libc_cc_mode

Concurrency-control mode for file-descriptor I/O.

Enumerator
PICOTM_LIBC_CC_MODE_NOUNDO 

Set CC mode to irrevocablilty

PICOTM_LIBC_CC_MODE_2PL 

Set CC mode to pessimistic two-phase locking

◆ picotm_libc_error_recovery

The error-recovery strategy for system calls.

Each module detects errors and initiates recovery. Sometimes reported errors are not failures of the component, but expected corner cases. For example 'read()' on non-blocking file descriptors signals EAGAIN if there's no data available.

The libc modules has to distiguish such cases from actual errors to decide when to initiate recovery. enum picotm_libc_error_recovery is a list of possible strategies.

It is recommended to use PICOTM_LIBC_ERROR_RECOVERY_AUTO.

Enumerator
PICOTM_LIBC_ERROR_RECOVERY_AUTO 

Use heuristics to decide which errors to recover from. This is the default.

PICOTM_LIBC_ERROR_RECOVERY_FULL 

Recover from all errors.

◆ picotm_libc_file_type

File-type constants.

Enumerator
PICOTM_LIBC_FILE_TYPE_CHRDEV 

Character device.

PICOTM_LIBC_FILE_TYPE_FIFO 

FIFO.

PICOTM_LIBC_FILE_TYPE_REGULAR 

Regular file.

PICOTM_LIBC_FILE_TYPE_DIR 

Directory.

PICOTM_LIBC_FILE_TYPE_SOCKET 

Socket.

◆ picotm_libc_write_mode

File-descriptor I/O write mode.

Enumerator
PICOTM_LIBC_WRITE_BACK 

Write-back mode.

PICOTM_LIBC_WRITE_THROUGH 

Write-through mode.

Function Documentation

◆ _exit_tx()

PICOTM_NOTHROW PICOTM_NORETURN void _exit_tx ( int  status)

A transaction-safe implementation of _exit().

Bug:
Calling _exit() simply terminates the process. It probably should not be available in a transaction.

◆ _Exit_tx()

PICOTM_NOTHROW PICOTM_NORETURN void _Exit_tx ( int  status)

A transaction-safe implementation of _Exit().

Bug:
Calling _Exit() simply terminates the process. It probably should not be available in a transaction.

◆ abort_tx()

PICOTM_NOTHROW PICOTM_NORETURN void abort_tx ( void  )

A transaction-safe implementation of abort().

Bug:
Calling abort() simply terminates the process. It probably should not be available in a transaction.

◆ accept_tm()

PICOTM_NOTHROW int accept_tm ( int  socket,
struct sockaddr *  address,
socklen_t *  address_len 
)

Variant of accept_tx() that operates on transactional memory.

◆ accept_tx()

PICOTM_NOTHROW int accept_tx ( int  socket,
struct sockaddr *  address,
socklen_t *  address_len 
)

A transaction-safe implementation of accept().

◆ bind_tm()

PICOTM_NOTHROW int bind_tm ( int  socket,
const struct sockaddr *  address,
socklen_t  address_len 
)

Variant of bind_tx() that operates on transactional memory.

◆ bind_tx()

PICOTM_NOTHROW int bind_tx ( int  socket,
const struct sockaddr *  address,
socklen_t  address_len 
)

A transaction-safe implementation of bind().

◆ calloc_tx()

PICOTM_NOTHROW void* calloc_tx ( size_t  nmemb,
size_t  size 
)

A transaction-safe implementation of calloc().

◆ chdir_tm()

PICOTM_NOTHROW int chdir_tm ( const char *  path)

Variant of chdir_tx() that operates on transactional memory.

◆ chdir_tx()

PICOTM_NOTHROW int chdir_tx ( const char *  path)

A transaction-safe implementation of chdir().

◆ chmod_tm()

PICOTM_NOTHROW int chmod_tm ( const char *  path,
mode_t  mode 
)

Variant of chmod_tx() that operates on transactional memory.

◆ chmod_tx()

PICOTM_NOTHROW int chmod_tx ( const char *  path,
mode_t  mode 
)

A transaction-safe implementation of chmod().

◆ close_tx()

PICOTM_NOTHROW int close_tx ( int  fildes)

A transaction-safe implementation of close().

◆ connect_tm()

PICOTM_NOTHROW int connect_tm ( int  socket,
const struct sockaddr *  address,
socklen_t  address_len 
)

Variant of connect_tx() that operates on transactional memory.

◆ connect_tx()

PICOTM_NOTHROW int connect_tx ( int  socket,
const struct sockaddr *  address,
socklen_t  address_len 
)

A transaction-safe implementation of connect().

◆ creat_tm()

PICOTM_NOTHROW int creat_tm ( const char *  path,
mode_t  mode 
)

Variant of creat_tx() that operates on transactional memory.

◆ creat_tx()

PICOTM_NOTHROW int creat_tx ( const char *  path,
mode_t  mode 
)

A transaction-safe implementation of creat().

◆ dup2_tx()

PICOTM_NOTHROW int dup2_tx ( int  fildes,
int  fildes2 
)

A transaction-safe implementation of dup2().

◆ dup_tx()

PICOTM_NOTHROW int dup_tx ( int  fildes)

A transaction-safe implementation of dup().

◆ exit_tx()

PICOTM_NOTHROW PICOTM_NORETURN void exit_tx ( int  status)

A transaction-safe implementation of exit().

Bug:
Calling exit() simply terminates the process. It probably should not be available in a transaction.

◆ fchdir_tx()

PICOTM_NOTHROW int fchdir_tx ( int  fildes)

A transaction-safe implementation of fchdir().

◆ fchmod_tx()

PICOTM_NOTHROW int fchmod_tx ( int  fildes,
mode_t  mode 
)

A transaction-safe implementation of fchmod().

◆ fcntl_tm()

PICOTM_NOTHROW int fcntl_tm ( int  fildes,
int  cmd,
  ... 
)

Variant of fcntl_tx() that operates on transactional memory.

◆ fcntl_tx()

PICOTM_NOTHROW int fcntl_tx ( int  fildes,
int  cmd,
  ... 
)

A transaction-safe implementation of fcntl().

◆ free_tm()

PICOTM_NOTHROW void free_tm ( void *  ptr)

Variant of free_tx() that operates on transactional memory.

◆ free_tx()

PICOTM_NOTHROW void free_tx ( void *  ptr)

A transaction-safe implementation of free().

◆ fstat_tm()

PICOTM_NOTHROW int fstat_tm ( int  fildes,
struct stat *  buf 
)

Variant of fstat_tx() that operates on transactional memory.

◆ fstat_tx()

PICOTM_NOTHROW int fstat_tx ( int  fildes,
struct stat *  buf 
)

A transaction-safe implementation of fstat().

◆ fsync_tx()

PICOTM_NOTHROW int fsync_tx ( int  fildes)

A transaction-safe implementation of fsync().

◆ getcwd_tm()

PICOTM_NOTHROW char* getcwd_tm ( char *  buf,
size_t  size 
)

Variant of getcwd_tx() that operates on transactional memory.

◆ getcwd_tx()

PICOTM_NOTHROW char* getcwd_tx ( char *  buf,
size_t  size 
)

A transaction-safe implementation of getcwd().

◆ link_tm()

PICOTM_NOTHROW int link_tm ( const char *  path1,
const char *  path2 
)

Variant of link_tx() that operates on transactional memory.

◆ link_tx()

PICOTM_NOTHROW int link_tx ( const char *  path1,
const char *  path2 
)

A transaction-safe implementation of link().

◆ listen_tx()

PICOTM_NOTHROW int listen_tx ( int  socket,
int  backlog 
)

A transaction-safe implementation of listen().

◆ load_blkcnt_t_tx()

static blkcnt_t load_blkcnt_t_tx ( const blkcnt_t *  addr)
inlinestatic

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

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

◆ load_blksize_t_tx()

static blksize_t load_blksize_t_tx ( const blksize_t *  addr)
inlinestatic

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

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

◆ 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_clock_t_tx()

static clock_t load_clock_t_tx ( const clock_t *  addr)
inlinestatic

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

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

◆ load_clockid_t_tx()

static clockid_t load_clockid_t_tx ( const clockid_t *  addr)
inlinestatic

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

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

◆ load_dev_t_tx()

static dev_t load_dev_t_tx ( const dev_t *  addr)
inlinestatic

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

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

◆ load_div_t_tx()

static div_t load_div_t_tx ( const div_t *  addr)
inlinestatic

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

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

◆ load_fsblkcnt_t_tx()

static fsblkcnt_t load_fsblkcnt_t_tx ( const fsblkcnt_t *  addr)
inlinestatic

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

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

◆ load_fsfilcnt_t_tx()

static fsfilcnt_t load_fsfilcnt_t_tx ( const fsfilcnt_t *  addr)
inlinestatic

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

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

◆ load_gid_t_tx()

static gid_t load_gid_t_tx ( const gid_t *  addr)
inlinestatic

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

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

◆ load_id_t_tx()

static id_t load_id_t_tx ( const id_t *  addr)
inlinestatic

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

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

◆ load_ino_t_tx()

static ino_t load_ino_t_tx ( const ino_t *  addr)
inlinestatic

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

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

◆ load_int16_t_tx()

static int16_t load_int16_t_tx ( const int16_t *  addr)
inlinestatic

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

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

◆ load_int32_t_tx()

static int32_t load_int32_t_tx ( const int32_t *  addr)
inlinestatic

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

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

◆ load_int64_t_tx()

static int64_t load_int64_t_tx ( const int64_t *  addr)
inlinestatic

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

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

◆ load_int8_t_tx()

static int8_t load_int8_t_tx ( const int8_t *  addr)
inlinestatic

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

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

◆ load_int_fast16_t_tx()

static int_fast16_t load_int_fast16_t_tx ( const int_fast16_t *  addr)
inlinestatic

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

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

◆ load_int_fast32_t_tx()

static int_fast32_t load_int_fast32_t_tx ( const int_fast32_t *  addr)
inlinestatic

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

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

◆ load_int_fast64_t_tx()

static int_fast64_t load_int_fast64_t_tx ( const int_fast64_t *  addr)
inlinestatic

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

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

◆ load_int_fast8_t_tx()

static int_fast8_t load_int_fast8_t_tx ( const int_fast8_t *  addr)
inlinestatic

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

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

◆ load_int_least16_t_tx()

static int_least16_t load_int_least16_t_tx ( const int_least16_t *  addr)
inlinestatic

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

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

◆ load_int_least32_t_tx()

static int_least32_t load_int_least32_t_tx ( const int_least32_t *  addr)
inlinestatic

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

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

◆ load_int_least64_t_tx()

static int_least64_t load_int_least64_t_tx ( const int_least64_t *  addr)
inlinestatic

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

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

◆ load_int_least8_t_tx()

static int_least8_t load_int_least8_t_tx ( const int_least8_t *  addr)
inlinestatic

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

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

◆ load_intmax_t_tx()

static intmax_t load_intmax_t_tx ( const intmax_t *  addr)
inlinestatic

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

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

◆ load_intptr_t_tx()

static intptr_t load_intptr_t_tx ( const intptr_t *  addr)
inlinestatic

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

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

◆ load_key_t_tx()

static key_t load_key_t_tx ( const key_t *  addr)
inlinestatic

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

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

◆ load_ldiv_t_tx()

static ldiv_t load_ldiv_t_tx ( const ldiv_t *  addr)
inlinestatic

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

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

◆ load_lldiv_t_tx()

static lldiv_t load_lldiv_t_tx ( const lldiv_t *  addr)
inlinestatic

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

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

◆ load_mode_t_tx()

static mode_t load_mode_t_tx ( const mode_t *  addr)
inlinestatic

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

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

◆ load_nlink_t_tx()

static nlink_t load_nlink_t_tx ( const nlink_t *  addr)
inlinestatic

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

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

◆ load_off_t_tx()

static off_t load_off_t_tx ( const off_t *  addr)
inlinestatic

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

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

◆ load_pid_t_tx()

static pid_t load_pid_t_tx ( const pid_t *  addr)
inlinestatic

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

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

◆ load_ptrdiff_t_tx()

static ptrdiff_t load_ptrdiff_t_tx ( const ptrdiff_t *  addr)
inlinestatic

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

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

◆ load_size_t_tx()

static size_t load_size_t_tx ( const size_t *  addr)
inlinestatic

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

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

◆ load_ssize_t_tx()

static ssize_t load_ssize_t_tx ( const ssize_t *  addr)
inlinestatic

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

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

◆ load_suseconds_t_tx()

static suseconds_t load_suseconds_t_tx ( const suseconds_t *  addr)
inlinestatic

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

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

◆ load_time_t_tx()

static time_t load_time_t_tx ( const time_t *  addr)
inlinestatic

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

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

◆ load_timer_t_tx()

static timer_t load_timer_t_tx ( const timer_t *  addr)
inlinestatic

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

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

◆ load_uid_t_tx()

static uid_t load_uid_t_tx ( const uid_t *  addr)
inlinestatic

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

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

◆ load_uint16_t_tx()

static uint16_t load_uint16_t_tx ( const uint16_t *  addr)
inlinestatic

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

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

◆ load_uint32_t_tx()

static uint32_t load_uint32_t_tx ( const uint32_t *  addr)
inlinestatic

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

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

◆ load_uint64_t_tx()

static uint64_t load_uint64_t_tx ( const uint64_t *  addr)
inlinestatic

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

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

◆ load_uint8_t_tx()

static uint8_t load_uint8_t_tx ( const uint8_t *  addr)
inlinestatic

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

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

◆ load_uint_fast16_t_tx()

static uint_fast16_t load_uint_fast16_t_tx ( const uint_fast16_t *  addr)
inlinestatic

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

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

◆ load_uint_fast32_t_tx()

static uint_fast32_t load_uint_fast32_t_tx ( const uint_fast32_t *  addr)
inlinestatic

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

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

◆ load_uint_fast64_t_tx()

static uint_fast64_t load_uint_fast64_t_tx ( const uint_fast64_t *  addr)
inlinestatic

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

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

◆ load_uint_fast8_t_tx()

static uint_fast8_t load_uint_fast8_t_tx ( const uint_fast8_t *  addr)
inlinestatic

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

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

◆ load_uint_least16_t_tx()

static uint_least16_t load_uint_least16_t_tx ( const uint_least16_t *  addr)
inlinestatic

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

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

◆ load_uint_least32_t_tx()

static uint_least32_t load_uint_least32_t_tx ( const uint_least32_t *  addr)
inlinestatic

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

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

◆ load_uint_least64_t_tx()

static uint_least64_t load_uint_least64_t_tx ( const uint_least64_t *  addr)
inlinestatic

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

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

◆ load_uint_least8_t_tx()

static uint_least8_t load_uint_least8_t_tx ( const uint_least8_t *  addr)
inlinestatic

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

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

◆ load_uintmax_t_tx()

static uintmax_t load_uintmax_t_tx ( const uintmax_t *  addr)
inlinestatic

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

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

◆ load_uintptr_t_tx()

static uintptr_t load_uintptr_t_tx ( const uintptr_t *  addr)
inlinestatic

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

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

◆ load_wchar_t_tx()

static wchar_t load_wchar_t_tx ( const wchar_t *  addr)
inlinestatic

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

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

◆ lseek_tx()

PICOTM_NOTHROW off_t lseek_tx ( int  fildes,
off_t  offset,
int  whence 
)

A transaction-safe implementation of lseek().

◆ lstat_tm()

PICOTM_NOTHROW int lstat_tm ( const char *  path,
struct stat *  buf 
)

Variant of lstat_tx() that operates on transactional memory.

◆ lstat_tx()

PICOTM_NOTHROW int lstat_tx ( const char *  path,
struct stat *  buf 
)

A transaction-safe implementation of lstat().

◆ malloc_tx()

PICOTM_NOTHROW void* malloc_tx ( size_t  size)

A transaction-safe implementation of malloc().

◆ memccpy_tm()

PICOTM_NOTHROW void* memccpy_tm ( void *restrict  dest,
const void *restrict  src,
int  c,
size_t  n 
)

Variant of memccpy_tx() that operates on transactional memory.

◆ memccpy_tx()

PICOTM_NOTHROW void* memccpy_tx ( void *restrict  dest,
const void *restrict  src,
int  c,
size_t  n 
)

A transaction-safe implementation of memccpy().

◆ memchr_tm()

PICOTM_NOTHROW void* memchr_tm ( const void *  s,
int  c,
size_t  n 
)

Variant of memcchr_tx() that operates on transactional memory.

◆ memchr_tx()

PICOTM_NOTHROW void* memchr_tx ( const void *  s,
int  c,
size_t  n 
)

A transaction-safe implementation of memchr().

◆ memcmp_tm()

PICOTM_NOTHROW int memcmp_tm ( const void *  s1,
const void *  s2,
size_t  n 
)

Variant of memcmp_tx() that operates on transactional memory.

◆ memcmp_tx()

PICOTM_NOTHROW int memcmp_tx ( const void *  s1,
const void *  s2,
size_t  n 
)

A transaction-safe implementation of memcmp().

◆ memcpy_tm()

PICOTM_NOTHROW void* memcpy_tm ( void *restrict  dest,
const void *restrict  src,
size_t  n 
)

Variant of memcpy_tx() that operates on transactional memory.

◆ memcpy_tx()

PICOTM_NOTHROW void* memcpy_tx ( void *restrict  dest,
const void *restrict  src,
size_t  n 
)

A transaction-safe implementation of memcpy().

◆ memmove_tm()

PICOTM_NOTHROW void* memmove_tm ( void *  dest,
const void *  src,
size_t  n 
)

Variant of memmove_tx() that operates on transactional memory.

◆ memmove_tx()

PICOTM_NOTHROW void* memmove_tx ( void *  dest,
const void *  src,
size_t  n 
)

A transaction-safe implementation of memmove().

◆ memrchr_tm()

PICOTM_NOTHROW void* memrchr_tm ( const void *  s,
int  c,
size_t  n 
)

Variant of memrchr_tx() that operates on transactional memory.

◆ memrchr_tx()

PICOTM_NOTHROW void* memrchr_tx ( const void *  s,
int  c,
size_t  n 
)

A transaction-safe implementation of memrchr().

◆ memset_tm()

PICOTM_NOTHROW void* memset_tm ( void *  s,
int  c,
size_t  n 
)

Variant of memset_tx() that operates on transactional memory.

◆ memset_tx()

PICOTM_NOTHROW void* memset_tx ( void *  s,
int  c,
size_t  n 
)

A transaction-safe implementation of memset().

◆ mkdir_tm()

PICOTM_NOTHROW int mkdir_tm ( const char *  path,
mode_t  mode 
)

Variant of mkdir_tx() that operates on transactional memory.

◆ mkdir_tx()

PICOTM_NOTHROW int mkdir_tx ( const char *  path,
mode_t  mode 
)

A transaction-safe implementation of mkdir().

◆ mkdtemp_tm()

PICOTM_NOTHROW char * mkdtemp_tm ( char *  template)

Variant of mkdtemp_tx() that operates on transactional memory.

Variant of mkdtemp_tx() that operates on transactional memory on Darwin systems.

◆ mkdtemp_tx()

PICOTM_NOTHROW char * mkdtemp_tx ( char *  template)

A transaction-safe implementation of mkdtemp().

A transaction-safe implementation of mkdtemp() on Darwin system.

◆ mkfifo_tm()

PICOTM_NOTHROW int mkfifo_tm ( const char *  path,
mode_t  mode 
)

Variant of mkfifo_tx() that operates on transactional memory.

◆ mkfifo_tx()

PICOTM_NOTHROW int mkfifo_tx ( const char *  path,
mode_t  mode 
)

A transaction-safe implementation of mkfifo().

◆ mknod_tm()

PICOTM_NOTHROW int mknod_tm ( const char *  path,
mode_t  mode,
dev_t  dev 
)

Variant of mknod_tx() that operates on transactional memory.

◆ mknod_tx()

PICOTM_NOTHROW int mknod_tx ( const char *  path,
mode_t  mode,
dev_t  dev 
)

A transaction-safe implementation of mknod().

◆ mkstemp_tm()

PICOTM_NOTHROW int mkstemp_tm ( char *  template)

Variant of mkstemp_tx() that operates on transactional memory.

◆ mkstemp_tx()

PICOTM_NOTHROW int mkstemp_tx ( char *  template)

A transaction-safe implementation of mkstemp().

◆ open_tm()

PICOTM_NOTHROW int open_tm ( const char *  path,
int  oflag,
  ... 
)

Variant of open_tx() that operates on transactional memory.

◆ open_tx()

PICOTM_NOTHROW int open_tx ( const char *  path,
int  oflag,
  ... 
)

A transaction-safe implementation of open().

◆ picotm_libc_acquire_proc_signal()

PICOTM_NOTHROW void picotm_libc_acquire_proc_signal ( int  signum,
void(*)(int, siginfo_t *, void *)  nontx_sigaction,
struct picotm_error error 
)
Parameters
signumThe number of the signal to acquire.
nontx_sigactionThe signal-handler function for non-transactional code.
[out]errorReturns an error to the caller.

A call to picotm_libc_acquire_proc_signal() takes over the handling of a signal from the process. After a call to this function, picotm handles the acquired signal.

◆ picotm_libc_add_signal()

PICOTM_NOTHROW void picotm_libc_add_signal ( int  signum,
_Bool  is_recoverable,
struct picotm_error error 
)
Parameters
signumThe signal number.
is_recoverableSend a recoverable error to the transaction.
[out]errorReturns an error to the caller.

A call to picotm_libc_add_signal() enables transaction-safe signal handling for the specified signal on the current thread. Enabled signals have to be acquired with a call to picotm_libc_acquire_proc_signal() first.

Attention
The second parameter, is_recoverable, marks the signal-generated error as recoverable. Because signals can happen at any time, it is generally unsafe to treat signal errors as recoverable. This parameter should be set to false.

◆ picotm_libc_get_error_recovery()

PICOTM_NOTHROW enum picotm_libc_error_recovery picotm_libc_get_error_recovery ( void  )

Returns the strategy for deciding when to recover from errors.

Returns
The current error-recovering strategy.

◆ picotm_libc_get_file_type_cc_mode()

PICOTM_NOTHROW enum picotm_libc_cc_mode picotm_libc_get_file_type_cc_mode ( enum picotm_libc_file_type  file_type)

Returns the currently preferred mode of concurrency control for I/O on a specific file type.

Parameters
file_typeThe file type to get the CC mode from.
Returns
The current CC mode for the given file type.

◆ picotm_libc_release_proc_signal()

PICOTM_NOTHROW void picotm_libc_release_proc_signal ( int  signum,
struct picotm_error error 
)
Parameters
signumThe number of the signal to release.
[out]errorReturns an error to the caller.

A call to picotm_libc_release_proc_signal() returns an acquired signal back to the process. It restores the signal's signal-handler settings that have been saved by picotm_libc_acquire_proc_signal().

◆ picotm_libc_remove_signal()

PICOTM_NOTHROW void picotm_libc_remove_signal ( int  signum)
Parameters
signumThe signal number.

◆ picotm_libc_save_errno()

PICOTM_NOTHROW void picotm_libc_save_errno ( void  )

Saves the value of 'errno' during a transaction. Module authors should call this function before invoking a function that might modify errno's value.

◆ picotm_libc_set_error_recovery()

PICOTM_NOTHROW void picotm_libc_set_error_recovery ( enum picotm_libc_error_recovery  recovery)

Sets the strategy for deciding when to recover from errors.

Parameters
recoveryThe error-recovering strategy.

◆ picotm_libc_set_file_type_cc_mode()

PICOTM_NOTHROW void picotm_libc_set_file_type_cc_mode ( enum picotm_libc_file_type  file_type,
enum picotm_libc_cc_mode  cc_mode 
)

Sets the preferred mode of concurrency control for I/O on a specific file type.

Parameters
file_typeThe file type to set the CC mode for.
cc_modeThe CC mode.

◆ pipe_tm()

PICOTM_NOTHROW int pipe_tm ( int  fildes[2])

Variant of pipe_tx() that operates on transactional memory.

◆ pipe_tx()

PICOTM_NOTHROW int pipe_tx ( int  fildes[2])

A transaction-safe implementation of pipe().

◆ posix_memalign_tm()

PICOTM_NOTHROW int posix_memalign_tm ( void **  memptr,
size_t  alignment,
size_t  size 
)

Variant of posix_memalign_tx() that operates on transactional memory.

◆ posix_memalign_tx()

PICOTM_NOTHROW int posix_memalign_tx ( void **  memptr,
size_t  alignment,
size_t  size 
)

A transaction-safe implementation of posix_memalign().

◆ pread_tm()

PICOTM_NOTHROW ssize_t pread_tm ( int  fildes,
void *  buf,
size_t  nbyte,
off_t  offset 
)

Variant of pread_tx() that operates on transactional memory.

◆ pread_tx()

PICOTM_NOTHROW ssize_t pread_tx ( int  fildes,
void *  buf,
size_t  nbyte,
off_t  offset 
)

A transaction-safe implementation of pread().

◆ privatize_blkcnt_t_tx()

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

Privatizes a value of type ' blkcnt_t '.

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

◆ privatize_blksize_t_tx()

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

Privatizes a value of type ' blksize_t '.

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

◆ 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_clock_t_tx()

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

Privatizes a value of type ' clock_t '.

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

◆ privatize_clockid_t_tx()

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

Privatizes a value of type ' clockid_t '.

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

◆ privatize_dev_t_tx()

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

Privatizes a value of type ' dev_t '.

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

◆ privatize_div_t_tx()

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

Privatizes a value of type ' div_t '.

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

◆ privatize_fsblkcnt_t_tx()

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

Privatizes a value of type ' fsblkcnt_t '.

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

◆ privatize_fsfilcnt_t_tx()

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

Privatizes a value of type ' fsfilcnt_t '.

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

◆ privatize_gid_t_tx()

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

Privatizes a value of type ' gid_t '.

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

◆ privatize_id_t_tx()

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

Privatizes a value of type ' id_t '.

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

◆ privatize_ino_t_tx()

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

Privatizes a value of type ' ino_t '.

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

◆ privatize_int16_t_tx()

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

Privatizes a value of type ' int16_t '.

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

◆ privatize_int32_t_tx()

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

Privatizes a value of type ' int32_t '.

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

◆ privatize_int64_t_tx()

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

Privatizes a value of type ' int64_t '.

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

◆ privatize_int8_t_tx()

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

Privatizes a value of type ' int8_t '.

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

◆ privatize_int_fast16_t_tx()

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

Privatizes a value of type ' int_fast16_t '.

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

◆ privatize_int_fast32_t_tx()

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

Privatizes a value of type ' int_fast32_t '.

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

◆ privatize_int_fast64_t_tx()

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

Privatizes a value of type ' int_fast64_t '.

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

◆ privatize_int_fast8_t_tx()

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

Privatizes a value of type ' int_fast8_t '.

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

◆ privatize_int_least16_t_tx()

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

Privatizes a value of type ' int_least16_t '.

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

◆ privatize_int_least32_t_tx()

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

Privatizes a value of type ' int_least32_t '.

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

◆ privatize_int_least64_t_tx()

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

Privatizes a value of type ' int_least64_t '.

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

◆ privatize_int_least8_t_tx()

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

Privatizes a value of type ' int_least8_t '.

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

◆ privatize_intmax_t_tx()

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

Privatizes a value of type ' intmax_t '.

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

◆ privatize_intptr_t_tx()

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

Privatizes a value of type ' intptr_t '.

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

◆ privatize_key_t_tx()

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

Privatizes a value of type ' key_t '.

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

◆ privatize_ldiv_t_tx()

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

Privatizes a value of type ' ldiv_t '.

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

◆ privatize_lldiv_t_tx()

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

Privatizes a value of type ' lldiv_t '.

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

◆ privatize_mode_t_tx()

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

Privatizes a value of type ' mode_t '.

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

◆ privatize_nlink_t_tx()

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

Privatizes a value of type ' nlink_t '.

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

◆ privatize_off_t_tx()

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

Privatizes a value of type ' off_t '.

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

◆ privatize_pid_t_tx()

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

Privatizes a value of type ' pid_t '.

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

◆ privatize_ptrdiff_t_tx()

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

Privatizes a value of type ' ptrdiff_t '.

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

◆ privatize_size_t_tx()

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

Privatizes a value of type ' size_t '.

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

◆ privatize_ssize_t_tx()

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

Privatizes a value of type ' ssize_t '.

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

◆ privatize_suseconds_t_tx()

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

Privatizes a value of type ' suseconds_t '.

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

◆ privatize_time_t_tx()

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

Privatizes a value of type ' time_t '.

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

◆ privatize_timer_t_tx()

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

Privatizes a value of type ' timer_t '.

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

◆ privatize_uid_t_tx()

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

Privatizes a value of type ' uid_t '.

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

◆ privatize_uint16_t_tx()

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

Privatizes a value of type ' uint16_t '.

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

◆ privatize_uint32_t_tx()

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

Privatizes a value of type ' uint32_t '.

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

◆ privatize_uint64_t_tx()

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

Privatizes a value of type ' uint64_t '.

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

◆ privatize_uint8_t_tx()

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

Privatizes a value of type ' uint8_t '.

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

◆ privatize_uint_fast16_t_tx()

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

Privatizes a value of type ' uint_fast16_t '.

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

◆ privatize_uint_fast32_t_tx()

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

Privatizes a value of type ' uint_fast32_t '.

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

◆ privatize_uint_fast64_t_tx()

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

Privatizes a value of type ' uint_fast64_t '.

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

◆ privatize_uint_fast8_t_tx()

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

Privatizes a value of type ' uint_fast8_t '.

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

◆ privatize_uint_least16_t_tx()

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

Privatizes a value of type ' uint_least16_t '.

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

◆ privatize_uint_least32_t_tx()

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

Privatizes a value of type ' uint_least32_t '.

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

◆ privatize_uint_least64_t_tx()

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

Privatizes a value of type ' uint_least64_t '.

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

◆ privatize_uint_least8_t_tx()

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

Privatizes a value of type ' uint_least8_t '.

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

◆ privatize_uintmax_t_tx()

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

Privatizes a value of type ' uintmax_t '.

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

◆ privatize_uintptr_t_tx()

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

Privatizes a value of type ' uintptr_t '.

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

◆ privatize_wchar_t_tx()

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

Privatizes a value of type ' wchar_t '.

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

◆ pwrite_tm()

PICOTM_NOTHROW ssize_t pwrite_tm ( int  fildes,
const void *  buf,
size_t  nbyte,
off_t  offset 
)

Variant of pwrite_tx() that operates on transactional memory.

◆ pwrite_tx()

PICOTM_NOTHROW ssize_t pwrite_tx ( int  fildes,
const void *  buf,
size_t  nbyte,
off_t  offset 
)

A transaction-safe implementation of pwrite().

◆ qsort_tm()

PICOTM_NOTHROW void qsort_tm ( void *  base,
size_t  nel,
size_t  width,
int(*)(const void *, const void *)  compar 
)

Variant of qsort_tx() that operates on transactional memory.

◆ qsort_tx()

PICOTM_NOTHROW void qsort_tx ( void *  base,
size_t  nel,
size_t  width,
int(*)(const void *, const void *)  compar 
)

A transaction-safe implementation of qsort().

◆ rand_r_tm()

PICOTM_NOTHROW int rand_r_tm ( unsigned int *  seed)

Variant of rand_r_tx() that operates on transactional memory.

◆ rand_r_tx()

PICOTM_NOTHROW int rand_r_tx ( unsigned int *  seed)

A transaction-safe implementation of rand_r().

◆ rawmemchr_tm()

PICOTM_NOTHROW void* rawmemchr_tm ( const void *  s,
int  c 
)

Variant of rawmemchr_tx() that operates on transactional memory.

◆ rawmemchr_tx()

PICOTM_NOTHROW void* rawmemchr_tx ( const void *  s,
int  c 
)

A transaction-safe implementation of rawmemchr().

◆ read_tm()

PICOTM_NOTHROW ssize_t read_tm ( int  fildes,
void *  buf,
size_t  nbyte 
)

Variant of read_tx() that operates on transactional memory.

◆ read_tx()

PICOTM_NOTHROW ssize_t read_tx ( int  fildes,
void *  buf,
size_t  nbyte 
)

A transaction-safe implementation of read().

◆ realloc_tm()

PICOTM_NOTHROW void* realloc_tm ( void *  ptr,
size_t  size 
)

Variant of realloc_tx() that operates on transactional memory.

◆ realloc_tx()

PICOTM_NOTHROW void* realloc_tx ( void *  ptr,
size_t  size 
)

A transaction-safe implementation of realloc().

◆ recv_tm()

PICOTM_NOTHROW ssize_t recv_tm ( int  socket,
void *  buffer,
size_t  length,
int  flags 
)

Variant of recv_tx() that operates on transactional memory.

◆ recv_tx()

PICOTM_NOTHROW ssize_t recv_tx ( int  socket,
void *  buffer,
size_t  length,
int  flags 
)

A transaction-safe implementation of recv().

◆ sched_yield_tx()

PICOTM_NOTHROW int sched_yield_tx ( void  )

A transaction-safe implementation of sched_yield().

◆ send_tm()

PICOTM_NOTHROW ssize_t send_tm ( int  socket,
const void *  buffer,
size_t  length,
int  flags 
)

Variant of send_tx() that operates on transactional memory.

◆ send_tx()

PICOTM_NOTHROW ssize_t send_tx ( int  socket,
const void *  buffer,
size_t  length,
int  flags 
)

A transaction-safe implementation of send().

◆ shutdown_tx()

PICOTM_NOTHROW int shutdown_tx ( int  socket,
int  how 
)

A transaction-safe implementation of shutdown().

◆ sleep_tx()

PICOTM_NOTHROW unsigned sleep_tx ( unsigned  seconds)

A transaction-safe implementation of sleep().

◆ snprintf_tm()

PICOTM_NOTHROW int snprintf_tm ( char *restrict  s,
size_t  n,
const char *restrict  format,
  ... 
)

A transaction-safe implementation of snprintf().

◆ snprintf_tx()

PICOTM_NOTHROW int snprintf_tx ( char *restrict  s,
size_t  n,
const char *restrict  format,
  ... 
)

A transaction-safe implementation of snprintf().

◆ socket_tx()

PICOTM_NOTHROW int socket_tx ( int  domain,
int  type,
int  protocol 
)

A transaction-safe implementation of socket().

◆ sscanf_tm()

PICOTM_NOTHROW int sscanf_tm ( const char *restrict  s,
const char *restrict  format,
  ... 
)

A transaction-safe implementation of sscanf().

◆ sscanf_tx()

PICOTM_NOTHROW int sscanf_tx ( const char *restrict  s,
const char *restrict  format,
  ... 
)

A transaction-safe implementation of sscanf().

◆ stat_tm()

PICOTM_NOTHROW int stat_tm ( const char *  path,
struct stat *  buf 
)

Variant of stat_tx() that operates on transactional memory.

◆ stat_tx()

PICOTM_NOTHROW int stat_tx ( const char *  path,
struct stat *  buf 
)

A transaction-safe implementation of stat().

◆ store_blkcnt_t_tx()

static void store_blkcnt_t_tx ( blkcnt_t *  addr,
blkcnt_t  value 
)
inlinestatic

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

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

◆ store_blksize_t_tx()

static void store_blksize_t_tx ( blksize_t *  addr,
blksize_t  value 
)
inlinestatic

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

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

◆ 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_clock_t_tx()

static void store_clock_t_tx ( clock_t *  addr,
clock_t  value 
)
inlinestatic

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

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

◆ store_clockid_t_tx()

static void store_clockid_t_tx ( clockid_t *  addr,
clockid_t  value 
)
inlinestatic

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

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

◆ store_dev_t_tx()

static void store_dev_t_tx ( dev_t *  addr,
dev_t  value 
)
inlinestatic

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

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

◆ store_div_t_tx()

static void store_div_t_tx ( div_t *  addr,
div_t  value 
)
inlinestatic

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

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

◆ store_fsblkcnt_t_tx()

static void store_fsblkcnt_t_tx ( fsblkcnt_t *  addr,
fsblkcnt_t  value 
)
inlinestatic

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

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

◆ store_fsfilcnt_t_tx()

static void store_fsfilcnt_t_tx ( fsfilcnt_t *  addr,
fsfilcnt_t  value 
)
inlinestatic

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

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

◆ store_gid_t_tx()

static void store_gid_t_tx ( gid_t *  addr,
gid_t  value 
)
inlinestatic

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

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

◆ store_id_t_tx()

static void store_id_t_tx ( id_t *  addr,
id_t  value 
)
inlinestatic

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

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

◆ store_ino_t_tx()

static void store_ino_t_tx ( ino_t *  addr,
ino_t  value 
)
inlinestatic

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

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

◆ store_int16_t_tx()

static void store_int16_t_tx ( int16_t *  addr,
int16_t  value 
)
inlinestatic

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

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

◆ store_int32_t_tx()

static void store_int32_t_tx ( int32_t *  addr,
int32_t  value 
)
inlinestatic

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

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

◆ store_int64_t_tx()

static void store_int64_t_tx ( int64_t *  addr,
int64_t  value 
)
inlinestatic

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

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

◆ store_int8_t_tx()

static void store_int8_t_tx ( int8_t *  addr,
int8_t  value 
)
inlinestatic

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

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

◆ store_int_fast16_t_tx()

static void store_int_fast16_t_tx ( int_fast16_t *  addr,
int_fast16_t  value 
)
inlinestatic

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

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

◆ store_int_fast32_t_tx()

static void store_int_fast32_t_tx ( int_fast32_t *  addr,
int_fast32_t  value 
)
inlinestatic

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

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

◆ store_int_fast64_t_tx()

static void store_int_fast64_t_tx ( int_fast64_t *  addr,
int_fast64_t  value 
)
inlinestatic

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

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

◆ store_int_fast8_t_tx()

static void store_int_fast8_t_tx ( int_fast8_t *  addr,
int_fast8_t  value 
)
inlinestatic

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

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

◆ store_int_least16_t_tx()

static void store_int_least16_t_tx ( int_least16_t *  addr,
int_least16_t  value 
)
inlinestatic

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

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

◆ store_int_least32_t_tx()

static void store_int_least32_t_tx ( int_least32_t *  addr,
int_least32_t  value 
)
inlinestatic

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

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

◆ store_int_least64_t_tx()

static void store_int_least64_t_tx ( int_least64_t *  addr,
int_least64_t  value 
)
inlinestatic

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

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

◆ store_int_least8_t_tx()

static void store_int_least8_t_tx ( int_least8_t *  addr,
int_least8_t  value 
)
inlinestatic

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

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

◆ store_intmax_t_tx()

static void store_intmax_t_tx ( intmax_t *  addr,
intmax_t  value 
)
inlinestatic

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

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

◆ store_intptr_t_tx()

static void store_intptr_t_tx ( intptr_t *  addr,
intptr_t  value 
)
inlinestatic

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

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

◆ store_key_t_tx()

static void store_key_t_tx ( key_t *  addr,
key_t  value 
)
inlinestatic

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

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

◆ store_ldiv_t_tx()

static void store_ldiv_t_tx ( ldiv_t *  addr,
ldiv_t  value 
)
inlinestatic

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

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

◆ store_lldiv_t_tx()

static void store_lldiv_t_tx ( lldiv_t *  addr,
lldiv_t  value 
)
inlinestatic

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

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

◆ store_mode_t_tx()

static void store_mode_t_tx ( mode_t *  addr,
mode_t  value 
)
inlinestatic

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

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

◆ store_nlink_t_tx()

static void store_nlink_t_tx ( nlink_t *  addr,
nlink_t  value 
)
inlinestatic

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

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

◆ store_off_t_tx()

static void store_off_t_tx ( off_t *  addr,
off_t  value 
)
inlinestatic

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

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

◆ store_pid_t_tx()

static void store_pid_t_tx ( pid_t *  addr,
pid_t  value 
)
inlinestatic

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

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

◆ store_ptrdiff_t_tx()

static void store_ptrdiff_t_tx ( ptrdiff_t *  addr,
ptrdiff_t  value 
)
inlinestatic

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

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

◆ store_size_t_tx()

static void store_size_t_tx ( size_t *  addr,
size_t  value 
)
inlinestatic

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

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

◆ store_ssize_t_tx()

static void store_ssize_t_tx ( ssize_t *  addr,
ssize_t  value 
)
inlinestatic

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

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

◆ store_suseconds_t_tx()

static void store_suseconds_t_tx ( suseconds_t *  addr,
suseconds_t  value 
)
inlinestatic

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

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

◆ store_time_t_tx()

static void store_time_t_tx ( time_t *  addr,
time_t  value 
)
inlinestatic

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

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

◆ store_timer_t_tx()

static void store_timer_t_tx ( timer_t *  addr,
timer_t  value 
)
inlinestatic

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

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

◆ store_uid_t_tx()

static void store_uid_t_tx ( uid_t *  addr,
uid_t  value 
)
inlinestatic

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

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

◆ store_uint16_t_tx()

static void store_uint16_t_tx ( uint16_t *  addr,
uint16_t  value 
)
inlinestatic

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

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

◆ store_uint32_t_tx()

static void store_uint32_t_tx ( uint32_t *  addr,
uint32_t  value 
)
inlinestatic

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

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

◆ store_uint64_t_tx()

static void store_uint64_t_tx ( uint64_t *  addr,
uint64_t  value 
)
inlinestatic

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

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

◆ store_uint8_t_tx()

static void store_uint8_t_tx ( uint8_t *  addr,
uint8_t  value 
)
inlinestatic

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

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

◆ store_uint_fast16_t_tx()

static void store_uint_fast16_t_tx ( uint_fast16_t *  addr,
uint_fast16_t  value 
)
inlinestatic

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

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

◆ store_uint_fast32_t_tx()

static void store_uint_fast32_t_tx ( uint_fast32_t *  addr,
uint_fast32_t  value 
)
inlinestatic

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

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

◆ store_uint_fast64_t_tx()

static void store_uint_fast64_t_tx ( uint_fast64_t *  addr,
uint_fast64_t  value 
)
inlinestatic

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

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

◆ store_uint_fast8_t_tx()

static void store_uint_fast8_t_tx ( uint_fast8_t *  addr,
uint_fast8_t  value 
)
inlinestatic

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

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

◆ store_uint_least16_t_tx()

static void store_uint_least16_t_tx ( uint_least16_t *  addr,
uint_least16_t  value 
)
inlinestatic

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

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

◆ store_uint_least32_t_tx()

static void store_uint_least32_t_tx ( uint_least32_t *  addr,
uint_least32_t  value 
)
inlinestatic

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

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

◆ store_uint_least64_t_tx()

static void store_uint_least64_t_tx ( uint_least64_t *  addr,
uint_least64_t  value 
)
inlinestatic

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

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

◆ store_uint_least8_t_tx()

static void store_uint_least8_t_tx ( uint_least8_t *  addr,
uint_least8_t  value 
)
inlinestatic

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

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

◆ store_uintmax_t_tx()

static void store_uintmax_t_tx ( uintmax_t *  addr,
uintmax_t  value 
)
inlinestatic

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

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

◆ store_uintptr_t_tx()

static void store_uintptr_t_tx ( uintptr_t *  addr,
uintptr_t  value 
)
inlinestatic

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

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

◆ store_wchar_t_tx()

static void store_wchar_t_tx ( wchar_t *  addr,
wchar_t  value 
)
inlinestatic

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

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

◆ stpcpy_tm()

PICOTM_NOTHROW char* stpcpy_tm ( char *restrict  dest,
const char *restrict  src 
)

Variant of stpcpy_tx() that operates on transactional memory.

◆ stpcpy_tx()

PICOTM_NOTHROW char* stpcpy_tx ( char *restrict  dest,
const char *restrict  src 
)

A transaction-safe implementation of stpcpy().

◆ stpncpy_tm()

PICOTM_NOTHROW char* stpncpy_tm ( char *restrict  dest,
const char *restrict  src,
size_t  n 
)

Variant of stpncpy_tx() that operates on transactional memory.

◆ stpncpy_tx()

PICOTM_NOTHROW char* stpncpy_tx ( char *restrict  dest,
const char *restrict  src,
size_t  n 
)

A transaction-safe implementation of stpncpy().

◆ strcat_tm()

PICOTM_NOTHROW char* strcat_tm ( char *restrict  dest,
const char *restrict  src 
)

Variant of strcat_tx() that operates on transactional memory.

◆ strcat_tx()

PICOTM_NOTHROW char* strcat_tx ( char *restrict  dest,
const char *restrict  src 
)

A transaction-safe implementation of strcat().

◆ strchr_tm()

PICOTM_NOTHROW char* strchr_tm ( const char *  s,
int  c 
)

Variant of strchr_tx() that operates on transactional memory.

◆ strchr_tx()

PICOTM_NOTHROW char* strchr_tx ( const char *  s,
int  c 
)

A transaction-safe implementation of [strchr()][posix::strchr_tx].

◆ strcmp_tm()

PICOTM_NOTHROW int strcmp_tm ( const char *  s1,
const char *  s2 
)

Variant of strcmp_tx() that operates on transactional memory.

◆ strcmp_tx()

PICOTM_NOTHROW int strcmp_tx ( const char *  s1,
const char *  s2 
)

A transaction-safe implementation of strcmp().

◆ strcoll_l_tm()

PICOTM_NOTHROW int strcoll_l_tm ( const char *  s1,
const char *  s2,
locale_t  locale 
)

Variant of strcoll_l_tx() that operates on transactional memory.

◆ strcoll_l_tx()

PICOTM_NOTHROW int strcoll_l_tx ( const char *  s1,
const char *  s2,
locale_t  locale 
)

A transaction-safe implementation of strcoll_l().

◆ strcpy_tm()

PICOTM_NOTHROW char* strcpy_tm ( char *restrict  dest,
const char *restrict  src 
)

Variant of strcpy_tx() that operates on transactional memory.

◆ strcpy_tx()

PICOTM_NOTHROW char* strcpy_tx ( char *restrict  dest,
const char *restrict  src 
)

A transaction-safe implementation of strcpy().

◆ strcspn_tm()

PICOTM_NOTHROW size_t strcspn_tm ( const char *  s,
const char *  reject 
)

Variant of strcspn_tx() that operates on transactional memory.

◆ strcspn_tx()

PICOTM_NOTHROW size_t strcspn_tx ( const char *  s,
const char *  reject 
)

A transaction-safe implementation of strcspn().

◆ strdup_tm()

PICOTM_NOTHROW char* strdup_tm ( const char *  s)

Variant of strdup_tx() that operates on transactional memory.

◆ strdup_tx()

PICOTM_NOTHROW char* strdup_tx ( const char *  s)

A transaction-safe implementation of strdup().

◆ strlen_tm()

PICOTM_NOTHROW size_t strlen_tm ( const char *  s)

Variant of strlen_tx() that operates on transactional memory.

◆ strlen_tx()

PICOTM_NOTHROW size_t strlen_tx ( const char *  s)

A transaction-safe implementation of strlen().

◆ strncat_tm()

PICOTM_NOTHROW char* strncat_tm ( char *restrict  dest,
const char *restrict  src,
size_t  n 
)

Variant of strncat_tx() that operates on transactional memory.

◆ strncat_tx()

PICOTM_NOTHROW char* strncat_tx ( char *restrict  dest,
const char *restrict  src,
size_t  n 
)

A transaction-safe implementation of strncat().

◆ strncmp_tm()

PICOTM_NOTHROW int strncmp_tm ( const char *  s1,
const char *  s2,
size_t  n 
)

Variant of strncmp_tx() that operates on transactional memory.

◆ strncmp_tx()

PICOTM_NOTHROW int strncmp_tx ( const char *  s1,
const char *  s2,
size_t  n 
)

A transaction-safe implementation of strncmp().

◆ strncpy_tm()

PICOTM_NOTHROW char* strncpy_tm ( char *restrict  dest,
const char *restrict  src,
size_t  n 
)

Variant of strncpy_tx() that operates on transactional memory.

◆ strncpy_tx()

PICOTM_NOTHROW char* strncpy_tx ( char *restrict  dest,
const char *restrict  src,
size_t  n 
)

A transaction-safe implementation of strncpy().

◆ strndup_tm()

PICOTM_NOTHROW char* strndup_tm ( const char *  s,
size_t  n 
)

Variant of strndup_tx() that operates on transactional memory.

◆ strndup_tx()

PICOTM_NOTHROW char* strndup_tx ( const char *  s,
size_t  n 
)

A transaction-safe implementation of strndup().

◆ strnlen_tm()

PICOTM_NOTHROW size_t strnlen_tm ( const char *  s,
size_t  maxlen 
)

Variant of strnlen_tx() that operates on transactional memory.

◆ strnlen_tx()

PICOTM_NOTHROW size_t strnlen_tx ( const char *  s,
size_t  maxlen 
)

A transaction-safe implementation of strnlen().

◆ strpbrk_tm()

PICOTM_NOTHROW char* strpbrk_tm ( const char *  s,
const char *  accept 
)

Variant of strpbrk_tx() that operates on transactional memory.

◆ strpbrk_tx()

PICOTM_NOTHROW char* strpbrk_tx ( const char *  s,
const char *  accept 
)

A transaction-safe implementation of strpbrk().

◆ strrchr_tm()

PICOTM_NOTHROW char* strrchr_tm ( const char *  s,
int  c 
)

Variant of strrchr_tx() that operates on transactional memory.

◆ strrchr_tx()

PICOTM_NOTHROW char* strrchr_tx ( const char *  s,
int  c 
)

A transaction-safe implementation of strrchr().

◆ strspn_tm()

PICOTM_NOTHROW size_t strspn_tm ( const char *  s,
const char *  accept 
)

Variant of strspn_tx() that operates on transactional memory.

◆ strspn_tx()

PICOTM_NOTHROW size_t strspn_tx ( const char *  s,
const char *  accept 
)

A transaction-safe implementation of strspn().

◆ strstr_tm()

PICOTM_NOTHROW char* strstr_tm ( const char *  haystack,
const char *  needle 
)

Variant of strstr_tx() that operates on transactional memory.

◆ strstr_tx()

PICOTM_NOTHROW char* strstr_tx ( const char *  haystack,
const char *  needle 
)

A transaction-safe implementation of strstr().

◆ strtok_r_tm()

PICOTM_NOTHROW char* strtok_r_tm ( char *restrict  str,
const char *restrict  delim,
char **restrict  saveptr 
)

Variant of strtok_r_tx() that operates on transactional memory.

◆ strtok_r_tx()

PICOTM_NOTHROW char* strtok_r_tx ( char *restrict  str,
const char *restrict  delim,
char **restrict  saveptr 
)

A transaction-safe implementation of strtok_r().

◆ sync_tx()

PICOTM_NOTHROW void sync_tx ( void  )

A transaction-safe implementation of sync().

◆ unlink_tm()

PICOTM_NOTHROW int unlink_tm ( const char *  path)

Variant of unlink_tx() that operates on transactional memory.

◆ unlink_tx()

PICOTM_NOTHROW int unlink_tx ( const char *  path)

A transaction-safe implementation of unlink().

◆ vsnprintf_tm()

PICOTM_NOTHROW int vsnprintf_tm ( char *restrict  s,
size_t  n,
const char *restrict  format,
va_list  ap 
)

A transaction-safe implementation of vsnprintf().

◆ vsnprintf_tx()

PICOTM_NOTHROW int vsnprintf_tx ( char *restrict  s,
size_t  n,
const char *restrict  format,
va_list  ap 
)

A transaction-safe implementation of vsnprintf().

◆ vsscanf_tm()

PICOTM_NOTHROW int vsscanf_tm ( const char *restrict  s,
const char *restrict  format,
va_list  arg 
)

A transaction-safe implementation of vsscanf().

◆ vsscanf_tx()

PICOTM_NOTHROW int vsscanf_tx ( const char *restrict  s,
const char *restrict  format,
va_list  arg 
)

A transaction-safe implementation of vsscanf().

◆ write_tm()

PICOTM_NOTHROW ssize_t write_tm ( int  fildes,
const void *  buf,
size_t  nbyte 
)

Variant of write_tx() that operates on transactional memory.

◆ write_tx()

PICOTM_NOTHROW ssize_t write_tx ( int  fildes,
const void *  buf,
size_t  nbyte 
)

A transaction-safe implementation of write().