2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
14 #include "user_util.h"
17 void remap_data(void *segment_start, void *segment_end, int w)
23 if(w) prot = PROT_WRITE;
25 prot |= PROT_READ | PROT_EXEC;
26 size = (unsigned long) segment_end -
27 (unsigned long) segment_start;
28 data = create_mem_file(size);
29 addr = mmap(NULL, size, PROT_WRITE | PROT_READ, MAP_SHARED, data, 0);
30 if(addr == MAP_FAILED){
31 perror("mapping new data segment");
34 memcpy(addr, segment_start, size);
35 if(switcheroo(data, prot, addr, segment_start, size) < 0){
36 printf("switcheroo failed\n");
42 * Overrides for Emacs so that we follow Linus's tabbing style.
43 * Emacs will notice this stuff at the end of the file and automatically
44 * adjust the settings for this buffer only. This must remain at the end
46 * ---------------------------------------------------------------------------
48 * c-file-style: "linux"