int setup_getpartials_application(dataptr dz) { int exit_status; aplptr ap; if((exit_status = establish_application(dz))<0) // GLOBAL return(FAILED); ap = dz->application; // SEE parstruct FOR EXPLANATION of next 2 functions switch(dz->process) { case(PARTIALS_HARM): switch(dz->mode) { case(0): case(1): if((exit_status = set_param_data(ap,0 ,2,2,"dd" ))<0) return(FAILED); break; case(2): case(3): if((exit_status = set_param_data(ap,0 ,3,3,"ddd" ))<0) return(FAILED); break; } if((exit_status = set_vflgs(ap,"",0,"","v",1,0,"0"))<0) return(FAILED); break; } // set_legal_infile_structure --> dz->has_otherfile = FALSE; // assign_process_logic --> dz->input_data_type = ANALFILE_ONLY; dz->process_type = TO_TEXTFILE; dz->outfiletype = TEXTFILE_OUT; return application_init(dz); //GLOBAL }
int setup_manysil_application(dataptr dz) { int exit_status; aplptr ap; if((exit_status = establish_application(dz))<0) // GLOBAL return(FAILED); ap = dz->application; // SEE parstruct FOR EXPLANATION of next 2 functions if((exit_status = set_param_data(ap,MANYSIL_DATA ,1,1,"d"))<0) return(FAILED); if((exit_status = set_vflgs(ap,"",0,"","",0,0,""))<0) return(FAILED); // set_legal_infile_structure --> dz->has_otherfile = FALSE; // assign_process_logic --> dz->input_data_type = SNDFILES_ONLY; dz->process_type = UNEQUAL_SNDFILE; dz->outfiletype = SNDFILE_OUT; return application_init(dz); //GLOBAL }
int setup_speclean_application(dataptr dz) { int exit_status; aplptr ap; if((exit_status = establish_application(dz))<0) // GLOBAL return(FAILED); ap = dz->application; // SEE parstruct FOR EXPLANATION of next 2 functions if((exit_status = set_param_data(ap,0 ,2,2,"dd" ))<0) return(FAILED); if((exit_status = set_vflgs(ap,"",0,"","",0,0,""))<0) return(FAILED); // set_legal_infile_structure --> dz->has_otherfile = FALSE; // assign_process_logic --> dz->input_data_type = TWO_ANALFILES; dz->process_type = EQUAL_ANALFILE; dz->outfiletype = ANALFILE_OUT; return application_init(dz); //GLOBAL }
int warp_checkboot(int saveno) { int ret; char *str; ret = warp_check_bootargs(); if (ret) return 1; if (saveno < 0) { if ((str = getenv("warpsaveno"))) saveno = simple_strtoul(str, NULL, 10); else saveno = warp_saveno; } if (saveno < 0 || saveno >= WARP_SAVEAREA_NUM) { printf("Illegal saveno %d\n", saveno); return 1; } if ((ret = warp_drvload()) != 0) return ret; warp_bfaddr = (void *)warp_drv_addr + *(int *)(warp_drv_addr + WARP_HEADER_COPY_SIZE); #ifdef CONFIG_WARP_NAND if ((ret = warp_nand_bmload(saveno)) != 0) { printf("load boot mode flags error\n"); return ret; } #endif printf("Warp mode :%x\n", *(unsigned int *)warp_bfaddr); if (*(unsigned int *)warp_bfaddr != WARP_MODE) { return 1; } else { char tag_buf[WARP_TAG_SIZE]; unsigned int boot_mode = NORMAL_MODE; boot_mode = *(unsigned int *)warp_bfaddr; memset(tag_buf, 0, sizeof(tag_buf)); snprintf(tag_buf, sizeof(tag_buf), "warp_boot_mode=%x", boot_mode); set_param_data("wpmode", tag_buf, sizeof(tag_buf)); printf("set wpmode\n"); } #ifdef CONFIG_WARP_NOR if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_NOR) if ((ret = warp_nor_bfload(saveno)) != 0) return ret; #endif #ifdef CONFIG_WARP_NAND if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_NAND) if ((ret = warp_nand_bfload(saveno)) != 0) return ret; #endif #ifdef CONFIG_WARP_ATA if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_ATA) if ((ret = warp_ata_bfload(saveno)) != 0) return ret; #endif #ifdef CONFIG_WARP_SD if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_SD) if ((ret = warp_sd_bfload(saveno)) != 0) return ret; #endif #ifdef CONFIG_WARP_EXTDRV if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_EXT) if ((ret = warp_extdrv_bfload(saveno)) != 0) return ret; #endif #ifdef CONFIG_WARP_USERDRV if ((warp_savearea[saveno].bootflag_dev & WARP_DEV_MASK) == WARP_DEV_USER) if ((ret = warp_userdrv_bfload(saveno)) != 0) return ret; #endif if (*(unsigned int *)warp_bfaddr != WARP_ID_BOOTFLAG) return 1; return 0; }
int warp_check_bootargs(void) { int ret; unsigned long long addr, len; char *ptr; char *media_name = "hinand"; char tag_buf[WARP_TAG_SIZE]; const char *bootargs = getenv("bootargs"); if (!bootargs) { ret = 1; goto failed; } if (NULL == (ptr = strstr(bootargs, "mtdparts="))) { ret = 1; goto failed; } ptr += strlen("mtdparts="); if (find_flash_part(ptr, media_name, "warpdrv", &addr, &len)) { warp_drv_area = (unsigned int)addr; warp_drv_size = (unsigned int)len; } else { ret = 1; goto failed; } if (find_flash_part(ptr, media_name, "warpflag", &addr, &len)) { warp_flag_area = (unsigned int)addr; warp_flag_size = (unsigned int)len; } else { ret = 1; goto failed; } if (find_flash_part(ptr, media_name, "warpdata", &addr, &len)) { warp_data_area = (unsigned int)addr; warp_data_size = (unsigned int)len; } else { ret = 1; goto failed; } warp_savearea[0].bootflag_dev = WARP_DEV(NAND, 0, 0); warp_savearea[0].bootflag_area = warp_flag_area; warp_savearea[0].bootflag_size = warp_flag_size; /* init loadaddress */ warp_drv_addr = reserve_mem_alloc(WARP_HIBDRV_SIZE, NULL); if (!warp_drv_addr) { ret = 1; goto failed; } warp_drv_addr &= 0xfff00000; memset(tag_buf, 0, sizeof(tag_buf)); snprintf(tag_buf, sizeof(tag_buf), "warp_drv_addr=%x", warp_drv_addr); set_param_data("wpaddr", tag_buf, sizeof(tag_buf)); #if CONFIG_SHOW_WARP_INFO printf("Warp!! drv phyaddr 0x%X\n", warp_drv_addr); printf("Warp!! drv start 0x%X, size 0x%X\n", warp_drv_area, warp_drv_size); printf("Warp!! flag start 0x%X, size 0x%X\n", warp_flag_area, warp_flag_size); printf("Warp!! data start 0x%X, size 0x%X\n", warp_data_area, warp_data_size); #endif check_boot_ok = 1; return 0; failed: return ret; }