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