root/arch/powerpc/kernel/ppc32.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-or-later */
   2 #ifndef _PPC64_PPC32_H
   3 #define _PPC64_PPC32_H
   4 
   5 #include <linux/compat.h>
   6 #include <asm/siginfo.h>
   7 #include <asm/signal.h>
   8 
   9 /*
  10  * Data types and macros for providing 32b PowerPC support.
  11  */
  12 
  13 /* These are here to support 32-bit syscalls on a 64-bit kernel. */
  14 
  15 struct pt_regs32 {
  16         unsigned int gpr[32];
  17         unsigned int nip;
  18         unsigned int msr;
  19         unsigned int orig_gpr3;         /* Used for restarting system calls */
  20         unsigned int ctr;
  21         unsigned int link;
  22         unsigned int xer;
  23         unsigned int ccr;
  24         unsigned int mq;                /* 601 only (not used at present) */
  25         unsigned int trap;              /* Reason for being here */
  26         unsigned int dar;               /* Fault registers */
  27         unsigned int dsisr;
  28         unsigned int result;            /* Result of a system call */
  29 };
  30 
  31 struct sigcontext32 {
  32         unsigned int    _unused[4];
  33         int             signal;
  34         compat_uptr_t   handler;
  35         unsigned int    oldmask;
  36         compat_uptr_t   regs;  /* 4 byte pointer to the pt_regs32 structure. */
  37 };
  38 
  39 struct mcontext32 {
  40         elf_gregset_t32         mc_gregs;
  41         elf_fpregset_t          mc_fregs;
  42         unsigned int            mc_pad[2];
  43         elf_vrregset_t32        mc_vregs __attribute__((__aligned__(16)));
  44         elf_vsrreghalf_t32      mc_vsregs __attribute__((__aligned__(16)));
  45 };
  46 
  47 struct ucontext32 { 
  48         unsigned int            uc_flags;
  49         unsigned int            uc_link;
  50         compat_stack_t          uc_stack;
  51         int                     uc_pad[7];
  52         compat_uptr_t           uc_regs;        /* points to uc_mcontext field */
  53         compat_sigset_t         uc_sigmask;     /* mask last for extensibility */
  54         /* glibc has 1024-bit signal masks, ours are 64-bit */
  55         int                     uc_maskext[30];
  56         int                     uc_pad2[3];
  57         struct mcontext32       uc_mcontext;
  58 };
  59 
  60 #endif  /* _PPC64_PPC32_H */

/* [<][>][^][v][top][bottom][index][help] */