int LoadWiMaxImage(void) { DWORD dwImgSize; unsigned long buforder; struct file *fp; int read_size = 0; if ( g_dwLineState == AUTH_MODE) { fp = klib_fopen(WIMAX_LOADER_PATH, O_RDONLY, 0); // download mode } else { fp = klib_fopen(WIMAX_IMAGE_PATH, O_RDONLY, 0); // wimax mode } if(fp) { if (g_stWiMAXImage.pImage == NULL) // check already allocated { g_stWiMAXImage.pImage = (char *) vmalloc(MAX_WIMAXFW_SIZE); if(!g_stWiMAXImage.pImage) { DumpDebug(HARDWARE, "Error: Memory alloc failure"); klib_fclose(fp); return STATUS_UNSUCCESSFUL; } } memset(g_stWiMAXImage.pImage, 0, MAX_WIMAXFW_SIZE); read_size = klib_flen_fcopy(g_stWiMAXImage.pImage, MAX_WIMAXFW_SIZE, fp); g_stWiMAXImage.uiSize = read_size; g_stWiMAXImage.uiWorkAddress = CMC730_WIBRO_ADDRESS; g_stWiMAXImage.uiOffset = 0; g_stWiMAXImage.buforder = buforder; klib_fclose(fp); } else { DumpDebug(HARDWARE, "Error: WiMAX image file open failed"); return STATUS_UNSUCCESSFUL; } return STATUS_SUCCESS; }
int load_wimax_image(int mode) { struct file *fp; int read_size = 0; if (mode == AUTH_MODE) /* download moed */ fp = klib_fopen(WIMAX_LOADER_PATH, O_RDONLY, 0); else fp = klib_fopen(WIMAX_IMAGE_PATH, O_RDONLY, 0); /* wimax mode */ if (fp) { if (g_wimax_image.data == NULL) {/* check already allocated */ g_wimax_image.data = (u8 *)vmalloc(MAX_WIMAXFW_SIZE); if (!g_wimax_image.data) { dump_debug("Error: Memory alloc failure"); klib_fclose(fp); return STATUS_UNSUCCESSFUL; } } memset(g_wimax_image.data, 0, MAX_WIMAXFW_SIZE); read_size = klib_flen_fcopy(g_wimax_image.data, MAX_WIMAXFW_SIZE, fp); g_wimax_image.size = read_size; g_wimax_image.address = CMC732_WIMAX_ADDRESS; g_wimax_image.offset = 0; klib_fclose(fp); } else { dump_debug("Error: WiMAX image file open failed"); return STATUS_UNSUCCESSFUL; } return STATUS_SUCCESS; }