Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
mm
maccess.c
Go to the documentation of this file.
1
/*
2
* Access kernel memory without faulting.
3
*/
4
#include <linux/export.h>
5
#include <
linux/mm.h
>
6
#include <
linux/uaccess.h
>
7
18
long
__weak
probe_kernel_read
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
19
__attribute__
((
alias
(
"__probe_kernel_read"
)));
20
21
long
__probe_kernel_read
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
22
{
23
long
ret
;
24
mm_segment_t
old_fs =
get_fs
();
25
26
set_fs
(
KERNEL_DS
);
27
pagefault_disable();
28
ret =
__copy_from_user_inatomic
(dst,
29
(
__force
const
void
__user
*)src, size);
30
pagefault_enable();
31
set_fs
(old_fs);
32
33
return
ret ? -
EFAULT
: 0;
34
}
35
EXPORT_SYMBOL_GPL
(
probe_kernel_read
);
36
46
long
__weak
probe_kernel_write
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
47
__attribute__
((
alias
(
"__probe_kernel_write"
)));
48
49
long
__probe_kernel_write
(
void
*
dst
,
const
void
*
src
,
size_t
size
)
50
{
51
long
ret
;
52
mm_segment_t
old_fs =
get_fs
();
53
54
set_fs
(
KERNEL_DS
);
55
pagefault_disable();
56
ret =
__copy_to_user_inatomic
((
__force
void
__user
*)dst, src, size);
57
pagefault_enable();
58
set_fs
(old_fs);
59
60
return
ret ? -
EFAULT
: 0;
61
}
62
EXPORT_SYMBOL_GPL
(
probe_kernel_write
);
Generated on Thu Jan 10 2013 13:04:48 for Linux Kernel by
1.8.2