1129198Scognet/* $NetBSD: reg.h,v 1.2 2001/02/23 21:23:52 reinoud Exp $ */ 2129198Scognet/* $FreeBSD: stable/11/sys/arm/include/reg.h 317005 2017-04-16 07:33:47Z mmel $ */ 3129198Scognet#ifndef MACHINE_REG_H 4129198Scognet#define MACHINE_REG_H 5129198Scognet 6129198Scognetstruct reg { 7129198Scognet unsigned int r[13]; 8129198Scognet unsigned int r_sp; 9129198Scognet unsigned int r_lr; 10129198Scognet unsigned int r_pc; 11129198Scognet unsigned int r_cpsr; 12129198Scognet}; 13129198Scognet 14317005Smmelstruct fp_extended_precision { 15317005Smmel u_int32_t fp_exponent; 16317005Smmel u_int32_t fp_mantissa_hi; 17317005Smmel u_int32_t fp_mantissa_lo; 18317005Smmel}; 19317005Smmel 20317005Smmeltypedef struct fp_extended_precision fp_reg_t; 21317005Smmel 22129198Scognetstruct fpreg { 23129198Scognet unsigned int fpr_fpsr; 24129198Scognet fp_reg_t fpr[8]; 25129198Scognet}; 26129198Scognet 27129198Scognetstruct dbreg { 28294987Szbb#define ARM_WR_MAX 16 /* Maximum number of watchpoint registers */ 29294987Szbb unsigned int dbg_wcr[ARM_WR_MAX]; /* Watchpoint Control Registers */ 30294987Szbb unsigned int dbg_wvr[ARM_WR_MAX]; /* Watchpoint Value Registers */ 31129198Scognet}; 32129198Scognet 33137229Scognet#ifdef _KERNEL 34129198Scognetint fill_regs(struct thread *, struct reg *); 35129198Scognetint set_regs(struct thread *, struct reg *); 36129198Scognetint fill_fpregs(struct thread *, struct fpreg *); 37129198Scognetint set_fpregs(struct thread *, struct fpreg *); 38129198Scognetint fill_dbregs(struct thread *, struct dbreg *); 39129198Scognetint set_dbregs(struct thread *, struct dbreg *); 40137229Scognet#endif 41129198Scognet 42129198Scognet#endif /* !MACHINE_REG_H */ 43