This source file includes following definitions.
- swift_inv_insn_tag
- swift_inv_data_tag
- swift_flush_page
- swift_flush_segment
- swift_flush_region
- swift_flush_context
1
2
3
4
5
6
7 #ifndef _SPARC_SWIFT_H
8 #define _SPARC_SWIFT_H
9
10
11 #define SWIFT_ST 0x00800000
12 #define SWIFT_WP 0x00400000
13
14
15 #define SWIFT_BF 0x00200000
16 #define SWIFT_PMC 0x00180000
17 #define SWIFT_PE 0x00040000
18 #define SWIFT_PC 0x00020000
19 #define SWIFT_AP 0x00010000
20 #define SWIFT_AC 0x00008000
21 #define SWIFT_BM 0x00004000
22 #define SWIFT_RC 0x00003c00
23 #define SWIFT_IE 0x00000200
24 #define SWIFT_DE 0x00000100
25 #define SWIFT_SA 0x00000080
26 #define SWIFT_NF 0x00000002
27 #define SWIFT_EN 0x00000001
28
29 extern inline void swift_inv_insn_tag(unsigned long addr)
30 {
31 __asm__ __volatile__("sta %%g0, [%0] %1\n\t" : :
32 "r" (addr), "i" (ASI_M_TXTC_TAG));
33 }
34
35 extern inline void swift_inv_data_tag(unsigned long addr)
36 {
37 __asm__ __volatile__("sta %%g0, [%0] %1\n\t" : :
38 "r" (addr), "i" (ASI_M_DATAC_TAG));
39 }
40
41 extern inline void swift_flush_page(unsigned long page)
42 {
43 __asm__ __volatile__("sta %%g0, [%0] %1\n\t" : :
44 "r" (page), "i" (ASI_M_FLUSH_PAGE));
45 }
46
47 extern inline void swift_flush_segment(unsigned long addr)
48 {
49 __asm__ __volatile__("sta %%g0, [%0] %1\n\t" : :
50 "r" (addr), "i" (ASI_M_FLUSH_SEG));
51 }
52
53 extern inline void swift_flush_region(unsigned long addr)
54 {
55 __asm__ __volatile__("sta %%g0, [%0] %1\n\t" : :
56 "r" (addr), "i" (ASI_M_FLUSH_REGION));
57 }
58
59 extern inline void swift_flush_context(void)
60 {
61 __asm__ __volatile__("sta %%g0, [%%g0] %0\n\t" : :
62 "i" (ASI_M_FLUSH_CTX));
63 }
64
65 #endif