GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros
aarch64-scalable-linux-sigcontext.h File Reference

Go to the source code of this file.

Classes

struct  sve_context
 
struct  user_sve_header
 
struct  user_za_header
 

Macros

#define SVE_MAGIC   0x53564501
 
#define SVE_VQ_BYTES   16 /* number of bytes per quadword */
 
#define SVE_VQ_MIN   1
 
#define SVE_VQ_MAX   512
 
#define SVE_VL_MIN   (SVE_VQ_MIN * SVE_VQ_BYTES)
 
#define SVE_VL_MAX   (SVE_VQ_MAX * SVE_VQ_BYTES)
 
#define SVE_NUM_ZREGS   32
 
#define SVE_NUM_PREGS   16
 
#define sve_vl_valid(vl)    ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)
 
#define SVE_SIG_ZREG_SIZE(vq)   ((__u32)(vq) * SVE_VQ_BYTES)
 
#define SVE_SIG_PREG_SIZE(vq)   ((__u32)(vq) * (SVE_VQ_BYTES / 8))
 
#define SVE_SIG_FFR_SIZE(vq)   SVE_SIG_PREG_SIZE(vq)
 
#define SVE_SIG_REGS_OFFSET
 
#define SVE_SIG_ZREGS_OFFSET   SVE_SIG_REGS_OFFSET
 
#define SVE_SIG_ZREG_OFFSET(vq, n)    (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))
 
#define SVE_SIG_ZREGS_SIZE(vq)    (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)
 
#define SVE_SIG_PREGS_OFFSET(vq)    (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))
 
#define SVE_SIG_PREG_OFFSET(vq, n)    (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))
 
#define SVE_SIG_PREGS_SIZE(vq)    (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))
 
#define SVE_SIG_FFR_OFFSET(vq)    (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))
 
#define SVE_SIG_REGS_SIZE(vq)    (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
 
#define SVE_SIG_CONTEXT_SIZE(vq)   (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
 
#define SVE_PT_REGS_MASK   (1 << 0)
 
#define SVE_PT_REGS_FPSIMD   0
 
#define SVE_PT_REGS_SVE   SVE_PT_REGS_MASK
 
#define SVE_PT_VL_INHERIT   (PR_SVE_VL_INHERIT >> 16)
 
#define SVE_PT_VL_ONEXEC   (PR_SVE_SET_VL_ONEXEC >> 16)
 
#define SVE_PT_REGS_OFFSET
 
#define SVE_PT_FPSIMD_OFFSET   SVE_PT_REGS_OFFSET
 
#define SVE_PT_FPSIMD_SIZE(vq, flags)   (sizeof(struct user_fpsimd_state))
 
#define SVE_PT_SVE_ZREG_SIZE(vq)   SVE_SIG_ZREG_SIZE(vq)
 
#define SVE_PT_SVE_PREG_SIZE(vq)   SVE_SIG_PREG_SIZE(vq)
 
#define SVE_PT_SVE_FFR_SIZE(vq)   SVE_SIG_FFR_SIZE(vq)
 
#define SVE_PT_SVE_FPSR_SIZE   sizeof(__u32)
 
#define SVE_PT_SVE_FPCR_SIZE   sizeof(__u32)
 
#define __SVE_SIG_TO_PT(offset)    ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
 
#define SVE_PT_SVE_OFFSET   SVE_PT_REGS_OFFSET
 
#define SVE_PT_SVE_ZREGS_OFFSET    __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)
 
#define SVE_PT_SVE_ZREG_OFFSET(vq, n)    __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))
 
#define SVE_PT_SVE_ZREGS_SIZE(vq)    (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
 
#define SVE_PT_SVE_PREGS_OFFSET(vq)    __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))
 
#define SVE_PT_SVE_PREG_OFFSET(vq, n)    __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))
 
#define SVE_PT_SVE_PREGS_SIZE(vq)
 
#define SVE_PT_SVE_FFR_OFFSET(vq)    __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))
 
#define SVE_PT_SVE_FPSR_OFFSET(vq)
 
#define SVE_PT_SVE_FPCR_OFFSET(vq)    (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
 
#define SVE_PT_SVE_SIZE(vq, flags)
 
#define SVE_PT_SIZE(vq, flags)
 
#define ZA_PT_ZA_OFFSET
 
