Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
xv6-public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
问题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
银宸时代
OS Lab Group
奖励实验
xv6-public
提交
1fb7b9c5
提交
1fb7b9c5
3月 24, 2012
创建
作者:
Nickolai Zeldovich
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
pass fork flags to forkt
上级
296bdfb1
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
4 行增加
和
3 行删除
+4
-3
user.h
include/user.h
+1
-1
threads.cc
lib/threads.cc
+2
-1
uthread.S
lib/uthread.S
+1
-1
没有找到文件。
include/user.h
浏览文件 @
1fb7b9c5
...
...
@@ -54,7 +54,7 @@ void free(void*);
int
atoi
(
const
char
*
);
// uthread.S
int
forkt
(
void
*
sp
,
void
*
pc
,
void
*
arg
);
int
forkt
(
void
*
sp
,
void
*
pc
,
void
*
arg
,
int
forkflags
);
void
forkt_setup
(
u64
pid
);
// printf.c
...
...
lib/threads.cc
浏览文件 @
1fb7b9c5
...
...
@@ -2,6 +2,7 @@
#include "pthread.h"
#include "user.h"
#include "atomic.hh"
#include "fcntl.h"
enum
{
stack_size
=
8192
};
static
std
::
atomic
<
int
>
nextkey
;
...
...
@@ -22,7 +23,7 @@ pthread_create(pthread_t* tid, const pthread_attr_t* attr,
void
*
(
*
start
)(
void
*
),
void
*
arg
)
{
char
*
base
=
(
char
*
)
sbrk
(
stack_size
);
int
t
=
forkt
(
base
+
stack_size
,
(
void
*
)
start
,
arg
);
int
t
=
forkt
(
base
+
stack_size
,
(
void
*
)
start
,
arg
,
FORK_SHARE_VMAP
);
if
(
t
<
0
)
return
t
;
...
...
lib/uthread.S
浏览文件 @
1fb7b9c5
...
...
@@ -12,7 +12,7 @@ forkt:
movq %rdx, 0x00(%r12) # arg
movq %rsi, 0x08(%r12) # function ptr
movq
$1, %rdi
# flag for sys_fork
movq
%rcx, %rdi
# flag for sys_fork
movq $SYS_fork, %rax
syscall
...
...
编写
预览
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论