Exemplo n.º 1
0
/*******************************************************************************
**
** Function         llcp_sdp_get_sap_by_name
**
** Description      Search SAP by service name
**
**
** Returns          SAP if success
**
*******************************************************************************/
UINT8 llcp_sdp_get_sap_by_name (char *p_name, UINT8 length)
{
    UINT8        sap;
    tLLCP_APP_CB *p_app_cb;

    for (sap = LLCP_SAP_SDP; sap <= LLCP_UPPER_BOUND_SDP_SAP; sap++)
    {
        p_app_cb = llcp_util_get_app_cb (sap);

        if (  (p_app_cb)
            &&(p_app_cb->p_app_cback)
            &&(strlen((char*)p_app_cb->p_service_name) == length)
            &&(!strncmp((char*)p_app_cb->p_service_name, p_name, length))  )
        {
#if(NFC_NXP_NOT_OPEN_INCLUDED == TRUE)
            /* if device is under LLCP DTA testing */
            if (  (llcp_cb.p_dta_cback)
                &&(!strncmp((char*)p_app_cb->p_service_name, "urn:nfc:sn:cl-echo-in", length))  )
            {
                llcp_cb.dta_snl_resp = TRUE;
            }
#endif
            return (sap);
        }
    }
    return 0;
}
/*******************************************************************************
**
** Function         llcp_sdp_get_sap_by_name
**
** Description      Search SAP by service name
**
**
** Returns          SAP if success
**
*******************************************************************************/
UINT8 llcp_sdp_get_sap_by_name (char *p_name, UINT8 length)
{
    UINT8        sap;
    tLLCP_APP_CB *p_app_cb;

    for (sap = LLCP_SAP_SDP; sap <= LLCP_UPPER_BOUND_SDP_SAP; sap++)
    {
        p_app_cb = llcp_util_get_app_cb (sap);

        if (  (p_app_cb)
            &&(p_app_cb->p_app_cback)
            &&(strlen((char*)p_app_cb->p_service_name) == length)
            &&(!strncmp((char*)p_app_cb->p_service_name, p_name, length))  )
        {
            return (sap);
        }
    }
    return 0;
}
Exemplo n.º 3
0
/*******************************************************************************
**
** Function         llcp_cleanup
**
** Description      This function is called once at closing to clean up
**
** Returns          void
**
*******************************************************************************/
void llcp_cleanup (void)
{
    UINT8 sap;
    tLLCP_APP_CB *p_app_cb;

    LLCP_TRACE_DEBUG0 ("LLCP - llcp_cleanup ()");

    for (sap = LLCP_SAP_SDP; sap < LLCP_NUM_SAPS; sap++)
    {
        p_app_cb = llcp_util_get_app_cb (sap);

        if (  (p_app_cb)
            &&(p_app_cb->p_app_cback)  )
        {
            LLCP_Deregister (sap);
        }
    }

    nfc_stop_quick_timer (&llcp_cb.lcb.inact_timer);
    nfc_stop_quick_timer (&llcp_cb.lcb.timer);
}
Exemplo n.º 4
0
/*******************************************************************************
**
** Function         llcp_util_allocate_data_link
**
** Description      Allocate tLLCP_DLCB for data link connection
**
** Returns          tLLCP_DLCB *
**
******************************************************************************/
tLLCP_DLCB *llcp_util_allocate_data_link (UINT8 reg_sap, UINT8 remote_sap)
{
    tLLCP_DLCB *p_dlcb = NULL;
    int         idx;

    LLCP_TRACE_DEBUG2 ("llcp_util_allocate_data_link (): reg_sap = 0x%x, remote_sap = 0x%x",
                        reg_sap, remote_sap);

    for (idx = 0; idx < LLCP_MAX_DATA_LINK; idx++)
    {
        if (llcp_cb.dlcb[idx].state == LLCP_DLC_STATE_IDLE)
        {
            p_dlcb = &(llcp_cb.dlcb[idx]);

            memset (p_dlcb, 0, sizeof (tLLCP_DLCB));
            break;
        }
    }

    if (!p_dlcb)
    {
        LLCP_TRACE_ERROR0 ("llcp_util_allocate_data_link (): Out of DLCB");
    }
    else
    {
        p_dlcb->p_app_cb    = llcp_util_get_app_cb (reg_sap);
        p_dlcb->local_sap   = reg_sap;
        p_dlcb->remote_sap  = remote_sap;
        p_dlcb->timer.param = (TIMER_PARAM_TYPE) p_dlcb;

        /* this is for inactivity timer and congestion control. */
        llcp_cb.num_data_link_connection++;

        LLCP_TRACE_DEBUG3 ("llcp_util_allocate_data_link (): local_sap = 0x%x, remote_sap = 0x%x, num_data_link_connection = %d",
                            p_dlcb->local_sap, p_dlcb->remote_sap, llcp_cb.num_data_link_connection);
    }
    return p_dlcb;
}