#define ZA_PT_ZAV_OFFSET(vq, n)    (ZA_PT_ZA_OFFSET + ((vq * SVE_VQ_BYTES) * n))
 
#define ZA_PT_ZA_SIZE(vq)   ((vq * SVE_VQ_BYTES) * (vq * SVE_VQ_BYTES))
 
#define ZA_PT_SIZE(vq)    (ZA_PT_ZA_OFFSET + ZA_PT_ZA_SIZE(vq))
 

Macro Definition Documentation

◆ __SVE_SIG_TO_PT

#define __SVE_SIG_TO_PT ( offset)     ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)

Definition at line 231 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_MAGIC

#define SVE_MAGIC   0x53564501

Definition at line 27 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_NUM_PREGS

#define SVE_NUM_PREGS   16

Definition at line 56 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_NUM_ZREGS

#define SVE_NUM_ZREGS   32

Definition at line 55 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_FPSIMD_OFFSET

#define SVE_PT_FPSIMD_OFFSET   SVE_PT_REGS_OFFSET

◆ SVE_PT_FPSIMD_SIZE

#define SVE_PT_FPSIMD_SIZE ( vq,
flags )   (sizeof(struct user_fpsimd_state))

Definition at line 198 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_REGS_FPSIMD

#define SVE_PT_REGS_FPSIMD   0

Definition at line 155 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_REGS_MASK

#define SVE_PT_REGS_MASK   (1 << 0)

Definition at line 153 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_REGS_OFFSET

#define SVE_PT_REGS_OFFSET

◆ SVE_PT_REGS_SVE

#define SVE_PT_REGS_SVE   SVE_PT_REGS_MASK

◆ SVE_PT_SIZE

#define SVE_PT_SIZE ( vq,
flags )
Value:
#define SVE_PT_FPSIMD_SIZE(vq, flags)
#define SVE_PT_SVE_SIZE(vq, flags)
mach_port_t kern_return_t mach_port_t mach_msg_type_name_t msgportsPoly mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
Definition gnu-nat.c:1861

Definition at line 272 of file aarch64-scalable-linux-sigcontext.h.

Referenced by aarch64_fetch_sve_regset(), aarch64_sve_regs_copy_from_reg_buf(), and aarch64_sve_regs_copy_to_reg_buf().

◆ SVE_PT_SVE_FFR_OFFSET

#define SVE_PT_SVE_FFR_OFFSET ( vq)     __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))

◆ SVE_PT_SVE_FFR_SIZE

#define SVE_PT_SVE_FFR_SIZE ( vq)    SVE_SIG_FFR_SIZE(vq)

Definition at line 227 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_FPCR_OFFSET

#define SVE_PT_SVE_FPCR_OFFSET ( vq)     (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)

◆ SVE_PT_SVE_FPCR_SIZE

#define SVE_PT_SVE_FPCR_SIZE   sizeof(__u32)

Definition at line 229 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_FPSR_OFFSET

#define SVE_PT_SVE_FPSR_OFFSET ( vq)

◆ SVE_PT_SVE_FPSR_SIZE

#define SVE_PT_SVE_FPSR_SIZE   sizeof(__u32)

Definition at line 228 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_OFFSET

#define SVE_PT_SVE_OFFSET   SVE_PT_REGS_OFFSET

Definition at line 234 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_PREG_OFFSET

#define SVE_PT_SVE_PREG_OFFSET ( vq,
n )    __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))

◆ SVE_PT_SVE_PREG_SIZE

#define SVE_PT_SVE_PREG_SIZE ( vq)    SVE_SIG_PREG_SIZE(vq)

Definition at line 226 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_PREGS_OFFSET

#define SVE_PT_SVE_PREGS_OFFSET ( vq)     __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))

Definition at line 243 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_PREGS_SIZE

#define SVE_PT_SVE_PREGS_SIZE ( vq)
Value:
SVE_PT_SVE_PREGS_OFFSET(vq))
#define SVE_PT_SVE_PREG_OFFSET(vq, n)

Definition at line 247 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_SIZE

#define SVE_PT_SVE_SIZE ( vq,
flags )

◆ SVE_PT_SVE_ZREG_OFFSET

#define SVE_PT_SVE_ZREG_OFFSET ( vq,
n )    __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))

◆ SVE_PT_SVE_ZREG_SIZE

