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
lib
iomap_copy.c
Go to the documentation of this file.
1
/*
2
* Copyright 2006 PathScale, Inc. All Rights Reserved.
3
*
4
* This file is free software; you can redistribute it and/or modify
5
* it under the terms of version 2 of the GNU General Public License
6
* as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software Foundation,
15
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16
*/
17
18
#include <linux/export.h>
19
#include <
linux/io.h
>
20
31
void
__attribute__
((weak))
__iowrite32_copy
(
void
__iomem
*to,
32
const
void
*
from
,
33
size_t
count
)
34
{
35
u32
__iomem
*
dst
= to;
36
const
u32
*
src
=
from
;
37
const
u32
*
end
= src +
count
;
38
39
while
(src < end)
40
__raw_writel
(*src++, dst++);
41
}
42
EXPORT_SYMBOL_GPL
(
__iowrite32_copy
);
43
54
void
__attribute__
((weak))
__iowrite64_copy
(
void
__iomem
*to,
55
const
void
*
from
,
56
size_t
count
)
57
{
58
#ifdef CONFIG_64BIT
59
u64
__iomem
*
dst
= to;
60
const
u64
*
src
=
from
;
61
const
u64
*
end
= src +
count
;
62
63
while
(src < end)
64
__raw_writeq
(*src++, dst++);
65
#else
66
__iowrite32_copy
(to, from, count * 2);
67
#endif
68
}
69
70
EXPORT_SYMBOL_GPL
(
__iowrite64_copy
);
Generated on Thu Jan 10 2013 14:55:39 for Linux Kernel by
1.8.2