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
include
linux
pstore_ram.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2010 Marco Stornelli <
[email protected]
>
3
* Copyright (C) 2011 Kees Cook <
[email protected]
>
4
* Copyright (C) 2011 Google, Inc.
5
*
6
* This software is licensed under the terms of the GNU General Public
7
* License version 2, as published by the Free Software Foundation, and
8
* may be copied, distributed, and modified under those terms.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
*/
16
17
#ifndef __LINUX_PSTORE_RAM_H__
18
#define __LINUX_PSTORE_RAM_H__
19
20
#include <linux/device.h>
21
#include <linux/kernel.h>
22
#include <linux/list.h>
23
#include <linux/types.h>
24
#include <
linux/init.h
>
25
26
struct
persistent_ram_buffer
;
27
struct
rs_control
;
28
29
struct
persistent_ram_zone
{
30
phys_addr_t
paddr
;
31
size_t
size
;
32
void
*
vaddr
;
33
struct
persistent_ram_buffer
*
buffer
;
34
size_t
buffer_size
;
35
36
/* ECC correction */
37
char
*
par_buffer
;
38
char
*
par_header
;
39
struct
rs_control
*
rs_decoder
;
40
int
corrected_bytes
;
41
int
bad_blocks
;
42
int
ecc_block_size
;
43
int
ecc_size
;
44
45
char
*
old_log
;
46
size_t
old_log_size
;
47
};
48
49
struct
persistent_ram_zone
*
__devinit
persistent_ram_new
(
phys_addr_t
start
,
50
size_t
size
,
u32
sig
,
51
int
ecc_size
);
52
void
persistent_ram_free
(
struct
persistent_ram_zone
*prz);
53
void
persistent_ram_zap
(
struct
persistent_ram_zone
*prz);
54
55
int
persistent_ram_write
(
struct
persistent_ram_zone
*prz,
const
void
*
s
,
56
unsigned
int
count
);
57
58
void
persistent_ram_save_old
(
struct
persistent_ram_zone
*prz);
59
size_t
persistent_ram_old_size
(
struct
persistent_ram_zone
*prz);
60
void
*
persistent_ram_old
(
struct
persistent_ram_zone
*prz);
61
void
persistent_ram_free_old
(
struct
persistent_ram_zone
*prz);
62
ssize_t
persistent_ram_ecc_string
(
struct
persistent_ram_zone
*prz,
63
char
*
str
,
size_t
len);
64
65
/*
66
* Ramoops platform data
67
* @mem_size memory size for ramoops
68
* @mem_address physical memory address to contain ramoops
69
*/
70
71
struct
ramoops_platform_data
{
72
unsigned
long
mem_size
;
73
unsigned
long
mem_address
;
74
unsigned
long
record_size
;
75
unsigned
long
console_size
;
76
unsigned
long
ftrace_size
;
77
int
dump_oops
;
78
int
ecc_size
;
79
};
80
81
#endif
Generated on Thu Jan 10 2013 14:52:25 for Linux Kernel by
1.8.2