static int broadcast_tdmb_get_ch_info(void __user *arg) { int rc = ERROR; char fic_kernel_buffer[400]; unsigned int fic_len = 0; struct broadcast_tdmb_ch_info __user* puserdata = (struct broadcast_tdmb_ch_info __user*)arg; if((puserdata == NULL)||( puserdata->ch_buf == NULL)) { printk("broadcast_tdmb_get_ch_info argument error\n"); return rc; } memset(fic_kernel_buffer, 0x00, sizeof(fic_kernel_buffer)); rc = broadcast_drv_if_get_ch_info(fic_kernel_buffer, &fic_len); if(rc == OK) { if(copy_to_user((void __user*)puserdata->ch_buf, (void*)fic_kernel_buffer, fic_len)) { fic_len = 0; rc = ERROR; } } else { fic_len = 0; rc = ERROR; } puserdata->buf_len = fic_len; return rc; }
static int broadcast_dmb_get_ch_info(void __user *arg) { int rc = ERROR; struct broadcast_dmb_ch_info udata; if(arg==NULL) { printk(KERN_ERR"broadcast_dmb_get_ch_info arg is Null\n"); return ERROR; } if(copy_from_user(&udata, arg, sizeof(struct broadcast_dmb_ch_info))) { printk(KERN_ERR"[1seg]broadcast_dmb_get_ch_info copy_from_user fail!!! \n"); rc = ERROR; } else { rc = broadcast_drv_if_get_ch_info(&udata); } if(copy_to_user((void *)arg, &udata, sizeof(struct broadcast_dmb_ch_info))) { printk(KERN_ERR"[1seg]broadcast_dmb_get_ch_info copy_to_user error!!! \n"); rc = ERROR; } else { rc = OK; } printk(KERN_DEBUG"[1seg]broadcast_dmb_get_ch_info\n"); return rc; }
static int broadcast_tdmb_get_ch_info(void __user *arg) { int rc = ERROR; char fic_kernel_buffer[400]; unsigned int fic_len = 0; struct broadcast_tdmb_ch_info __user* puserdata = (struct broadcast_tdmb_ch_info __user*)arg; if((puserdata == NULL)||( puserdata->ch_buf_addr == 0)) { printk("broadcast_tdmb_get_ch_info argument error\n"); return rc; } memset(fic_kernel_buffer, 0x00, sizeof(fic_kernel_buffer)); //20130516_wonhee.jeong Code for revision separation [START] #if defined (CONFIG_MACH_MSM8974_Z_KR) if(lge_get_board_revno() == HW_REV_A){ rc = broadcast_drv_if_get_ch_info_fci(fic_kernel_buffer, &fic_len); } else #endif //20130516_wonhee.jeong Code for revision separation [END] rc = broadcast_drv_if_get_ch_info(fic_kernel_buffer, &fic_len); if(rc == OK) { if(copy_to_user((void __user*)((unsigned int)puserdata->ch_buf_addr), (void*)fic_kernel_buffer, fic_len)) { fic_len = 0; rc = ERROR; } } else { fic_len = 0; rc = ERROR; } puserdata->buf_len = fic_len; return rc; }