Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros
exception-64s.h File Reference

Go to the source code of this file.

Macros

#define EX_R9   0
 
#define EX_R10   8
 
#define EX_R11   16
 
#define EX_R12   24
 
#define EX_R13   32
 
#define EX_SRR0   40
 
#define EX_DAR   48
 
#define EX_DSISR   56
 
#define EX_CCR   60
 
#define EX_R3   64
 
#define EX_LR   72
 
#define EX_CFAR   80
 
#define LOAD_HANDLER(reg, label)   addi reg,reg,(label)-_stext; /* virt addr of handler ... */
 
#define EXC_HV   H
 
#define EXC_STD
 
#define __EXCEPTION_PROLOG_1(area, extra, vec)
 
#define EXCEPTION_PROLOG_1(area, extra, vec)   __EXCEPTION_PROLOG_1(area, extra, vec)
 
#define __EXCEPTION_PROLOG_PSERIES_1(label, h)
 
#define EXCEPTION_PROLOG_PSERIES_1(label, h)   __EXCEPTION_PROLOG_PSERIES_1(label, h)
 
#define EXCEPTION_PROLOG_PSERIES(area, label, h, extra, vec)
 
#define __KVMTEST(n)
 
#define __KVM_HANDLER(area, h, n)
 
#define __KVM_HANDLER_SKIP(area, h, n)
 
#define KVMTEST(n)
 
#define KVM_HANDLER(area, h, n)
 
#define KVM_HANDLER_SKIP(area, h, n)
 
#define KVMTEST_PR(n)
 
#define KVM_HANDLER_PR(area, h, n)
 
#define KVM_HANDLER_PR_SKIP(area, h, n)
 
#define NOTEST(n)
 
#define EXCEPTION_PROLOG_COMMON(n, area)
 
#define STD_EXCEPTION_PSERIES(loc, vec, label)
 
#define STD_EXCEPTION_HV(loc, vec, label)
 
#define SOFTEN_VALUE_0x500   PACA_IRQ_EE
 
#define SOFTEN_VALUE_0x502   PACA_IRQ_EE
 
#define SOFTEN_VALUE_0x900   PACA_IRQ_DEC
 
#define SOFTEN_VALUE_0x982   PACA_IRQ_DEC
 
#define __SOFTEN_TEST(h, vec)
 
#define _SOFTEN_TEST(h, vec)   __SOFTEN_TEST(h, vec)
 
#define SOFTEN_TEST_PR(vec)
 
#define SOFTEN_TEST_HV(vec)
 
#define SOFTEN_TEST_HV_201(vec)
 
#define __MASKABLE_EXCEPTION_PSERIES(vec, label, h, extra)
 
#define _MASKABLE_EXCEPTION_PSERIES(vec, label, h, extra)   __MASKABLE_EXCEPTION_PSERIES(vec, label, h, extra)
 
#define MASKABLE_EXCEPTION_PSERIES(loc, vec, label)
 
#define MASKABLE_EXCEPTION_HV(loc, vec, label)
 
#define DISABLE_INTS   SOFT_DISABLE_INTS(r10,r11)
 
#define ADD_NVGPRS   bl .save_nvgprs
 
#define RUNLATCH_ON
 
#define EXCEPTION_COMMON(trap, label, hdlr, ret, additions)
 
#define STD_EXCEPTION_COMMON(trap, label, hdlr)
 
#define STD_EXCEPTION_COMMON_ASYNC(trap, label, hdlr)
 
#define FINISH_NAP
 

Macro Definition Documentation

#define __EXCEPTION_PROLOG_1 (   area,
  extra,
  vec 
)
Value:
GET_PACA(r13); \
std r9,area+EX_R9(r13); /* save r9 - r12 */ \
std r10,area+EX_R10(r13); \
BEGIN_FTR_SECTION_NESTED(66); \
mfspr r10,SPRN_CFAR; \
std r10,area+EX_CFAR(r13); \
END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66); \
mfcr r9; \
extra(vec); \
std r11,area+EX_R11(r13); \
std r12,area+EX_R12(r13); \
GET_SCRATCH0(r10); \
std r10,area+EX_R13(r13)

Definition at line 64 of file exception-64s.h.

#define __EXCEPTION_PROLOG_PSERIES_1 (   label,
  h 
)
Value:
ld r12,PACAKBASE(r13); /* get high part of &label */ \
ld r10,PACAKMSR(r13); /* get MSR value for kernel */ \
mfspr r11,SPRN_##h##SRR0; /* save SRR0 */ \
LOAD_HANDLER(r12,label) \
mtspr SPRN_##h##SRR0,r12; \
mfspr r12,SPRN_##h##SRR1; /* and SRR1 */ \
mtspr SPRN_##h##SRR1,r10; \
h##rfid; \
b . /* prevent speculative execution */

