1f9bac91bSBenno Rice /* $NetBSD: reg.h,v 1.4 2000/06/04 09:30:44 tsubai Exp $ */ 2f9bac91bSBenno Rice /* $FreeBSD$ */ 3f9bac91bSBenno Rice 4f9bac91bSBenno Rice #ifndef _POWERPC_REG_H_ 5f9bac91bSBenno Rice #define _POWERPC_REG_H_ 6f9bac91bSBenno Rice 7f9bac91bSBenno Rice struct reg { 8f9bac91bSBenno Rice register_t fixreg[32]; 9f9bac91bSBenno Rice register_t lr; 10f9bac91bSBenno Rice int cr; 11f9bac91bSBenno Rice int xer; 12f9bac91bSBenno Rice register_t ctr; 13f9bac91bSBenno Rice register_t pc; 14f9bac91bSBenno Rice }; 15f9bac91bSBenno Rice 16f9bac91bSBenno Rice struct fpreg { 17f9bac91bSBenno Rice double fpreg[32]; 18f9bac91bSBenno Rice double fpscr; 19f9bac91bSBenno Rice }; 20f9bac91bSBenno Rice 21f9bac91bSBenno Rice struct dbreg { 22f9bac91bSBenno Rice unsigned long junk; 23f9bac91bSBenno Rice }; 24f9bac91bSBenno Rice 251f042619SDag-Erling Smørgrav #ifdef _KERNEL 261f042619SDag-Erling Smørgrav /* 271f042619SDag-Erling Smørgrav * XXX these interfaces are MI, so they should be declared in a MI place. 281f042619SDag-Erling Smørgrav */ 29812344bcSAlfred Perlstein void setregs(struct thread *, u_long, u_long, u_long); 30812344bcSAlfred Perlstein int fill_regs(struct thread *, struct reg *); 31812344bcSAlfred Perlstein int set_regs(struct thread *, struct reg *); 32812344bcSAlfred Perlstein int fill_fpregs(struct thread *, struct fpreg *); 33812344bcSAlfred Perlstein int set_fpregs(struct thread *, struct fpreg *); 34812344bcSAlfred Perlstein int fill_dbregs(struct thread *, struct dbreg *); 35812344bcSAlfred Perlstein int set_dbregs(struct thread *, struct dbreg *); 361f042619SDag-Erling Smørgrav #endif 37f9bac91bSBenno Rice 38f9bac91bSBenno Rice #endif /* _POWERPC_REG_H_ */ 39