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 {
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  */
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  */
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_ */
unsigned int type
Definition: edid.c:57
unsigned int version[2]
Definition: edid.c:55
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
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
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
Definition: mrc_cache.h:12
@ MRC_TRAINING_DATA
Definition: mrc_cache.h:11
u8 buffer[C2P_BUFFER_MAXSIZE]
Definition: psp_smm.c:18
__SIZE_TYPE__ ssize_t
Definition: stddef.h:13
unsigned int uint32_t
Definition: stdint.h:14