亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? noncopytcptestee.c

?? 在dm642開發(fā)平臺上實現dsp與主機之間的通信實例
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 *  ============================================================
 *  (c) Copyright 2007 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  ============================================================
 *  Automated Revision Information
 *  Changed: $Date: 2007-10-15 15:13:14 -0700 (Mon, 15 Oct 2007) $
 *  Revision: $Revision: 4244 $ 
 */
/* 
 *  ======== nonCopyTestee.c ========
 *  
 *  Non-Copy TCP Testee benchmark application
 */
#include <stdio.h>
#include <netmain.h>
#include <_stack.h>

#include <std.h>
#include <mem.h>
#include <gbl.h>
#include <sys.h>
#include <tsk.h>

#ifdef _64P_
#include <bcache.h>
#else // EVM DM642
#include <csl.h>
#include <csl_cache.h>
#endif

#include <thrload.h>

#include "nonCopyTCP.h"

//---------------------------------------------------------------------------
// Title String
//
char *VerStr = "\nNon-Copy TCP Testee Benchmark\n";

// Our NETCTRL callback functions
static void   NetworkOpen();
static void   NetworkClose();
static void   NetworkIPAddr( IPN IPAddr, uint IfIdx, uint fAdd );

// Fun reporting function
static void   ServiceReport( uint Item, uint Status, uint Report, HANDLE hCfgEntry );

// Define the servers functions
static int dtask_tcp_transmit_srv( SOCKET s, UINT32 unused );
static int dtask_tcp_receive_srv( SOCKET s, UINT32 unused );


//---------------------------------------------------------------------------
// External references
//
extern TSK_Obj TSK_idle;

//---------------------------------------------------------------------------
// Configuration
//
char *HostName    = "tidsp";
char *LocalIPMask = "255.255.254.0";    // Not used when using DHCP
char *GatewayIP   = "0.0.0.0";          // Not used when using DHCP
char *DomainName  = "benchmark.net";    // Not used when using DHCP
char *DNSServer   = "0.0.0.0";          // Used when set to anything but zero

/* Static IP address */
char *LocalIPAddr = TESTEE_IPADDR_STRING;

Bool flag = FALSE;
Int  loop =  BENCH_FRAMES/2;

THRLOAD_tskEnvHandle idleEnv;

UINT8 DHCP_OPTIONS[] = { DHCPOPT_SERVER_IDENTIFIER, DHCPOPT_ROUTER };

//---------------------------------------------------------------------
// Main Entry Point
//---------------------------------------------------------------------
int main()
{
    Bool rc;


#ifdef _64P_
    /*  Setup cache for C64P devices */
    BCACHE_setSize (&bcacheSize);
#else // EVM DM642
    /*  Setup cache using CSL */
    CACHE_setL2Mode(l2CacheSize);
#endif    
    
    /* Initialize the THRLOAD module */
    THRLOAD_init();

    /* Allocate THRLOAD task environment handle for the idle task. */
    idleEnv = MEM_calloc(0, sizeof(THRLOAD_tskEnvObj), 0);

    /*
     * Add the idle task which is executed whenever no other threads wants to
     * to THRLOAD so that we can measure relative time spent doing "nothing".
     */
    rc = THRLOAD_add(&TSK_idle, idleEnv);
    if (rc == FALSE) {
        SYS_abort("Failed to register idle task");
    }

}

