Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/platforms/iseries/exception.h
10820 views
1
#ifndef _ASM_POWERPC_ISERIES_EXCEPTION_H
2
#define _ASM_POWERPC_ISERIES_EXCEPTION_H
3
/*
4
* Extracted from head_64.S
5
*
6
* PowerPC version
7
* Copyright (C) 1995-1996 Gary Thomas ([email protected])
8
*
9
* Rewritten by Cort Dougan ([email protected]) for PReP
10
* Copyright (C) 1996 Cort Dougan <[email protected]>
11
* Adapted for Power Macintosh by Paul Mackerras.
12
* Low-level exception handlers and MMU support
13
* rewritten by Paul Mackerras.
14
* Copyright (C) 1996 Paul Mackerras.
15
*
16
* Adapted for 64bit PowerPC by Dave Engebretsen, Peter Bergner, and
17
* Mike Corrigan {engebret|bergner|mikejc}@us.ibm.com
18
*
19
* This file contains the low-level support and setup for the
20
* PowerPC-64 platform, including trap and interrupt dispatch.
21
*
22
* This program is free software; you can redistribute it and/or
23
* modify it under the terms of the GNU General Public License
24
* as published by the Free Software Foundation; either version
25
* 2 of the License, or (at your option) any later version.
26
*/
27
#include <asm/exception-64s.h>
28
29
#define EXCEPTION_PROLOG_ISERIES_1 \
30
mfmsr r10; \
31
ld r12,PACALPPACAPTR(r13); \
32
ld r11,LPPACASRR0(r12); \
33
ld r12,LPPACASRR1(r12); \
34
ori r10,r10,MSR_RI; \
35
mtmsrd r10,1
36
37
#define STD_EXCEPTION_ISERIES(label, area) \
38
.globl label##_iSeries; \
39
label##_iSeries: \
40
HMT_MEDIUM; \
41
mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \
42
EXCEPTION_PROLOG_1(area); \
43
EXCEPTION_PROLOG_ISERIES_1; \
44
b label##_common
45
46
#define MASKABLE_EXCEPTION_ISERIES(label) \
47
.globl label##_iSeries; \
48
label##_iSeries: \
49
HMT_MEDIUM; \
50
mtspr SPRN_SPRG_SCRATCH0,r13; /* save r13 */ \
51
EXCEPTION_PROLOG_1(PACA_EXGEN); \
52
lbz r10,PACASOFTIRQEN(r13); \
53
cmpwi 0,r10,0; \
54
beq- label##_iSeries_masked; \
55
EXCEPTION_PROLOG_ISERIES_1; \
56
b label##_common; \
57
58
#endif /* _ASM_POWERPC_ISERIES_EXCEPTION_H */
59
60