Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
c1ee7eb4
提交
c1ee7eb4
8月 28, 2012
创建
作者:
Robert Morris
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git+ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6
上级
8960f60b
951b77f7
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
27 行增加
和
16 行删除
+27
-16
defs.h
defs.h
+2
-2
exec.c
exec.c
+1
-1
lapic.c
lapic.c
+1
-1
main.c
main.c
+2
-2
printpcs
printpcs
+14
-0
proc.c
proc.c
+1
-1
syscall.c
syscall.c
+1
-3
syscall.h
syscall.h
+0
-1
vm.c
vm.c
+5
-5
没有找到文件。
defs.h
浏览文件 @
c1ee7eb4
...
...
@@ -74,7 +74,7 @@ void kbdintr(void);
int
cpunum
(
void
);
extern
volatile
uint
*
lapic
;
void
lapiceoi
(
void
);
void
lapicinit
(
int
);
void
lapicinit
(
void
);
void
lapicstartap
(
uchar
,
uint
);
void
microdelay
(
int
);
...
...
@@ -164,7 +164,7 @@ void uartputc(int);
void
seginit
(
void
);
void
kvmalloc
(
void
);
void
vmenable
(
void
);
pde_t
*
setupkvm
();
pde_t
*
setupkvm
(
void
);
char
*
uva2ka
(
pde_t
*
,
char
*
);
int
allocuvm
(
pde_t
*
,
uint
,
uint
);
int
deallocuvm
(
pde_t
*
,
uint
,
uint
);
...
...
exec.c
浏览文件 @
c1ee7eb4
...
...
@@ -29,7 +29,7 @@ exec(char *path, char **argv)
if
(
elf
.
magic
!=
ELF_MAGIC
)
goto
bad
;
if
((
pgdir
=
setupkvm
(
kalloc
))
==
0
)
if
((
pgdir
=
setupkvm
())
==
0
)
goto
bad
;
// Load program into memory.
...
...
lapic.c
浏览文件 @
c1ee7eb4
...
...
@@ -50,7 +50,7 @@ lapicw(int index, int value)
//PAGEBREAK!
void
lapicinit
(
int
c
)
lapicinit
(
void
)
{
if
(
!
lapic
)
return
;
...
...
main.c
浏览文件 @
c1ee7eb4
...
...
@@ -20,7 +20,7 @@ main(void)
kinit1
(
end
,
P2V
(
4
*
1024
*
1024
));
// phys page allocator
kvmalloc
();
// kernel page table
mpinit
();
// collect info about this machine
lapicinit
(
mpbcpu
()
);
lapicinit
();
seginit
();
// set up segments
cprintf
(
"
\n
cpu%d: starting xv6
\n\n
"
,
cpu
->
id
);
picinit
();
// interrupt controller
...
...
@@ -48,7 +48,7 @@ mpenter(void)
{
switchkvm
();
seginit
();
lapicinit
(
cpunum
()
);
lapicinit
();
mpmain
();
}
...
...
printpcs
0 → 100755
浏览文件 @
c1ee7eb4
#!/bin/sh
# Decode the symbols from a panic EIP list
# Find a working addr2line
for
p
in
i386-jos-elf-addr2line addr2line
;
do
if
which
$p
2>&1
>
/dev/null
&&
\
$p
-h
2>&1 |
grep
-q
'\belf32-i386\b'
;
then
break
fi
done
# Enable as much pretty-printing as this addr2line can do
$p
$(
$p
-h
|
grep
' -[aipsf] '
|
awk
'{print $1}'
)
-e
kernel
"
$@
"
proc.c
浏览文件 @
c1ee7eb4
...
...
@@ -83,7 +83,7 @@ userinit(void)
p
=
allocproc
();
initproc
=
p
;
if
((
p
->
pgdir
=
setupkvm
(
kalloc
))
==
0
)
if
((
p
->
pgdir
=
setupkvm
())
==
0
)
panic
(
"userinit: out of memory?"
);
inituvm
(
p
->
pgdir
,
_binary_initcode_start
,
(
int
)
_binary_initcode_size
);
p
->
sz
=
PGSIZE
;
...
...
syscall.c
浏览文件 @
c1ee7eb4
...
...
@@ -129,9 +129,7 @@ syscall(void)
int
num
;
num
=
proc
->
tf
->
eax
;
if
(
num
>=
0
&&
num
<
SYS_open
&&
syscalls
[
num
])
{
proc
->
tf
->
eax
=
syscalls
[
num
]();
}
else
if
(
num
>=
SYS_open
&&
num
<
NELEM
(
syscalls
)
&&
syscalls
[
num
])
{
if
(
num
>
0
&&
num
<
NELEM
(
syscalls
)
&&
syscalls
[
num
])
{
proc
->
tf
->
eax
=
syscalls
[
num
]();
}
else
{
cprintf
(
"%d %s: unknown sys call %d
\n
"
,
...
...
syscall.h
浏览文件 @
c1ee7eb4
...
...
@@ -13,7 +13,6 @@
#define SYS_sbrk 12
#define SYS_sleep 13
#define SYS_uptime 14
#define SYS_open 15
#define SYS_write 16
#define SYS_mknod 17
...
...
vm.c
浏览文件 @
c1ee7eb4
...
...
@@ -118,15 +118,15 @@ static struct kmap {
uint
phys_end
;
int
perm
;
}
kmap
[]
=
{
{
(
void
*
)
KERNBASE
,
0
,
EXTMEM
,
PTE_W
},
// I/O space
{
(
void
*
)
KERNLINK
,
V2P
(
KERNLINK
),
V2P
(
data
),
0
},
// kernel text+rodata
{
(
void
*
)
data
,
V2P
(
data
),
PHYSTOP
,
PTE_W
},
// kernel data,
memory
{
(
void
*
)
DEVSPACE
,
DEVSPACE
,
0
,
PTE_W
},
// more devices
{
(
void
*
)
KERNBASE
,
0
,
EXTMEM
,
PTE_W
},
// I/O space
{
(
void
*
)
KERNLINK
,
V2P
(
KERNLINK
),
V2P
(
data
),
0
},
// kernel text+rodata
{
(
void
*
)
data
,
V2P
(
data
),
PHYSTOP
,
PTE_W
},
// kernel data+
memory
{
(
void
*
)
DEVSPACE
,
DEVSPACE
,
0
,
PTE_W
},
// more devices
};
// Set up kernel part of a page table.
pde_t
*
setupkvm
()
setupkvm
(
void
)
{
pde_t
*
pgdir
;
struct
kmap
*
k
;
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论