Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
um
kernel
skas
process.c
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
3
* Licensed under the GPL
4
*/
5
6
#include <
linux/init.h
>
7
#include <linux/sched.h>
8
#include <
as-layout.h
>
9
#include <
kern.h
>
10
#include <os.h>
11
#include <
skas.h
>
12
13
int
new_mm
(
unsigned
long
stack
)
14
{
15
int
fd
,
err
;
16
17
fd =
os_open_file
(
"/proc/mm"
, of_cloexec(of_write(
OPENFLAGS
())), 0);
18
if
(fd < 0)
19
return
fd
;
20
21
if
(
skas_needs_stub
) {
22
err =
map_stub_pages
(fd,
STUB_CODE
,
STUB_DATA
, stack);
23
if
(err) {
24
os_close_file
(fd);
25
return
err
;
26
}
27
}
28
29
return
fd
;
30
}
31
32
extern
void
start_kernel
(
void
);
33
34
static
int
__init
start_kernel_proc(
void
*
unused
)
35
{
36
int
pid
;
37
38
block_signals
();
39
pid =
os_getpid
();
40
41
cpu_tasks
[0].pid =
pid
;
42
cpu_tasks
[0].task =
current
;
43
#ifdef CONFIG_SMP
44
init_cpu_online
(get_cpu_mask(0));
45
#endif
46
start_kernel
();
47
return
0;
48
}
49
50
extern
int
userspace_pid
[];
51
52
extern
char
cpu0_irqstack
[];
53
54
int
__init
start_uml
(
void
)
55
{
56
stack_protections
((
unsigned
long
) &cpu0_irqstack);
57
set_sigstack
(cpu0_irqstack,
THREAD_SIZE
);
58
if
(
proc_mm
) {
59
userspace_pid[0] =
start_userspace
(0);
60
if
(userspace_pid[0] < 0) {
61
printf
(
"start_uml - start_userspace returned %d\n"
,
62
userspace_pid[0]);
63
exit
(1);
64
}
65
}
66
67
init_new_thread_signals
();
68
69
init_task
.thread.request.u.thread.proc = start_kernel_proc;
70
init_task
.thread.request.u.thread.arg =
NULL
;
71
return
start_idle_thread
(
task_stack_page
(&
init_task
),
72
&
init_task
.thread.switch_buf);
73
}
74
75
unsigned
long
current_stub_stack
(
void
)
76
{
77
if
(
current
->mm ==
NULL
)
78
return
0;
79
80
return
current
->mm->context.id.stack;
81
}
Generated on Thu Jan 10 2013 12:52:27 for Linux Kernel by
1.8.2