1 /* $NetBSD: reg.h,v 1.2 2001/02/23 21:23:52 reinoud Exp $ */ 2 /* $FreeBSD$ */ 3 #ifndef MACHINE_REG_H 4 #define MACHINE_REG_H 5 6 struct 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 14 struct 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 20 typedef struct fp_extended_precision fp_reg_t; 21 22 struct fpreg { 23 unsigned int fpr_fpsr; 24 fp_reg_t fpr[8]; 25 }; 26 27 struct 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 34 int fill_regs(struct thread *, struct reg *); 35 int set_regs(struct thread *, struct reg *); 36 int fill_fpregs(struct thread *, struct fpreg *); 37 int set_fpregs(struct thread *, struct fpreg *); 38 int fill_dbregs(struct thread *, struct dbreg *); 39 int set_dbregs(struct thread *, struct dbreg *); 40 #endif 41 42 #endif /* !MACHINE_REG_H */ 43