char* loadscript(char *filedir,U32 *filesize) { char *script = NULL; UBOOT_TRACE("IN\n"); *filesize = vfs_getsize(filedir); if( (*filesize > SCRIPT_BUFSIZE) || (*filesize == 0) ) { UBOOT_ERROR("No enough buffer or path fail(%s) :\n[%s] [%s]\n",filedir,__FILE__,__FUNCTION__); return NULL; } script = (char *)malloc(*filesize); if(script == NULL) { UBOOT_ERROR("No enough buffer %s %s\n",__FILE__,__FUNCTION__); return NULL; } if(vfs_read((void *)script,filedir,0,(unsigned int)(*filesize))==-1) { free(script); UBOOT_ERROR("Error: vfs_read Fail \n"); return NULL; } UBOOT_TRACE("OK\n"); return script; }
static unsigned int LoadJpg2Dram(char *SrcPath,U32 Dram_Addr) { char PathBuf[128] = "\0"; U32 u32LogoSize=0; UBOOT_TRACE("IN\n"); Dram_Addr=PA2NVA(Dram_Addr); UBOOT_DEBUG("PA2NVA(Dram_Addr)=0x%x\n",(unsigned int)Dram_Addr); vfs_mount(CUSTOMER); snprintf(PathBuf, sizeof(PathBuf), "%s/%s",CUSTOMER_PATH,SrcPath); UBOOT_DEBUG("PathBuf=%s\n",PathBuf); u32LogoSize = vfs_getsize(PathBuf); UBOOT_DEBUG("u32LogoSize=0x%x\n",(unsigned int)u32LogoSize); vfs_read((void *)Dram_Addr,PathBuf,0,u32LogoSize); UBOOT_TRACE("OK\n"); return u32LogoSize; }
static int _MsApi_BrickTerminator_Recover_Reserve () { MS_BOOL bNeedReburn = TRUE; U32 u32PathSize = 0; const char* BOOT_RECOVER_BRICK_RESERVE_VOLUME = "brickreserve"; const char* BOOT_RECOVER_BRICK_BACKUP_VOLUME = "brickbackup"; const char* BOOT_RECOVER_BRICK_RESERVE_FILE = "/.ready"; const char* BOOT_RECOVER_BRICK_BACKUP_FILE = "/MstarUpgrade_reserve.bin"; if(0 == vfs_mount((char*)BOOT_RECOVER_BRICK_RESERVE_VOLUME)) { u32PathSize = vfs_getsize((char*)BOOT_RECOVER_BRICK_RESERVE_FILE); if(0 < u32PathSize) { bNeedReburn = FALSE; UBOOT_DEBUG("%s: u32PathSize: %u, at %d\n", __func__, u32PathSize, __LINE__); // DBG } else // TODO: remove after debug { UBOOT_ERROR("%s: ERROR: vfs_getsize failed, at %d\n", __func__, __LINE__); } } if(TRUE == bNeedReburn) { char cmd[CMD_BUF] = {}; vfs_umount(); if(0 == vfs_mount((char*)BOOT_RECOVER_BRICK_BACKUP_VOLUME)) { sprintf(cmd, "bstar %s", BOOT_RECOVER_BRICK_BACKUP_FILE); UBOOT_ERROR("%s: ERROR: VFS failed, at %d\n", __func__, __LINE__); UBOOT_DEBUG("%s: DO BRICK RESERVE RECOVER, at %d\n", __func__, __LINE__); //NOTE: do partition recover run_command(cmd, 0); vfs_umount(); } } else { UBOOT_DEBUG("%s: '%s' is ok, no need to re-burn, at %d\n", __func__, BOOT_RECOVER_BRICK_RESERVE_VOLUME, __LINE__); vfs_umount(); } return 0; }
int LoadMMAP(void) { UBOOT_TRACE("IN\n"); if(vfs_mount(CONFIG)!=0) { UBOOT_ERROR("mount %s fail\n",CONFIG); return -1; } mmap_buffer_size=vfs_getsize(MMAP_FILE_NAME); if(mmap_buffer_size==0) { UBOOT_ERROR("get the file size of %s fail\n",MMAP_FILE_NAME); return -1; } mmap_buffer=malloc(mmap_buffer_size); UBOOT_DEBUG("mmmap_buffer at 0x%x\n",(unsigned int)mmap_buffer); if(mmap_buffer==NULL) { UBOOT_ERROR("malloc for mmap_buffer fail\n"); return NULL; } if(vfs_read((char *)mmap_buffer,MMAP_FILE_NAME,0,mmap_buffer_size)!=0) { free(mmap_buffer); mmap_buffer=NULL; UBOOT_ERROR("read %s fail\n",MMAP_FILE_NAME); return -1; } vfs_umount(); UBOOT_TRACE("OK\n"); return 0; }