//
// Main Thread
//
int StackTest()
{
    int               rc;
    HANDLE            hCfg;

    //
    // THIS MUST BE THE ABSOLUTE FIRST THING DONE IN AN APPLICATION!!
    //
    rc = NC_SystemOpen( NC_PRIORITY_LOW, NC_OPMODE_INTERRUPT );
    if( rc )
    {
        printf("NC_SystemOpen Failed (%d)\n",rc);
        for(;;);
    }

    // Print out our banner
    printf(VerStr);

    //
    // Create and build the system configuration from scratch.
    //

    // Create a new configuration
    hCfg = CfgNew();
    if( !hCfg )
    {
        printf("Unable to create configuration\n");
        goto main_exit;
    }

    // We better validate the length of the supplied names
    if( strlen( DomainName ) >= CFG_DOMAIN_MAX ||
        strlen( HostName ) >= CFG_HOSTNAME_MAX )
    {
        printf("Names too long\n");
        goto main_exit;
    }

    // Add our global hostname to hCfg (to be claimed in all connected domains)
    CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_HOSTNAME, 0,
                 strlen(HostName), (UINT8 *)HostName, 0 );

    // If the IP address is specified, manually configure IP and Gateway
    if( inet_addr(LocalIPAddr) )
    {
        CI_IPNET NA;
        CI_ROUTE RT;
        IPN      IPTmp;

        // Setup manual IP address
        bzero( &NA, sizeof(NA) );
        NA.IPAddr  = inet_addr(LocalIPAddr);
        NA.IPMask  = inet_addr(LocalIPMask);
        strcpy( NA.Domain, DomainName );
        NA.NetType = 0;

        // Add the address to interface 1
        CfgAddEntry( hCfg, CFGTAG_IPNET, 1, 0,
                           sizeof(CI_IPNET), (UINT8 *)&NA, 0 );

        // Add the default gateway. Since it is the default, the
        // destination address and mask are both zero (we go ahead
        // and show the assignment for clarity).
        bzero( &RT, sizeof(RT) );
        RT.IPDestAddr = 0;
        RT.IPDestMask = 0;
        RT.IPGateAddr = inet_addr(GatewayIP);

        // Add the route
        CfgAddEntry( hCfg, CFGTAG_ROUTE, 0, 0,
                           sizeof(CI_ROUTE), (UINT8 *)&RT, 0 );

        // Manually add the DNS server when specified
        IPTmp = inet_addr(DNSServer);
        if( IPTmp )
            CfgAddEntry( hCfg, CFGTAG_SYSINFO, CFGITEM_DHCP_DOMAINNAMESERVER,
                         0, sizeof(IPTmp), (UINT8 *)&IPTmp, 0 );
    }
    // Else we specify DHCP
    else
    {
        CI_SERVICE_DHCPC dhcpc;

        // Specify DHCP Service on IF-1
        bzero( &dhcpc, sizeof(dhcpc) );
        dhcpc.cisargs.Mode   = CIS_FLG_IFIDXVALID;
        dhcpc.cisargs.IfIdx  = 1;
        dhcpc.cisargs.pCbSrv = &ServiceReport;
        dhcpc.param.pOptions = DHCP_OPTIONS;
        dhcpc.param.len = 2;
        CfgAddEntry( hCfg, CFGTAG_SERVICE, CFGITEM_SERVICE_DHCPCLIENT, 0,
                     sizeof(dhcpc), (UINT8 *)&dhcpc, 0 );
    }


    //
    // Configure IPStack/OS Options
    //

    // We don't want to see debug messages less than WARNINGS
    rc = DBG_WARN;
    CfgAddEntry( hCfg, CFGTAG_OS, CFGITEM_OS_DBGPRINTLEVEL,
                 CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );

    //
    // This code sets up the TCP and UDP buffer sizes
    // (Note 8192 is actually the default. This code is here to
    // illustrate how the buffer and limit sizes are configured.)
    //

    // TCP Transmit buffer size
    rc = 8192;
    CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPTXBUF,
                 CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );

    // TCP Receive buffer size (copy mode)
    rc = 8192;
    CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXBUF,
                 CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );

    // TCP Receive limit (non-copy mode)
    rc = 8192;
    CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKTCPRXLIMIT,
                 CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );

    // UDP Receive limit
    rc = 8192;
    CfgAddEntry( hCfg, CFGTAG_IP, CFGITEM_IP_SOCKUDPRXLIMIT,
                 CFG_ADDMODE_UNIQUE, sizeof(uint), (UINT8 *)&rc, 0 );

    //
    // Boot the system using this configuration
    //
    // We keep booting until the function returns 0. This allows
    // us to have a "reboot" command.
    //
    do
    {
        rc = NC_NetStart( hCfg, NetworkOpen, NetworkClose, NetworkIPAddr );
    } while( rc > 0 );

    // Delete Configuration
    CfgFree( hCfg );

    // Close the OS
