diff options
author | Igor Grinberg <grinberg@compulab.co.il> | 2011-12-26 03:33:10 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2012-01-05 16:34:10 +0100 |
commit | bf95df44ff69e3e365603e3e30664ec41bfe0c65 (patch) | |
tree | d6727b154fb2e17279acb141cd2975f60b243f10 | |
parent | 33e1e01820f9a1e19ab18c8791f3b2dc09165e2b (diff) | |
download | u-boot-imx-bf95df44ff69e3e365603e3e30664ec41bfe0c65.zip u-boot-imx-bf95df44ff69e3e365603e3e30664ec41bfe0c65.tar.gz u-boot-imx-bf95df44ff69e3e365603e3e30664ec41bfe0c65.tar.bz2 |
env: factor out the env_get_char_spec() function
env_get_char_spec() function is duplicated across multiple environment
files.
Remove the duplication by providing a default implementation.
Add "weak" declaration, so the default implementation can be overridden.
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
-rw-r--r-- | common/env_common.c | 7 | ||||
-rw-r--r-- | common/env_flash.c | 5 | ||||
-rw-r--r-- | common/env_mgdisk.c | 5 | ||||
-rw-r--r-- | common/env_mmc.c | 5 | ||||
-rw-r--r-- | common/env_nand.c | 5 | ||||
-rw-r--r-- | common/env_nowhere.c | 5 | ||||
-rw-r--r-- | common/env_nvram.c | 6 | ||||
-rw-r--r-- | common/env_onenand.c | 5 | ||||
-rw-r--r-- | common/env_sf.c | 5 |
9 files changed, 9 insertions, 39 deletions
diff --git a/common/env_common.c b/common/env_common.c index 8a71096..71811c4 100644 --- a/common/env_common.c +++ b/common/env_common.c @@ -124,6 +124,13 @@ const uchar default_environment[] = { struct hsearch_data env_htab; +static uchar __env_get_char_spec(int index) +{ + return *((uchar *)(gd->env_addr + index)); +} +uchar env_get_char_spec(int) + __attribute__((weak, alias("__env_get_char_spec"))); + static uchar env_get_char_init(int index) { /* if crc was bad, use the default environment */ diff --git a/common/env_flash.c b/common/env_flash.c index a99f850..aa970d4 100644 --- a/common/env_flash.c +++ b/common/env_flash.c @@ -73,11 +73,6 @@ static ulong end_addr_new = CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1; #endif /* CONFIG_ENV_ADDR_REDUND */ -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - #ifdef CONFIG_ENV_ADDR_REDUND int env_init(void) { diff --git a/common/env_mgdisk.c b/common/env_mgdisk.c index 5dd92e7..d00e141 100644 --- a/common/env_mgdisk.c +++ b/common/env_mgdisk.c @@ -33,11 +33,6 @@ env_t *env_ptr; DECLARE_GLOBAL_DATA_PTR; -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - void env_relocate_spec(void) { char buf[CONFIG_ENV_SIZE]; diff --git a/common/env_mmc.c b/common/env_mmc.c index 8441c77..0c58ae1 100644 --- a/common/env_mmc.c +++ b/common/env_mmc.c @@ -54,11 +54,6 @@ static int __mmc_get_env_addr(struct mmc *mmc, u32 *env_addr) int mmc_get_env_addr(struct mmc *mmc, u32 *env_addr) __attribute__((weak, alias("__mmc_get_env_addr"))); -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - int env_init(void) { /* use default */ diff --git a/common/env_nand.c b/common/env_nand.c index 3cb75c8..e8daec9 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -66,11 +66,6 @@ env_t *env_ptr; DECLARE_GLOBAL_DATA_PTR; -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - /* * This is called before nand_init() so we can't read NAND to * validate env data. diff --git a/common/env_nowhere.c b/common/env_nowhere.c index 8a3ca19..18fcf2c 100644 --- a/common/env_nowhere.c +++ b/common/env_nowhere.c @@ -37,11 +37,6 @@ void env_relocate_spec(void) { } -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - /* * Initialize Environment use * diff --git a/common/env_nvram.c b/common/env_nvram.c index 726eaac..6483db3 100644 --- a/common/env_nvram.c +++ b/common/env_nvram.c @@ -59,18 +59,16 @@ env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; char *env_name_spec = "NVRAM"; +#ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE uchar env_get_char_spec(int index) { -#ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE uchar c; nvram_read(&c, CONFIG_ENV_ADDR + index, 1); return c; -#else - return *((uchar *)(gd->env_addr + index)); -#endif } +#endif void env_relocate_spec(void) { diff --git a/common/env_onenand.c b/common/env_onenand.c index 0ad2fc7..652665a 100644 --- a/common/env_onenand.c +++ b/common/env_onenand.c @@ -44,11 +44,6 @@ char *env_name_spec = "OneNAND"; DECLARE_GLOBAL_DATA_PTR; -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - void env_relocate_spec(void) { struct mtd_info *mtd = &onenand_mtd; diff --git a/common/env_sf.c b/common/env_sf.c index 592b870..bbd472f 100644 --- a/common/env_sf.c +++ b/common/env_sf.c @@ -59,11 +59,6 @@ char *env_name_spec = "SPI Flash"; static struct spi_flash *env_flash; -uchar env_get_char_spec(int index) -{ - return *((uchar *)(gd->env_addr + index)); -} - #if defined(CONFIG_ENV_OFFSET_REDUND) int saveenv(void) { |