1 // SPDX-License-Identifier: MIT
2 // SPDX-FileCopyrightText: 2024 Michael Jeanson <mjeanson@efficios.com>
16 * Check the state of the public symbols when the rseq syscall is unavailable.
18 * This test must be used with an LD_PRELOAD library to deny access to the
19 * syscall, or on a kernel that doesn't implement the syscall.
24 struct rseq_abi
*rseq_abi
;
28 if (rseq_available(RSEQ_AVAILABLE_QUERY_KERNEL
)) {
29 fail("The rseq syscall should be unavailable");
33 /* The rseq syscall is disabled, no registration is possible. */
35 ok(rseq_flags
== 0, "rseq_flags prior to registration is 0 (%d)", rseq_flags
);
36 ok(rseq_size
== 0, "rseq_size prior to registration is 0 (%d)", rseq_size
);
37 ok(rseq_feature_size
== 0, "rseq_feature_size prior to registration is 0 (%d)", rseq_feature_size
);
38 ok(rseq_offset
!= 0, "rseq_offset prior to registration is not 0 (%td)", rseq_offset
);
40 rseq_abi
= rseq_get_abi();
41 ok((int32_t) rseq_abi
->cpu_id
== RSEQ_ABI_CPU_ID_UNINITIALIZED
,
42 "rseq->cpu_id is set to RSEQ_ABI_CPU_ID_UNINITIALIZED (%d)",
43 (int32_t) rseq_abi
->cpu_id
);