aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Expand)AuthorFilesLines
2024-02-29rseq percpu alloc: Add percpu pool setrseq-percpu-allocMathieu Desnoyers2-11/+259
2024-02-29wip: Implement per-cpu memory allocatorMathieu Desnoyers4-1/+230
2024-02-29Introduce __RSEQ_ASM_DEFINE_CS_FIELDSMathieu Desnoyers3-10/+17
2024-02-29Introduce common generic header fileMathieu Desnoyers9-452/+131
2024-02-29x86: Introduce RSEQ_ASM_U32Mathieu Desnoyers1-1/+4
2024-02-29riscv: Introduce RSEQ_ASM_U64_PTR and RSEQ_ASM_U32Mathieu Desnoyers1-7/+12
2024-02-29s390: Introduce RSEQ_ASM_U32Mathieu Desnoyers1-2/+5
2024-02-29ppc: Introduce RSEQ_ASM_U32Mathieu Desnoyers1-2/+5
2024-02-29mips: Introduce RSEQ_ASM_U32Mathieu Desnoyers1-3/+7
2024-02-29arm: Introduce RSEQ_ASM_U32Mathieu Desnoyers1-3/+7
2024-02-29aarch64: Introduce RSEQ_ASM_U32Mathieu Desnoyers1-1/+3
2024-02-29thread-pointer: suffix include guard with _HMathieu Desnoyers1-2/+2
2024-02-29arm: Fix big endian, introduce RSEQ_ASM_U64_PTRMathieu Desnoyers1-4/+15
2024-02-29arm: Cleanup header codying styleMathieu Desnoyers1-4/+4
2024-02-29aarch64: Introduce RSEQ_ASM_U64_PTRMathieu Desnoyers1-5/+8
2024-02-29aarch64: Cleanup header coding styleMathieu Desnoyers1-4/+4
2024-02-28s390: Introduce code deduplication macrosMathieu Desnoyers1-86/+53
2024-02-28ppc: Introduce code deduplication macrosMathieu Desnoyers1-106/+69
2024-02-28x86: Introduce code deduplication macrosMathieu Desnoyers1-84/+45
2024-02-28mips: Reorganise code deduplication macrosMathieu Desnoyers1-19/+31
2024-02-28Re-organise public headersMichael Jeanson29-252/+441
2024-02-28Fix supported autotools versions in README.mdMichael Jeanson1-2/+2
2024-02-27RSEQ_ASM_DEFINE_TABLE: use parentheses around parameters on all archsMathieu Desnoyers7-8/+8
2024-02-27Comment s390 macros implementationMathieu Desnoyers1-19/+119
2024-02-27s390: namespace public header macros under RSEQ_ASM_Mathieu Desnoyers2-63/+63
2024-02-27Comment riscv macros implementationMathieu Desnoyers1-10/+107
2024-02-27riscv: Add missing "inc" parameter to RSEQ_ASM_OP_R_DEREF_ADDVMathieu Desnoyers2-2/+2
2024-02-27riscv: namespace public header macros under RSEQ_ASM_Mathieu Desnoyers1-19/+19
2024-02-27mips: Move RSEQ_ASM_DEFINE_ABORT table_label parameter to 4th argumentMathieu Desnoyers2-17/+17
2024-02-27arm: Move RSEQ_ASM_DEFINE_ABORT table_label parameter to 4th argumentMathieu Desnoyers2-17/+17
2024-02-27Comment mips macros implementationMathieu Desnoyers1-12/+101
2024-02-27Comment ppc macros implementationMathieu Desnoyers1-25/+129
2024-02-27Comment arm64 macros implementationMathieu Desnoyers1-10/+93
2024-02-27Comment arm macros implementationMathieu Desnoyers1-8/+93
2024-02-27Comment x86 asm macros implementationMathieu Desnoyers2-43/+129
2024-02-27mips: Namespace type helpers under RSEQ_ASM_*Mathieu Desnoyers2-70/+70
2024-02-27ppc: Rename RSEQ_ASM_OP_R_MEMCPY to RSEQ_ASM_OP_R_BYTEWISE_MEMCPYMathieu Desnoyers2-2/+2
2024-02-27riscv: Rename RSEQ_ASM_OP_R_BAD_MEMCPY to RSEQ_ASM_OP_R_BYTEWISE_MEMCPYMathieu Desnoyers2-2/+2
2024-02-27arm64: Rename RSEQ_ASM_OP_R_BAD_MEMCPY to RSEQ_ASM_OP_R_BYTEWISE_MEMCPYMathieu Desnoyers2-2/+2
2024-02-27ppc: Rename RSEQ_ helpers to RSEQ_ASM_Mathieu Desnoyers1-29/+29
2024-02-27Rename RSEQ_TEMPLATE macrosMathieu Desnoyers16-153/+153
2024-02-27x86: Use RSEQ_ASM_ prefix for RSEQ_CPU_ID_OFFSET, RSEQ_CS_OFFSET, RSEQ_MM_CID...Mathieu Desnoyers3-18/+18
2024-02-27x86-32: Remove support for old IDT WinChip and PPROMathieu Desnoyers1-26/+4
2024-02-27Fix: seccomp tests require shared libsMichael Jeanson2-1/+6
2024-02-27x86-64: change jnz/jz for jne/je after cmp/testMathieu Desnoyers1-22/+22
2024-02-27Rename RSEQ_ASM_DEFINE_CMPFAIL to RSEQ_ASM_DEFINE_TEARDOWNMathieu Desnoyers8-25/+25
2024-02-27Rename branch labels from cmpfail to ne/eqMathieu Desnoyers7-168/+168
2024-02-27Update rseq critical section identifiers to match pseudo-codeMathieu Desnoyers10-116/+88
2024-02-27Add rseq critical section pseudocode documentationMathieu Desnoyers10-0/+185
2024-02-23tests: add unregistered and no syscall testsMichael Jeanson12-4/+259
2024-02-23fix: always set the rseq offset and flagsMichael Jeanson1-6/+6
2024-02-22Add 'teardown' parameter to RSEQ_ASM_DEFINE_ABORT on all archMichael Jeanson6-22/+25
2024-02-22Add comments to rseq_init()Michael Jeanson1-0/+39
2024-02-22doc: fix typo in rseq(2) man pageMichael Jeanson1-2/+1
2024-02-22Update autotools archive macrosMichael Jeanson3-49/+102
2024-02-22Clarify logic of RSEQ_ASM*_CMP* macrosMathieu Desnoyers14-154/+154
2024-02-22Document alignment of rseq_abi for allocated sizeMathieu Desnoyers1-0/+6
2024-01-10Fix: do not skip !allowed_cpus for mm_cidMathieu Desnoyers2-8/+28
2024-01-10Add arm64 headers to list of headers to be installedMathias Stearn1-0/+2
2023-10-25riscv: Fix __always_inline causes duplicate inlineMathieu Desnoyers1-7/+7
2023-06-12Add missing copyright headersMichael Jeanson4-0/+10
2023-05-04Remove whitelineMathieu Desnoyers1-1/+0
2023-05-04Introduce rseq_scalar_type_to_expr to eliminate code duplicationMathieu Desnoyers1-10/+10
2023-04-27fix: compiler warning `-Wswitch-enum`Gerrit Klein1-0/+8
2023-04-27fix: compiler warning `-Wswitch-default`Gerrit Klein1-9/+18
2023-04-26Re-introduce union for rseq_cs ptrMathieu Desnoyers2-2/+21
2023-04-26Fix: make dist missing header filesMathieu Desnoyers1-0/+8
2023-04-25Fix: percpu ops mm_cid testsMathieu Desnoyers2-3/+5
2023-04-25Skip mm_cid tests when unavailableMathieu Desnoyers2-4/+10
2023-04-25parametrized test: Report/abort on negative concurrency IDMathieu Desnoyers1-2/+7
2023-04-25Implement parametrized mm_cid testMathieu Desnoyers4-51/+144
2023-04-25Implement basic percpu ops mm_cid testMathieu Desnoyers3-9/+51
2023-04-25riscv: Template memory ordering and percpu access modeMathieu Desnoyers2-542/+438
2023-04-25s390: Template memory ordering and percpu access modeMathieu Desnoyers2-467/+500
2023-04-25ppc: Template memory ordering and percpu access modeMathieu Desnoyers2-578/+485
2023-04-25mips: Template memory ordering and percpu access modeMathieu Desnoyers2-612/+487
2023-04-25arm64: Template memory ordering and percpu access modeMathieu Desnoyers2-485/+421
2023-04-25arm: Template memory ordering and percpu access modeMathieu Desnoyers2-669/+529
2023-04-25x86: Template memory ordering and percpu access modeMathieu Desnoyers6-1266/+1247
2023-04-25Implement rseq numa node id field selftestMathieu Desnoyers1-1/+4
2023-04-25rseq.h: implement mm_cid and node_id APIsMathieu Desnoyers1-6/+33
2023-04-25Update rseq.c to query ELF auxvecMathieu Desnoyers2-18/+120
2023-04-25Cleanup: rseq.h: add extra space around __VA_ARGS__Mathieu Desnoyers1-1/+1
2023-04-25Add mm_cid and numa node id to rseq ABI headerMathieu Desnoyers1-29/+34
2023-04-25Remove RSEQ_SKIP_FASTPATH codeMathieu Desnoyers10-124/+0
2023-04-21Fix: `void *` arithmetic compiler warningtherealthingy1-1/+2
2023-04-21All arch: use rseq_unqual_scalar_typeof in load-acquireMathieu Desnoyers6-7/+7
2023-04-21c++: compiler: use remove_cv and remove_reference in rseq_unqual_scalar_typeofMathieu Desnoyers1-1/+1
2023-04-21rseq_arm64: use rseq_unqual_scalar_typeof in load-acquireMathieu Desnoyers1-1/+1
2023-04-21Revert "compiler: C++: simplify rseq_unqual_scalar_typeof implementation"Mathieu Desnoyers1-1/+1
2023-04-21Revert "compiler: c++: use decltype"Mathieu Desnoyers1-1/+1
2023-04-21compiler: c++: use decltypeMathieu Desnoyers1-1/+1
2023-04-21compiler: C++: simplify rseq_unqual_scalar_typeof implementationMathieu Desnoyers1-1/+1
2023-04-20rseq-arm64: Fix buggy load-acquire/store-release macrosMathieu Desnoyers1-28/+30
2023-04-20compiler: implement rseq_unqual_scalar_typeofMathieu Desnoyers1-0/+31
2023-04-20Use __asm__ __volatile__ in rseq_after_asm_goto for c11 compatibilityMathieu Desnoyers1-1/+1
2023-04-20architecture headers: add extra parentheses around macro parametersMathieu Desnoyers6-13/+13
2023-04-20Tests: Introduce arch-mo unit testsMathieu Desnoyers7-1/+151
2023-04-17Fix: gcc extension compiler warningGary Gee1-4/+4
2023-04-17Initialize librseq from `rseq_register_current_thread`Mathieu Desnoyers1-3/+20
2023-04-14Implement the REUSE specification for licensing and copyrightMichael Jeanson57-63/+139
2023-04-14Relicense librseq to MITMathieu Desnoyers27-543/+25
2023-01-10rseq man page: remove _Nullable from rseq argumentMathieu Desnoyers1-1/+1
2023-01-10rseq(2) man page: Update following round of feedback and lintingMathieu Desnoyers1-122/+130
2023-01-06Update rseq.2 man page based on commentsMathieu Desnoyers1-229/+263
2023-01-06Update rseq man pageMathieu Desnoyers1-37/+89
2022-10-31Allowing querying whether libc support rseqMathieu Desnoyers5-15/+33
2022-06-13Add RISC-V rseq supportMichael Jeanson5-0/+751
2022-06-13fix: check if libc rseq support is registeredMichael Jeanson1-1/+2
2022-02-02Use ptrdiff_t for rseq_offsetMathieu Desnoyers3-11/+13
2022-01-31Cleanup: x86: remove leftover commentMathieu Desnoyers1-7/+0
2022-01-24x86-32: use %gs segment selector for accessing rseq thread areaMathieu Desnoyers1-36/+38
2022-01-24x86-64: use %fs segment selector for accessing rseq thread areaMathieu Desnoyers1-32/+34
2022-01-24Remove configure check for rseq.hMathieu Desnoyers1-4/+0
2022-01-24Remove unused ARRAY_SIZE macroMathieu Desnoyers1-2/+0
2022-01-24Update header copyright datesMathieu Desnoyers2-2/+2
2022-01-24Introduce rseq-abi.hMathieu Desnoyers11-128/+94
2022-01-21Fix: work-around Linux kernel rseq.h uapi endianness issueMathieu Desnoyers5-5/+17
2022-01-21Fix: use long rather than int for offsetsMathieu Desnoyers9-14/+16
2022-01-21ppc: remove incomplete undef listMathieu Desnoyers1-5/+0
2022-01-21Fix: use int rather than off_t for offsetsMathieu Desnoyers9-16/+14
2022-01-21mips: use rseq_cs ptr 32-bit fieldMathieu Desnoyers1-8/+10
2022-01-21arm64: refer to rseq_cs.ptr fieldMathieu Desnoyers1-8/+10
2022-01-21s390/s390x: refer to rseq_cs pointer fieldMathieu Desnoyers1-6/+10
2022-01-21arm: refer to 32-bit pointer field for rseq_cs ptrMathieu Desnoyers1-8/+10
2022-01-21Fix: ppc32: wrong rseq_cs 32-bit field pointer field on big endianMathieu Desnoyers1-8/+12
2022-01-21Fix: ppc32: do not produce cmpdi invalid instructionMathieu Desnoyers1-2/+4
2022-01-20Fix: provide membarrier_private_expedited_rseq_available on all architecturesMathieu Desnoyers1-20/+20
2022-01-17Test for membarrier private expedited rseq availabilityMathieu Desnoyers1-0/+24
2022-01-17Fix: membarrier flags for kernels headers < 5.10Mathieu Desnoyers1-0/+12
2022-01-17Test MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQMathieu Desnoyers2-2/+233
2022-01-17x86_64: Add rseq_offset_deref_addv()Mathieu Desnoyers1-0/+60
2022-01-05Fix: Warnings about #if checks of undefined tokensMathieu Desnoyers3-3/+3
2022-01-04Fix: work-around asm goto compiler bugsMathieu Desnoyers8-6/+252
2022-01-04Remove arm/mips asm goto compiler work-aroundMathieu Desnoyers2-74/+0
2022-01-04fix: dead initialization reported by scan-buildMichael Jeanson1-3/+1
2022-01-04Add debug output to basic_percpu_ops_testMichael Jeanson1-3/+6
2022-01-04configure: enable extended compiler warningsMichael Jeanson9-31/+524
2022-01-04Build and run tests as C++ programsMichael Jeanson12-11/+1145
2021-12-15param test: Only provide rseq_gettid if BENCHMARK is not definedMathieu Desnoyers1-5/+5
2021-12-15ppc rseq thread pointer: add extended asmMathieu Desnoyers1-0/+1
2021-12-14Introduce rseq-generic-thread-pointer.hMathieu Desnoyers3-13/+27
2021-12-14rseq thread pointer: extern CMathieu Desnoyers3-0/+24
2021-12-14Introduce RSEQ_GET_ABI_OVERRIDEMathieu Desnoyers1-11/+21
2021-12-14Add missing rseq thread pointer headers to makefileMathieu Desnoyers1-1/+4
2021-12-14Introduce rseq-thread-pointer.hMathieu Desnoyers2-11/+24
2021-12-14Update librseq to co-exist with glibc rseq integrationMathieu Desnoyers13-190/+258
2021-12-14Remove rseq_deref_loadoffp placeholdersMathieu Desnoyers5-35/+0
2021-12-14Add git-review configMichael Jeanson1-0/+7
2021-03-19Modernize autotools setupMichael Jeanson6-147/+230
2020-07-13Skip the tests if the rseq syscall is unavailableMichael Jeanson4-22/+52
2020-07-09Convert test suite to the TAP test protocolMichael Jeanson19-173/+2922
2020-07-09Remove __rseq_handled declarationMathieu Desnoyers1-1/+0
2020-07-08Add parametrized testsMathieu Desnoyers4-2/+1474
2020-07-08Add basic testMathieu Desnoyers3-2/+64
2020-07-08Cleanup: powerpc: Use "long" and "int" to clarify load/store macrosMathieu Desnoyers1-24/+28
2020-07-08Fix: powerpc: Add missing instruction selection "u" and "x" for load/storeMathieu Desnoyers1-15/+15
2020-07-07Wire up basic percpu ops testMathieu Desnoyers1-0/+2
2020-07-07Add basic percpu ops testMathieu Desnoyers4-1/+328
2020-07-07Adapt rseq registration to glibc's userspace ABI for __rseq_abiMathieu Desnoyers1-51/+51
2020-06-11Update man page based on Michael Kerrisk's commentsMathieu Desnoyers1-34/+107
2020-06-05Update rseq.2 man pageMathieu Desnoyers1-9/+34
2020-06-05Wire up man pages buildMathieu Desnoyers4-0/+9
2020-06-05Initial import of rseq.2 man pageMathieu Desnoyers1-0/+273
2020-06-05Remove do_on_cpu dependenciesMathieu Desnoyers6-521/+1
2020-06-05Remove do_on_cpu (prototype)Mathieu Desnoyers8-1003/+22
2019-09-19Cleanup: cplusplus ifdef coding style updateMathieu Desnoyers1-4/+4
2019-09-19Allow using librseq APIs from C++ codeMatthew Glazar1-0/+16
2019-08-07memcpy: copy 8 bytes loopMathieu Desnoyers1-23/+59
2019-07-26Bump do_on_cpu system call number to 434Mathieu Desnoyers1-1/+1
2019-07-26Implement percpu_fence()Mathieu Desnoyers1-0/+10
2019-07-25Fix: add missing do-on-cpu-insn.h to make distMathieu Desnoyers1-1/+2
2019-07-25Move to do_on_cpu system callMathieu Desnoyers19-426/+923
2019-06-30Add ARM big-endian support to rseq headersMathieu Desnoyers1-1/+1
2019-06-30Fix: Thumb mode build failure on arm32Mathieu Desnoyers1-28/+33
2019-06-06rseq/selftests: mips: use break instruction for RSEQ_SIGMathieu Desnoyers1-1/+33
2019-06-06rseq/selftests: powerpc code signature: generate valid instructionsMathieu Desnoyers1-1/+9
2019-06-06rseq/selftests: aarch64 code signature: handle big-endian environmentMathieu Desnoyers1-2/+15
2019-06-06rseq/selftests: arm: use udf instruction for RSEQ_SIGMathieu Desnoyers1-2/+50
2019-06-06rseq/selftests: s390: use trap4 for RSEQ_SIGMartin Schwidefsky1-1/+8
2019-06-06rseq/selftests: x86: use ud1 instruction as RSEQ_SIG opcodeMathieu Desnoyers1-4/+11
2019-05-28Remove volatile, use READ/WRITE ONCEMathieu Desnoyers2-8/+8
2019-04-23cpu-op: change _mb_ API to _releaseMathieu Desnoyers3-8/+8
2019-04-23cpu-op: add add_release APIMathieu Desnoyers2-0/+18
2019-04-23cpu-op lib: Change code layout to remove gcc-4.8 warningsMathieu Desnoyers1-92/+138
2019-04-23Extend extra/READMEMathieu Desnoyers1-1/+21
2019-04-23Add embedded rseq/opv headers for test buildsMichael Jeanson3-0/+295
2019-04-23rseq: set refcount back to 1 on unregister failureMathieu Desnoyers1-0/+1
2019-04-22Add configure reportMichael Jeanson2-0/+239
2019-04-22Update macros from the autoconf archiveMichael Jeanson2-7/+8
2019-04-22rseq/selftests: x86: Work-around bogus gcc-8 optimisationMathieu Desnoyers1-74/+70
2019-03-27s390: use jg instruction for jumps outside of the asmMathieu Desnoyers1-2/+2
2019-03-24Introduce __rseq_handled and rseq_ownershipMathieu Desnoyers2-5/+34
2019-03-24Remove "weak" attribute from symbolsMathieu Desnoyers1-2/+2
2019-03-13Update exit points commentsMathieu Desnoyers6-36/+45
2019-03-13Update arm64 SPDX license identifierMathieu Desnoyers1-1/+1
2019-03-13Introduce __rseq_cs_ptr_array, rename __rseq_table to __rseq_csMathieu Desnoyers6-56/+86
2019-03-13Add __rseq_exit_point_array section for debuggersMathieu Desnoyers6-0/+363
2019-03-13Add arm64 rseq headerMathieu Desnoyers2-0/+596
2019-03-12Autotools all the things!Michael Jeanson17-74/+839