/*******************************************************************************
**
** Function         bta_pan_sm_execute
**
** Description      State machine event handling function for PAN
**
**
** Returns          void
**
*******************************************************************************/
static void bta_pan_sm_execute(tBTA_PAN_SCB *p_scb, UINT16 event, tBTA_PAN_DATA *p_data)
{
    tBTA_PAN_ST_TBL      state_table;
    UINT8               action;
    int                 i;

    APPL_TRACE_EVENT3("PAN scb=%d event=0x%x state=%d", bta_pan_scb_to_idx(p_scb), event, p_scb->state);

    /* look up the state table for the current state */
    state_table = bta_pan_st_tbl[p_scb->state];

    event &= 0x00FF;

    /* set next state */
    p_scb->state = state_table[event][BTA_PAN_NEXT_STATE];

    /* execute action functions */
    for (i = 0; i < BTA_PAN_ACTIONS; i++)
    {
        if ((action = state_table[event][i]) != BTA_PAN_IGNORE)
        {
            (*bta_pan_action[action])(p_scb, p_data);
        }
        else
        {
            break;
        }
    }
}
Exemple #2
0
/*******************************************************************************
**
** Function         bta_pan_scb_dealloc
**
** Description      Deallocate a link control block.
**
**
** Returns          void
**
*******************************************************************************/
void bta_pan_scb_dealloc(tBTA_PAN_SCB *p_scb)
{
    APPL_TRACE_DEBUG("bta_pan_scb_dealloc %d", bta_pan_scb_to_idx(p_scb));
    if (p_scb->is_idle_timer_started == TRUE)
    {
        /* Ensure that timer is stopped */
        btu_stop_timer (&p_scb->idle_tle);
    }
    memset(p_scb, 0, sizeof(tBTA_PAN_SCB));
}
/*******************************************************************************
**
** Function         bta_pan_scb_dealloc
**
** Description      Deallocate a link control block.
**
**
** Returns          void
**
*******************************************************************************/
void bta_pan_scb_dealloc(tBTA_PAN_SCB *p_scb)
{
    APPL_TRACE_DEBUG1("bta_pan_scb_dealloc %d", bta_pan_scb_to_idx(p_scb));
    memset(p_scb, 0, sizeof(tBTA_PAN_SCB));
}