10 #include <linux/signal.h>
11 #include <linux/sched.h>
12 #include <linux/kernel.h>
13 #include <linux/errno.h>
14 #include <linux/string.h>
15 #include <linux/types.h>
16 #include <linux/ptrace.h>
17 #include <linux/mman.h>
25 #include <asm/uaccess.h>
26 #include <asm/pgtable.h>
27 #include <asm/pgalloc.h>
30 #include <asm/mmu_context.h>
33 #include <asm/setup.h>
47 #ifdef CONFIG_ALPHA_LARGE_VMALLOC
89 static inline unsigned long
94 return __reload_thread(pcb);
102 unsigned long newptbr;
103 unsigned long original_pcb_ptr;
114 if (
hwrpb->vptb != 0xfffffffe00000000UL) {
115 wrvptptr(0xfffffffe00000000UL);
116 hwrpb->vptb = 0xfffffffe00000000
UL;
117 hwrpb_update_checksum(
hwrpb);
134 original_pcb_ptr = (
unsigned long)
137 original_pcb = *(
struct pcb_struct *) original_pcb_ptr;
153 if (alpha_using_srm) {
182 memset(two_pages, 0, 2*PAGE_SIZE);
189 if (alpha_using_srm) {
190 static struct vm_struct console_remap_vm;
197 nr_pages += crb->
map[i].count;
204 vaddr = (
unsigned long)console_remap_vm.
addr;
211 for (j = 0; j < crb->
map[
i].count; ++
j) {
216 memset(kernel_end, 0, PAGE_SIZE);
229 callback_init_done = 1;
234 #ifndef CONFIG_DISCONTIGMEM
240 unsigned long zones_size[MAX_NR_ZONES] = {0, };
241 unsigned long dma_pfn, high_pfn;
246 if (dma_pfn >= high_pfn)
247 zones_size[ZONE_DMA] = high_pfn;
249 zones_size[ZONE_DMA] = dma_pfn;
261 #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_SRM)
268 wrvptptr(0x200000000UL);
270 hwrpb_update_checksum(
hwrpb);
273 load_PCB(&original_pcb);
278 #ifndef CONFIG_DISCONTIGMEM
280 printk_memory_info(
void)
282 unsigned long codesize, reservedpages, datasize, initsize,
tmp;
296 codesize = (
unsigned long) &_etext - (
unsigned long) &_text;
297 datasize = (
unsigned long) &_edata - (
unsigned long) &_data;
298 initsize = (
unsigned long) &__init_end - (
unsigned long) &__init_begin;
300 printk(
"Memory: %luk/%luk available (%luk kernel code, %luk reserved, %luk data, %luk init)\n",
316 printk_memory_info();
335 extern char __init_begin, __init_end;
338 printk (
"Freeing unused kernel memory: %ldk freed\n",
339 (&__init_end - &__init_begin) >> 10);
342 #ifdef CONFIG_BLK_DEV_INITRD
347 printk (
"Freeing initrd memory: %ldk freed\n", (end - start) >> 10);