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