#define SVE_PT_SVE_ZREG_SIZE ( vq)    SVE_SIG_ZREG_SIZE(vq)

◆ SVE_PT_SVE_ZREGS_OFFSET

#define SVE_PT_SVE_ZREGS_OFFSET    __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)

Definition at line 236 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_SVE_ZREGS_SIZE

#define SVE_PT_SVE_ZREGS_SIZE ( vq)     (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)

Definition at line 240 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_VL_INHERIT

#define SVE_PT_VL_INHERIT   (PR_SVE_VL_INHERIT >> 16)

Definition at line 162 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_PT_VL_ONEXEC

#define SVE_PT_VL_ONEXEC   (PR_SVE_SET_VL_ONEXEC >> 16)

Definition at line 163 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_CONTEXT_SIZE

#define SVE_SIG_CONTEXT_SIZE ( vq)    (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))

Definition at line 139 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_FFR_OFFSET

#define SVE_SIG_FFR_OFFSET ( vq)     (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))

Definition at line 133 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_FFR_SIZE

#define SVE_SIG_FFR_SIZE ( vq)    SVE_SIG_PREG_SIZE(vq)

Definition at line 114 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_PREG_OFFSET

#define SVE_SIG_PREG_OFFSET ( vq,
n )    (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))

Definition at line 128 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_PREG_SIZE

#define SVE_SIG_PREG_SIZE ( vq)    ((__u32)(vq) * (SVE_VQ_BYTES / 8))

Definition at line 113 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_PREGS_OFFSET

#define SVE_SIG_PREGS_OFFSET ( vq)     (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))

Definition at line 126 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_PREGS_SIZE

#define SVE_SIG_PREGS_SIZE ( vq)     (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))

Definition at line 130 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_REGS_OFFSET

#define SVE_SIG_REGS_OFFSET

◆ SVE_SIG_REGS_SIZE

#define SVE_SIG_REGS_SIZE ( vq)     (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)

Definition at line 136 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_ZREG_OFFSET

#define SVE_SIG_ZREG_OFFSET ( vq,
n )    (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))

Definition at line 121 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_ZREG_SIZE

#define SVE_SIG_ZREG_SIZE ( vq)    ((__u32)(vq) * SVE_VQ_BYTES)

Definition at line 112 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_ZREGS_OFFSET

#define SVE_SIG_ZREGS_OFFSET   SVE_SIG_REGS_OFFSET

Definition at line 120 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_SIG_ZREGS_SIZE

#define SVE_SIG_ZREGS_SIZE ( vq)     (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)

Definition at line 123 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_VL_MAX

#define SVE_VL_MAX   (SVE_VQ_MAX * SVE_VQ_BYTES)

Definition at line 53 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_VL_MIN

#define SVE_VL_MIN   (SVE_VQ_MIN * SVE_VQ_BYTES)

Definition at line 52 of file aarch64-scalable-linux-sigcontext.h.

◆ sve_vl_valid

#define sve_vl_valid ( vl)     ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)

◆ SVE_VQ_BYTES

#define SVE_VQ_BYTES   16 /* number of bytes per quadword */

Definition at line 47 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_VQ_MAX

#define SVE_VQ_MAX   512

Definition at line 50 of file aarch64-scalable-linux-sigcontext.h.

◆ SVE_VQ_MIN

#define SVE_VQ_MIN   1

Definition at line 49 of file aarch64-scalable-linux-sigcontext.h.

◆ ZA_PT_SIZE

#define ZA_PT_SIZE ( vq)     (ZA_PT_ZA_OFFSET + ZA_PT_ZA_SIZE(vq))

◆ ZA_PT_ZA_OFFSET

#define ZA_PT_ZA_OFFSET

◆ ZA_PT_ZA_SIZE

#define ZA_PT_ZA_SIZE ( vq)    ((vq * SVE_VQ_BYTES) * (vq * SVE_VQ_BYTES))

Definition at line 322 of file aarch64-scalable-linux-sigcontext.h.

◆ ZA_PT_ZAV_OFFSET

#define ZA_PT_ZAV_OFFSET ( vq,
n )    (ZA_PT_ZA_OFFSET + ((vq * SVE_VQ_BYTES) * n))

Definition at line 319 of file aarch64-scalable-linux-sigcontext.h.