ck_pr_rtm(3) | Library Functions Manual | ck_pr_rtm(3) |
ck_pr_rtm_begin
,
ck_pr_rtm_end
,
ck_pr_rtm_abort
,
ck_pr_rtm_test
— restricted
transactional memory
Concurrency Kit (libck, -lck)
#include
<ck_pr.h>
unsigned int
ck_pr_rtm_begin
(void);
void
ck_pr_rtm_end
(void);
void
ck_pr_rtm_abort
(const
unsigned int status);
bool
ck_pr_rtm_test
(void);
These family of functions implement support for restricted transactional memory, if available on the underlying platform. Currently, support is only provided for Intel Haswell and newer x86 microarchitectures that have the TSX-NI feature.
The
ck_pr_rtm_begin
()
function returns CK_PR_RTM_STARTED if a transaction was successfully
started. In case of an abort, either internal (through a ck_pr_rtm_abort) or
external, program flow will return to the point which the function was
called except the return value will consist of a bitmap with one or more of
the following bits set:
ck_pr_rtm_abort
().The user is also able to specify a one byte
abort status by calling
ck_pr_rtm_abort
().
This status byte can be extracted by calling the
CK_PR_RTM_CODE
()
function with the return value of ck_pr_rtm_begin
()
as an argument. The return value of CK_PR_RTM_CODE
()
will be the value of this status byte. For additional information, please
see the Intel instruction set manuals.
ck_pr_fence_load(3), ck_pr_fence_load_depends(3), ck_pr_fence_store(3), ck_pr_fence_memory(3), ck_pr_load(3), ck_pr_store(3), ck_pr_fas(3), ck_pr_faa(3), ck_pr_inc(3), ck_pr_dec(3), ck_pr_neg(3), ck_pr_not(3), ck_pr_sub(3), ck_pr_and(3), ck_pr_or(3), ck_pr_xor(3), ck_pr_add(3), ck_pr_btc(3), ck_pr_bts(3), ck_pr_btr(3)
Additional information available at http://concurrencykit.org/
December 17, 2013 |