Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
bingbingbingbing
mono
提交
d8e16698
M
mono
项目概览
bingbingbingbing
/
mono
与 Fork 源项目一致
从无法访问的项目Fork
通知
35
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mono
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d8e16698
编写于
8月 25, 2010
作者:
R
Robert Nagy
提交者:
Zoltan Varga
8月 25, 2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make sgen compile on OpenBSD, by adding the missing stuff
上级
f76a4bf8
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
12 addition
and
7 deletion
+12
-7
configure.in
configure.in
+2
-2
mono/metadata/sgen-gc.c
mono/metadata/sgen-gc.c
+5
-4
mono/metadata/sgen-gc.h
mono/metadata/sgen-gc.h
+1
-1
mono/utils/mono-sigcontext.h
mono/utils/mono-sigcontext.h
+4
-0
未找到文件。
configure.in
浏览文件 @
d8e16698
...
...
@@ -2129,7 +2129,7 @@ case "$host" in
haiku*)
LIBC=libroot.so
;;
linux*|darwin*)
linux*|darwin*
|openbsd*
)
sgen_supported=true
;;
esac
...
...
@@ -2140,7 +2140,7 @@ case "$host" in
JIT_SUPPORTED=yes
jit_wanted=true
case $host_os in
linux*|darwin*)
linux*|darwin*
|openbsd*
)
sgen_supported=true
;;
esac
...
...
mono/metadata/sgen-gc.c
浏览文件 @
d8e16698
...
...
@@ -4565,11 +4565,12 @@ suspend_handler (int sig, siginfo_t *siginfo, void *context)
int
old_errno
=
errno
;
gpointer
regs
[
ARCH_NUM_REGS
];
gpointer
stack_start
;
ucontext_t
*
ctx
=
(
ucontext_t
*
)
context
;
id
=
pthread_self
();
info
=
mono_sgen_thread_info_lookup
(
id
);
info
->
stopped_domain
=
mono_domain_get
();
info
->
stopped_ip
=
(
gpointer
)
ARCH_SIGCTX_IP
(
c
ontext
);
info
->
stopped_ip
=
(
gpointer
)
ARCH_SIGCTX_IP
(
c
tx
);
stop_count
=
global_stop_count
;
/* duplicate signal */
if
(
0
&&
info
->
stop_count
==
stop_count
)
{
...
...
@@ -4580,13 +4581,13 @@ suspend_handler (int sig, siginfo_t *siginfo, void *context)
/* update the remset info in the thread data structure */
info
->
remset
=
remembered_set
;
#endif
stack_start
=
(
char
*
)
ARCH_SIGCTX_SP
(
c
ontext
)
-
REDZONE_SIZE
;
stack_start
=
(
char
*
)
ARCH_SIGCTX_SP
(
c
tx
)
-
REDZONE_SIZE
;
/* If stack_start is not within the limits, then don't set it
in info and we will be restarted. */
if
(
stack_start
>=
info
->
stack_start_limit
&&
info
->
stack_start
<=
info
->
stack_end
)
{
info
->
stack_start
=
stack_start
;
ARCH_COPY_SIGCTX_REGS
(
regs
,
c
ontext
);
ARCH_COPY_SIGCTX_REGS
(
regs
,
c
tx
);
info
->
stopped_regs
=
regs
;
}
else
{
g_assert
(
!
info
->
stack_start
);
...
...
@@ -4594,7 +4595,7 @@ suspend_handler (int sig, siginfo_t *siginfo, void *context)
/* Notify the JIT */
if
(
gc_callbacks
.
thread_suspend_func
)
gc_callbacks
.
thread_suspend_func
(
info
->
runtime_data
,
c
ontext
);
gc_callbacks
.
thread_suspend_func
(
info
->
runtime_data
,
c
tx
);
DEBUG
(
4
,
fprintf
(
gc_debug_file
,
"Posting suspend_ack_semaphore for suspend from %p %p
\n
"
,
info
,
(
gpointer
)
ARCH_GET_THREAD
()));
/* notify the waiting thread */
...
...
mono/metadata/sgen-gc.h
浏览文件 @
d8e16698
...
...
@@ -178,7 +178,7 @@ struct _GCMemSection {
typedef
struct
_SgenPinnedChunk
SgenPinnedChunk
;
#if
def __APPLE__
#if
defined(__APPLE__) || defined(__OpenBSD__)
const
static
int
suspend_signal_num
=
SIGXFSZ
;
#else
const
static
int
suspend_signal_num
=
SIGPWR
;
...
...
mono/utils/mono-sigcontext.h
浏览文件 @
d8e16698
...
...
@@ -112,6 +112,10 @@
#define UCONTEXT_REG_RSI(ctx) ((ctx)->sc_rsi)
#define UCONTEXT_REG_RDI(ctx) ((ctx)->sc_rdi)
#define UCONTEXT_REG_RIP(ctx) ((ctx)->sc_rip)
#define UCONTEXT_REG_R8(ctx) ((ctx)->sc_r8)
#define UCONTEXT_REG_R9(ctx) ((ctx)->sc_r9)
#define UCONTEXT_REG_R10(ctx) ((ctx)->sc_r10)
#define UCONTEXT_REG_R11(ctx) ((ctx)->sc_r11)
#define UCONTEXT_REG_R12(ctx) ((ctx)->sc_r12)
#define UCONTEXT_REG_R13(ctx) ((ctx)->sc_r13)
#define UCONTEXT_REG_R14(ctx) ((ctx)->sc_r14)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录