cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ppc32.h (1585B)


      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
     15struct 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
     31struct 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
     39struct 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
     47struct 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 */