NFC GKI发送和接受数据解析

发送:GKI_send_event

把事件event 发送到id为 task_id 的task 。

有哪些Task:

目前系统有14个Task 。
NFC_TASK
NCIT_TASK

发送源码:

uint8_t GKI_send_event(uint8_t task_id, uint16_t event) {
  /* use efficient coding to avoid pipeline stalls */
  if (task_id < GKI_MAX_TASKS) {
    /* protect OSWaitEvt[task_id] from manipulation in GKI_wait() */
    pthread_mutex_lock(&gki_cb.os.thread_evt_mutex[task_id]);

    /* Set the event bit */
    gki_cb.com.OSWaitEvt[task_id] |= event;

    pthread_cond_signal(&gki_cb.os.thread_evt_cond[task_id]);

    pthread_mutex_unlock(&gki_cb.os.thread_evt_mutex[task_id]);

    return (GKI_SUCCESS);
  }
  return (GKI_FAILURE);
}

有哪些地方调用了GKI_send_event

nfc_main.cc的nfc_main_post_hal_evt函数 。
nfa_sys_main.cc的nfa_sys_sendmsg函数。

接受:GKI_wait

你可能感兴趣的:(android,NFC,android,NFC)