| 1 |
|
| 2 | |
| 3 | * rseq-bits-template.h
|
| 4 | *
|
| 5 | * (C) Copyright 2016-2022 - Mathieu Desnoyers <[email protected]>
|
| 6 |
|
| 7 |
|
| 8 | #ifdef RSEQ_TEMPLATE_CPU_ID
|
| 9 | # define RSEQ_TEMPLATE_CPU_ID_OFFSET RSEQ_CPU_ID_OFFSET
|
| 10 | # define RSEQ_TEMPLATE_CPU_ID_FIELD cpu_id
|
| 11 | # ifdef RSEQ_TEMPLATE_MO_RELEASE
|
| 12 | # define RSEQ_TEMPLATE_SUFFIX _release_cpu_id
|
| 13 | # elif defined (RSEQ_TEMPLATE_MO_RELAXED)
|
| 14 | # define RSEQ_TEMPLATE_SUFFIX _relaxed_cpu_id
|
| 15 | # else
|
| 16 | # error "Never use <rseq-bits-template.h> directly; include <rseq.h> instead."
|
| 17 | # endif
|
| 18 | #elif defined(RSEQ_TEMPLATE_MM_CID)
|
| 19 | # define RSEQ_TEMPLATE_CPU_ID_OFFSET RSEQ_MM_CID_OFFSET
|
| 20 | # define RSEQ_TEMPLATE_CPU_ID_FIELD mm_cid
|
| 21 | # ifdef RSEQ_TEMPLATE_MO_RELEASE
|
| 22 | # define RSEQ_TEMPLATE_SUFFIX _release_mm_cid
|
| 23 | # elif defined (RSEQ_TEMPLATE_MO_RELAXED)
|
| 24 | # define RSEQ_TEMPLATE_SUFFIX _relaxed_mm_cid
|
| 25 | # else
|
| 26 | # error "Never use <rseq-bits-template.h> directly; include <rseq.h> instead."
|
| 27 | # endif
|
| 28 | #elif defined (RSEQ_TEMPLATE_CPU_ID_NONE)
|
| 29 | # ifdef RSEQ_TEMPLATE_MO_RELEASE
|
| 30 | # define RSEQ_TEMPLATE_SUFFIX _release
|
| 31 | # elif defined (RSEQ_TEMPLATE_MO_RELAXED)
|
| 32 | # define RSEQ_TEMPLATE_SUFFIX _relaxed
|
| 33 | # else
|
| 34 | # error "Never use <rseq-bits-template.h> directly; include <rseq.h> instead."
|
| 35 | # endif
|
| 36 | #else
|
| 37 | # error "Never use <rseq-bits-template.h> directly; include <rseq.h> instead."
|
| 38 | #endif
|
| 39 |
|
| 40 | #define RSEQ_TEMPLATE_IDENTIFIER(x) RSEQ_COMBINE_TOKENS(x, RSEQ_TEMPLATE_SUFFIX)
|
| 41 |
|