static int linux_version_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; /* MTD-BSP-VT-PROC-00* */ len = snprintf(page, count, "%s.%s.%s.%s.%s.%s\n", VER_LINUX_BSP_Version, VER_LINUX_Platform_Number, VER_LINUX_Image_Type, VER_LINUX_Branch_Number, VER_LINUX_Build_Number_Major, VER_LINUX_Build_Number_Minor); return proc_calc_metrics(page, start, off, count, eof, len); }
static int loadavg_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int a, b, c; int len; a = avenrun[0] + (FIXED_1/200); b = avenrun[1] + (FIXED_1/200); c = avenrun[2] + (FIXED_1/200); len = sprintf(page,"%d.%02d %d.%02d %d.%02d %d/%d %d\n", LOAD_INT(a), LOAD_FRAC(a), LOAD_INT(b), LOAD_FRAC(b), LOAD_INT(c), LOAD_FRAC(c), nr_running, nr_threads, last_pid); return proc_calc_metrics(page, start, off, count, eof, len); }
static int app_tag_read_proc(char* page, char** start, off_t off, int count, int* eof, void *data) { int len = 0; u32 charge_flag; u32 recovery_flag; recovery_flag = get_recovery_flag(); charge_flag = get_charge_flag(); len = snprintf(page, PAGE_SIZE, "recovery_flag:\n%d\n" "charge_flag:\n%d\n", recovery_flag, charge_flag); return proc_calc_metrics(page, start, off, count, eof, len); }
static int proc_board_status_read (char *page, char **start, off_t off, int count, int *eof, void *data) { struct klife_board *board = data; int len; read_lock (&board->lock); len = snprintf (page, count, "Mode:\t\t%s\nEnabled:\t%s\nSide:\t\t%d\nAlloc side:\t%u\nPages:\t\t%llu\n", board_mode_as_string (board->mode), board->enabled ? "yes" : "no", board->side, board->field_side, board->field ? (1ULL << board->pages_power) : 0); read_unlock (&board->lock); return proc_calc_metrics (page, start, off, count, eof, len); }
static int device_model_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int pi = fih_get_product_id(); char ver[24]={0} ; switch (pi){ case Project_GUA: strncpy(ver, "GUA",3); ver[3]='\0'; break; case Project_BMB: strncpy(ver, "BMB",3); ver[3]='\0'; break; case Project_TAP: strncpy(ver, "TAP",3); ver[3]='\0'; break; case Project_MES: strncpy(ver, "MES",3); ver[3]='\0'; break; /* MTD-BSP-VT-HWID-01+[ */ case Project_JLO: strncpy(ver, "JLO",3); ver[3]='\0'; break; /* MTD-BSP-VT-HWID-01+] */ default: strncpy(ver, "Unkonwn Device Model",20); ver[20]='\0'; break; } len = snprintf(page, count, "%s\n", ver); /* MTD-BSP-VT-PROC-00* */ return proc_calc_metrics(page, start, off, count, eof, len); }
static int model_number_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int pi1 = fih_get_sim_id(); int pi2 = fih_get_band_id(); char ver[15]= {0}; switch (pi1) { case SINGLE_SIM: switch(pi2) { case BAND_18: strncpy(ver, "C1905",5); ver[5]='\0'; break; case BAND_18_INDIA: case BAND_1245: strncpy(ver, "C1904", 5); ver[5]='\0'; break; } break; case DUAL_SIM: switch(pi2) { case BAND_18: strncpy(ver, "C2005",5); ver[5]='\0'; break; case BAND_18_INDIA: case BAND_1245: strncpy(ver, "C2004", 5); ver[5]='\0'; break; } break; default: strncpy(ver, "Unkonwn Model",13); ver[13]='\0'; break; } len = snprintf(page, count, "%s\n", ver); return proc_calc_metrics(page, start, off, count, eof, len); }
static int uptime_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { struct timespec uptime; struct timespec idle; int len; cputime_t idletime = cputime_add(init_task.utime, init_task.stime); do_posix_clock_monotonic_gettime(&uptime); cputime_to_timespec(idletime, &idle); len = sprintf(page,"%lu.%02lu %lu.%02lu\n", (unsigned long) uptime.tv_sec, (uptime.tv_nsec / (NSEC_PER_SEC / 100)), (unsigned long) idle.tv_sec, (idle.tv_nsec / (NSEC_PER_SEC / 100))); return proc_calc_metrics(page, start, off, count, eof, len); }
/* MTD-BSP-VT-RECOVERY-00*[ */ static int reboot_info_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; char ver[10]= {0}; unsigned int boot_info = get_boot_info(); if (boot_info == 0x77665502) { strncpy( ver, "recovery", 8); ver[8]='\0'; } else { strncpy( ver, "normal", 6); ver[6]='\0'; } len = snprintf(page, count, "%s\n",ver); /* MTD-BSP-VT-PROC-00* */ return proc_calc_metrics(page, start, off, count, eof, len); }
static int support_sensor_read(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int project_id = fih_get_product_id(); int phase_id = fih_get_product_phase(); //Div2D5-OwenHuang-FB0_Sensor_Proc_Read-01+ int project_sensor = 0; switch (project_id){ case Product_FB0: project_sensor = DEFAULT_SUPPORT_SENSOR; break; case Product_FD1: project_sensor = DEFAULT_SUPPORT_SENSOR; break; case Product_SF3: project_sensor = DEFAULT_SUPPORT_SENSOR; break; case Product_SF5: //Div2D5-OwenHuang-FB0_Sensor_Proc_Read-01+{ if (phase_id == Product_PR1) project_sensor = BIT_ECOMPASS | BIT_GSENSOR | BIT_LIGHT; //not support proximity sensor at PR1 stage else project_sensor = DEFAULT_SUPPORT_SENSOR; //Div2D5-OwenHuang-FB0_Sensor_Proc_Read-01+} break; case Product_SF6: project_sensor = DEFAULT_SUPPORT_SENSOR; //DIV5-BSP-CH-SF6-SENSOR-PORTING04++ break; case Product_SF8: project_sensor = DEFAULT_SUPPORT_SENSOR; break; default: project_sensor = DEFAULT_SUPPORT_SENSOR; break; } len = snprintf(page, PAGE_SIZE, "%d\n", project_sensor); return proc_calc_metrics(page, start, off, count, eof, len); }
static int device_model_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int pi = fih_get_product_id(); char ver[24]= {0} ; switch (pi) { case PROJECT_S3A: strncpy(ver, "S3A",3); ver[3]='\0'; break; default: strncpy(ver, "Unkonwn Device Model",20); ver[20]='\0'; break; } len = snprintf(page, count, "%s\n", ver); /* MTD-BSP-VT-PROC-00* */ return proc_calc_metrics(page, start, off, count, eof, len); }
static int baseband_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int pp = fih_get_product_phase(); char ver[24]; switch (pp){ case Product_PR1: strcpy(ver, "PR1"); break; case Product_PR2: strcpy(ver, "PR2"); break; case Product_PR2p5: strcpy(ver, "PR2p5"); break; case Product_PR230: strcpy(ver, "PR230"); break; case Product_PR231: if (fih_get_product_id() == Product_FD1) //Div2-SW2-BSP, JOE HSU,FD1 PR235 = FB0 PR231 strcpy(ver, "PR235"); else strcpy(ver, "PR231"); break; case Product_PR232: strcpy(ver, "PR232"); break; case Product_PR3: strcpy(ver, "PR3"); break; //Div252-AC-HARDWARE_ID_01+{ case Product_PR1p5: strcpy(ver, "PR15"); break; //Div252-AC-HARDWARE_ID_01+} case Product_PR4: strcpy(ver, "PR4"); break; case Product_PR5: strcpy(ver, "PR5"); break; case Product_PCR: strcpy(ver, "PCR"); break; case Product_MP1: strcpy(ver, "MP1"); break; case Product_EVB: strcpy(ver, "EVB"); break; default: strcpy(ver, "Unkonwn Baseband version"); break; } len = snprintf(page, PAGE_SIZE, "%s\n", ver); return proc_calc_metrics(page, start, off, count, eof, len); }
static int memory_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len = get_mem_list(page); return proc_calc_metrics(page, start, off, count, eof, len); }
static int swaps_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len = get_swaparea_info(page); return proc_calc_metrics(page, start, off, count, eof, len); }
static int execdomains_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len = get_exec_domain_list(page); return proc_calc_metrics(page, start, off, count, eof, len); }
static int ds1286_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len = get_ds1286_status(page); return proc_calc_metrics(page, start, off, count, eof, len); }
/* < DTS2011042703449 liujinggang 20110427 begin */ static int app_version_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; /* <BU5D10533 duangan 2010-5-26 begin */ // char *ker_ver = "HUAWEI_KERNEL_VERSION"; char *ker_ver = HUAWEI_KERNEL_VERSION; /* BU5D10533 duangan 2010-5-26 end> */ char *lcd_name = NULL; char s_board_id[BOARD_ID_LEN] = {0}; char sub_ver[10] = {0}; /* < DTS2011082201029 liwei 20110819 begin */ char hw_version_id[HW_VERSION] = {0}; char hw_version_sub_ver[HW_VERSION_SUB_VER] = {0}; /* DTS2011082201029 liwei 20110819 end > */ char *compass_gs_name = NULL; switch(machine_arch_type) { case MACH_TYPE_MSM7X25_U8100: strcpy(s_board_id, "MSM7X25_U8100"); break; case MACH_TYPE_MSM7X25_U8105: strcpy(s_board_id, "MSM7X25_U8105"); break; case MACH_TYPE_MSM7X25_U8107: strcpy(s_board_id, "MSM7X25_U8107"); break; case MACH_TYPE_MSM7X25_U8109: strcpy(s_board_id, "MSM7X25_U8109"); break; case MACH_TYPE_MSM7X25_U8110: strcpy(s_board_id, "MSM7X25_U8110"); break; case MACH_TYPE_MSM7X25_U8120: strcpy(s_board_id, "MSM7X25_U8120"); break; case MACH_TYPE_MSM7X25_U7610: strcpy(s_board_id, "MSM7X25_U7610"); break; case MACH_TYPE_MSM7X25_U8500: strcpy(s_board_id, "MSM7X25_U8500"); break; case MACH_TYPE_MSM7X25_U8300: strcpy(s_board_id, "MSM7X25_U8300"); break; /*U8150_EU and U8150_JP*/ case MACH_TYPE_MSM7X25_U8150: strcpy(s_board_id, "MSM7X25_U8150"); break; case MACH_TYPE_MSM7X25_C8500: strcpy(s_board_id, "MSM7X25_C8500"); break; case MACH_TYPE_MSM7X25_C8600: strcpy(s_board_id, "MSM7X25_C8600"); break; case MACH_TYPE_MSM7X30_U8800: strcpy(s_board_id, "MSM7X30_U8800"); break; /*< DTS2010092400487 lijianzhao 20100924 begin */ case MACH_TYPE_MSM7X30_U8820: /*< DTS2011010505694 muyongquan 20110218 begin */ if (socinfo_get_msm_cpu()==MSM_CPU_8X55) strcpy(s_board_id, "MSM8255_U8820"); if(socinfo_get_msm_cpu()==MSM_CPU_7X30) /* DTS2011010505694 muyongquan 220110218 end >*/ strcpy(s_board_id, "MSM7x30_U8820"); break; /* DTS2010092400487 lijianzhao 20100924 end >*/ /*< DTS2011030802106 renxigang 20100308 begin */ /*< DTS2010112702297 wangquanli 201001125 begin */ case MACH_TYPE_MSM7X30_U8800_51: strcpy(s_board_id, "MSM7X30_U8800-51"); break; /* DTS2010112702297 wangquanli 201001125 end >*/ /* DTS2011030802106 renxigang 20100308 end >*/ /*< DTS2011030802106 renxigang 20100308 begin */ /*< DTS2011030202729 liliang 20110302 begin */ case MACH_TYPE_MSM8255_U8800_PRO: strcpy(s_board_id, "MSM8255_U8800-PRO"); break; /* DTS2011030202729 liliang 20110302 end >*/ /* DTS2011030802106 renxigang 20100308 end >*/ /* < DTS2011082201029 liwei 20110819 begin */ /* <DTS2011041501614 duangan 2011-4-18 begin */ case MACH_TYPE_MSM8255_U8860: strcpy(s_board_id, "MSM8255_U8860"); strcpy(hw_version_id, "HD2U886M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011041501614 duangan 2011-4-18 end> */ /* <DTS2011050700551 zhangbo 20110505 begin */ case MACH_TYPE_MSM8255_C8860: strcpy(s_board_id, "MSM8255_C8860"); strcpy(hw_version_id, "HC1C886M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011050700551 zhangbo 20110505 end> */ /* <DTS2011062600102 sunhonghui 20110626 begin */ case MACH_TYPE_MSM8255_U8860LP: strcpy(s_board_id, "MSM8255_U8860LP"); strcpy(hw_version_id, "HD2U886M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011062600102 sunhonghui 20110626 end> */ /*<DTS2011091502092 liyuping 20110915 begin */ /* <DTS2011110206054 liyuping 20111108 begin */ /* change HW_VERSION number */ case MACH_TYPE_MSM8255_U8860_51: strcpy(s_board_id, "MSM8255_U8860-51"); strcpy(hw_version_id, "HD2U886M01 "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011110206054 liyuping 20111108 end> */ /* DTS2011091502092 liyuping 20110915 end> */ /* <DTS2011071600361 liyuping 20110716 begin */ case MACH_TYPE_MSM8255_U8860_92: strcpy(s_board_id, "MSM8255_U8860-92"); strcpy(hw_version_id, "HD4U886M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011071600361 liyuping 20110716 end> */ /* < DTS2011082302564 liwei 20110823 begin */ case MACH_TYPE_MSM8255_U8680: strcpy(s_board_id, "MSM8255_U8680"); strcpy(hw_version_id, "HD1U868M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011082302564 liwei 20110823 end > */ /* < DTS2011102401822 liwei 20111024 begin */ case MACH_TYPE_MSM8255_U8667: strcpy(s_board_id, "MSM8255_U8667"); strcpy(hw_version_id, "HD1U866M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011102401822 liwei 20111024 end > */ /* DTS2011082201029 liwei 20110819 end > */ /* <DTS2011091200073 zhangbo 20110912 begin */ case MACH_TYPE_MSM8255_U8730: strcpy(s_board_id, "MSM8255_U8730"); strcpy(hw_version_id, "HD1U873M "); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); break; /* DTS2011091200073 zhangbo 20110912 end> */ default: strcpy(s_board_id, "ERROR"); break; } if(MACH_TYPE_MSM7X25_U8120 == machine_arch_type) { sprintf(sub_ver, ".Ver%c", 'B'); } /*U8150_EU==U8150_Ver.A and U8150_JP==U8150_Ver.B*/ else if(MACH_TYPE_MSM7X25_U8150 == machine_arch_type) { /*if sub_board_id is equal to 0(VerA), the product is U8150_EU.*/ if(HW_VER_SUB_VA == get_hw_sub_board_id()) { sprintf(sub_ver, "_EU.%c", 'A'+(char)get_hw_sub_board_id()); } /*if sub_board_id is equal to 1(VerB), the product is U8150_Japan.*/ else if(HW_VER_SUB_VB == get_hw_sub_board_id()) { sprintf(sub_ver, "_JP.%c", 'A'+(char)get_hw_sub_board_id()); } else { sprintf(sub_ver, ".Ver%c", 'A'+(char)get_hw_sub_board_id()); } } /* < DTS2011052400629 caomingxing 20110524 begin */ else if(MACH_TYPE_MSM7X30_U8800_51 == machine_arch_type) { if(HW_VER_SUB_VD == get_hw_sub_board_id()) { sprintf(sub_ver, ".Ver%c", 'C'); } else { sprintf(sub_ver, ".Ver%c", 'A'+(char)get_hw_sub_board_id()); } } /* DTS2011052400629 caomingxing 20110524 end > */ else { sprintf(sub_ver, ".Ver%c", 'A'+(char)get_hw_sub_board_id()); } strcat(s_board_id, sub_ver); /* < DTS2011082201029 liwei 20110819 begin */ strcat(hw_version_id, hw_version_sub_ver); /* DTS2011082201029 liwei 20110819 end > */ /* < BU5D10365 liujinggang 20100521 begin*/ lcd_name = get_lcd_panel_name(); /* BU5D10365 liujinggang 20100521 end > */ compass_gs_name=get_compass_gs_position_name(); /* <DTS2010071502918 shenjinming 20101008 begin */ #ifdef CONFIG_HUAWEI_POWER_DOWN_CHARGE charge_flag = get_charge_flag(); /* < DTS2011082201029 liwei 20110819 begin */ len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "charge_flag:\n%d\n" "compass_gs_position:\n%s\n" "hw_version:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id,charge_flag, compass_gs_name, hw_version_id); #else len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "compass_gs_position:\n%s\n" "hw_version:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id, compass_gs_name, hw_version_id); /* DTS2011082201029 liwei 20110819 end > */ #endif /* DTS2010071502918 shenjinming 20101008 end> */ return proc_calc_metrics(page, start, off, count, eof, len); }
static int app_version_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; // char *ker_ver = "HUAWEI_KERNEL_VERSION"; char *ker_ver = HUAWEI_KERNEL_VERSION; char *lcd_name = NULL; char * touch_info = NULL; char *wifi_device_name = NULL; char audio_property[AUDIO_PROPERTY_LEN] = {0}; /*print sensor info into app_info*/ /*< DTS2012032003522 zengxiangguang 20120320 begin */ /* Array **_**_id must be large enough to hold both id and sub id */ /* 'cause the following code would call strcat function to connect */ /* sub id to array **_**_id[] */ char s_board_id[BOARD_ID_LEN + BOARD_ID_SUB_VER_LEN] = {0}; char sub_ver[BOARD_ID_SUB_VER_LEN] = {0}; char hw_version_id[HW_VERSION + HW_VERSION_SUB_VER] = {0}; char hw_version_sub_ver[HW_VERSION_SUB_VER] = {0}; /* DTS2012032003522 zengxiangguang 20120320 end >*/ char *compass_gs_name = NULL; char *sensors_list_name = NULL; set_s_board_hw_version(s_board_id,hw_version_id); sprintf(sub_ver, ".Ver%c", 'A'+(char)get_hw_sub_board_id()); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); strcat(s_board_id, sub_ver); strcat(hw_version_id, hw_version_sub_ver); set_s_board_hw_version_special(hw_version_id,hw_version_sub_ver,s_board_id,sub_ver); compass_gs_name=get_compass_gs_position_name(); sensors_list_name = get_sensors_list_name(); lcd_name = get_lcd_panel_name(); wifi_device_name = get_wifi_device_name(); get_audio_property(audio_property); touch_info = get_touch_info(); if (touch_info == NULL) { touch_info = "Unknow touch"; } #ifdef CONFIG_HUAWEI_POWER_DOWN_CHARGE charge_flag = get_charge_flag(); len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "charge_flag:\n%d\n" "compass_gs_position:\n%s\n" "sensors_list:\n%s\n" "hw_version:\n%s\n" "wifi_chip:\n%s\n" "audio_property:\n%s\n" "touch_info:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id,charge_flag, compass_gs_name,sensors_list_name, hw_version_id,wifi_device_name,audio_property, touch_info); #else len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "compass_gs_position:\n%s\n" "sensors_list:\n%s\n" "hw_version:\n%s\n" "audio_property:\n%s\n" "touch_info:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id, compass_gs_name,sensors_list_name, hw_version_id,audio_property, touch_info); #endif return proc_calc_metrics(page, start, off, count, eof, len); }
/*write the position of compass into the file of "/proc/app_info" */ static int app_version_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; char *ker_ver = HUAWEI_KERNEL_VERSION; char *lcd_name = NULL; char s_board_id[BOARD_ID_LEN] = {0}; char sub_ver[SUB_VER_LEN] = {0}; char hw_version_id[HW_VERSION] = {0}; char hw_version_sub_ver[HW_VERSION_SUB_VER] = {0}; char *compass_gs_name = NULL; char *wifi_name = NULL; switch(machine_arch_type) { case MACH_TYPE_MSM7X27_U8510: strcpy(s_board_id, "MSM7X27_U8510"); break; case MACH_TYPE_MSM7X27_U8510_1: strcpy(s_board_id, "MSM7X27_U8510_1"); break; case MACH_TYPE_MSM7X27_M650: strcpy(s_board_id, "MSM7X27_M650"); break; case MACH_TYPE_MSM7X27_C8800: strcpy(s_board_id, "MSM7X27_C8800"); break; case MACH_TYPE_MSM7X27_U8650: strcpy(s_board_id, "MSM7X27_U8650"); break; case MACH_TYPE_MSM7X27_M865: strcpy(s_board_id, "MSM7X27_M865"); break; case MACH_TYPE_MSM7X27_C8650: strcpy(s_board_id, "MSM7X27_C8650"); break; default: strcpy(s_board_id, "ERROR"); break; } sprintf(sub_ver, ".Ver%c", 'A'+(char)get_hw_sub_board_id()); strcat(s_board_id, sub_ver); strcat(hw_version_id, hw_version_sub_ver); lcd_name = get_lcd_panel_name(); compass_gs_name=get_compass_gs_position_name(); wifi_name = get_wifi_device_name(); #ifdef CONFIG_HUAWEI_KERNEL memset(str_flash_nand_id,0,PROC_MANUFACTURER_STR_LEN); get_flash_id(str_flash_nand_id,PROC_MANUFACTURER_STR_LEN); #endif /* write the power down charge flag to the file /proc/app_info, * so we can read the flag in recovery mode to decide we enter * the recovery mode or power down charge movie */ #ifdef CONFIG_HUAWEI_POWER_DOWN_CHARGE charge_flag = get_charge_flag(); len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "hw_version:\n%s\n" "charge_flag:\n%d\n" "compass_gs_position:\n%s\n" "wifi_name:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id, hw_version_id, charge_flag,compass_gs_name,wifi_name); #else len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "hw_version:\n%s\n" "compass_gs_position:\n%s\n" "wifi_name:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id, hw_version_id,compass_gs_name,wifi_name); #endif return proc_calc_metrics(page, start, off, count, eof, len); }
static int app_version_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; // char *ker_ver = "HUAWEI_KERNEL_VERSION"; char *ker_ver = HUAWEI_KERNEL_VERSION; char *lcd_name = NULL; char * touch_info = NULL; char *wifi_device_name = NULL; char *bt_device_name = NULL; char audio_property[AUDIO_PROPERTY_LEN] = {0}; char s_board_id[BOARD_ID_LEN + BOARD_ID_SUB_VER_LEN] = {0}; char sub_ver[BOARD_ID_SUB_VER_LEN] = {0}; char hw_version_id[HW_VERSION + HW_VERSION_SUB_VER] = {0}; char hw_version_sub_ver[HW_VERSION_SUB_VER] = {0}; char *compass_gs_name = NULL; char *sensors_list_name = NULL; set_s_board_hw_version(s_board_id,hw_version_id); sprintf(sub_ver, ".Ver%c", 'A'+(char)get_hw_sub_board_id()); sprintf(hw_version_sub_ver, "VER.%c", 'A'+(char)get_hw_sub_board_id()); strcat(s_board_id, sub_ver); strcat(hw_version_id, hw_version_sub_ver); set_s_board_hw_version_special(hw_version_id,hw_version_sub_ver,s_board_id,sub_ver); compass_gs_name=get_compass_gs_position_name(); sensors_list_name = get_sensors_list_name(); lcd_name = get_lcd_panel_name(); wifi_device_name = get_wifi_device_name(); bt_device_name = get_bt_device_name(); get_audio_property(audio_property); touch_info = get_touch_info(); if (touch_info == NULL) { touch_info = "Unknow touch"; } #ifdef CONFIG_HUAWEI_POWER_DOWN_CHARGE charge_flag = get_charge_flag(); len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "charge_flag:\n%d\n" "compass_gs_position:\n%s\n" "sensors_list:\n%s\n" "hw_version:\n%s\n" "wifi_chip:\n%s\n" "bt_chip:\n%s\n" "audio_property:\n%s\n" "touch_info:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id,charge_flag, compass_gs_name,sensors_list_name, hw_version_id,wifi_device_name,bt_device_name,audio_property, touch_info); #else len = snprintf(page, PAGE_SIZE, "APPSBOOT:\n" "%s\n" "KERNEL_VER:\n" "%s\n" "FLASH_ID:\n" "%s\n" "board_id:\n%s\n" "lcd_id:\n%s\n" "cam_id:\n%d\n" "ts_id:\n%d\n" "compass_gs_position:\n%s\n" "sensors_list:\n%s\n" "hw_version:\n%s\n" "audio_property:\n%s\n" "touch_info:\n%s\n", appsboot_version, ker_ver, str_flash_nand_id, s_board_id, lcd_name, camera_id, ts_id, compass_gs_name,sensors_list_name, hw_version_id,audio_property, touch_info); #endif return proc_calc_metrics(page, start, off, count, eof, len); }
static int band_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int pi = fih_get_band_id(); char ver[40]; switch (pi) { case FIH_BAND_W1245: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_1245\n"); break; case FIH_BAND_W1248: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_1248\n"); break; case FIH_BAND_W125: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_125\n"); break; case FIH_BAND_W128: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_128\n"); break; case FIH_BAND_W25: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_25\n"); break; case FIH_BAND_W18: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_18\n"); break; case FIH_BAND_W15: strcpy( ver, "GSM_BAND_1234, WCDMA_BAND_15\n"); break; case FIH_BAND_C01: strcpy( ver, "CDMA_BAND_01\n"); break; case FIH_BAND_C0: strcpy( ver, "CDMA_BAND_0\n"); break; case FIH_BAND_C1: strcpy( ver, "CDMA_BAND_1\n"); break; case FIH_BAND_C01_AWS: strcpy( ver, "CDMA_BAND_01F\n"); break; case FIH_BAND_W1245_C01: strcpy( ver, "GSM_BAND_1234, CDMA_BAND_01, WCDMA_BAND_1245\n"); break; case FIH_BAND_W1245_G_850_1800_1900: strcpy( ver, "GSM_BAND_134, WCDMA_BAND_1245\n"); break; case FIH_BAND_W1248_G_900_1800_1900: strcpy(ver, "GSM_BAND_234, WCDMA_BAND_1248\n"); break; case FIH_BAND_W125_G_850_1800_1900: strcpy( ver, "GSM_BAND_134, WCDMA_BAND_125\n"); break; case FIH_BAND_W128_G_900_1800_1900: strcpy( ver, "GSM_BAND_234, WCDMA_BAND_128\n"); break; case FIH_BAND_W25_G_850_1800_1900: strcpy( ver, "GSM_BAND_134, WCDMA_BAND_25\n"); break; case FIH_BAND_W18_G_900_1800_1900: strcpy( ver, "GSM_BAND_234, WCDMA_BAND_18\n"); break; case FIH_BAND_W1_XI_G_900_1800_1900: strcpy( ver, "GSM_BAND_234, WCDMA_BAND_1B\n"); break; case FIH_BAND_W15_G_850_1800_1900: strcpy( ver, "GSM_BAND_134, WCDMA_BAND_15\n"); break; default: strcpy( ver, "Unkonwn RF band id\n"); break; } len = snprintf(page, PAGE_SIZE, "%s\n", ver); return proc_calc_metrics(page, start, off, count, eof, len); }
static int kstat_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int i, len = 0; extern unsigned long total_forks; unsigned long jif = jiffies; unsigned int sum = 0, user = 0, nice = 0, system = 0; int major, disk; for (i = 0 ; i < smp_num_cpus; i++) { int cpu = cpu_logical_map(i), j; user += kstat.per_cpu_user[cpu]; nice += kstat.per_cpu_nice[cpu]; system += kstat.per_cpu_system[cpu]; #if !defined(CONFIG_ARCH_S390) for (j = 0 ; j < NR_IRQS ; j++) sum += kstat.irqs[cpu][j]; #endif } proc_sprintf(page, &off, &len, "cpu %u %u %u %lu\n", user, nice, system, jif * smp_num_cpus - (user + nice + system)); for (i = 0 ; i < smp_num_cpus; i++) proc_sprintf(page, &off, &len, "cpu%d %u %u %u %lu\n", i, kstat.per_cpu_user[cpu_logical_map(i)], kstat.per_cpu_nice[cpu_logical_map(i)], kstat.per_cpu_system[cpu_logical_map(i)], jif - ( kstat.per_cpu_user[cpu_logical_map(i)] \ + kstat.per_cpu_nice[cpu_logical_map(i)] \ + kstat.per_cpu_system[cpu_logical_map(i)])); proc_sprintf(page, &off, &len, "page %u %u\n" "swap %u %u\n" "intr %u", kstat.pgpgin >> 1, kstat.pgpgout >> 1, kstat.pswpin, kstat.pswpout, sum ); #if !defined(CONFIG_ARCH_S390) && !defined(CONFIG_ALPHA) for (i = 0 ; i < NR_IRQS ; i++) proc_sprintf(page, &off, &len, " %u", kstat_irqs(i)); #endif proc_sprintf(page, &off, &len, "\ndisk_io: "); for (major = 0; major < DK_MAX_MAJOR; major++) { for (disk = 0; disk < DK_MAX_DISK; disk++) { int active = kstat.dk_drive[major][disk] + kstat.dk_drive_rblk[major][disk] + kstat.dk_drive_wblk[major][disk]; if (active) proc_sprintf(page, &off, &len, "(%u,%u):(%u,%u,%u,%u,%u) ", major, disk, kstat.dk_drive[major][disk], kstat.dk_drive_rio[major][disk], kstat.dk_drive_rblk[major][disk], kstat.dk_drive_wio[major][disk], kstat.dk_drive_wblk[major][disk] ); } } proc_sprintf(page, &off, &len, "\nctxt %u\n" "btime %lu\n" "processes %lu\n", kstat.context_swtch, xtime.tv_sec - jif / HZ, total_forks); return proc_calc_metrics(page, start, off, count, eof, len); }
static int cpu_read_number_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len,unknow_flag=0; int pp = fih_get_cpu_version_number(); char ver[24]; switch(pp) { case CPU_MSM8255_0_V1: strcpy(ver, "CPU:MSM8255-0 V1"); break; case CPU_MSM8655_0_V1: strcpy(ver, "CPU:MSM8655-0 V1"); break; case CPU_MSM8255_1_V1: strcpy(ver, "CPU:MSM8255-1 V1"); break; case CPU_MSM8655_1_V1: strcpy(ver, "CPU:MSM8655-1 V1"); break; case CPU_MSM8255_0_V2: strcpy(ver, "CPU:MSM8255-0 V2"); break; case CPU_MSM8655_0_V2: strcpy(ver, "CPU:MSM8655-0 V2"); break; case CPU_MSM8255_1_V2: strcpy(ver, "CPU:MSM8255-1 V2"); break; case CPU_MSM8655_1_V2: strcpy(ver, "CPU:MSM8655-1 V2"); break; case CPU_MSM8255_0_V2_12000MHz: strcpy(ver, "CPU:MSM8255-0 1.2GHz V2"); break; case CPU_MSM8655_0_V2_12000MHz: strcpy(ver, "CPU:MSM8655-0 1.2GHz V2"); break; case CPU_MSM8255_1_V2_12000MHz: strcpy(ver, "CPU:MSM8255-1 1.2GHz V2"); break; case CPU_MSM8655_1_V2_12000MHz: strcpy(ver, "CPU:MSM8655-1 1.2GHz V2"); break; case CPU_MSM8255_0_V2_14000MHz: strcpy(ver, "CPU:MSM8255-0 1.4GHz V2"); break; case CPU_MSM8655_0_V2_14000MHz: strcpy(ver, "CPU:MSM8655-0 1.4GHz V2"); break; default: unknow_flag=1; break; } if(unknow_flag) { len = snprintf(page, PAGE_SIZE, "%x\n",pp); } else { len = snprintf(page, PAGE_SIZE, "%s\n",ver); } return proc_calc_metrics(page, start, off, count, eof, len); }
static int meminfo_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { struct sysinfo i; int len; struct page_state ps; unsigned long inactive; unsigned long active; unsigned long free; unsigned long committed; unsigned long allowed; struct vmalloc_info vmi; long cached; get_page_state(&ps); get_zone_counts(&active, &inactive, &free); /* * display in kilobytes. */ #define K(x) ((x) << (PAGE_SHIFT - 10)) si_meminfo(&i); si_swapinfo(&i); committed = atomic_read(&vm_committed_space); allowed = ((totalram_pages - hugetlb_total_pages()) * sysctl_overcommit_ratio / 100) + total_swap_pages; cached = get_page_cache_size() - total_swapcache_pages - i.bufferram; if (cached < 0) cached = 0; get_vmalloc_info(&vmi); /* * Tagged format, for easy grepping and expansion. */ len = sprintf(page, "MemTotal: %8lu kB\n" "MemFree: %8lu kB\n" "Buffers: %8lu kB\n" "Cached: %8lu kB\n" "SwapCached: %8lu kB\n" "Active: %8lu kB\n" "Inactive: %8lu kB\n" "HighTotal: %8lu kB\n" "HighFree: %8lu kB\n" "LowTotal: %8lu kB\n" "LowFree: %8lu kB\n" "SwapTotal: %8lu kB\n" "SwapFree: %8lu kB\n" "Dirty: %8lu kB\n" "Writeback: %8lu kB\n" "Mapped: %8lu kB\n" "Slab: %8lu kB\n" "CommitLimit: %8lu kB\n" "Committed_AS: %8lu kB\n" "PageTables: %8lu kB\n" "VmallocTotal: %8lu kB\n" "VmallocUsed: %8lu kB\n" "VmallocChunk: %8lu kB\n", K(i.totalram), K(i.freeram), K(i.bufferram), K(cached), K(total_swapcache_pages), K(active), K(inactive), K(i.totalhigh), K(i.freehigh), K(i.totalram-i.totalhigh), K(i.freeram-i.freehigh), K(i.totalswap), K(i.freeswap), K(ps.nr_dirty), K(ps.nr_writeback), K(ps.nr_mapped), K(ps.nr_slab), K(allowed), K(committed), K(ps.nr_page_table_pages), (unsigned long)VMALLOC_TOTAL >> 10, vmi.used >> 10, vmi.largest_chunk >> 10 ); len += hugetlb_report_meminfo(page + len); return proc_calc_metrics(page, start, off, count, eof, len); #undef K }
static int meminfo_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { struct sysinfo i; int len; int pg_size ; /* * display in kilobytes. */ #define K(x) ((x) << (PAGE_SHIFT - 10)) #define B(x) ((unsigned long long)(x) << PAGE_SHIFT) si_meminfo(&i); si_swapinfo(&i); pg_size = atomic_read(&page_cache_size) - i.bufferram ; len = sprintf(page, " total: used: free: shared: buffers: cached:\n" "Mem: %8Lu %8Lu %8Lu %8Lu %8Lu %8Lu\n" "Swap: %8Lu %8Lu %8Lu\n", B(i.totalram), B(i.totalram-i.freeram), B(i.freeram), B(i.sharedram), B(i.bufferram), B(pg_size), B(i.totalswap), B(i.totalswap-i.freeswap), B(i.freeswap)); /* * Tagged format, for easy grepping and expansion. * The above will go away eventually, once the tools * have been updated. */ len += sprintf(page+len, "MemTotal: %8lu kB\n" "MemFree: %8lu kB\n" "MemShared: %8lu kB\n" "Buffers: %8lu kB\n" "Cached: %8lu kB\n" "SwapCached: %8lu kB\n" "Active: %8u kB\n" "Inactive: %8u kB\n" "HighTotal: %8lu kB\n" "HighFree: %8lu kB\n" "LowTotal: %8lu kB\n" "LowFree: %8lu kB\n" "SwapTotal: %8lu kB\n" "SwapFree: %8lu kB\n", K(i.totalram), K(i.freeram), K(i.sharedram), K(i.bufferram), K(pg_size - swapper_space.nrpages), K(swapper_space.nrpages), K(nr_active_pages), K(nr_inactive_pages), K(i.totalhigh), K(i.freehigh), K(i.totalram-i.totalhigh), K(i.freeram-i.freehigh), K(i.totalswap), K(i.freeswap)); return proc_calc_metrics(page, start, off, count, eof, len); #undef B #undef K }
static int baseband_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { int len; int pp = fih_get_product_phase(); char ver[25]={0}; switch (pp){ case Phase_EVB: strncpy(ver, "EVB", 3); ver[3]='\0'; break; case Phase_DP: strncpy(ver, "DP", 2); ver[2]='\0'; break; case Phase_SP: strncpy(ver, "SP", 2); ver[3]='\0'; break; /* MTD-BSP-VT-HWID-02+[ */ case Phase_SP2: strncpy(ver, "SP2", 3); ver[3]='\0'; break; /* MTD-BSP-VT-HWID-02+] */ case Phase_SP3: strncpy(ver, "SP3", 3); ver[3]='\0'; break; case Phase_AP: strncpy(ver, "AP", 2); ver[2]='\0'; break; case Phase_AP2: strncpy(ver, "AP2", 3); ver[3]='\0'; break; case Phase_PreAP: strncpy(ver, "PreAP", 5); ver[5]='\0'; break; case Phase_TP: strncpy(ver, "TP", 2); ver[2]='\0'; break; case Phase_TP2: strncpy(ver, "TP2", 3); ver[3]='\0'; break; case Phase_TP3: strncpy(ver, "TP3", 3); ver[3]='\0'; break; case Phase_PQ : strncpy(ver, "PQ", 2); ver[2]='\0'; break; case Phase_MP: strncpy(ver, "MP", 2); ver[2]='\0'; break; default: strncpy(ver, "Unkonwn Baseband version",24); ver[24]='\0'; break; } len = snprintf(page, count, "%s\n", ver); /* MTD-BSP-VT-PROC-00* */ return proc_calc_metrics(page, start, off, count, eof, len); }