Beispiel #1
0
/*****************************************************************************
 Function   : CreateFidsTask
 Description: create tasks of all FIDs
 Input      : void
            : void
 Return     : VOS_OK on success or errno on failure
 *****************************************************************************/
VOS_UINT32 CreateFidsTask(VOS_VOID)
{
    VOS_UINT32              i;
    int                     ubyIndex;
    VOS_UINT32              ulReturnValue;
    VOS_UINT32              Argument[VOS_TARG_NUM] = {0};
    VOS_CHAR                acSelfTaskName[VOS_MAX_LENGTH_TASK_NAME];

    Argument[3] = VOS_NULL_DWORD;

    for(i=VOS_FID_DOPRAEND; i<VOS_FID_BUTT; i++)
    {
        vos_FidCtrlBlk[i].TaskArgument[0] = vos_FidCtrlBlk[i].Qid;
        vos_FidCtrlBlk[i].TaskArgument[1] = i;
        vos_FidCtrlBlk[i].TaskArgument[3] = VOS_NULL_DWORD;

        ulReturnValue   = VOS_CreateTask( vos_FidCtrlBlk[i].Name
                                        , &(vos_FidCtrlBlk[i].Tid)
                                        , vos_FidCtrlBlk[i].TaskFunction
                                        , vos_FidCtrlBlk[i].Priority
                                        , vos_FidCtrlBlk[i].StackSize
                                        , vos_FidCtrlBlk[i].TaskArgument);
        if( ulReturnValue != VOS_OK )
        {
            Print("# VOS_CreateTask Fail in CreateFidsTask.\r\n");
            return( ulReturnValue );
        }

        VOS_RecordFIDTIDInfo( i, vos_FidCtrlBlk[i].Tid );

        for( ubyIndex = 0; ubyIndex < VOS_MAX_SELF_TASK_OF_FID; ubyIndex++ )
        {
            if( vos_FidCtrlBlk[i].SelfProcTaskFunc[ubyIndex] != VOS_NULL_PTR )
            {
                VOS_nsprintf(acSelfTaskName, VOS_MAX_LENGTH_TASK_NAME-1, "F%d_I%d",i,ubyIndex);

                ulReturnValue   = VOS_CreateTask( acSelfTaskName,
                            &(vos_FidCtrlBlk[i].SelfProcTaskTid[ubyIndex]),
                            vos_FidCtrlBlk[i].SelfProcTaskFunc[ubyIndex],
                            vos_FidCtrlBlk[i].SelfProcTaskPriority[ubyIndex],
                            vos_FidCtrlBlk[i].SelfProcTaskStack[ubyIndex],
                            Argument);
                if( ulReturnValue != VOS_OK )
                {
                    Print("# VOS_CreateSelfTask Fail in CreateFidsTask.\r\n");
                    return( ulReturnValue );
                }
            }
        }
    }

    return( VOS_OK );
}
/*****************************************************************************
 Function   : TF_TaskCreat
 Description: create TF's task
 Input      : void
 Return     : void
 Other      :
 *****************************************************************************/
VOS_VOID TF_TaskCreat(VOS_VOID)
{
    VOS_UINT32 Arguments[4] = {0,0,0,0};

    if ( VOS_OK != VOS_CreateTask( "TF_TASK", &g_ulTFTaskId, TF_TaskEntry,
                            TF_TASK_PRI, TF_TASK_STACK_SIZE, Arguments) )
    {
        Print("TF create task error.\r\n");
    }
}
Beispiel #3
0
/*****************************************************************************
 Function   : WD_TaskCreat
 Description: create timer task
 Input      : void
 Return     : VOS_OK on success or errno on failure.
 Other      :
 *****************************************************************************/
VOS_UINT32 WD_TaskCreat(VOS_VOID)
{
#if (OSA_CPU_ACPU == VOS_OSA_CPU)
	return VOS_OK;
#else
    VOS_UINT32 TimerArguments[4] = {0,0,0,0};

    return( VOS_CreateTask( "WatchDog",
                            &g_ulWDTaskId,
                            WD_TaskFunc,
                            COMM_WD_SELFTASK_PRIO,
                            WD_TASK_STACK_SIZE,
                            TimerArguments) );
#endif
}
Beispiel #4
0
/*****************************************************************************
 Function   : CreateFidsTask
 Description: create tasks of all FIDs
 Input      : VOS_VOID
            : VOS_VOID
 Return     : VOS_OK on success or errno on failure
 *****************************************************************************/
VOS_UINT32 CreateFidsTask(VOS_VOID)
{
    VOS_UINT32              i;
    VOS_UINT32              ulReturnValue;
    VOS_UINT32              TaskArgument[VOS_TARG_NUM];

    g_ulCurrentStackAddress = (VOS_UINT32)(&g_ulTaskStack[0]);

    for(i=VOS_FID_DOPRAEND; i<VOS_FID_BUTT; i++)
    {
        TaskArgument[0] = vos_FidCtrlBlk[i].Qid;
        TaskArgument[1] = i;
        ulReturnValue = VOS_CreateTask(&(vos_FidCtrlBlk[i].Tid),
                                       vos_FidTask, vos_FidCtrlBlk[i].Priority,
                                       vos_FidCtrlBlk[i].StackSize, TaskArgument);
        if( VOS_OK != ulReturnValue )
        {
            Print("# VOS_CreateTask Fail in CreateFidsTask.\r\n");
            return( ulReturnValue );
        }
    }

    return( VOS_OK );
}