Commit bf95df44ff69e3e365603e3e30664ec41bfe0c65

Authored by Igor Grinberg
Committed by Wolfgang Denk
1 parent 33e1e01820

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

... ... @@ -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 */
... ... @@ -73,11 +73,6 @@
73 73 #endif /* CONFIG_ENV_ADDR_REDUND */
74 74  
75 75  
76   -uchar env_get_char_spec(int index)
77   -{
78   - return *((uchar *)(gd->env_addr + index));
79   -}
80   -
81 76 #ifdef CONFIG_ENV_ADDR_REDUND
82 77 int env_init(void)
83 78 {
... ... @@ -33,11 +33,6 @@
33 33  
34 34 DECLARE_GLOBAL_DATA_PTR;
35 35  
36   -uchar env_get_char_spec(int index)
37   -{
38   - return *((uchar *)(gd->env_addr + index));
39   -}
40   -
41 36 void env_relocate_spec(void)
42 37 {
43 38 char buf[CONFIG_ENV_SIZE];
... ... @@ -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 */
... ... @@ -66,11 +66,6 @@
66 66  
67 67 DECLARE_GLOBAL_DATA_PTR;
68 68  
69   -uchar env_get_char_spec(int index)
70   -{
71   - return *((uchar *)(gd->env_addr + index));
72   -}
73   -
74 69 /*
75 70 * This is called before nand_init() so we can't read NAND to
76 71 * validate env data.
common/env_nowhere.c
... ... @@ -37,11 +37,6 @@
37 37 {
38 38 }
39 39  
40   -uchar env_get_char_spec(int index)
41   -{
42   - return *((uchar *)(gd->env_addr + index));
43   -}
44   -
45 40 /*
46 41 * Initialize Environment use
47 42 *
... ... @@ -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
... ... @@ -44,11 +44,6 @@
44 44  
45 45 DECLARE_GLOBAL_DATA_PTR;
46 46  
47   -uchar env_get_char_spec(int index)
48   -{
49   - return *((uchar *)(gd->env_addr + index));
50   -}
51   -
52 47 void env_relocate_spec(void)
53 48 {
54 49 struct mtd_info *mtd = &onenand_mtd;
... ... @@ -59,11 +59,6 @@
59 59  
60 60 static struct spi_flash *env_flash;
61 61  
62   -uchar env_get_char_spec(int index)
63   -{
64   - return *((uchar *)(gd->env_addr + index));
65   -}
66   -
67 62 #if defined(CONFIG_ENV_OFFSET_REDUND)
68 63 int saveenv(void)
69 64 {