xref: /freebsd/sys/powerpc/include/reg.h (revision 812344bc0b1244fa337ec9ad98efb1d5a90ff544)
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