regset
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
get_segbases32(struct regset *rs, struct thread *td, void *buf,
set_segbases32(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_segbases32 = {
get_segbases(struct regset *rs, struct thread *td, void *buf,
set_segbases(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_segbases = {
get_i386_segbases(struct regset *rs, struct thread *td, void *buf,
set_i386_segbases(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_i386_segbases = {
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
get_arm_vfp(struct regset *rs, struct thread *td, void *buf, size_t *sizep)
set_arm_vfp(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_arm_vfp = {
get_arm_tls(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_arm_tls = {
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
get_arm64_addr_mask(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_arm64_addr_mask = {
static struct regset regset_arm_vfp = {
get_arm64_tls(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_arm64_tls = {
get_arm_tls(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_arm_tls = {
get_arm_vfp(struct regset *rs, struct thread *td, void *buf, size_t *sizep)
set_arm_vfp(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_arm64_sve = {
get_arm64_sve(struct regset *rs, struct thread *td, void *buf,
set_arm64_sve(struct regset *rs, struct thread *td, void *buf, size_t size)
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
get_segbases(struct regset *rs, struct thread *td, void *buf,
set_segbases(struct regset *rs, struct thread *td, void *buf,
static struct regset regset_segbases = {
struct regset *regset; /* Register set. */
struct regset *regset, struct thread *target_td)
if (!regset->get(regset, target_td, NULL, &size) || size == 0)
ninfo->type = regset->note;
ninfo->regset = regset;
if (ninfo->regset != NULL) {
struct regset *regset = ninfo->regset;
(void)regset->get(regset, ninfo->outarg, buf, &ninfo->outsize);
__elfN(get_prstatus)(struct regset *rs, struct thread *td, void *buf,
__elfN(set_prstatus)(struct regset *rs, struct thread *td, void *buf,
static struct regset __elfN(regset_prstatus) = {
__elfN(get_fpregset)(struct regset *rs, struct thread *td, void *buf,
__elfN(set_fpregset)(struct regset *rs, struct thread *td, void *buf,
static struct regset __elfN(regset_fpregset) = {
__elfN(get_thrmisc)(struct regset *rs, struct thread *td, void *buf,
static struct regset __elfN(regset_thrmisc) = {
__elfN(get_lwpinfo)(struct regset *rs, struct thread *td, void *buf,
static struct regset __elfN(regset_lwpinfo) = {
struct regset **regsetp, **regset_end, *regset;
regset = *regsetp;
if (regset->note == NT_PRSTATUS)
size += __elfN(register_regset_note)(td, list, regset,
static struct regset *
struct regset **regsetp, **regset_end, *regset;
regset = *regsetp;
if (regset->note != note)
return (regset);
struct regset *regset;
regset = proc_find_regset(td, note);
if (regset == NULL)
if (regset->get == NULL)
size = regset->size;
if (!regset->get(regset, td, NULL, &size))
if (!regset->get(regset, td, buf, &size)) {
KASSERT(size == regset->size || regset->size == 0,
struct regset *regset;
regset = proc_find_regset(td, note);
if (regset == NULL)
size = regset->size;
if (!regset->get(regset, td, NULL, &size))
if (regset->set == NULL)
if (!regset->set(regset, td, buf, size)) {
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
.sv_regset_begin = SET_BEGIN(__elfN(regset)),
.sv_regset_end = SET_LIMIT(__elfN(regset)),
struct regset;
typedef bool (regset_get)(struct regset *, struct thread *, void *,
typedef bool (regset_set)(struct regset *, struct thread *, void *, size_t);
SET_DECLARE(__elfN(regset), struct regset);
#define ELF_REGSET(_regset) DATA_SET(__elfN(regset), _regset)
SET_DECLARE(elf32_regset, struct regset);
struct regset **sv_regset_begin;
struct regset **sv_regset_end;
const int regset[4] = {
if (vm_get_register_set(vcpu, nitems(regset), regset, regs) == -1)
const int regset[6] = {
if (vm_get_register_set(vcpu, nitems(regset), regset, regs) == -1)