Commit bf95df44ff69e3e365603e3e30664ec41bfe0c65
Committed by
Wolfgang Denk
1 parent
33e1e01820
Exists in
master
and in
54 other branches
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>
Showing 9 changed files with 9 additions and 39 deletions Side-by-side Diff
common/env_common.c
... | ... | @@ -124,6 +124,13 @@ |
124 | 124 | |
125 | 125 | struct hsearch_data env_htab; |
126 | 126 | |
127 | +static uchar __env_get_char_spec(int index) | |
128 | +{ | |
129 | + return *((uchar *)(gd->env_addr + index)); | |
130 | +} | |
131 | +uchar env_get_char_spec(int) | |
132 | + __attribute__((weak, alias("__env_get_char_spec"))); | |
133 | + | |
127 | 134 | static uchar env_get_char_init(int index) |
128 | 135 | { |
129 | 136 | /* if crc was bad, use the default environment */ |
common/env_flash.c
common/env_mgdisk.c
common/env_mmc.c
... | ... | @@ -54,11 +54,6 @@ |
54 | 54 | int mmc_get_env_addr(struct mmc *mmc, u32 *env_addr) |
55 | 55 | __attribute__((weak, alias("__mmc_get_env_addr"))); |
56 | 56 | |
57 | -uchar env_get_char_spec(int index) | |
58 | -{ | |
59 | - return *((uchar *)(gd->env_addr + index)); | |
60 | -} | |
61 | - | |
62 | 57 | int env_init(void) |
63 | 58 | { |
64 | 59 | /* use default */ |
common/env_nand.c
common/env_nowhere.c
common/env_nvram.c
... | ... | @@ -59,18 +59,16 @@ |
59 | 59 | |
60 | 60 | char *env_name_spec = "NVRAM"; |
61 | 61 | |
62 | +#ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE | |
62 | 63 | uchar env_get_char_spec(int index) |
63 | 64 | { |
64 | -#ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE | |
65 | 65 | uchar c; |
66 | 66 | |
67 | 67 | nvram_read(&c, CONFIG_ENV_ADDR + index, 1); |
68 | 68 | |
69 | 69 | return c; |
70 | -#else | |
71 | - return *((uchar *)(gd->env_addr + index)); | |
72 | -#endif | |
73 | 70 | } |
71 | +#endif | |
74 | 72 | |
75 | 73 | void env_relocate_spec(void) |
76 | 74 | { |
common/env_onenand.c
common/env_sf.c