root/arch/um/include/asm/processor-generic.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. release_thread
  2. mm_copy_segments

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* 
   3  * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
   4  */
   5 
   6 #ifndef __UM_PROCESSOR_GENERIC_H
   7 #define __UM_PROCESSOR_GENERIC_H
   8 
   9 struct pt_regs;
  10 
  11 struct task_struct;
  12 
  13 #include <asm/ptrace.h>
  14 #include <registers.h>
  15 #include <sysdep/archsetjmp.h>
  16 
  17 #include <linux/prefetch.h>
  18 
  19 struct mm_struct;
  20 
  21 struct thread_struct {
  22         struct pt_regs regs;
  23         struct pt_regs *segv_regs;
  24         int singlestep_syscall;
  25         void *fault_addr;
  26         jmp_buf *fault_catcher;
  27         struct task_struct *prev_sched;
  28         struct arch_thread arch;
  29         jmp_buf switch_buf;
  30         struct {
  31                 int op;
  32                 union {
  33                         struct {
  34                                 int pid;
  35                         } fork, exec;
  36                         struct {
  37                                 int (*proc)(void *);
  38                                 void *arg;
  39                         } thread;
  40                         struct {
  41                                 void (*proc)(void *);
  42                                 void *arg;
  43                         } cb;
  44                 } u;
  45         } request;
  46 };
  47 
  48 #define INIT_THREAD \
  49 { \
  50         .regs                   = EMPTY_REGS,   \
  51         .fault_addr             = NULL, \
  52         .prev_sched             = NULL, \
  53         .arch                   = INIT_ARCH_THREAD, \
  54         .request                = { 0 } \
  55 }
  56 
  57 static inline void release_thread(struct task_struct *task)
  58 {
  59 }
  60 
  61 static inline void mm_copy_segments(struct mm_struct *from_mm,
  62                                     struct mm_struct *new_mm)
  63 {
  64 }
  65 
  66 /*
  67  * User space process size: 3GB (default).
  68  */
  69 extern unsigned long task_size;
  70 
  71 #define TASK_SIZE (task_size)
  72 
  73 #undef STACK_TOP
  74 #undef STACK_TOP_MAX
  75 
  76 extern unsigned long stacksizelim;
  77 
  78 #define STACK_ROOM      (stacksizelim)
  79 #define STACK_TOP       (TASK_SIZE - 2 * PAGE_SIZE)
  80 #define STACK_TOP_MAX   STACK_TOP
  81 
  82 /* This decides where the kernel will search for a free chunk of vm
  83  * space during mmap's.
  84  */
  85 #define TASK_UNMAPPED_BASE      (0x40000000)
  86 
  87 extern void start_thread(struct pt_regs *regs, unsigned long entry, 
  88                          unsigned long stack);
  89 
  90 struct cpuinfo_um {
  91         unsigned long loops_per_jiffy;
  92         int ipi_pipe[2];
  93 };
  94 
  95 extern struct cpuinfo_um boot_cpu_data;
  96 
  97 #define cpu_data (&boot_cpu_data)
  98 #define current_cpu_data boot_cpu_data
  99 
 100 #define KSTK_REG(tsk, reg) get_thread_reg(reg, &tsk->thread.switch_buf)
 101 extern unsigned long get_wchan(struct task_struct *p);
 102 
 103 #endif

/* [<][>][^][v][top][bottom][index][help] */