Definition at line 81 of file exception-64s.h.

#define __KVM_HANDLER (   area,
  h,
  n 
)
Value:
do_kvm_##n: \
ld r10,area+EX_R10(r13); \
stw r9,HSTATE_SCRATCH1(r13); \
ld r9,area+EX_R9(r13); \
std r12,HSTATE_SCRATCH0(r13); \
li r12,n; \
b kvmppc_interrupt

Definition at line 103 of file exception-64s.h.

#define __KVM_HANDLER_SKIP (   area,
  h,
  n 
)
Value:
do_kvm_##n: \
ld r10,area+EX_R10(r13); \
beq 89f; \
stw r9,HSTATE_SCRATCH1(r13); \
ld r9,area+EX_R9(r13); \
std r12,HSTATE_SCRATCH0(r13); \
li r12,n; \
b kvmppc_interrupt; \
89: mtocrf 0x80,r9; \
ld r9,area+EX_R9(r13); \
b kvmppc_skip_##h##interrupt

Definition at line 112 of file exception-64s.h.

#define __KVMTEST (   n)
Value:
lbz r10,HSTATE_IN_GUEST(r13); \
cmpwi r10,0; \
bne do_kvm_##n

Definition at line 98 of file exception-64s.h.

#define __MASKABLE_EXCEPTION_PSERIES (   vec,
  label,
  h,
  extra 
)
Value:
HMT_MEDIUM; \
SET_SCRATCH0(r13); /* save r13 */ \
__EXCEPTION_PROLOG_1(PACA_EXGEN, extra, vec); \
EXCEPTION_PROLOG_PSERIES_1(label##_common, h);

Definition at line 260 of file exception-64s.h.

#define __SOFTEN_TEST (   h,
  vec 
)
Value:
lbz r10,PACASOFTIRQEN(r13); \
cmpwi r10,0; \
li r10,SOFTEN_VALUE_##vec; \
beq masked_##h##interrupt

Definition at line 241 of file exception-64s.h.

#define _MASKABLE_EXCEPTION_PSERIES (   vec,
  label,
  h,
  extra 
)    __MASKABLE_EXCEPTION_PSERIES(vec, label, h, extra)

Definition at line 265 of file exception-64s.h.

#define _SOFTEN_TEST (   h,
  vec 
)    __SOFTEN_TEST(h, vec)

Definition at line 246 of file exception-64s.h.

#define ADD_NVGPRS   bl .save_nvgprs

Definition at line 291 of file exception-64s.h.

#define DISABLE_INTS   SOFT_DISABLE_INTS(r10,r11)

Definition at line 289 of file exception-64s.h.

#define EX_CCR   60

Definition at line 46 of file exception-64s.h.

#define EX_CFAR   80

Definition at line 49 of file exception-64s.h.

#define EX_DAR   48

Definition at line 44 of file exception-64s.h.

#define EX_DSISR   56

Definition at line 45 of file exception-64s.h.

#define EX_LR   72

Definition at line 48 of file exception-64s.h.

#define EX_R10   8

Definition at line 39 of file exception-64s.h.

#define EX_R11   16

Definition at line 40 of file exception-64s.h.

#define EX_R12   24

Definition at line 41 of file exception-64s.h.

#define EX_R13   32

Definition at line 42 of file exception-64s.h.

#define EX_R3   64

Definition at line 47 of file exception-64s.h.

#define EX_R9   0

Definition at line 38 of file exception-64s.h.

#define EX_SRR0   40

Definition at line 43 of file exception-64s.h.

#define EXC_HV   H

Definition at line 61 of file exception-64s.h.

#define EXC_STD

Definition at line 62 of file exception-64s.h.

#define EXCEPTION_COMMON (   trap,
  label,
  hdlr,
  ret,
  additions 
)
Value:
.align 7; \
.globl label##_common; \
label##_common: \
EXCEPTION_PROLOG_COMMON(trap, PACA_EXGEN); \
additions; \
bl hdlr; \
b ret

Definition at line 302 of file exception-64s.h.

#define EXCEPTION_PROLOG_1 (   area,
  extra,
  vec 
)    __EXCEPTION_PROLOG_1(area, extra, vec)

Definition at line 78 of file exception-64s.h.

#define EXCEPTION_PROLOG_COMMON (   n,
  area 
)

Definition at line 160 of file exception-64s.h.

#define EXCEPTION_PROLOG_PSERIES (   area,
  label,
  h,
  extra,
  vec 
)
Value:
EXCEPTION_PROLOG_1(area, extra, vec); \
EXCEPTION_PROLOG_PSERIES_1(label, h);

