⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixhssacccodelet.c

📁 有关ARM开发板上的IXP400网络驱动程序的源码以。
💻 C
📖 第 1 页 / 共 2 页
字号:
        /* sleep for 200ms */        ixOsalSleep (200);    } /* for (i ... */    /*****************/    /* STOP SERVICES */    /*****************/    if (TRUE == packetisedFlag)    {        if ((IX_HSSACC_CODELET_HSS_PORT_0_ONLY == portMode) ||            (IX_HSSACC_CODELET_DUAL_PORTS == portMode))        {            /* stop the Packetised Service for all clients */            for (hdlcPortId = 0; hdlcPortId < IX_HSSACC_HDLC_PORT_MAX;                 hdlcPortId++)            {                ixHssAccCodeletPacketisedServiceStop (IX_HSSACC_HSS_PORT_0, hdlcPortId);            }	}        if ((IX_HSSACC_CODELET_HSS_PORT_1_ONLY == portMode) ||            (IX_HSSACC_CODELET_DUAL_PORTS == portMode))        {            /* stop the Packetised Service for all clients */            for (hdlcPortId = 0; hdlcPortId < IX_HSSACC_HDLC_PORT_MAX;                 hdlcPortId++)            {                ixHssAccCodeletPacketisedServiceStop (IX_HSSACC_HSS_PORT_1, hdlcPortId);            }	}    }    if (TRUE == channelisedFlag)    {        if ((IX_HSSACC_CODELET_HSS_PORT_0_ONLY == portMode) ||            (IX_HSSACC_CODELET_DUAL_PORTS == portMode))        {             /* stop the Channelised Service for the single client */            ixHssAccCodeletChannelisedServiceStop (IX_HSSACC_HSS_PORT_0);	}        if ((IX_HSSACC_CODELET_HSS_PORT_1_ONLY == portMode) ||            (IX_HSSACC_CODELET_DUAL_PORTS == portMode))        {             /* stop the Channelised Service for the single client */            ixHssAccCodeletChannelisedServiceStop (IX_HSSACC_HSS_PORT_1);	}    }     if ((IX_HSSACC_CODELET_HSS_PORT_0_ONLY == portMode) ||        (IX_HSSACC_CODELET_DUAL_PORTS == portMode))     {         ixHssAccCodeletShow(IX_HSSACC_HSS_PORT_0);    }    if ((IX_HSSACC_CODELET_HSS_PORT_1_ONLY == portMode) ||        (IX_HSSACC_CODELET_DUAL_PORTS == portMode))     {         ixHssAccCodeletShow(IX_HSSACC_HSS_PORT_1);    }    return IX_SUCCESS;}/* * Function definition: ixHssAccCodeletServiceStart */voidixHssAccCodeletServiceStart (IxHssAccCodeletPortMode portMode){    /* Display the settings of the codelet */    printf ("HSS Acc Codelet tries to start with following settings : \n");    if (IX_HSSACC_CODELET_DUAL_PORTS == portMode)    {	printf ("\t>HSS Port 0 and HSS Port 1.\n");    }    else    {	printf ("\t>HSS Port %d Only.\n", 		(portMode==IX_HSSACC_CODELET_HSS_PORT_0_ONLY ? 0: 1));    }    printf("\t>Packetised Service. [%s]\n",	   (TRUE == packetisedFlag ? "On" : "Off"));    printf("\t>Channelised Service.[%s]\n",	   (TRUE == channelisedFlag ? "On" : "Off"));    printf ("HSS Acc Codelet is being started and executed. \n");    printf ("Codelet will run for %u ms\n\n", 	    IX_HSSACC_CODELET_DURATION_IN_MS);      ixHssAccCodeletServiceMain(portMode);}/* * Function definition: ixHssAccCodeletInit */IX_STATUSixHssAccCodeletInit (void){    IxQMgrDispatcherFuncPtr dispatcherFunc ;     printf ("Setting the debug level & redirecting output\n");    /* set the debug level */#ifdef __vxworks    logInit (ioTaskStdGet (0,1), 1);    logFdSet (ioTaskStdGet (0,1));#endif        ixOsalLogLevelSet (IX_OSAL_LOG_LVL_ERROR); /* IX_OSAL_LOG_LVL_ALL, 						  IX_OSAL_LOG_LVL_MESSAGE, ... */#ifdef __vxworks    /* When the ixe drivers are running, the codelets    * cannot run.    */    if (endFindByName ("ixe", 0) != NULL)    {	printf("FAIL : Driver ixe0 detected\n");	return IX_FAIL;    }    if (endFindByName ("ixe", 1) != NULL)    {	printf("FAIL : Driver ixe1 detected\n");	return IX_FAIL;    }#endif    /*  Check for the Silicon type */    if (IX_FEATURE_CTRL_DEVICE_TYPE_IXP46X == ixFeatureCtrlDeviceRead ())    {        if (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEA)==                                        IX_FEATURE_CTRL_COMPONENT_DISABLED)        {             printf("Exiting: IxHssAccCodeletInit() NPE A component Does not exist \n");	     return IX_FAIL;        }       }        /*Initialize and Start NPE-A */    printf ("Initializing and starting NPE-A ...");            if (IX_SUCCESS != ixNpeDlNpeInitAndStart (IX_HSSACC_CODELET_NPEA_IMAGE_ID))    {        printf ("Error initialising and starting NPE A!\n");        return (IX_FAIL);    }       printf (" successful.\n");    /* initialise the IxNpeMh component */    printf ("Initializing NpeMh Component ...");    if (IX_SUCCESS != ixNpeMhInitialize (IX_NPEMH_NPEINTERRUPTS_YES))    {        printf ("ixNpeMhInitialize failed\n");        return (IX_FAIL);    }    printf (" successful.\n");    /* initialise the QMgr component */    printf ("Initializing QMgr Component ...");    if (IX_SUCCESS != ixQMgrInit())    {        printf ("ixQMgrInit failed\n");        return (IX_FAIL);    }    printf (" successful.\n");    printf ("Bind Queue Dispatcher to interrupt vector ...");    ixQMgrDispatcherLoopGet(&dispatcherFunc);    /* Hook the QM QUELOW dispatcher to interrupt */    if (IX_SUCCESS != ixOsalIrqBind(IX_OSAL_IXP400_QM1_IRQ_LVL, /* vector */                                    (IxOsalVoidFnVoidPtr)dispatcherFunc, /* routine */                                    (void *) IX_QMGR_QUELOW_GROUP)) /* parameter */    {        printf ("ixOsalIrqBind failed to bind to QM1 interrupt\n");        return (IX_FAIL);    }    printf (" successful.\n");    /* initialise the HssAcc component */    printf("Intializing HssAcc Component ...");    if (IX_SUCCESS != ixHssAccInit())    {        printf ("ixHssAccInit failed\n");        return IX_FAIL;    }    printf (" successful.\n");    return IX_SUCCESS;}#ifdef __winceint readNumber(void){    char line[256];    gets(line);    return atoi(line);}int wmain(int argc, WCHAR **argv){    int hssAccCodeletOperationType;    int hssAccCodeletPortMode;    int hssAccCodeletVerifyMode;    int hssAccCodeletNrRead;    BOOL hssAccCodeletWrongNumber = TRUE;    printf("\n");    printf("******************** HSS Acc Codelet *************************\n");    while(hssAccCodeletWrongNumber)    {        printf("  Choose type of service you want to execute:\n");        printf("  1. Packetised service only\n");        printf("  2. Channelised service only\n");        printf("  3. Packetised and channelised service\n");        printf("100. Exit hssAcc Codelet\n");        printf("\n");        printf("Enter number: ");        hssAccCodeletNrRead = readNumber();        switch(hssAccCodeletNrRead)        {            case 1:                hssAccCodeletOperationType = IX_HSSACC_CODELET_PKT_SERV_ONLY;                hssAccCodeletWrongNumber = FALSE;                break;            case 2:                hssAccCodeletOperationType = IX_HSSACC_CODELET_CHAN_SERV_ONLY;                hssAccCodeletWrongNumber = FALSE;                break;            case 3:                hssAccCodeletOperationType = IX_HSSACC_CODELET_PKT_CHAN_SERV;                hssAccCodeletWrongNumber = FALSE;                break;            case 100:                return IX_SUCCESS;                break;            default:                printf("Wrong number chosen: %d!\n", 		       hssAccCodeletNrRead);                break;        }    }    hssAccCodeletWrongNumber = TRUE;        while(hssAccCodeletWrongNumber)    {        printf("  Choose which port(s) you want to execute:\n");        printf("  1. HSS Port 0 Only\n");        printf("  2. HSS Port 1 Only\n");        printf("  3. Both HSS Port 0 & 1\n");        printf("100. Exit hssAcc Codelet\n");        printf("\n");        printf("Enter number: ");        hssAccCodeletNrRead = readNumber();        switch(hssAccCodeletNrRead)        {            case 1:                hssAccCodeletPortMode = IX_HSSACC_CODELET_HSS_PORT_0_ONLY;                hssAccCodeletWrongNumber = FALSE;                break;            case 2:                hssAccCodeletPortMode = IX_HSSACC_CODELET_HSS_PORT_1_ONLY;                hssAccCodeletWrongNumber = FALSE;                break;            case 3:                hssAccCodeletPortMode = IX_HSSACC_CODELET_DUAL_PORTS;                hssAccCodeletWrongNumber = FALSE;                break;            case 100:                return IX_SUCCESS;                break;            default:                printf("Wrong number chosen: %d!\n", 		       hssAccCodeletNrRead);                break;        }    }    hssAccCodeletWrongNumber = TRUE;    while(hssAccCodeletWrongNumber)    {        printf("  Choose if codelet should or shouldn't verify traffic:\n");        printf("  1. Codelet verifies traffic received\n");        printf("  2. Codelet does not verify traffic received\n");        printf("100. Exit hssAcc Codelet\n");        printf("\n");        printf("Enter number: ");        hssAccCodeletNrRead = readNumber();        switch(hssAccCodeletNrRead)        {            case 1:                hssAccCodeletVerifyMode = IX_HSSACC_CODELET_VERIFY_ON;                hssAccCodeletWrongNumber = FALSE;                break;            case 2:                hssAccCodeletVerifyMode = IX_HSSACC_CODELET_VERIFY_OFF;                hssAccCodeletWrongNumber = FALSE;                break;            case 100:                return IX_SUCCESS;                break;            default:                printf("Wrong number chosen: %d!\n", 		       hssAccCodeletNrRead);                break;        }    }    hssAccCodeletWrongNumber = TRUE;        ixHssAccCodeletMain(hssAccCodeletOperationType,                        hssAccCodeletPortMode,                        hssAccCodeletVerifyMode);    hssAccCodeletNrRead = readNumber();        return IX_SUCCESS;}#endif /* ifdef __wince */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -