#include "net_user.h"
 #include "os.h"
 #include "um_malloc.h"
+#include "kern_constants.h"
 
 int tap_open_common(void *dev, char *gate_addr)
 {
        sprintf(netmask_buf, "%d.%d.%d.%d", netmask[0], netmask[1], 
                netmask[2], netmask[3]);
 
-       output_len = page_size();
+       output_len = UM_KERN_PAGE_SIZE;
        output = um_kmalloc(output_len);
        if(output == NULL)
                printk("change : failed to allocate output buffer\n");
 
 #include "slip_common.h"
 #include "os.h"
 #include "um_malloc.h"
+#include "kern_constants.h"
 
 static int slip_user_init(void *data, void *dev)
 {
                goto out_close;
        pid = err;
 
-       output_len = page_size();
+       output_len = UM_KERN_PAGE_SIZE;
        output = um_kmalloc(output_len);
        if(output == NULL){
                printk("slip_tramp : failed to allocate output buffer\n");
 
 extern int is_tracing(void *task);
 extern int segv_syscall(void);
 extern void kern_finish_exec(void *task, int new_pid, unsigned long stack);
-extern int page_size(void);
 extern unsigned long page_mask(void);
 extern int need_finish_fork(void);
 extern void free_stack(unsigned long stack, int order);
 
        CHOOSE_MODE(init_idle_tt(), init_idle_skas());
 }
 
-int page_size(void)
-{
-       return PAGE_SIZE;
-}
-
 void *um_virt_to_phys(struct task_struct *task, unsigned long addr,
                      pte_t *pte_out)
 {
 
 #include "etap.h"
 #include "os.h"
 #include "um_malloc.h"
+#include "kern_constants.h"
 
 #define MAX_PACKET ETH_MAX_PACKET
 
        n = os_write_file(fd, &change, sizeof(change));
        if(n != sizeof(change))
                printk("etap_change - request failed, err = %d\n", -n);
-       output = um_kmalloc(page_size());
+       output = um_kmalloc(UM_KERN_PAGE_SIZE);
        if(output == NULL)
                printk("etap_change : Failed to allocate output buffer\n");
-       read_output(fd, output, page_size());
+       read_output(fd, output, UM_KERN_PAGE_SIZE);
        if(output != NULL){
                printk("%s", output);
                kfree(output);
 
        err = etap_tramp(pri->dev_name, pri->gate_addr, control_fds[0], 
                         control_fds[1], data_fds[0], data_fds[1]);
-       output_len = page_size();
+       output_len = UM_KERN_PAGE_SIZE;
        output = um_kmalloc(output_len);
        read_output(control_fds[0], output, output_len);
 
 
 #include "kern_util.h"
 #include "os.h"
 #include "um_malloc.h"
+#include "kern_constants.h"
 
 struct helper_data {
        void (*pre_exec)(void*);
                goto out_close;
        }
 
-       sp = stack + page_size() - sizeof(void *);
+       sp = stack + UM_KERN_PAGE_SIZE - sizeof(void *);
        data.pre_exec = pre_exec;
        data.pre_data = pre_data;
        data.argv = argv;
        if (stack == 0)
                return -ENOMEM;
 
-       sp = stack + (page_size() << stack_order) - sizeof(void *);
+       sp = stack + (UM_KERN_PAGE_SIZE << stack_order) - sizeof(void *);
        pid = clone(proc, (void *) sp, flags | SIGCHLD, arg);
        if (pid < 0) {
                err = -errno;
 
 
        if(sig_stack != NULL){
                pages = (1 << UML_CONFIG_KERNEL_STACK_ORDER);
-               set_sigstack(sig_stack, pages * page_size());
+               set_sigstack(sig_stack, pages * UM_KERN_PAGE_SIZE);
                flags = SA_ONSTACK;
        }
        if(usr1_handler){
 
 #include "uml-config.h"
 #include "process.h"
 #include "longjmp.h"
+#include "kern_constants.h"
 
 int is_skas_winch(int pid, int fd, void *data)
 {
                int fd;
                __u64 offset;
                fd = phys_mapping(to_phys(&__syscall_stub_start), &offset);
-               addr = mmap64((void *) UML_CONFIG_STUB_CODE, page_size(),
+               addr = mmap64((void *) UML_CONFIG_STUB_CODE, UM_KERN_PAGE_SIZE,
                              PROT_EXEC, MAP_FIXED | MAP_PRIVATE, fd, offset);
                if(addr == MAP_FAILED){
                        printk("mapping mmap stub failed, errno = %d\n",
 
                if(stack != NULL){
                        fd = phys_mapping(to_phys(stack), &offset);
-                       addr = mmap((void *) UML_CONFIG_STUB_DATA, page_size(),
-                                   PROT_READ | PROT_WRITE,
+                       addr = mmap((void *) UML_CONFIG_STUB_DATA,
+                                   UM_KERN_PAGE_SIZE, PROT_READ | PROT_WRITE,
                                    MAP_FIXED | MAP_SHARED, fd, offset);
                        if(addr == MAP_FAILED){
                                printk("mapping segfault stack failed, "
                                  (unsigned long) stub_segv_handler -
                                  (unsigned long) &__syscall_stub_start;
 
-               set_sigstack((void *) UML_CONFIG_STUB_DATA, page_size());
+               set_sigstack((void *) UML_CONFIG_STUB_DATA, UM_KERN_PAGE_SIZE);
                sigemptyset(&sa.sa_mask);
                sigaddset(&sa.sa_mask, SIGIO);
                sigaddset(&sa.sa_mask, SIGWINCH);
 
 #include "choose-mode.h"
 #include "mode.h"
 #include "tempfile.h"
+#include "kern_constants.h"
 
 int protect_memory(unsigned long addr, unsigned long len, int r, int w, int x,
                   int must_succeed)
        int sig = sigkill;
 
        t = arg;
-       t->pid = clone(t->tramp, (void *) t->temp_stack + page_size()/2,
+       t->pid = clone(t->tramp, (void *) t->temp_stack + UM_KERN_PAGE_SIZE/2,
                       t->flags, t->tramp_data);
        if(t->pid > 0) wait_for_stop(t->pid, SIGSTOP, PTRACE_CONT, NULL);
        kill(os_getpid(), sig);
 
 #include "uml-config.h"
 #include "os.h"
 #include "longjmp.h"
+#include "kern_constants.h"
 
 void stack_protections(unsigned long address)
 {
        int prot = PROT_READ | PROT_WRITE | PROT_EXEC;
 
-       if(mprotect((void *) address, page_size(), prot) < 0)
+       if(mprotect((void *) address, UM_KERN_PAGE_SIZE, prot) < 0)
                panic("protecting stack failed, errno = %d", errno);
 }
 
 void task_protections(unsigned long address)
 {
-       unsigned long guard = address + page_size();
-       unsigned long stack = guard + page_size();
+       unsigned long guard = address + UM_KERN_PAGE_SIZE;
+       unsigned long stack = guard + UM_KERN_PAGE_SIZE;
        int prot = 0, pages;
 
 #ifdef notdef
-       if(mprotect((void *) stack, page_size(), prot) < 0)
+       if(mprotect((void *) stack, UM_KERN_PAGE_SIZE, prot) < 0)
                panic("protecting guard page failed, errno = %d", errno);
 #endif
        pages = (1 << UML_CONFIG_KERNEL_STACK_ORDER) - 2;
        prot = PROT_READ | PROT_WRITE | PROT_EXEC;
-       if(mprotect((void *) stack, pages * page_size(), prot) < 0)
+       if(mprotect((void *) stack, pages * UM_KERN_PAGE_SIZE, prot) < 0)
                panic("protecting stack failed, errno = %d", errno);
 }