aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-ia64/tlb.h
blob: 049f7b5f21eae6df183c6a8f38ca165e46ad4cac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef XEN_ASM_IA64_TLB_H
#define XEN_ASM_IA64_TLB_H

#define	NITRS	8
#define NDTRS	8

typedef struct {
    union {
        struct {
            unsigned long p    :  1; // 0
            unsigned long      :  1; // 1
            unsigned long ma   :  3; // 2-4
            unsigned long a    :  1; // 5
            unsigned long d    :  1; // 6
            unsigned long pl   :  2; // 7-8
            unsigned long ar   :  3; // 9-11
            unsigned long ppn  : 38; // 12-49
            unsigned long      :  2; // 50-51
            unsigned long ed   :  1; // 52
        };
        unsigned long page_flags;
    };

    union {
        struct {
            unsigned long      :  2; // 0-1
            unsigned long ps   :  6; // 2-7
            unsigned long key  : 24; // 8-31
            unsigned long      : 32; // 32-63
        };
        unsigned long itir;
    };

    unsigned long vadr;
    unsigned long rid;
} TR_ENTRY;

#ifdef CONFIG_VTI
typedef union {
        unsigned long   value;
        struct {
                unsigned long ve : 1;
                unsigned long rv1 : 1;
                unsigned long ps  : 6;
                unsigned long rid : 24;
                unsigned long rv2 : 32;
        };
} rr_t;
#endif // CONFIG_VTI

#endif