Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
60c9af07
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
60c9af07
编写于
11月 22, 2009
作者:
A
Aurelien Jarno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
target-mips: fix physical address type in MMU functions
Signed-off-by:
N
Aurelien Jarno
<
aurelien@aurel32.net
>
上级
c0d674b5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
11 deletion
+11
-11
target-mips/cpu.h
target-mips/cpu.h
+4
-4
target-mips/helper.c
target-mips/helper.c
+7
-7
未找到文件。
target-mips/cpu.h
浏览文件 @
60c9af07
...
...
@@ -40,7 +40,7 @@ typedef struct CPUMIPSTLBContext CPUMIPSTLBContext;
struct
CPUMIPSTLBContext
{
uint32_t
nb_tlb
;
uint32_t
tlb_in_use
;
int
(
*
map_address
)
(
struct
CPUMIPSState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
);
int
(
*
map_address
)
(
struct
CPUMIPSState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
);
void
(
*
helper_tlbwi
)
(
void
);
void
(
*
helper_tlbwr
)
(
void
);
void
(
*
helper_tlbp
)
(
void
);
...
...
@@ -466,11 +466,11 @@ struct CPUMIPSState {
struct
QEMUTimer
*
timer
;
/* Internal timer */
};
int
no_mmu_map_address
(
CPUMIPSState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
int
no_mmu_map_address
(
CPUMIPSState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
);
int
fixed_mmu_map_address
(
CPUMIPSState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
int
fixed_mmu_map_address
(
CPUMIPSState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
);
int
r4k_map_address
(
CPUMIPSState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
int
r4k_map_address
(
CPUMIPSState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
);
void
r4k_helper_tlbwi
(
void
);
void
r4k_helper_tlbwr
(
void
);
...
...
target-mips/helper.c
浏览文件 @
60c9af07
...
...
@@ -35,7 +35,7 @@ enum {
};
/* no MMU emulation */
int
no_mmu_map_address
(
CPUState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
int
no_mmu_map_address
(
CPUState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
)
{
*
physical
=
address
;
...
...
@@ -44,7 +44,7 @@ int no_mmu_map_address (CPUState *env, target_ulong *physical, int *prot,
}
/* fixed mapping MMU emulation */
int
fixed_mmu_map_address
(
CPUState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
int
fixed_mmu_map_address
(
CPUState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
)
{
if
(
address
<=
(
int32_t
)
0x7FFFFFFFUL
)
{
...
...
@@ -62,7 +62,7 @@ int fixed_mmu_map_address (CPUState *env, target_ulong *physical, int *prot,
}
/* MIPS32/MIPS64 R4000-style MMU emulation */
int
r4k_map_address
(
CPUState
*
env
,
target_
ulong
*
physical
,
int
*
prot
,
int
r4k_map_address
(
CPUState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
)
{
uint8_t
ASID
=
env
->
CP0_EntryHi
&
0xFF
;
...
...
@@ -99,7 +99,7 @@ int r4k_map_address (CPUState *env, target_ulong *physical, int *prot,
}
#if !defined(CONFIG_USER_ONLY)
static
int
get_physical_address
(
CPUState
*
env
,
target_
ulong
*
physical
,
static
int
get_physical_address
(
CPUState
*
env
,
target_
phys_addr_t
*
physical
,
int
*
prot
,
target_ulong
address
,
int
rw
,
int
access_type
)
{
...
...
@@ -206,7 +206,7 @@ target_phys_addr_t cpu_get_phys_page_debug(CPUState *env, target_ulong addr)
#if defined(CONFIG_USER_ONLY)
return
addr
;
#else
target_
ulong
phys_addr
;
target_
phys_addr_t
phys_addr
;
int
prot
;
if
(
get_physical_address
(
env
,
&
phys_addr
,
&
prot
,
addr
,
0
,
ACCESS_INT
)
!=
0
)
...
...
@@ -219,7 +219,7 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
int
mmu_idx
,
int
is_softmmu
)
{
#if !defined(CONFIG_USER_ONLY)
target_
ulong
physical
;
target_
phys_addr_t
physical
;
int
prot
;
#endif
int
exception
=
0
,
error_code
=
0
;
...
...
@@ -243,7 +243,7 @@ int cpu_mips_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
#else
ret
=
get_physical_address
(
env
,
&
physical
,
&
prot
,
address
,
rw
,
access_type
);
qemu_log
(
"%s address="
TARGET_FMT_lx
" ret %d physical "
TARGET_FMT_lx
" prot %d
\n
"
,
qemu_log
(
"%s address="
TARGET_FMT_lx
" ret %d physical "
TARGET_FMT_
p
lx
" prot %d
\n
"
,
__func__
,
address
,
ret
,
physical
,
prot
);
if
(
ret
==
TLBRET_MATCH
)
{
ret
=
tlb_set_page
(
env
,
address
&
TARGET_PAGE_MASK
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录