uffs_class.c

Go to the documentation of this file.
00001 
00008 #include "uffs/uffs_fs.h"
00009 #include "uffs/uffs_config.h"
00010 #include <string.h>
00011 
00012 #define PFX "class:"
00013 
00014 extern struct uffs_FlashClassSt Samsung_FlashClass;
00015 //extern struct uffs_FlashClassSt Toshiba_FlashClass;
00016 
00017 static struct uffs_FlashClassSt *flash_class_tab[] = {
00018     &Samsung_FlashClass,
00019 //  &Toshiba_FlashClass,
00020     NULL,                   /*< terminated by NULL */
00021 };
00022 
00023 #define MAX_CHIP_ID_LIST    40
00024 
00025 URET uffs_InitFlashClass(uffs_Device *dev)
00026 {
00027     struct uffs_FlashClassSt *work = flash_class_tab[0];
00028     int i;
00029 
00030     while(work != NULL) {
00031         if(dev->attr.maker == work->maker) {
00032             if(work->id_list == NULL){
00033                 return U_FAIL;
00034             }
00035             for(i = 0; i < MAX_CHIP_ID_LIST; i++) {
00036                 if(work->id_list[i] == -1){
00037                     return U_FAIL;
00038                 }
00039                 if(work->id_list[i] == dev->attr.id) {
00040                     dev->flash = work->flash;
00041                     return U_SUCC;
00042                 }
00043             }
00044         }
00045         work++;
00046     }
00047 
00048     return U_FAIL;
00049 }
00050 

Generated on Sat Mar 17 15:45:44 2007 for uffs-doc by  doxygen 1.5.0