diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2015-05-21 10:31:09 +0200 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-05-21 11:44:57 +0200 |
commit | 25aa128050881068db3ca3212550024214bfad34 (patch) | |
tree | 65a338ad31341b48b78e95a064e111d7d1ca313b /fw_cfg.c | |
parent | fa9ea2e622eb105fb77f1f09e3194bfc05db7c5e (diff) | |
download | qboot-25aa128050881068db3ca3212550024214bfad34.zip qboot-25aa128050881068db3ca3212550024214bfad34.tar.gz qboot-25aa128050881068db3ca3212550024214bfad34.tar.bz2 |
malloc fw_cfg files
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'fw_cfg.c')
-rw-r--r-- | fw_cfg.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -11,7 +11,8 @@ struct fw_cfg_file { char name[57]; }; -static struct fw_cfg_file files[32]; +static int filecnt; +static struct fw_cfg_file *files; void fw_cfg_setup(void) { @@ -19,8 +20,8 @@ void fw_cfg_setup(void) fw_cfg_select(FW_CFG_FILE_DIR); n = fw_cfg_readl_be(); - if (n > ARRAY_SIZE(files)) - n = ARRAY_SIZE(files); + filecnt = n; + files = malloc_fseg(sizeof(files[0]) * n); for (i = 0; i < n; i++) { files[i].size = fw_cfg_readl_be(); @@ -34,7 +35,7 @@ int fw_cfg_file_id(char *name) { int i; - for (i = 0; i < ARRAY_SIZE(files); i++) + for (i = 0; i < filecnt; i++) if (!strcmp(name, files[i].name)) return i; |