X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Frseq%2Frseq.h;h=080508e2988de275367e101a8d571398fc72cfa1;hb=8dd73cf99b9bd3dbbbbe7268088ffd3e66b2e50a;hp=0612c24ab16c1a57afc7358ddd1230a50acedba4;hpb=809f5ee3a5f5852e532ee4e406d5e700652b9ab3;p=librseq.git diff --git a/include/rseq/rseq.h b/include/rseq/rseq.h index 0612c24..080508e 100644 --- a/include/rseq/rseq.h +++ b/include/rseq/rseq.h @@ -249,7 +249,7 @@ static inline uint32_t rseq_current_mm_cid(void) static inline void rseq_clear_rseq_cs(void) { - RSEQ_WRITE_ONCE(rseq_get_abi()->rseq_cs, 0); + RSEQ_WRITE_ONCE(rseq_get_abi()->rseq_cs.arch.ptr, 0); } /* @@ -280,8 +280,9 @@ int rseq_cmpeqv_storev(enum rseq_mo rseq_mo, enum rseq_percpu_mode percpu_mode, return rseq_cmpeqv_storev_relaxed_cpu_id(v, expect, newv, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpeqv_storev_relaxed_mm_cid(v, expect, newv, cpu); + default: + return -1; } - return -1; } /* @@ -300,8 +301,9 @@ int rseq_cmpnev_storeoffp_load(enum rseq_mo rseq_mo, enum rseq_percpu_mode percp return rseq_cmpnev_storeoffp_load_relaxed_cpu_id(v, expectnot, voffp, load, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpnev_storeoffp_load_relaxed_mm_cid(v, expectnot, voffp, load, cpu); + default: + return -1; } - return -1; } static inline __attribute__((always_inline)) @@ -315,8 +317,9 @@ int rseq_addv(enum rseq_mo rseq_mo, enum rseq_percpu_mode percpu_mode, return rseq_addv_relaxed_cpu_id(v, count, cpu); case RSEQ_PERCPU_MM_CID: return rseq_addv_relaxed_mm_cid(v, count, cpu); + default: + return -1; } - return -1; } #ifdef RSEQ_ARCH_HAS_OFFSET_DEREF_ADDV @@ -335,8 +338,9 @@ int rseq_offset_deref_addv(enum rseq_mo rseq_mo, enum rseq_percpu_mode percpu_mo return rseq_offset_deref_addv_relaxed_cpu_id(ptr, off, inc, cpu); case RSEQ_PERCPU_MM_CID: return rseq_offset_deref_addv_relaxed_mm_cid(ptr, off, inc, cpu); + default: + return -1; } - return -1; } #endif @@ -353,16 +357,22 @@ int rseq_cmpeqv_trystorev_storev(enum rseq_mo rseq_mo, enum rseq_percpu_mode per return rseq_cmpeqv_trystorev_storev_relaxed_cpu_id(v, expect, v2, newv2, newv, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpeqv_trystorev_storev_relaxed_mm_cid(v, expect, v2, newv2, newv, cpu); + default: + return -1; } - return -1; case RSEQ_MO_RELEASE: switch (percpu_mode) { case RSEQ_PERCPU_CPU_ID: return rseq_cmpeqv_trystorev_storev_release_cpu_id(v, expect, v2, newv2, newv, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpeqv_trystorev_storev_release_mm_cid(v, expect, v2, newv2, newv, cpu); + default: + return -1; } - return -1; + case RSEQ_MO_ACQUIRE: /* Fallthrough */ + case RSEQ_MO_ACQ_REL: /* Fallthrough */ + case RSEQ_MO_CONSUME: /* Fallthrough */ + case RSEQ_MO_SEQ_CST: /* Fallthrough */ default: return -1; } @@ -381,8 +391,9 @@ int rseq_cmpeqv_cmpeqv_storev(enum rseq_mo rseq_mo, enum rseq_percpu_mode percpu return rseq_cmpeqv_cmpeqv_storev_relaxed_cpu_id(v, expect, v2, expect2, newv, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpeqv_cmpeqv_storev_relaxed_mm_cid(v, expect, v2, expect2, newv, cpu); + default: + return -1; } - return -1; } static inline __attribute__((always_inline)) @@ -398,16 +409,22 @@ int rseq_cmpeqv_trymemcpy_storev(enum rseq_mo rseq_mo, enum rseq_percpu_mode per return rseq_cmpeqv_trymemcpy_storev_relaxed_cpu_id(v, expect, dst, src, len, newv, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpeqv_trymemcpy_storev_relaxed_mm_cid(v, expect, dst, src, len, newv, cpu); + default: + return -1; } - return -1; case RSEQ_MO_RELEASE: switch (percpu_mode) { case RSEQ_PERCPU_CPU_ID: return rseq_cmpeqv_trymemcpy_storev_release_cpu_id(v, expect, dst, src, len, newv, cpu); case RSEQ_PERCPU_MM_CID: return rseq_cmpeqv_trymemcpy_storev_release_mm_cid(v, expect, dst, src, len, newv, cpu); + default: + return -1; } - return -1; + case RSEQ_MO_ACQUIRE: /* Fallthrough */ + case RSEQ_MO_ACQ_REL: /* Fallthrough */ + case RSEQ_MO_CONSUME: /* Fallthrough */ + case RSEQ_MO_SEQ_CST: /* Fallthrough */ default: return -1; }