]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/powerpc/include/reg.h
Fix rt_ifa selection during loopback route insertion process.
[FreeBSD/FreeBSD.git] / sys / powerpc / include / reg.h
1 /* $NetBSD: reg.h,v 1.4 2000/06/04 09:30:44 tsubai Exp $        */
2 /* $FreeBSD$    */
3
4 #ifndef _POWERPC_REG_H_
5 #define _POWERPC_REG_H_
6
7 /* Must match struct trapframe */
8 struct reg {
9         register_t fixreg[32];
10         register_t lr;
11         register_t cr;
12         register_t xer;
13         register_t ctr;
14         register_t pc;
15 };
16
17 struct fpreg {
18         double fpreg[32];
19         double fpscr;
20 };
21
22 /* Must match pcb.pcb_vec */
23 struct vmxreg {
24         uint32_t vr[32][4];
25         uint32_t pad[2];
26         uint32_t vrsave;
27         uint32_t vscr;
28 };
29
30 struct dbreg {
31         unsigned int    junk;
32 };
33
34 #ifdef __LP64__
35 /* Must match struct trapframe */
36 struct reg32 {
37         int32_t fixreg[32];
38         int32_t lr;
39         int32_t cr;
40         int32_t xer;
41         int32_t ctr;
42         int32_t pc;
43 };
44
45 struct fpreg32 {
46         struct fpreg data;
47 };
48
49 struct vmxreg32 {
50         struct vmxreg data;
51 };
52
53 struct dbreg32 {
54         struct dbreg data;
55 };
56
57 #define __HAVE_REG32
58 #endif
59
60 #ifdef _KERNEL
61 /*
62  * XXX these interfaces are MI, so they should be declared in a MI place.
63  */
64 int     fill_regs(struct thread *, struct reg *);
65 int     set_regs(struct thread *, struct reg *);
66 int     fill_fpregs(struct thread *, struct fpreg *);
67 int     set_fpregs(struct thread *, struct fpreg *);
68 int     fill_dbregs(struct thread *, struct dbreg *);
69 int     set_dbregs(struct thread *, struct dbreg *);
70
71 #ifdef COMPAT_FREEBSD32
72 struct image_params;
73
74 int     fill_regs32(struct thread *, struct reg32 *);
75 int     set_regs32(struct thread *, struct reg32 *);
76 void    ppc32_setregs(struct thread *, struct image_params *, u_long);
77
78 #define fill_fpregs32(td, reg)  fill_fpregs(td,(struct fpreg *)reg)
79 #define set_fpregs32(td, reg)   set_fpregs(td,(struct fpreg *)reg)
80 #define fill_dbregs32(td, reg)  fill_dbregs(td,(struct dbreg *)reg)
81 #define set_dbregs32(td, reg)   set_dbregs(td,(struct dbreg *)reg)
82 #endif
83
84 #endif
85
86 #endif /* _POWERPC_REG_H_ */