Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
ed01b3d2
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ed01b3d2
编写于
4月 27, 2009
作者:
R
Ralf Baechle
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MIPS: Make uaccess.h slightly more sparse friendly.
Signed-off-by:
N
Ralf Baechle
<
ralf@linux-mips.org
>
上级
d0aab922
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
12 deletion
+27
-12
arch/mips/include/asm/uaccess.h
arch/mips/include/asm/uaccess.h
+27
-12
未找到文件。
arch/mips/include/asm/uaccess.h
浏览文件 @
ed01b3d2
...
...
@@ -104,17 +104,17 @@
#define __access_mask get_fs().seg
#define __access_ok(addr, size, mask)
\
({
\
const volatile void __user *__up = addr;
\
unsigned long __
addr = (unsigned long) __up
; \
unsigned long __
size = size;
\
unsigned long __
mask = mask;
\
unsigned long __ok;
\
\
__ok = (signed long)(__mask & (__addr | (__addr + __size) |
\
__ua_size(__size)));
\
__ok == 0;
\
#define __access_ok(addr, size, mask) \
({ \
unsigned long __addr = (unsigned long) (addr);
\
unsigned long __
size = size
; \
unsigned long __
mask = mask;
\
unsigned long __
ok;
\
\
__chk_user_ptr(addr);
\
__ok = (signed long)(__mask & (__addr | (__addr + __size) | \
__ua_size(__size))); \
__ok == 0; \
})
#define access_ok(type, addr, size) \
...
...
@@ -235,6 +235,7 @@ do { \
({ \
int __gu_err; \
\
__chk_user_ptr(ptr); \
__get_user_common((x), size, ptr); \
__gu_err; \
})
...
...
@@ -315,6 +316,7 @@ do { \
__typeof__(*(ptr)) __pu_val; \
int __pu_err = 0; \
\
__chk_user_ptr(ptr); \
__pu_val = (x); \
switch (size) { \
case 1: __put_user_asm("sb", ptr); break; \
...
...
@@ -882,7 +884,20 @@ extern size_t __copy_user_inatomic(void *__to, const void *__from, size_t __n);
__cu_len; \
})
#define __copy_in_user(to, from, n) __copy_from_user(to, from, n)
#define __copy_in_user(to, from, n) \
({ \
void __user *__cu_to; \
const void __user *__cu_from; \
long __cu_len; \
\
might_sleep(); \
__cu_to = (to); \
__cu_from = (from); \
__cu_len = (n); \
__cu_len = __invoke_copy_from_user(__cu_to, __cu_from, \
__cu_len); \
__cu_len; \
})
#define copy_in_user(to, from, n) \
({ \
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录