hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
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
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_FIXMAP_H
#define _ASM_FIXMAP_H
 
/*
 * This file defines the locations of the fixed mappings on parisc.
 *
 * All of the values in this file are machine virtual addresses.
 *
 * All of the values in this file must be <4GB (because of assembly
 * loading restrictions).  If you place this region anywhere above
 * __PAGE_OFFSET, you must adjust the memory map accordingly */
 
/* The alias region is used in kernel space to do copy/clear to or
 * from areas congruently mapped with user space.  It is 8MB large
 * and must be 16MB aligned */
#define TMPALIAS_MAP_START    ((__PAGE_OFFSET) - 16*1024*1024)
 
#define FIXMAP_SIZE        (FIX_BITMAP_COUNT << PAGE_SHIFT)
#define FIXMAP_START        (TMPALIAS_MAP_START - FIXMAP_SIZE)
/* This is the kernel area for all maps (vmalloc, dma etc.)  most
 * usually, it extends up to TMPALIAS_MAP_START.  Virtual addresses
 * 0..GATEWAY_PAGE_SIZE are reserved for the gateway page */
#define KERNEL_MAP_START    (GATEWAY_PAGE_SIZE)
#define KERNEL_MAP_END        (FIXMAP_START)
 
#ifndef __ASSEMBLY__
 
 
enum fixed_addresses {
   /* Support writing RO kernel text via kprobes, jump labels, etc. */
   FIX_TEXT_POKE0,
   FIX_TEXT_KEXEC,
   FIX_BITMAP_COUNT
};
 
extern void *parisc_vmalloc_start;
#define PCXL_DMA_MAP_SIZE    (8*1024*1024)
#define VMALLOC_START        ((unsigned long)parisc_vmalloc_start)
#define VMALLOC_END        (KERNEL_MAP_END)
 
#define __fix_to_virt(_x) (FIXMAP_START + ((_x) << PAGE_SHIFT))
 
void set_fixmap(enum fixed_addresses idx, phys_addr_t phys);
void clear_fixmap(enum fixed_addresses idx);
 
#endif /*__ASSEMBLY__*/
 
#endif /*_ASM_FIXMAP_H*/