LCOV - code coverage report
Current view: top level - arch/um/kernel - exec.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 16 0.0 %
Date: 2023-04-06 08:38:28 Functions: 0 2 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
       4             :  */
       5             : 
       6             : #include <linux/stddef.h>
       7             : #include <linux/module.h>
       8             : #include <linux/fs.h>
       9             : #include <linux/ptrace.h>
      10             : #include <linux/sched/mm.h>
      11             : #include <linux/sched/task.h>
      12             : #include <linux/sched/task_stack.h>
      13             : #include <linux/slab.h>
      14             : #include <asm/current.h>
      15             : #include <asm/processor.h>
      16             : #include <linux/uaccess.h>
      17             : #include <as-layout.h>
      18             : #include <mem_user.h>
      19             : #include <registers.h>
      20             : #include <skas.h>
      21             : #include <os.h>
      22             : 
      23           0 : void flush_thread(void)
      24             : {
      25           0 :         void *data = NULL;
      26             :         int ret;
      27             : 
      28           0 :         arch_flush_thread(&current->thread.arch);
      29             : 
      30           0 :         ret = unmap(&current->mm->context.id, 0, TASK_SIZE, 1, &data);
      31           0 :         if (ret) {
      32           0 :                 printk(KERN_ERR "%s - clearing address space failed, err = %d\n",
      33             :                        __func__, ret);
      34           0 :                 force_sig(SIGKILL);
      35             :         }
      36           0 :         get_safe_registers(current_pt_regs()->regs.gp,
      37           0 :                            current_pt_regs()->regs.fp);
      38             : 
      39           0 :         __switch_mm(&current->mm->context.id);
      40           0 : }
      41             : 
      42           0 : void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp)
      43             : {
      44           0 :         PT_REGS_IP(regs) = eip;
      45           0 :         PT_REGS_SP(regs) = esp;
      46           0 :         clear_thread_flag(TIF_SINGLESTEP);
      47             : #ifdef SUBARCH_EXECVE1
      48             :         SUBARCH_EXECVE1(regs->regs);
      49             : #endif
      50           0 : }
      51             : EXPORT_SYMBOL(start_thread);

Generated by: LCOV version 1.14