summaryrefslogtreecommitdiff
path: root/src/include/cbfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/cbfs.h')
-rw-r--r--src/include/cbfs.h23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/include/cbfs.h b/src/include/cbfs.h
index 1b446ac7a8..992b6583ca 100644
--- a/src/include/cbfs.h
+++ b/src/include/cbfs.h
@@ -18,19 +18,22 @@ void *cbfs_boot_map_optionrom(uint16_t vendor, uint16_t device);
void *cbfs_boot_map_optionrom_revision(uint16_t vendor, uint16_t device, uint8_t rev);
/* Locate file by name and optional type. Return 0 on success. < 0 on error. */
int cbfs_boot_locate(struct cbfsf *fh, const char *name, uint32_t *type);
-/* Map file into memory leaking the mapping. Only should be used when
- * leaking mappings are a no-op. Returns NULL on error, else returns
- * the mapping and sets the size of the file. */
-void *cbfs_boot_map_with_leak(const char *name, uint32_t type, size_t *size);
+/* Map file into memory, returning a pointer to the mapping or NULL on error.
+ If |size_out| is not NULL, it will pass out the size of the mapped file.
+ NOTE: Since this may return a direct pointer to memory-mapped hardware,
+ compressed files are NOT transparently decompressed (unlike cbfs_load()). */
+void *cbfs_map(const char *name, size_t *size_out);
+/* Removes a mapping previously allocated with cbfs_map(). Should try to unmap
+ mappings in strict LIFO order where possible, since mapping backends often
+ don't support more complicated cases. */
+int cbfs_unmap(void *mapping);
/* Locate file in a specific region of fmap. Return 0 on success. < 0 on error*/
int cbfs_locate_file_in_region(struct cbfsf *fh, const char *region_name,
const char *name, uint32_t *type);
-/* Load an arbitrary type file from CBFS into a buffer. Returns amount of
- * loaded bytes on success or 0 on error. File will get decompressed as
- * necessary. Same decompression requirements as
- * cbfs_load_and_decompress(). */
-size_t cbfs_boot_load_file(const char *name, void *buf, size_t buf_size,
- uint32_t type);
+/* Load a file from CBFS into a buffer. Returns amount of loaded bytes on
+ success or 0 on error. File will get decompressed as necessary. Same
+ decompression requirements as cbfs_load_and_decompress(). */
+size_t cbfs_load(const char *name, void *buf, size_t buf_size);
/* Load |in_size| bytes from |rdev| at |offset| to the |buffer_size| bytes
* large |buffer|, decompressing it according to |compression| in the process.
* Returns the decompressed file size, or 0 on error.