Definition at line 94 of file exception-64s.h.

#define EXCEPTION_PROLOG_PSERIES_1 (   label,
  h 
)    __EXCEPTION_PROLOG_PSERIES_1(label, h)

Definition at line 91 of file exception-64s.h.

#define FINISH_NAP

Definition at line 341 of file exception-64s.h.

#define KVM_HANDLER (   area,
  h,
  n 
)

Definition at line 133 of file exception-64s.h.

#define KVM_HANDLER_PR (   area,
  h,
  n 
)

Definition at line 144 of file exception-64s.h.

#define KVM_HANDLER_PR_SKIP (   area,
  h,
  n 
)

Definition at line 145 of file exception-64s.h.

#define KVM_HANDLER_SKIP (   area,
  h,
  n 
)

Definition at line 134 of file exception-64s.h.

#define KVMTEST (   n)

Definition at line 132 of file exception-64s.h.

#define KVMTEST_PR (   n)

Definition at line 143 of file exception-64s.h.

#define LOAD_HANDLER (   reg,
  label 
)    addi reg,reg,(label)-_stext; /* virt addr of handler ... */

Definition at line 57 of file exception-64s.h.

#define MASKABLE_EXCEPTION_HV (   loc,
  vec,
  label 
)
Value:
. = loc; \
.globl label##_hv; \
label##_hv: \
_MASKABLE_EXCEPTION_PSERIES(vec, label, \

Definition at line 275 of file exception-64s.h.

#define MASKABLE_EXCEPTION_PSERIES (   loc,
  vec,
  label 
)
Value:
. = loc; \
.globl label##_pSeries; \
label##_pSeries: \
_MASKABLE_EXCEPTION_PSERIES(vec, label, \

Definition at line 268 of file exception-64s.h.

#define NOTEST (   n)

Definition at line 148 of file exception-64s.h.

#define RUNLATCH_ON
Value:
BEGIN_FTR_SECTION \
CURRENT_THREAD_INFO(r3, r1); \
ld r4,TI_LOCAL_FLAGS(r3); \
andi. r0,r4,_TLF_RUNLATCH; \
beql ppc64_runlatch_on_trampoline; \
END_FTR_SECTION_IFSET(CPU_FTR_CTRL)

Definition at line 294 of file exception-64s.h.

#define SOFTEN_TEST_HV (   vec)
Value:
KVMTEST(vec); \
_SOFTEN_TEST(EXC_HV, vec)

Definition at line 252 of file exception-64s.h.

#define SOFTEN_TEST_HV_201 (   vec)
Value:
KVMTEST(vec); \
_SOFTEN_TEST(EXC_STD, vec)

Definition at line 256 of file exception-64s.h.

#define SOFTEN_TEST_PR (   vec)
Value:
KVMTEST_PR(vec); \
_SOFTEN_TEST(EXC_STD, vec)

Definition at line 248 of file exception-64s.h.

#define SOFTEN_VALUE_0x500   PACA_IRQ_EE

Definition at line 236 of file exception-64s.h.

#define SOFTEN_VALUE_0x502   PACA_IRQ_EE

Definition at line 237 of file exception-64s.h.

#define SOFTEN_VALUE_0x900   PACA_IRQ_DEC

Definition at line 238 of file exception-64s.h.

#define SOFTEN_VALUE_0x982   PACA_IRQ_DEC

Definition at line 239 of file exception-64s.h.

#define STD_EXCEPTION_COMMON (   trap,
  label,
  hdlr 
)
Value:
EXCEPTION_COMMON(trap, label, hdlr, ret_from_except, \

Definition at line 312 of file exception-64s.h.

#define STD_EXCEPTION_COMMON_ASYNC (   trap,
  label,
  hdlr 
)
Value:
EXCEPTION_COMMON(trap, label, hdlr, ret_from_except_lite, \

Definition at line 321 of file exception-64s.h.

#define STD_EXCEPTION_HV (   loc,
  vec,
  label 
)
Value:
. = loc; \
.globl label##_hv; \
label##_hv: \
HMT_MEDIUM; \
SET_SCRATCH0(r13); /* save r13 */ \
EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common, \
EXC_HV, KVMTEST, vec)

Definition at line 226 of file exception-64s.h.

#define STD_EXCEPTION_PSERIES (   loc,
  vec,
  label 
)
Value:
. = loc; \
.globl label##_pSeries; \
label##_pSeries: \
HMT_MEDIUM; \
SET_SCRATCH0(r13); /* save r13 */ \
EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, label##_common, \

Definition at line 217 of file exception-64s.h.