]>
Commit | Line | Data |
---|---|---|
27eb9d65 RH |
1 | /* |
2 | * Definitions for cpus with variable page sizes. | |
3 | * | |
4 | * Copyright (c) 2003 Fabrice Bellard | |
5 | * | |
6 | * This library is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2.1 of the License, or (at your option) any later version. | |
10 | * | |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
17 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. | |
18 | */ | |
19 | ||
20 | #ifndef EXEC_PAGE_VARY_H | |
21 | #define EXEC_PAGE_VARY_H | |
22 | ||
23 | typedef struct { | |
24 | bool decided; | |
25 | int bits; | |
26 | uint64_t mask; | |
27 | } TargetPageBits; | |
28 | ||
44b99a6d RH |
29 | #ifdef IN_PAGE_VARY |
30 | extern bool set_preferred_target_page_bits_common(int bits); | |
31 | extern void finalize_target_page_bits_common(int min); | |
32 | #endif | |
33 | ||
ec5f7ca8 MAL |
34 | /** |
35 | * set_preferred_target_page_bits: | |
36 | * @bits: number of bits needed to represent an address within the page | |
37 | * | |
38 | * Set the preferred target page size (the actual target page | |
39 | * size may be smaller than any given CPU's preference). | |
40 | * Returns true on success, false on failure (which can only happen | |
41 | * if this is called after the system has already finalized its | |
42 | * choice of page size and the requested page size is smaller than that). | |
43 | */ | |
44 | bool set_preferred_target_page_bits(int bits); | |
45 | ||
46 | /** | |
47 | * finalize_target_page_bits: | |
48 | * Commit the final value set by set_preferred_target_page_bits. | |
49 | */ | |
50 | void finalize_target_page_bits(void); | |
51 | ||
27eb9d65 | 52 | #endif /* EXEC_PAGE_VARY_H */ |