10d1fb0a4SAlex Dewar // SPDX-License-Identifier: GPL-2.0 21d3468a6SJeff Dike /* 3ba180fd4SJeff Dike * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 41d3468a6SJeff Dike */ 51d3468a6SJeff Dike 673395a00SAl Viro #include <linux/stddef.h> 773395a00SAl Viro #include <linux/module.h> 873395a00SAl Viro #include <linux/fs.h> 973395a00SAl Viro #include <linux/ptrace.h> 10589ee628SIngo Molnar #include <linux/sched/mm.h> 1129930025SIngo Molnar #include <linux/sched/task.h> 1268db0cf1SIngo Molnar #include <linux/sched/task_stack.h> 1373395a00SAl Viro #include <linux/slab.h> 1473395a00SAl Viro #include <asm/current.h> 1573395a00SAl Viro #include <asm/processor.h> 167c0f6ba6SLinus Torvalds #include <linux/uaccess.h> 1737185b33SAl Viro #include <as-layout.h> 1837185b33SAl Viro #include <mem_user.h> 19dbba7f70SAl Viro #include <registers.h> 2037185b33SAl Viro #include <skas.h> 2137185b33SAl Viro #include <os.h> 221d3468a6SJeff Dike flush_thread(void)231d3468a6SJeff Dikevoid flush_thread(void) 241d3468a6SJeff Dike { 251d3468a6SJeff Dike arch_flush_thread(¤t->thread.arch); 2677bf4400SJeff Dike 279436d5c3SAl Viro get_safe_registers(current_pt_regs()->regs.gp, 289436d5c3SAl Viro current_pt_regs()->regs.fp); 2977bf4400SJeff Dike 306c738ffaSJeff Dike __switch_mm(¤t->mm->context.id); 311d3468a6SJeff Dike } 321d3468a6SJeff Dike start_thread(struct pt_regs * regs,unsigned long eip,unsigned long esp)331d3468a6SJeff Dikevoid start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp) 341d3468a6SJeff Dike { 3577bf4400SJeff Dike PT_REGS_IP(regs) = eip; 3677bf4400SJeff Dike PT_REGS_SP(regs) = esp; 37*c200e4bbSEric W. Biederman clear_thread_flag(TIF_SINGLESTEP); 381d3468a6SJeff Dike } 3942459792SAl Viro EXPORT_SYMBOL(start_thread); 40