coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mrc_cache.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
3
#ifndef _COMMON_MRC_CACHE_H_
4
#define _COMMON_MRC_CACHE_H_
5
6
#include <
stddef.h
>
7
#include <
stdint.h
>
8
#include <
commonlib/region.h
>
9
10
enum
{
11
MRC_TRAINING_DATA
,
12
MRC_VARIABLE_DATA
,
13
};
14
15
/*
16
* It's up to the caller to decide when to retrieve and stash data. There is
17
* differentiation on recovery mode CONFIG(HAS_RECOVERY_MRC_CACHE), but that's
18
* only for locating where to retrieve and save the data. If a platform doesn't
19
* want to update the data then it shouldn't stash the data for saving.
20
* Similarly, if the platform doesn't need the data for booting because of a
21
* policy don't request the data.
22
*/
23
24
/* Get and stash data for saving provided the type passed in. */
25
26
/**
27
* mrc_cache_load_current
28
*
29
* Fill in the buffer with the latest slot data. This will be a
30
* common entry point for ARM platforms. Returns < 0 on error, size
31
* of the returned data on success.
32
*/
33
ssize_t
mrc_cache_load_current
(
int
type
,
uint32_t
version
,
void
*
buffer
,
34
size_t
buffer_size);
35
/**
36
* mrc_cache_mmap_leak
37
*
38
* Return a pointer to a buffer with the latest slot data. An mmap
39
* will be executed (without a matching unmap). This will be a common
40
* entry point for platforms where mmap is considered a noop, like x86
41
*/
42
void
*
mrc_cache_current_mmap_leak
(
int
type
,
uint32_t
version
,
43
size_t
*data_size);
44
/**
45
* Returns < 0 on error, 0 on success.
46
*/
47
int
mrc_cache_stash_data
(
int
type
,
uint32_t
version
,
const
void
*data,
48
size_t
size);
49
50
#endif
/* _COMMON_MRC_CACHE_H_ */
type
unsigned int type
Definition:
edid.c:57
version
unsigned int version[2]
Definition:
edid.c:55
mrc_cache_load_current
ssize_t mrc_cache_load_current(int type, uint32_t version, void *buffer, size_t buffer_size)
mrc_cache_load_current
Definition:
mrc_cache.c:319
mrc_cache_stash_data
int mrc_cache_stash_data(int type, uint32_t version, const void *data, size_t size)
Returns < 0 on error, 0 on success.
Definition:
mrc_cache.c:687
mrc_cache_current_mmap_leak
void * mrc_cache_current_mmap_leak(int type, uint32_t version, size_t *data_size)
mrc_cache_mmap_leak
Definition:
mrc_cache.c:342
MRC_VARIABLE_DATA
@ MRC_VARIABLE_DATA
Definition:
mrc_cache.h:12
MRC_TRAINING_DATA
@ MRC_TRAINING_DATA
Definition:
mrc_cache.h:11
buffer
u8 buffer[C2P_BUFFER_MAXSIZE]
Definition:
psp_smm.c:18
region.h
stddef.h
ssize_t
__SIZE_TYPE__ ssize_t
Definition:
stddef.h:13
stdint.h
uint32_t
unsigned int uint32_t
Definition:
stdint.h:14
src
include
mrc_cache.h
Generated by
1.9.1