{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_MORELLO,
AARCH64_LINUX_CREGS_SIZE, OPTIONAL_REGS,
aarch64_fill_cregset, aarch64_store_cregset, nullptr,
- "cheri.ptrace_forge_cap"
+ "cheri.ptrace_forge_cap", "capability"
},
NULL_REGSET
};
{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_MORELLO,
AARCH64_LINUX_CREGS_SIZE, OPTIONAL_REGS,
aarch64_fill_cregset, aarch64_store_cregset, nullptr,
- "cheri.ptrace_forge_cap"
+ "cheri.ptrace_forge_cap", "capability"
},
NULL_REGSET
};
{
if (regset->sysctl_write_should_warn)
{
- warning ("Unable to store registers.\n"
- "Please run \"sysctl %s=1\".",
- regset->sysctl_write_permission);
+ if (regset->register_set_name == nullptr)
+ {
+ warning ("Unable to store registers.\n"
+ "Please run \"sysctl %s=1\".",
+ regset->sysctl_write_permission);
+ }
+ else
+ {
+ warning ("Unable to store %s registers.\n"
+ "Please run \"sysctl %s=1\".",
+ regset->register_set_name,
+ regset->sysctl_write_permission);
+ }
regset->sysctl_write_should_warn = false;
}
}
/* The arch's regsets array initializer must be terminated with a NULL
regset. */
#define NULL_REGSET \
- { 0, 0, 0, -1, (enum regset_type) -1, nullptr, nullptr, nullptr, nullptr }
+ { 0, 0, 0, -1, (enum regset_type) -1, nullptr, nullptr, nullptr, nullptr, \
+ nullptr }
struct regset_info
{
switch. */
const char *sysctl_read_permission = nullptr;
const char *sysctl_write_permission = nullptr;
+ const char *register_set_name = nullptr;
bool sysctl_read_should_warn = true;
bool sysctl_write_should_warn = true;
};