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
sysdev
bestcomm
sram.h
Go to the documentation of this file.
1
/*
2
* Handling of a sram zone for bestcomm
3
*
4
*
5
* Copyright (C) 2007 Sylvain Munaut <
[email protected]
>
6
*
7
* This file is licensed under the terms of the GNU General Public License
8
* version 2. This program is licensed "as is" without any warranty of any
9
* kind, whether express or implied.
10
*/
11
12
#ifndef __BESTCOMM_SRAM_H__
13
#define __BESTCOMM_SRAM_H__
14
15
#include <
asm/rheap.h
>
16
#include <asm/mmu.h>
17
#include <
linux/spinlock.h
>
18
19
20
/* Structure used internally */
21
/* The internals are here for the inline functions
22
* sake, certainly not for the user to mess with !
23
*/
24
struct
bcom_sram
{
25
phys_addr_t
base_phys
;
26
void
*
base_virt
;
27
unsigned
int
size
;
28
rh_info_t
*
rh
;
29
spinlock_t
lock
;
30
};
31
32
extern
struct
bcom_sram
*
bcom_sram
;
33
34
35
/* Public API */
36
extern
int
bcom_sram_init
(
struct
device_node
*sram_node,
char
*
owner
);
37
extern
void
bcom_sram_cleanup
(
void
);
38
39
extern
void
*
bcom_sram_alloc
(
int
size
,
int
align
,
phys_addr_t
*
phys
);
40
extern
void
bcom_sram_free
(
void
*
ptr
);
41
42
static
inline
phys_addr_t
bcom_sram_va2pa(
void
*
va
) {
43
return
bcom_sram->
base_phys
+
44
(
unsigned
long
)(va - bcom_sram->
base_virt
);
45
}
46
47
static
inline
void
*bcom_sram_pa2va(
phys_addr_t
pa) {
48
return
bcom_sram->
base_virt
+
49
(
unsigned
long
)(pa - bcom_sram->
base_phys
);
50
}
51
52
53
#endif
/* __BESTCOMM_SRAM_H__ */
54
Generated on Thu Jan 10 2013 12:58:31 for Linux Kernel by
1.8.2