Blame view
include/linux/pstore_ram.h
2.39 KB
cddb8751c
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* * Copyright (C) 2010 Marco Stornelli <marco.stornelli@gmail.com> * Copyright (C) 2011 Kees Cook <keescook@chromium.org> * Copyright (C) 2011 Google, Inc. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and * may be copied, distributed, and modified under those terms. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ |
1894a253d
|
16 17 |
#ifndef __LINUX_PSTORE_RAM_H__ #define __LINUX_PSTORE_RAM_H__ |
c3b92ce9e
|
18 |
|
cddb8751c
|
19 20 21 22 23 24 25 |
#include <linux/device.h> #include <linux/kernel.h> #include <linux/list.h> #include <linux/types.h> #include <linux/init.h> struct persistent_ram_buffer; |
67a101f57
|
26 |
struct rs_control; |
cddb8751c
|
27 |
|
c31ad081e
|
28 29 30 31 32 33 |
struct persistent_ram_ecc_info { int block_size; int ecc_size; int symsize; int poly; }; |
cddb8751c
|
34 35 36 37 38 39 40 41 |
struct persistent_ram_zone { phys_addr_t paddr; size_t size; void *vaddr; struct persistent_ram_buffer *buffer; size_t buffer_size; /* ECC correction */ |
cddb8751c
|
42 43 44 45 46 |
char *par_buffer; char *par_header; struct rs_control *rs_decoder; int corrected_bytes; int bad_blocks; |
c31ad081e
|
47 |
struct persistent_ram_ecc_info ecc_info; |
cddb8751c
|
48 49 50 51 |
char *old_log; size_t old_log_size; }; |
f568f6ca8
|
52 |
struct persistent_ram_zone *persistent_ram_new(phys_addr_t start, size_t size, |
027bc8b08
|
53 54 |
u32 sig, struct persistent_ram_ecc_info *ecc_info, unsigned int memtype); |
cddb8751c
|
55 |
void persistent_ram_free(struct persistent_ram_zone *prz); |
fce397930
|
56 |
void persistent_ram_zap(struct persistent_ram_zone *prz); |
cddb8751c
|
57 58 59 |
int persistent_ram_write(struct persistent_ram_zone *prz, const void *s, unsigned int count); |
201e4aca5
|
60 |
void persistent_ram_save_old(struct persistent_ram_zone *prz); |
cddb8751c
|
61 62 63 64 65 |
size_t persistent_ram_old_size(struct persistent_ram_zone *prz); void *persistent_ram_old(struct persistent_ram_zone *prz); void persistent_ram_free_old(struct persistent_ram_zone *prz); ssize_t persistent_ram_ecc_string(struct persistent_ram_zone *prz, char *str, size_t len); |
c3b92ce9e
|
66 67 68 69 70 71 72 73 74 |
/* * Ramoops platform data * @mem_size memory size for ramoops * @mem_address physical memory address to contain ramoops */ struct ramoops_platform_data { unsigned long mem_size; unsigned long mem_address; |
027bc8b08
|
75 |
unsigned int mem_type; |
3e5c4fadb
|
76 |
unsigned long record_size; |
b5d38e9bf
|
77 |
unsigned long console_size; |
a694d1b59
|
78 |
unsigned long ftrace_size; |
9d5438f46
|
79 |
unsigned long pmsg_size; |
6b4d2a273
|
80 |
int dump_oops; |
c31ad081e
|
81 |
struct persistent_ram_ecc_info ecc_info; |
c3b92ce9e
|
82 83 84 |
}; #endif |