On Jun 26, 2008, at 9:50 AM, Dave Liu wrote: > Current fat.c have three 64KB static array, it makes > the BSS section larger. > Change the static to dynamic allocation. > > Signed-off-by: Dave Liu <[EMAIL PROTECTED]> > --- > fs/fat/fat.c | 38 +++++++++++++++++++++++++++++++++++--- > 1 files changed, 35 insertions(+), 3 deletions(-) > > diff --git a/fs/fat/fat.c b/fs/fat/fat.c > index 49c78ed..8e054a6 100644 > --- a/fs/fat/fat.c > +++ b/fs/fat/fat.c > @@ -28,6 +28,7 @@ > #include <common.h> > #include <config.h> > #include <fat.h> > +#include <malloc.h> > #include <asm/byteorder.h> > #include <part.h> > > @@ -65,6 +66,37 @@ int disk_read (__u32 startblock, __u32 getsize, > __u8 * bufptr) > return -1; > } > > +__u8 *get_vfatname_block; > +__u8 *get_dentfromdir_block; > +__u8 *do_fat_read_block; > +static int fat_mem_done = 0; > +static int fat_memory_alloc(void) > +{ > + if (fat_mem_done) > + return 0; > + > + get_vfatname_block = (__u8 *)malloc(MAX_CLUSTSIZE);
do you really need the cast? > > + if (!get_vfatname_block) { > + printf("alloc get_vfatname_block failed\n\r"); > + return -1; > + } > + > + get_dentfromdir_block = (__u8 *)malloc(MAX_CLUSTSIZE); ditto. > > + if (!get_dentfromdir_block) { > + printf("alloc get_dentfromdir_block failed\n\r"); > + return -1; > + } > + > + do_fat_read_block = (__u8 *)malloc(MAX_CLUSTSIZE); ditto > > + if (!do_fat_read_block) { > + printf("alloc do_fat_read_block failed\n\r"); > + return -1; > + } > + > + fat_mem_done = 1; > + > + return 0; > +} - k ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users