12345678910111213141516171819202122232425262728293031323334353637383940 |
- /*
- * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
- * Licensed under the GPL
- */
- #include "linux/kernel.h"
- #include "asm/current.h"
- #include "asm/page.h"
- #include "asm/signal.h"
- #include "asm/ptrace.h"
- #include "asm/uaccess.h"
- #include "asm/mmu_context.h"
- #include "tlb.h"
- #include "skas.h"
- #include "um_mmu.h"
- #include "os.h"
- void flush_thread_skas(void)
- {
- void *data = NULL;
- unsigned long end = proc_mm ? task_size : CONFIG_STUB_START;
- int ret;
- ret = unmap(¤t->mm->context.skas.id, 0, end, 1, &data);
- if(ret){
- printk("flush_thread_skas - clearing address space failed, "
- "err = %d\n", ret);
- force_sig(SIGKILL, current);
- }
- switch_mm_skas(¤t->mm->context.skas.id);
- }
- void start_thread_skas(struct pt_regs *regs, unsigned long eip,
- unsigned long esp)
- {
- set_fs(USER_DS);
- PT_REGS_IP(regs) = eip;
- PT_REGS_SP(regs) = esp;
- }
|