main_exit:
    NC_SystemClose();
    return(0);
}


//
// System Task Code [ Server Daemon Servers ]
//
static HANDLE hTransmit=0,hReceive=0;

//
// NetworkOpen
//
// This function is called after the configuration has booted
//
static void NetworkOpen()
{
    // Create our local servers
    hTransmit = DaemonNew( SOCK_STREAM, 0, 1000, dtask_tcp_transmit_srv,
                       OS_TASKPRINORM, OS_TASKSTKNORM, 0, 3 );
    hReceive = DaemonNew( SOCK_STREAMNC, 0, 1001, dtask_tcp_receive_srv,
                       OS_TASKPRINORM, OS_TASKSTKNORM, 0, 3 );
}

//
// NetworkClose
//
// This function is called when the network is shutting down,
// or when it no longer has any IP addresses assigned to it.
//
static void NetworkClose()
{       
    DaemonFree( hTransmit );
    DaemonFree( hReceive );
    
}

//
// NetworkIPAddr
//
// This function is called whenever an IP address binding is
// added or removed from the system.
//
static void NetworkIPAddr( IPN IPAddr, uint IfIdx, uint fAdd )
{
  //  static uint fAddGroups = 0;
    IPN IPTmp;

    if( fAdd )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人妖av一区二区| 国产伦精品一区二区三区免费 | 极品尤物av久久免费看| 成人手机电影网| 欧美一级专区免费大片| 亚洲视频在线观看三级| 美女视频黄 久久| 欧美视频一区二区三区四区| 国产精品女主播在线观看| 日韩精品一二三区| 在线观看亚洲精品| 亚洲特级片在线| 国产精品99久久久久久宅男| 日韩三级高清在线| 粉嫩av一区二区三区在线播放 | 99这里都是精品| 欧美电影免费观看完整版| 亚洲国产成人高清精品| 色综合婷婷久久| 中文字幕一区二区三区视频 | 免费精品视频在线| 欧美午夜视频网站| 一区二区三区**美女毛片| 成人av在线看| 国产精品女同一区二区三区| 韩国精品久久久| 日韩精品中文字幕在线一区| 亚洲国产另类av| 欧美在线免费观看亚洲| 亚洲一区二区三区四区在线免费观看 | 精品一区二区免费视频| 欧美吞精做爰啪啪高潮| 一区二区三区在线免费视频| 91免费精品国自产拍在线不卡| 日本一区二区动态图| 粉嫩av一区二区三区| 中文字幕一区免费在线观看| 91首页免费视频| 亚洲老司机在线| 色婷婷综合五月| 亚洲国产精品人人做人人爽| 欧美日韩中文字幕一区| 成人在线视频首页| 亚洲视频小说图片| 欧美色综合久久| 日韩av不卡一区二区| 欧美成人女星排行榜| 韩国视频一区二区| 国产网站一区二区| 色哟哟一区二区在线观看| 亚洲综合色婷婷| 欧美一三区三区四区免费在线看| 日本aⅴ免费视频一区二区三区| 日韩一级片在线观看| 国产一二精品视频| 亚洲精品五月天| 日韩亚洲欧美一区| 国产不卡在线视频| 亚洲国产日韩a在线播放性色| 欧美电影在线免费观看| 国产乱码精品1区2区3区| 专区另类欧美日韩| 91精品一区二区三区在线观看| 青青草国产成人av片免费| 国产女同性恋一区二区| 欧美色图免费看| 国产精品18久久久久| 亚洲精品第1页| 精品免费一区二区三区| av在线播放一区二区三区| 日韩va欧美va亚洲va久久| 久久久国产精品麻豆 | 国产91清纯白嫩初高中在线观看| 亚洲免费在线播放| 久久综合久久综合九色| 91久久国产综合久久| 国产精品综合二区| 亚洲狠狠爱一区二区三区| 国产亚洲欧美中文| 欧美日韩一区二区三区四区五区| 国产精品一区在线观看你懂的| 亚洲线精品一区二区三区| 日本一区二区三区视频视频| 欧美放荡的少妇| 色94色欧美sute亚洲线路一ni| 国产一区激情在线| 天天操天天色综合| 成人高清免费观看| 蜜桃久久精品一区二区| 一区二区不卡在线播放| 国产精品久久网站| 26uuu国产一区二区三区| 欧美理论片在线| 色偷偷久久一区二区三区| 国产精品一级二级三级| 美国av一区二区| 丝袜脚交一区二区| 亚洲国产视频直播| 亚洲欧洲成人精品av97| 中文字幕成人在线观看| 欧美不卡视频一区| 91精品国产综合久久精品图片| 色婷婷国产精品综合在线观看| 大胆欧美人体老妇| 国产乱理伦片在线观看夜一区| 蜜桃一区二区三区在线观看| 亚洲成年人影院| 一区二区三区蜜桃网| 亚洲精品一二三四区| 亚洲色图制服丝袜| 最近日韩中文字幕| 亚洲色图欧美在线| 成人免费一区二区三区在线观看| 国产精品免费aⅴ片在线观看| 久久婷婷国产综合精品青草 | 日韩和的一区二区| 五月天久久比比资源色| 亚洲va韩国va欧美va| 天天av天天翘天天综合网色鬼国产| 亚洲黄色性网站| 亚洲网友自拍偷拍| 天天综合色天天综合| 午夜精品在线看| 蜜桃久久久久久| 国产一区二区三区免费观看| 久久av资源站| 激情五月婷婷综合| 成人中文字幕合集| 91老司机福利 在线| 欧美日韩在线观看一区二区| 欧美日韩免费一区二区三区 | 日韩主播视频在线| 免费观看成人鲁鲁鲁鲁鲁视频| 麻豆免费精品视频| 成人性视频网站| 在线观看欧美黄色| 欧美精品一二三区| 久久久精品一品道一区| 欧美国产精品v| 亚洲午夜在线视频| 久久99国产精品麻豆| 国产成人亚洲精品狼色在线| 91女厕偷拍女厕偷拍高清| 欧美日韩国产精品成人| 2023国产精华国产精品| 精品一区二区三区的国产在线播放| 激情综合网av| 成人av影院在线| 欧美精品三级日韩久久| 久久久久久亚洲综合影院红桃| 亚洲欧洲综合另类在线| 欧美a级一区二区| 99re热这里只有精品免费视频| 欧美另类变人与禽xxxxx| 国产欧美精品一区| 香蕉影视欧美成人| 成人高清视频在线观看| 日韩欧美视频在线| 一区二区三区在线影院| 国产一区免费电影| 欧美电影一区二区| 亚洲欧美日韩中文播放| 另类调教123区| 欧美丝袜自拍制服另类| 欧美国产97人人爽人人喊| 日韩精品91亚洲二区在线观看 | 欧美日韩国产一区二区三区地区| 精品久久久久久亚洲综合网| 亚洲女性喷水在线观看一区| 国模少妇一区二区三区| 欧美色图在线观看| 亚洲欧美在线视频观看| 精东粉嫩av免费一区二区三区| 欧美色图第一页| 亚洲色图在线视频| 成人免费va视频| 精品国产成人在线影院 | 国产精品一区二区久久精品爱涩| 在线日韩国产精品| 国产精品乱码一区二区三区软件| 日本欧美大码aⅴ在线播放| 91视频观看免费| 国产精品久久久久一区 | 在线观看免费一区| 亚洲欧美视频在线观看| 国产69精品久久99不卡| 精品福利一二区| 精品影视av免费| 91精品国产综合久久蜜臀| 亚洲丶国产丶欧美一区二区三区| 99麻豆久久久国产精品免费| 国产香蕉久久精品综合网| 国产一区二区不卡在线| 日韩女优制服丝袜电影| 久久国产生活片100| 欧美一区二区网站| 免费精品视频最新在线| 欧美一卡2卡3卡4卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 777色狠狠一区二区三区|