Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
60cd49d5
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看板
提交
60cd49d5
编写于
3月 16, 2003
作者:
B
bellard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added stat64
git-svn-id:
svn://svn.savannah.nongnu.org/qemu/trunk@31
c046a42c-6fe2-441c-8c8c-71466251a162
上级
a300e691
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
65 addition
and
27 deletion
+65
-27
linux-user/syscall.c
linux-user/syscall.c
+41
-3
syscall-i386.h
syscall-i386.h
+24
-24
未找到文件。
linux-user/syscall.c
浏览文件 @
60cd49d5
...
...
@@ -1002,10 +1002,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
case
TARGET_NR_sigaction
:
#if 1
{
int
signum
=
arg1
;
struct
target_old_sigaction
*
tact
=
arg2
,
*
toldact
=
arg3
;
ret
=
0
;
}
break
;
#else
...
...
@@ -1464,9 +1461,37 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
case
TARGET_NR_ugetrlimit
:
case
TARGET_NR_truncate64
:
case
TARGET_NR_ftruncate64
:
goto
unimplemented
;
case
TARGET_NR_stat64
:
ret
=
get_errno
(
stat
((
const
char
*
)
arg1
,
&
st
));
goto
do_stat64
;
case
TARGET_NR_lstat64
:
ret
=
get_errno
(
lstat
((
const
char
*
)
arg1
,
&
st
));
goto
do_stat64
;
case
TARGET_NR_fstat64
:
{
ret
=
get_errno
(
fstat
(
arg1
,
&
st
));
do_stat64:
if
(
!
is_error
(
ret
))
{
struct
target_stat64
*
target_st
=
(
void
*
)
arg2
;
target_st
->
st_dev
=
tswap16
(
st
.
st_dev
);
target_st
->
st_ino
=
tswapl
(
st
.
st_ino
);
target_st
->
st_mode
=
tswap16
(
st
.
st_mode
);
target_st
->
st_nlink
=
tswap16
(
st
.
st_nlink
);
target_st
->
st_uid
=
tswap16
(
st
.
st_uid
);
target_st
->
st_gid
=
tswap16
(
st
.
st_gid
);
target_st
->
st_rdev
=
tswap16
(
st
.
st_rdev
);
/* XXX: better use of kernel struct */
target_st
->
st_size
=
tswapl
(
st
.
st_size
);
target_st
->
st_blksize
=
tswapl
(
st
.
st_blksize
);
target_st
->
st_blocks
=
tswapl
(
st
.
st_blocks
);
target_st
->
st_atime
=
tswapl
(
st
.
st_atime
);
target_st
->
st_mtime
=
tswapl
(
st
.
st_mtime
);
target_st
->
st_ctime
=
tswapl
(
st
.
st_ctime
);
}
}
break
;
case
TARGET_NR_lchown32
:
case
TARGET_NR_getuid32
:
case
TARGET_NR_getgid32
:
...
...
@@ -1490,7 +1515,20 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
case
TARGET_NR_mincore
:
case
TARGET_NR_madvise
:
case
TARGET_NR_getdents64
:
goto
unimplemented
;
#if TARGET_LONG_BITS == 32
case
TARGET_NR_fcntl64
:
switch
(
arg2
)
{
case
F_GETLK64
:
case
F_SETLK64
:
case
F_SETLKW64
:
goto
unimplemented
;
default:
ret
=
get_errno
(
fcntl
(
arg1
,
arg2
,
arg3
));
break
;
}
break
;
#endif
case
TARGET_NR_security
:
goto
unimplemented
;
case
TARGET_NR_gettid
:
...
...
syscall-i386.h
浏览文件 @
60cd49d5
...
...
@@ -245,24 +245,24 @@
struct
target_stat
{
unsigned
short
st_dev
;
unsigned
short
__pad1
;
unsigned
long
st_ino
;
target_u
long
st_ino
;
unsigned
short
st_mode
;
unsigned
short
st_nlink
;
unsigned
short
st_uid
;
unsigned
short
st_gid
;
unsigned
short
st_rdev
;
unsigned
short
__pad2
;
unsigned
long
st_size
;
unsigned
long
st_blksize
;
unsigned
long
st_blocks
;
unsigned
long
st_atime
;
unsigned
long
__unused1
;
unsigned
long
st_mtime
;
unsigned
long
__unused2
;
unsigned
long
st_ctime
;
unsigned
long
__unused3
;
unsigned
long
__unused4
;
unsigned
long
__unused5
;
target_u
long
st_size
;
target_u
long
st_blksize
;
target_u
long
st_blocks
;
target_u
long
st_atime
;
target_u
long
__unused1
;
target_u
long
st_mtime
;
target_u
long
__unused2
;
target_u
long
st_ctime
;
target_u
long
__unused3
;
target_u
long
__unused4
;
target_u
long
__unused5
;
};
/* This matches struct stat64 in glibc2.1, hence the absolutely
...
...
@@ -273,31 +273,31 @@ struct target_stat64 {
unsigned
char
__pad0
[
10
];
#define STAT64_HAS_BROKEN_ST_INO 1
unsigned
long
__st_ino
;
target_u
long
__st_ino
;
unsigned
int
st_mode
;
unsigned
int
st_nlink
;
unsigned
long
st_uid
;
unsigned
long
st_gid
;
target_u
long
st_uid
;
target_u
long
st_gid
;
unsigned
short
st_rdev
;
unsigned
char
__pad3
[
10
];
long
long
st_size
;
unsigned
long
st_blksize
;
target_u
long
st_blksize
;
unsigned
long
st_blocks
;
/* Number 512-byte blocks allocated. */
unsigned
long
__pad4
;
/* future possible st_blocks high bits */
target_u
long
st_blocks
;
/* Number 512-byte blocks allocated. */
target_u
long
__pad4
;
/* future possible st_blocks high bits */
unsigned
long
st_atime
;
unsigned
long
__pad5
;
target_u
long
st_atime
;
target_u
long
__pad5
;
unsigned
long
st_mtime
;
unsigned
long
__pad6
;
target_u
long
st_mtime
;
target_u
long
__pad6
;
unsigned
long
st_ctime
;
unsigned
long
__pad7
;
/* will be high 32 bits of ctime someday */
target_u
long
st_ctime
;
target_u
long
__pad7
;
/* will be high 32 bits of ctime someday */
unsigned
long
long
st_ino
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录