|
29 | 29 |
|
30 | 30 | /*
|
31 | 31 | * Tables translating between page_cache_type_t and pte encoding.
|
32 |
| - * Minimal supported modes are defined statically, modified if more supported |
33 |
| - * cache modes are available. |
34 |
| - * Index into __cachemode2pte_tbl is the cachemode. |
35 |
| - * Index into __pte2cachemode_tbl are the caching attribute bits of the pte |
36 |
| - * (_PAGE_PWT, _PAGE_PCD, _PAGE_PAT) at index bit positions 0, 1, 2. |
| 32 | + * |
| 33 | + * Minimal supported modes are defined statically, they are modified |
| 34 | + * during bootup if more supported cache modes are available. |
| 35 | + * |
| 36 | + * Index into __cachemode2pte_tbl[] is the cachemode. |
| 37 | + * |
| 38 | + * Index into __pte2cachemode_tbl[] are the caching attribute bits of the pte |
| 39 | + * (_PAGE_PWT, _PAGE_PCD, _PAGE_PAT) at index bit positions 0, 1, 2. |
37 | 40 | */
|
38 | 41 | uint16_t __cachemode2pte_tbl[_PAGE_CACHE_MODE_NUM] = {
|
39 |
| - [_PAGE_CACHE_MODE_WB] = 0, |
40 |
| - [_PAGE_CACHE_MODE_WC] = _PAGE_PWT, |
41 |
| - [_PAGE_CACHE_MODE_UC_MINUS] = _PAGE_PCD, |
42 |
| - [_PAGE_CACHE_MODE_UC] = _PAGE_PCD | _PAGE_PWT, |
43 |
| - [_PAGE_CACHE_MODE_WT] = _PAGE_PCD, |
44 |
| - [_PAGE_CACHE_MODE_WP] = _PAGE_PCD, |
| 42 | + [_PAGE_CACHE_MODE_WB ] = 0 | 0 , |
| 43 | + [_PAGE_CACHE_MODE_WC ] = _PAGE_PWT | 0 , |
| 44 | + [_PAGE_CACHE_MODE_UC_MINUS] = 0 | _PAGE_PCD, |
| 45 | + [_PAGE_CACHE_MODE_UC ] = _PAGE_PWT | _PAGE_PCD, |
| 46 | + [_PAGE_CACHE_MODE_WT ] = 0 | _PAGE_PCD, |
| 47 | + [_PAGE_CACHE_MODE_WP ] = 0 | _PAGE_PCD, |
45 | 48 | };
|
46 | 49 | EXPORT_SYMBOL(__cachemode2pte_tbl);
|
| 50 | + |
47 | 51 | uint8_t __pte2cachemode_tbl[8] = {
|
48 |
| - [__pte2cm_idx(0)] = _PAGE_CACHE_MODE_WB, |
49 |
| - [__pte2cm_idx(_PAGE_PWT)] = _PAGE_CACHE_MODE_WC, |
50 |
| - [__pte2cm_idx(_PAGE_PCD)] = _PAGE_CACHE_MODE_UC_MINUS, |
51 |
| - [__pte2cm_idx(_PAGE_PWT | _PAGE_PCD)] = _PAGE_CACHE_MODE_UC, |
52 |
| - [__pte2cm_idx(_PAGE_PAT)] = _PAGE_CACHE_MODE_WB, |
53 |
| - [__pte2cm_idx(_PAGE_PWT | _PAGE_PAT)] = _PAGE_CACHE_MODE_WC, |
54 |
| - [__pte2cm_idx(_PAGE_PCD | _PAGE_PAT)] = _PAGE_CACHE_MODE_UC_MINUS, |
| 52 | + [__pte2cm_idx( 0 | 0 | 0 )] = _PAGE_CACHE_MODE_WB, |
| 53 | + [__pte2cm_idx(_PAGE_PWT | 0 | 0 )] = _PAGE_CACHE_MODE_WC, |
| 54 | + [__pte2cm_idx( 0 | _PAGE_PCD | 0 )] = _PAGE_CACHE_MODE_UC_MINUS, |
| 55 | + [__pte2cm_idx(_PAGE_PWT | _PAGE_PCD | 0 )] = _PAGE_CACHE_MODE_UC, |
| 56 | + [__pte2cm_idx( 0 | 0 | _PAGE_PAT)] = _PAGE_CACHE_MODE_WB, |
| 57 | + [__pte2cm_idx(_PAGE_PWT | 0 | _PAGE_PAT)] = _PAGE_CACHE_MODE_WC, |
| 58 | + [__pte2cm_idx(0 | _PAGE_PCD | _PAGE_PAT)] = _PAGE_CACHE_MODE_UC_MINUS, |
55 | 59 | [__pte2cm_idx(_PAGE_PWT | _PAGE_PCD | _PAGE_PAT)] = _PAGE_CACHE_MODE_UC,
|
56 | 60 | };
|
57 | 61 | EXPORT_SYMBOL(__pte2cachemode_tbl);
|
|
0 commit comments