~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/include/asm/fixmap.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/x86/include/asm/fixmap.h (Architecture ppc) and /arch/i386/include/asm-i386/fixmap.h (Architecture i386)


  1 /*                                                  1 
  2  * fixmap.h: compile-time virtual memory alloc    
  3  *                                                
  4  * This file is subject to the terms and condi    
  5  * License.  See the file "COPYING" in the mai    
  6  * for more details.                              
  7  *                                                
  8  * Copyright (C) 1998 Ingo Molnar                 
  9  *                                                
 10  * Support of BIGMEM added by Gerhard Wichert,    
 11  * x86_32 and x86_64 integration by Gustavo F.    
 12  */                                               
 13                                                   
 14 #ifndef _ASM_X86_FIXMAP_H                         
 15 #define _ASM_X86_FIXMAP_H                         
 16                                                   
 17 #include <asm/kmap_size.h>                        
 18                                                   
 19 /*                                                
 20  * Exposed to assembly code for setting up ini    
 21  * calculated in assembly code (fixmap entries    
 22  * checked in the actual fixmap C code to make    
 23  * covered fully.                                 
 24  */                                               
 25 #ifndef CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP         
 26 # define FIXMAP_PMD_NUM 2                         
 27 #else                                             
 28 # define KM_PMDS        (KM_MAX_IDX * ((CONFIG    
 29 # define FIXMAP_PMD_NUM (KM_PMDS + 2)             
 30 #endif                                            
 31 /* fixmap starts downwards from the 507th entr    
 32 #define FIXMAP_PMD_TOP  507                       
 33                                                   
 34 #ifndef __ASSEMBLY__                              
 35 #include <linux/kernel.h>                         
 36 #include <asm/apicdef.h>                          
 37 #include <asm/page.h>                             
 38 #include <asm/pgtable_types.h>                    
 39 #ifdef CONFIG_X86_32                              
 40 #include <linux/threads.h>                        
 41 #else                                             
 42 #include <uapi/asm/vsyscall.h>                    
 43 #endif                                            
 44                                                   
 45 /*                                                
 46  * We can't declare FIXADDR_TOP as variable fo    
 47  * uses fixmaps that relies on FIXADDR_TOP for    
 48  * Because of this, FIXADDR_TOP x86 integratio    
 49  */                                               
 50 #ifdef CONFIG_X86_32                              
 51 /*                                                
 52  * Leave one empty page between vmalloc'ed are    
 53  * the start of the fixmap.                       
 54  */                                               
 55 extern unsigned long __FIXADDR_TOP;               
 56 #define FIXADDR_TOP     ((unsigned long)__FIXA    
 57 #else                                             
 58 #define FIXADDR_TOP     (round_up(VSYSCALL_ADD    
 59                          PAGE_SIZE)               
 60 #endif                                            
 61                                                   
 62 /*                                                
 63  * Here we define all the compile-time 'specia    
 64  * addresses. The point is to have a constant     
 65  * compile time, but to set the physical addre    
 66  * in the boot process.                           
 67  * for x86_32: We allocate these special addre    
 68  * from the end of virtual memory (0xfffff000)    
 69  * Also this lets us do fail-safe vmalloc(), w    
 70  * can guarantee that these special addresses     
 71  * vmalloc()-ed addresses never overlap.          
 72  *                                                
 73  * These 'compile-time allocated' memory buffe    
 74  * fixed-size 4k pages (or larger if used with    
 75  * higher than 1). Use set_fixmap(idx,phys) to    
 76  * physical memory with fixmap indices.           
 77  *                                                
 78  * TLB entries of such buffers will not be flu    
 79  * task switches.                                 
 80  */                                               
 81 enum fixed_addresses {                            
 82 #ifdef CONFIG_X86_32                              
 83         FIX_HOLE,                                 
 84 #else                                             
 85 #ifdef CONFIG_X86_VSYSCALL_EMULATION              
 86         VSYSCALL_PAGE = (FIXADDR_TOP - VSYSCAL    
 87 #endif                                            
 88 #endif                                            
 89         FIX_DBGP_BASE,                            
 90         FIX_EARLYCON_MEM_BASE,                    
 91 #ifdef CONFIG_PROVIDE_OHCI1394_DMA_INIT           
 92         FIX_OHCI1394_BASE,                        
 93 #endif                                            
 94 #ifdef CONFIG_X86_LOCAL_APIC                      
 95         FIX_APIC_BASE,  /* local (CPU) APIC) -    
 96 #endif                                            
 97 #ifdef CONFIG_X86_IO_APIC                         
 98         FIX_IO_APIC_BASE_0,                       
 99         FIX_IO_APIC_BASE_END = FIX_IO_APIC_BAS    
100 #endif                                            
101 #ifdef CONFIG_KMAP_LOCAL                          
102         FIX_KMAP_BEGIN, /* reserved pte's for     
103         FIX_KMAP_END = FIX_KMAP_BEGIN + (KM_MA    
104 #ifdef CONFIG_PCI_MMCONFIG                        
105         FIX_PCIE_MCFG,                            
106 #endif                                            
107 #endif                                            
108 #ifdef CONFIG_PARAVIRT_XXL                        
109         FIX_PARAVIRT_BOOTMAP,                     
110 #endif                                            
111                                                   
112 #ifdef CONFIG_ACPI_APEI_GHES                      
113         /* Used for GHES mapping from assorted    
114         FIX_APEI_GHES_IRQ,                        
115         FIX_APEI_GHES_NMI,                        
116 #endif                                            
117                                                   
118         __end_of_permanent_fixed_addresses,       
119                                                   
120         /*                                        
121          * 512 temporary boot-time mappings, u    
122          * before ioremap() is functional.        
123          *                                        
124          * If necessary we round it up to the     
125          * that we can have a single pmd entry    
126          */                                       
127 #define NR_FIX_BTMAPS           64                
128 #define FIX_BTMAPS_SLOTS        8                 
129 #define TOTAL_FIX_BTMAPS        (NR_FIX_BTMAPS    
130         FIX_BTMAP_END =                           
131          (__end_of_permanent_fixed_addresses ^    
132           (__end_of_permanent_fixed_addresses     
133          -PTRS_PER_PTE                            
134          ? __end_of_permanent_fixed_addresses     
135            (__end_of_permanent_fixed_addresses    
136          : __end_of_permanent_fixed_addresses,    
137         FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTA    
138 #ifdef CONFIG_X86_32                              
139         FIX_WP_TEST,                              
140 #endif                                            
141 #ifdef CONFIG_INTEL_TXT                           
142         FIX_TBOOT_BASE,                           
143 #endif                                            
144         __end_of_fixed_addresses                  
145 };                                                
146                                                   
147                                                   
148 extern void reserve_top_address(unsigned long     
149                                                   
150 #define FIXADDR_SIZE            (__end_of_perm    
151 #define FIXADDR_START           (FIXADDR_TOP -    
152 #define FIXADDR_TOT_SIZE        (__end_of_fixe    
153 #define FIXADDR_TOT_START       (FIXADDR_TOP -    
154                                                   
155 extern int fixmaps_set;                           
156                                                   
157 extern pte_t *pkmap_page_table;                   
158                                                   
159 void __native_set_fixmap(enum fixed_addresses     
160 void native_set_fixmap(unsigned /* enum fixed_    
161                        phys_addr_t phys, pgpro    
162                                                   
163 #ifndef CONFIG_PARAVIRT_XXL                       
164 static inline void __set_fixmap(enum fixed_add    
165                                 phys_addr_t ph    
166 {                                                 
167         native_set_fixmap(idx, phys, flags);      
168 }                                                 
169 #endif                                            
170                                                   
171 /*                                                
172  * FIXMAP_PAGE_NOCACHE is used for MMIO. Memor    
173  * supported for MMIO addresses, so make sure     
174  * mask is not part of the page attributes.       
175  */                                               
176 #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_IO_NOC    
177                                                   
178 /*                                                
179  * Early memremap routines used for in-place e    
180  * by these routines are intended to be used a    
181  */                                               
182 void __init *early_memremap_encrypted(resource    
183                                       unsigned    
184 void __init *early_memremap_encrypted_wp(resou    
185                                          unsig    
186 void __init *early_memremap_decrypted(resource    
187                                       unsigned    
188 void __init *early_memremap_decrypted_wp(resou    
189                                          unsig    
190                                                   
191 #include <asm-generic/fixmap.h>                   
192                                                   
193 #define __late_set_fixmap(idx, phys, flags) __    
194 #define __late_clear_fixmap(idx) __set_fixmap(    
195                                                   
196 void __early_set_fixmap(enum fixed_addresses i    
197                         phys_addr_t phys, pgpr    
198                                                   
199 #endif /* !__ASSEMBLY__ */                        
200 #endif /* _ASM_X86_FIXMAP_H */                    
201                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php