Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
94804a9b
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
94804a9b
编写于
3月 22, 2010
作者:
M
Michal Simek
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
microblaze: uaccess: Unify __copy_tofrom_user
Move to generic location. Signed-off-by:
N
Michal Simek
<
monstr@monstr.eu
>
上级
cca79120
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
39 deletion
+22
-39
arch/microblaze/include/asm/uaccess.h
arch/microblaze/include/asm/uaccess.h
+21
-38
arch/microblaze/lib/Makefile
arch/microblaze/lib/Makefile
+1
-1
未找到文件。
arch/microblaze/include/asm/uaccess.h
浏览文件 @
94804a9b
...
...
@@ -111,6 +111,9 @@ static inline int ___range_ok(unsigned long addr, unsigned long size)
# define __EX_TABLE_SECTION ".section .discard,\"a\"\n"
#endif
extern
unsigned
long
__copy_tofrom_user
(
void
__user
*
to
,
const
void
__user
*
from
,
unsigned
long
size
);
/* Return: number of not copied bytes, i.e. 0 if OK or non-zero if fail. */
static
inline
unsigned
long
__must_check
__clear_user
(
void
__user
*
to
,
unsigned
long
n
)
...
...
@@ -322,23 +325,6 @@ static inline long strncpy_from_user(char *dst,
return
res
;
}
static
inline
unsigned
long
__copy_tofrom_user
(
void
__user
*
to
,
const
void
__user
*
from
,
unsigned
long
size
)
{
memcpy
(
to
,
from
,
size
);
return
0
;
}
#define copy_to_user(to, from, n) (memcpy((to), (from), (n)), 0)
#define copy_from_user(to, from, n) (memcpy((to), (from), (n)), 0)
#define __copy_to_user(to, from, n) (copy_to_user((to), (from), (n)))
#define __copy_from_user(to, from, n) (copy_from_user((to), (from), (n)))
#define __copy_to_user_inatomic(to, from, n) \
(__copy_to_user((to), (from), (n)))
#define __copy_from_user_inatomic(to, from, n) \
(__copy_from_user((to), (from), (n)))
extern
long
strncpy_from_user
(
char
*
dst
,
const
char
*
src
,
long
count
);
extern
long
strnlen_user
(
const
char
*
src
,
long
count
);
...
...
@@ -350,8 +336,24 @@ extern long strnlen_user(const char *src, long count);
? __put_user((x), (ptr)) : -EFAULT; \
})
extern
unsigned
long
__copy_tofrom_user
(
void
__user
*
to
,
const
void
__user
*
from
,
unsigned
long
size
);
extern
int
__strncpy_user
(
char
*
to
,
const
char
__user
*
from
,
int
len
);
#define __strncpy_from_user __strncpy_user
static
inline
long
strncpy_from_user
(
char
*
dst
,
const
char
__user
*
src
,
long
count
)
{
if
(
!
access_ok
(
VERIFY_READ
,
src
,
1
))
return
-
EFAULT
;
return
__strncpy_from_user
(
dst
,
src
,
count
);
}
extern
int
__strnlen_user
(
const
char
__user
*
sstr
,
int
len
);
#define strnlen_user(str, len) \
(access_ok(VERIFY_READ, str, 1) ? __strnlen_user(str, len) : 0)
#endif
/* CONFIG_MMU */
#define __copy_from_user(to, from, n) \
__copy_tofrom_user((__force void __user *)(to), \
...
...
@@ -384,25 +386,6 @@ static inline long copy_to_user(void __user *to,
return
n
;
}
extern
int
__strncpy_user
(
char
*
to
,
const
char
__user
*
from
,
int
len
);
#define __strncpy_from_user __strncpy_user
static
inline
long
strncpy_from_user
(
char
*
dst
,
const
char
__user
*
src
,
long
count
)
{
if
(
!
access_ok
(
VERIFY_READ
,
src
,
1
))
return
-
EFAULT
;
return
__strncpy_from_user
(
dst
,
src
,
count
);
}
extern
int
__strnlen_user
(
const
char
__user
*
sstr
,
int
len
);
#define strnlen_user(str, len) \
(access_ok(VERIFY_READ, str, 1) ? __strnlen_user(str, len) : 0)
#endif
/* CONFIG_MMU */
#endif
/* __ASSEMBLY__ */
#endif
/* __KERNEL__ */
...
...
arch/microblaze/lib/Makefile
浏览文件 @
94804a9b
...
...
@@ -10,4 +10,4 @@ else
lib-y
+=
memcpy.o memmove.o
endif
lib-
$(CONFIG_MMU)
+=
uaccess_old.o
lib-
y
+=
uaccess_old.o
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录