mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 01:44:34 +00:00
cbfs: Allow file traversal with any CBFS
The file traversal functions currently use a single global CBFS. In some cases we need to access multiple CBFSs to obtain different files. Add new functions to support this. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5536f1285f
commit
c4f5b5dcc3
2 changed files with 28 additions and 2 deletions
|
@ -325,6 +325,17 @@ const struct cbfs_header *file_cbfs_get_header(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const struct cbfs_cachenode *cbfs_get_first(const struct cbfs_priv *priv)
|
||||||
|
{
|
||||||
|
return priv->file_cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cbfs_get_next(const struct cbfs_cachenode **filep)
|
||||||
|
{
|
||||||
|
if (*filep)
|
||||||
|
*filep = (*filep)->next;
|
||||||
|
}
|
||||||
|
|
||||||
const struct cbfs_cachenode *file_cbfs_get_first(void)
|
const struct cbfs_cachenode *file_cbfs_get_first(void)
|
||||||
{
|
{
|
||||||
struct cbfs_priv *priv = &cbfs_s;
|
struct cbfs_priv *priv = &cbfs_s;
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
#include <compiler.h>
|
#include <compiler.h>
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
|
struct cbfs_priv;
|
||||||
|
|
||||||
enum cbfs_result {
|
enum cbfs_result {
|
||||||
CBFS_SUCCESS = 0,
|
CBFS_SUCCESS = 0,
|
||||||
CBFS_NOT_INITIALIZED,
|
CBFS_NOT_INITIALIZED,
|
||||||
|
@ -149,6 +151,21 @@ int file_cbfs_init(ulong end_of_rom);
|
||||||
*/
|
*/
|
||||||
const struct cbfs_header *file_cbfs_get_header(void);
|
const struct cbfs_header *file_cbfs_get_header(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cbfs_get_first() - Get the first file in a CBFS
|
||||||
|
*
|
||||||
|
* @return pointer to first file, or NULL if it is empty
|
||||||
|
*/
|
||||||
|
const struct cbfs_cachenode *cbfs_get_first(const struct cbfs_priv *priv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cbfs_get_next() - Get the next file in a CBFS
|
||||||
|
*
|
||||||
|
* @filep: Pointer to current file; updated to point to the next file, if any,
|
||||||
|
* else NULL
|
||||||
|
*/
|
||||||
|
void cbfs_get_next(const struct cbfs_cachenode **filep);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* file_cbfs_get_first() - Get a handle for the first file in CBFS.
|
* file_cbfs_get_first() - Get a handle for the first file in CBFS.
|
||||||
*
|
*
|
||||||
|
@ -172,8 +189,6 @@ void file_cbfs_get_next(const struct cbfs_cachenode **file);
|
||||||
*/
|
*/
|
||||||
const struct cbfs_cachenode *file_cbfs_find(const char *name);
|
const struct cbfs_cachenode *file_cbfs_find(const char *name);
|
||||||
|
|
||||||
struct cbfs_priv;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cbfs_find_file() - Find a file in a given CBFS
|
* cbfs_find_file() - Find a file in a given CBFS
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue