Example #1
0
/*****************************************************************************
 函 数 名  : sdt_drv_netbuf_add_to_list_tail
 功能描述  : sdt收发消息入队
 输入参数  : oal_netbuf_stru *pst_netbuf
 输出参数  : 无
 返 回 值  : oal_void
 调用函数  :
 被调函数  :

 修改历史      :
  1.日    期   : 2014年2月19日,星期三
    作    者   : y00201072
    修改内容   : 新生成函数

*****************************************************************************/
OAL_STATIC OAL_INLINE oal_void  sdt_drv_netbuf_add_to_list(oal_netbuf_stru *pst_netbuf)
{
    oal_uint    ui_irq_save;

    oal_spin_lock_irq_save(&g_st_sdt_drv_mng_entry.st_spin_lock, &ui_irq_save);

    oal_netbuf_add_to_list_tail(pst_netbuf, &g_st_sdt_drv_mng_entry.rx_wifi_dbg_seq);

    oal_spin_unlock_irq_restore(&g_st_sdt_drv_mng_entry.st_spin_lock, &ui_irq_save);
}
oal_uint32  dmac_data_acq_get_record(oal_void)
{
    oal_netbuf_stru                *pst_queue_netbuf;
    dmac_data_acq_info_stru        *pst_daq_info;
    oal_uint32                      ul_ret = OAL_FAIL;

    /* 采集完成可以上传数据 */
    if (DMAC_DATA_ACQ_STATUS_COMPLETE == g_st_data_acq.en_daq_status)
    {
        /* 上传数据 */
        g_st_data_acq.en_daq_app_error = OAL_FALSE;
        pst_queue_netbuf = OAL_MEM_NETBUF_ALLOC(OAL_NORMAL_NETBUF, DMAC_DATA_ACQ_UNIT_MAX_LEN, OAL_NETBUF_PRIORITY_MID);

        if (OAL_PTR_NULL == pst_queue_netbuf)
        {
            OAM_ERROR_LOG0(0, OAM_SF_ANY, "{dmac_data_acq_get_record::pst_queue_netbuf null.}");

            return OAL_ERR_CODE_PTR_NULL;
        }
        pst_daq_info = (dmac_data_acq_info_stru *)oal_netbuf_data(pst_queue_netbuf);

        pst_daq_info->ul_daq_addr = (oal_uint32)g_st_data_acq.st_daq_prep_info.puc_start_addr;
        pst_daq_info->ul_data_len = g_st_data_acq.ul_length;
        pst_daq_info->ul_unit_len = DMAC_DATA_ACQ_UNIT_DATA_LEN;

        oal_netbuf_add_to_list_tail(pst_queue_netbuf, &g_st_data_acq.st_daq_workqueue.rx_daq_dbg_seq);

        oal_queue_work(g_st_data_acq.st_daq_workqueue.daq_rx_workqueue, &g_st_data_acq.st_daq_workqueue.rx_daq_work);

        ul_ret = OAL_SUCC;
    }
    else
    {
        /* 数据采集未完成,不允许上传数据 */
        OAM_ERROR_LOG0(0, OAM_SF_ANY, "{dmac_data_acq_get_record::data acq is running.}");

        ul_ret = OAL_FAIL;
    }

    return ul_ret;
}