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
arch
powerpc
lib
usercopy_64.c
Go to the documentation of this file.
1
/*
2
* Functions which are too large to be inlined.
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version
7
* 2 of the License, or (at your option) any later version.
8
*/
9
#include <linux/module.h>
10
#include <asm/uaccess.h>
11
12
unsigned
long
copy_from_user
(
void
*to,
const
void
__user *
from
,
unsigned
long
n
)
13
{
14
if
(
likely
(
access_ok
(
VERIFY_READ
, from, n)))
15
n =
__copy_from_user
(to, from, n);
16
else
17
memset
(to, 0, n);
18
return
n
;
19
}
20
21
unsigned
long
copy_to_user
(
void
__user *to,
const
void
*
from
,
unsigned
long
n
)
22
{
23
if
(
likely
(
access_ok
(
VERIFY_WRITE
, to, n)))
24
n =
__copy_to_user
(to, from, n);
25
return
n
;
26
}
27
28
unsigned
long
copy_in_user
(
void
__user *to,
const
void
__user *
from
,
29
unsigned
long
n
)
30
{
31
might_sleep
();
32
if
(
likely
(
access_ok
(
VERIFY_READ
, from, n) &&
33
access_ok
(
VERIFY_WRITE
, to, n)))
34
n =
__copy_tofrom_user
(to, from, n);
35
return
n
;
36
}
37
38
EXPORT_SYMBOL
(
copy_from_user
);
39
EXPORT_SYMBOL
(
copy_to_user
);
40
EXPORT_SYMBOL
(
copy_in_user
);
41
Generated on Thu Jan 10 2013 13:14:22 for Linux Kernel by
1.8.2