lib/cbfs_core.c: Supply size of file as well in cbfs_get_file_content
Change-Id: I5b93e5321e470f19ad22ca2cfdb1ebf3b340b252 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/4659 Reviewed-by: Patrick Georgi <patrick@georgi-clan.de> Tested-by: build bot (Jenkins)
This commit is contained in:
@@ -96,7 +96,7 @@ void *cbfs_load_optionrom(struct cbfs_media *media, uint16_t vendor,
|
||||
tohex16(device, name+8);
|
||||
|
||||
orom = (struct cbfs_optionrom *)
|
||||
cbfs_get_file_content(media, name, CBFS_TYPE_OPTIONROM);
|
||||
cbfs_get_file_content(media, name, CBFS_TYPE_OPTIONROM, NULL);
|
||||
|
||||
if (orom == NULL)
|
||||
return NULL;
|
||||
@@ -187,7 +187,7 @@ static void *load_stage_from_cbfs(struct cbfs_media *media, const char *name,
|
||||
const struct cbmem_entry *ramstage_entry;
|
||||
|
||||
stage = (struct cbfs_stage *)
|
||||
cbfs_get_file_content(media, name, CBFS_TYPE_STAGE);
|
||||
cbfs_get_file_content(media, name, CBFS_TYPE_STAGE, NULL);
|
||||
|
||||
if (stage == NULL)
|
||||
return (void *) -1;
|
||||
@@ -257,7 +257,7 @@ void * cbfs_load_stage(struct cbfs_media *media, const char *name)
|
||||
void * cbfs_load_stage(struct cbfs_media *media, const char *name)
|
||||
{
|
||||
struct cbfs_stage *stage = (struct cbfs_stage *)
|
||||
cbfs_get_file_content(media, name, CBFS_TYPE_STAGE);
|
||||
cbfs_get_file_content(media, name, CBFS_TYPE_STAGE, NULL);
|
||||
/* this is a mess. There is no ntohll. */
|
||||
/* for now, assume compatible byte order until we solve this. */
|
||||
uint32_t entry;
|
||||
@@ -302,7 +302,7 @@ void *cbfs_load_payload(struct cbfs_media *media, const char *name)
|
||||
return payload;
|
||||
|
||||
payload = (struct cbfs_payload *)cbfs_get_file_content(
|
||||
media, name, CBFS_TYPE_PAYLOAD);
|
||||
media, name, CBFS_TYPE_PAYLOAD, NULL);
|
||||
return payload;
|
||||
}
|
||||
#endif
|
||||
|
@@ -173,10 +173,14 @@ struct cbfs_file *cbfs_get_file(struct cbfs_media *media, const char *name)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *cbfs_get_file_content(struct cbfs_media *media, const char *name, int type)
|
||||
void *cbfs_get_file_content(struct cbfs_media *media, const char *name,
|
||||
int type, size_t *sz)
|
||||
{
|
||||
struct cbfs_file *file = cbfs_get_file(media, name);
|
||||
|
||||
if (sz)
|
||||
*sz = 0;
|
||||
|
||||
if (file == NULL) {
|
||||
ERROR("Could not find file '%s'.\n", name);
|
||||
return NULL;
|
||||
@@ -188,6 +192,9 @@ void *cbfs_get_file_content(struct cbfs_media *media, const char *name, int type
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (sz)
|
||||
*sz = ntohl(file->len);
|
||||
|
||||
return (void *)CBFS_SUBHEADER(file);
|
||||
}
|
||||
|
||||
|
@@ -505,7 +505,7 @@ unsigned long write_coreboot_table(
|
||||
{
|
||||
struct cmos_option_table *option_table = cbfs_get_file_content(
|
||||
CBFS_DEFAULT_MEDIA, "cmos_layout.bin",
|
||||
CBFS_COMPONENT_CMOS_LAYOUT);
|
||||
CBFS_COMPONENT_CMOS_LAYOUT, NULL);
|
||||
if (option_table) {
|
||||
struct lb_record *rec_dest = lb_new_record(head);
|
||||
/* Copy the option config table, it's already a lb_record... */
|
||||
|
Reference in New Issue
Block a user