1/* $NetBSD: reg.h,v 1.2 2001/02/23 21:23:52 reinoud Exp $ */ 2/* $FreeBSD: stable/11/sys/arm/include/reg.h 317005 2017-04-16 07:33:47Z mmel $ */ 3#ifndef MACHINE_REG_H 4#define MACHINE_REG_H 5 6struct reg { 7 unsigned int r[13]; 8 unsigned int r_sp; 9 unsigned int r_lr; 10 unsigned int r_pc; 11 unsigned int r_cpsr; 12}; 13 14struct fp_extended_precision { 15 u_int32_t fp_exponent; 16 u_int32_t fp_mantissa_hi; 17 u_int32_t fp_mantissa_lo; 18}; 19 20typedef struct fp_extended_precision fp_reg_t; 21 22struct fpreg { 23 unsigned int fpr_fpsr; 24 fp_reg_t fpr[8]; 25}; 26 27struct dbreg { 28#define ARM_WR_MAX 16 /* Maximum number of watchpoint registers */ 29 unsigned int dbg_wcr[ARM_WR_MAX]; /* Watchpoint Control Registers */ 30 unsigned int dbg_wvr[ARM_WR_MAX]; /* Watchpoint Value Registers */ 31}; 32 33#ifdef _KERNEL 34int fill_regs(struct thread *, struct reg *); 35int set_regs(struct thread *, struct reg *); 36int fill_fpregs(struct thread *, struct fpreg *); 37int set_fpregs(struct thread *, struct fpreg *); 38int fill_dbregs(struct thread *, struct dbreg *); 39int set_dbregs(struct thread *, struct dbreg *); 40#endif 41 42#endif /* !MACHINE_REG_H */ 43