Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
powerpc
kernel
ppc32.h
Go to the documentation of this file.
1
#ifndef _PPC64_PPC32_H
2
#define _PPC64_PPC32_H
3
4
#include <
linux/compat.h
>
5
#include <asm/siginfo.h>
6
#include <asm/signal.h>
7
8
/*
9
* Data types and macros for providing 32b PowerPC support.
10
*
11
* This program is free software; you can redistribute it and/or
12
* modify it under the terms of the GNU General Public License
13
* as published by the Free Software Foundation; either version
14
* 2 of the License, or (at your option) any later version.
15
*/
16
17
/* These are here to support 32-bit syscalls on a 64-bit kernel. */
18
19
#define __old_sigaction32 old_sigaction32
20
21
struct
__old_sigaction32
{
22
compat_uptr_t
sa_handler
;
23
compat_old_sigset_t
sa_mask
;
24
unsigned
int
sa_flags
;
25
compat_uptr_t
sa_restorer
;
/* not used by Linux/SPARC yet */
26
};
27
28
29
30
struct
sigaction32
{
31
compat_uptr_t
sa_handler
;
/* Really a pointer, but need to deal with 32 bits */
32
unsigned
int
sa_flags
;
33
compat_uptr_t
sa_restorer
;
/* Another 32 bit pointer */
34
compat_sigset_t
sa_mask
;
/* A 32 bit mask */
35
};
36
37
typedef
struct
sigaltstack_32
{
38
unsigned
int
ss_sp
;
39
int
ss_flags
;
40
compat_size_t
ss_size
;
41
}
stack_32_t
;
42
43
struct
pt_regs32
{
44
unsigned
int
gpr
[32];
45
unsigned
int
nip
;
46
unsigned
int
msr
;
47
unsigned
int
orig_gpr3
;
/* Used for restarting system calls */
48
unsigned
int
ctr
;
49
unsigned
int
link
;
50
unsigned
int
xer
;
51
unsigned
int
ccr
;
52
unsigned
int
mq
;
/* 601 only (not used at present) */
53
unsigned
int
trap
;
/* Reason for being here */
54
unsigned
int
dar
;
/* Fault registers */
55
unsigned
int
dsisr
;
56
unsigned
int
result
;
/* Result of a system call */
57
};
58
59
struct
sigcontext32
{
60
unsigned
int
_unused
[4];
61
int
signal
;
62
compat_uptr_t
handler
;
63
unsigned
int
oldmask
;
64
compat_uptr_t
regs
;
/* 4 byte pointer to the pt_regs32 structure. */
65
};
66
67
struct
mcontext32
{
68
elf_gregset_t32
mc_gregs
;
69
elf_fpregset_t
mc_fregs
;
70
unsigned
int
mc_pad
[2];
71
elf_vrregset_t32 mc_vregs
__attribute__
((__aligned__(16)));
72
elf_vsrreghalf_t32 mc_vsregs
__attribute__
((__aligned__(16)));
73
};
74
75
struct
ucontext32
{
76
unsigned
int
uc_flags
;
77
unsigned
int
uc_link
;
78
stack_32_t
uc_stack
;
79
int
uc_pad
[7];
80
compat_uptr_t
uc_regs
;
/* points to uc_mcontext field */
81
compat_sigset_t
uc_sigmask
;
/* mask last for extensibility */
82
/* glibc has 1024-bit signal masks, ours are 64-bit */
83
int
uc_maskext
[30];
84
int
uc_pad2
[3];
85
struct
mcontext32
uc_mcontext
;
86
};
87
88
#endif
/* _PPC64_PPC32_H */
Generated on Thu Jan 10 2013 13:13:45 for Linux Kernel by
1.8.2