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 7a6e340aaSSuleiman Souhlal /* Must match struct trapframe */ 8f9bac91bSBenno Rice struct reg { 9f9bac91bSBenno Rice register_t fixreg[32]; 10f9bac91bSBenno Rice register_t lr; 11f9bac91bSBenno Rice int cr; 12f9bac91bSBenno Rice int xer; 13f9bac91bSBenno Rice register_t ctr; 14f9bac91bSBenno Rice register_t pc; 15f9bac91bSBenno Rice }; 16f9bac91bSBenno Rice 17a6e340aaSSuleiman Souhlal /* Must match pcb.pcb_fpu */ 18f9bac91bSBenno Rice struct fpreg { 19f9bac91bSBenno Rice double fpreg[32]; 20f9bac91bSBenno Rice double fpscr; 21f9bac91bSBenno Rice }; 22f9bac91bSBenno Rice 23f9bac91bSBenno Rice struct dbreg { 24f9bac91bSBenno Rice unsigned long junk; 25f9bac91bSBenno Rice }; 26f9bac91bSBenno Rice 271f042619SDag-Erling Smørgrav #ifdef _KERNEL 281f042619SDag-Erling Smørgrav /* 291f042619SDag-Erling Smørgrav * XXX these interfaces are MI, so they should be declared in a MI place. 301f042619SDag-Erling Smørgrav */ 31812344bcSAlfred Perlstein int fill_regs(struct thread *, struct reg *); 32812344bcSAlfred Perlstein int set_regs(struct thread *, struct reg *); 33812344bcSAlfred Perlstein int fill_fpregs(struct thread *, struct fpreg *); 34812344bcSAlfred Perlstein int set_fpregs(struct thread *, struct fpreg *); 35812344bcSAlfred Perlstein int fill_dbregs(struct thread *, struct dbreg *); 36812344bcSAlfred Perlstein int set_dbregs(struct thread *, struct dbreg *); 371f042619SDag-Erling Smørgrav #endif 38f9bac91bSBenno Rice 39f9bac91bSBenno Rice #endif /* _POWERPC_REG_H_ */ 40