
Hi Stefan,
I could also life with your approach, but it will add code even to platforms that do not use the new option.
In this case I would prefer it against the weak implementation.
Matthias
On Saturday 19 April 2008 14:02:23 Stefan Roese wrote:
Hi Matthias,
On Saturday 19 April 2008, Matthias Fuchs wrote:
is it possible to use weak structures? Or do you mean a weak function that initializes my autoprotect list?
Please give me an idea and I will implement it.
I don't know if it's possible to implement a weak structure, but I would prefer something like this instead of your original implementation (no #ifdef's in the code):
struct apl_s { u32 start; u32 size; };
#if !defined(CFG_FLASH_AUTOPROTECT_LIST) struct apl_s apl[] = { }; #else struct apl_s apl[] = CFG_FLASH_AUTOPROTECT_LIST; #endif
And then later in the code:
for (i = 0; i < ARRAY_SIZE(apl); i++) {
debug("autoprotecting from %08x to %08x\n",
apl[i].start, apl[i].start + apl[i].size - 1);
flash_protect (FLAG_PROTECT_SET,
apl[i].start,
apl[i].start + apl[i].size - 1,
flash_get_info(apl[i].start));
}
What do you think?
Matthias
On Friday 18 April 2008 18:01:57 Jean-Christophe PLAGNIOL-VILLARD wrote:
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index e3cfb8a..68ab55f 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -1873,6 +1873,12 @@ unsigned long flash_init (void) { unsigned long size = 0; int i; +#if defined(CFG_FLASH_AUTOPROTECT_LIST)
- struct apl_s {
ulong start;
ulong size;
- } apl[] = CFG_FLASH_AUTOPROTECT_LIST;
+#endif
I think it will be better to create a weak structure.
Best Regards, J.
!DSPAM:4809d80874783629025813!