BREW: UIM record read steps
2013-10-22 15:22
627 查看
pbm_gsdi_init()
mmgsdi_client_evt_reg(pbm_mmgsdi_client_id,
pbm_mmgsdi_card_status_cb,
pbm_mmgsdi_status_cb,
0);
pbm_mmgsdi_card_status_cb()
rex_set_sigs(&pbm_tcb, PBM_MMGSDI_WAIT_SIG);
pbm_gsdi_sim_cap_cb()
pbm_gsdi_resp_q_put(PBM_GSDI_RESPONSE_SIG)
pbm_gsdi_resp_handle()
case PBM_GSDI_SIM_CAP_CB:
pbm_sim_cap_cb( )
pbm_init_fileinfo_internal()
开始文件初始化
pbm_init_fileinfo_internal()
pbm_start_fileinfo_request()
pbm_make_fileinfo_request()
if(pbm_gsdi_is_service_allowed()) 判断service是否允许
pbm_gsdi_get_file_attributes(pbm_gsdi_fileinfo_cb) 获取文件属性
pbm_gsdi_fileinfo_cb()
pbm_gsdi_resp_q_put() 设置信号PBM_GSDI_RESPONSE_SIG
pbm_gsdi_resp_handle()
case PBM_MMGSDI_FILE_INFO_CB:
pbm_fileinfo_cb()
得到最大容量等信息
pbm_fill_pb_cache_info()
继续获取UIM卡的其他文件信息
所有文件信息获取完成后,进入:
pbm_fileinfo_complete()
针对每一个文件进行操作
。。。。。。
case PBM_CACHE_TYPE_PB:
把保存记录的内存空间adn_cache.pb_cache_array先清空,然后重新分配空间。
设置start=1, circular=FALSE,records_in_use = 0;
break;
pbm_init_seek_data(sim_id);
pbm_initialize_index[sim_id] = 0;
pbm_init_entries(sim_id);
开始read记录
pbm_init_entries( )
pbm_seek_unused_records( )
pbm_start_record_read( )
pbm_sim_read(sim_id, file_id, record_num, pbm_sim_read_cb);
pbm_send_read_request(sim_id, file_id, filename, index, buffer_index, pbm_gsdi_async_cb)
pbm_gsdi_sim_read()
mmgsdi_read_record()
读取到一个记录后
mmgsdi_handle_queue_sig()
mmgsdi_process_cnf()
pbm_gsdi_async_cb()
设置信号PBM_GSDI_RESPONSE_SIG
pbm_task()收到此信号
pbm_gsdi_resp_handle()
pbm_gsdi_read_cb()
pbm_gsdi_sim_read_cb()
pbm_gsdi_process_sim_data()
pbm_sim_read_cb( )
pbm_cache_record_add( ) 添加到cache中
pbm_sim_read()
读取完毕后,core_ui_notify_pb_uim_ok(),通知core_ui.c,然后通知电话簿AP。
ADN,FDN,LDN等每种记录读取完毕后,进入:pbm_init_entries()的最后(while外面)
pbm_sim_init_completed()
UIM命令操作时一些函数
uim_send_apdu()
uim_rx_isr()
mmgsdi_uim_icc_read_record()
mmgsdi_process_response()
mmgsdi_cnf_build_and_queue()
uim_process_generic_response()
mmgsdi_client_evt_reg(pbm_mmgsdi_client_id,
pbm_mmgsdi_card_status_cb,
pbm_mmgsdi_status_cb,
0);
pbm_mmgsdi_card_status_cb()
rex_set_sigs(&pbm_tcb, PBM_MMGSDI_WAIT_SIG);
pbm_gsdi_sim_cap_cb()
pbm_gsdi_resp_q_put(PBM_GSDI_RESPONSE_SIG)
pbm_gsdi_resp_handle()
case PBM_GSDI_SIM_CAP_CB:
pbm_sim_cap_cb( )
pbm_init_fileinfo_internal()
开始文件初始化
pbm_init_fileinfo_internal()
pbm_start_fileinfo_request()
pbm_make_fileinfo_request()
if(pbm_gsdi_is_service_allowed()) 判断service是否允许
pbm_gsdi_get_file_attributes(pbm_gsdi_fileinfo_cb) 获取文件属性
pbm_gsdi_fileinfo_cb()
pbm_gsdi_resp_q_put() 设置信号PBM_GSDI_RESPONSE_SIG
pbm_gsdi_resp_handle()
case PBM_MMGSDI_FILE_INFO_CB:
pbm_fileinfo_cb()
得到最大容量等信息
pbm_fill_pb_cache_info()
继续获取UIM卡的其他文件信息
所有文件信息获取完成后,进入:
pbm_fileinfo_complete()
针对每一个文件进行操作
。。。。。。
case PBM_CACHE_TYPE_PB:
把保存记录的内存空间adn_cache.pb_cache_array先清空,然后重新分配空间。
设置start=1, circular=FALSE,records_in_use = 0;
break;
pbm_init_seek_data(sim_id);
pbm_initialize_index[sim_id] = 0;
pbm_init_entries(sim_id);
开始read记录
pbm_init_entries( )
pbm_seek_unused_records( )
pbm_start_record_read( )
pbm_sim_read(sim_id, file_id, record_num, pbm_sim_read_cb);
pbm_send_read_request(sim_id, file_id, filename, index, buffer_index, pbm_gsdi_async_cb)
pbm_gsdi_sim_read()
mmgsdi_read_record()
读取到一个记录后
mmgsdi_handle_queue_sig()
mmgsdi_process_cnf()
pbm_gsdi_async_cb()
设置信号PBM_GSDI_RESPONSE_SIG
pbm_task()收到此信号
pbm_gsdi_resp_handle()
pbm_gsdi_read_cb()
pbm_gsdi_sim_read_cb()
pbm_gsdi_process_sim_data()
pbm_sim_read_cb( )
pbm_cache_record_add( ) 添加到cache中
pbm_sim_read()
读取完毕后,core_ui_notify_pb_uim_ok(),通知core_ui.c,然后通知电话簿AP。
ADN,FDN,LDN等每种记录读取完毕后,进入:pbm_init_entries()的最后(while外面)
pbm_sim_init_completed()
UIM命令操作时一些函数
uim_send_apdu()
uim_rx_isr()
mmgsdi_uim_icc_read_record()
mmgsdi_process_response()
mmgsdi_cnf_build_and_queue()
uim_process_generic_response()
相关文章推荐
- the basic approach to read dataset(TFRecord) with iterator in Tensorflow
- SPICE <Restart> - Read Record from Input File
- Read a File Using File Layout and insert data into a record
- 操作卡片文件命令--读记录(READ RECORD)
- extjs中Record、Store、read、MixedCollection大概联系
- BREW Service: R-UIM&SIM -读书笔记
- atal: unable to access 'https://github.com/Homebrew/brew/': SSLRead() return error -9806
- MySQL+VBB问题:Record has changed since last read in table 'session' 的解决
- 7 Steps to Setup A Record Level Audit in PeopleSoft
- inputFormat,RecordRead的理解和定制
- 连续调用ReadRecord读取NVRAM的数据出错的原因
- 7 Steps to Setup A Record Level Audit in PeopleSoft
- Value stored to 'recordView' during its initialization is never read
- SparkStreaming “Could not read data from write ahead log record” 报错分析解决
- record for read ·
- 读记录(READ RECORD)命令APDU
- InputFormat,OutputFormat,InputSplit,RecordRead(一些常见面试题),使用yum安装64位Mysql
- Java源码——读取顺序存取文件中的数据(read text file and display each record)
- The book I shall Read for current.
- (转载)StampedLock、ReadWriteLock以及synchronized的比较