The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/powerpc/include/reg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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 #include <sys/_types.h>
    8 
    9 /* Must match struct trapframe */
   10 struct reg {
   11         __register_t fixreg[32];
   12         __register_t lr;
   13         __register_t cr;
   14         __register_t xer;
   15         __register_t ctr;
   16         __register_t pc;
   17 };
   18 
   19 struct fpreg {
   20         double fpreg[32];
   21         double fpscr;
   22 };
   23 
   24 /* Must match pcb.pcb_vec */
   25 struct vmxreg {
   26         __uint32_t vr[32][4];
   27         __uint32_t pad[2];
   28         __uint32_t vrsave;
   29         __uint32_t vscr;
   30 };
   31 
   32 struct dbreg {
   33         unsigned int    junk;
   34 };
   35 
   36 #ifdef __LP64__
   37 /* Must match struct trapframe */
   38 struct reg32 {
   39         __int32_t fixreg[32];
   40         __int32_t lr;
   41         __int32_t cr;
   42         __int32_t xer;
   43         __int32_t ctr;
   44         __int32_t pc;
   45 };
   46 
   47 struct fpreg32 {
   48         struct fpreg data;
   49 };
   50 
   51 struct vmxreg32 {
   52         struct vmxreg data;
   53 };
   54 
   55 struct dbreg32 {
   56         struct dbreg data;
   57 };
   58 
   59 #define __HAVE_REG32
   60 #endif
   61 
   62 #ifdef _KERNEL
   63 /*
   64  * XXX these interfaces are MI, so they should be declared in a MI place.
   65  */
   66 int     fill_regs(struct thread *, struct reg *);
   67 int     set_regs(struct thread *, struct reg *);
   68 int     fill_fpregs(struct thread *, struct fpreg *);
   69 int     set_fpregs(struct thread *, struct fpreg *);
   70 int     fill_dbregs(struct thread *, struct dbreg *);
   71 int     set_dbregs(struct thread *, struct dbreg *);
   72 
   73 /*
   74  * MD interfaces.
   75  */
   76 void    cpu_save_thread_regs(struct thread *);
   77 
   78 #ifdef COMPAT_FREEBSD32
   79 struct image_params;
   80 
   81 int     fill_regs32(struct thread *, struct reg32 *);
   82 int     set_regs32(struct thread *, struct reg32 *);
   83 void    ppc32_setregs(struct thread *, struct image_params *, uintptr_t);
   84 
   85 #define fill_fpregs32(td, reg)  fill_fpregs(td,(struct fpreg *)reg)
   86 #define set_fpregs32(td, reg)   set_fpregs(td,(struct fpreg *)reg)
   87 #define fill_dbregs32(td, reg)  fill_dbregs(td,(struct dbreg *)reg)
   88 #define set_dbregs32(td, reg)   set_dbregs(td,(struct dbreg *)reg)
   89 #endif
   90 
   91 #endif
   92 
   93 #endif /* _POWERPC_REG_H_ */

Cache object: fa500b05198e10a1c754be4db289698a


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.