static void PingStart(void)

来源:互联网 发布:黑客篡改时时彩数据 编辑:程序博客网 时间:2024/06/15 22:34
static void PingStart(void)
{
#if defined(CONFIG_NET_MULTI)
    printf ("Using %s device\n", eth_get_name());
#endif    /* CONFIG_NET_MULTI */
    NetSetTimeout (10 * CFG_HZ, PingTimeout);        //(10*1562500,PingTimeout)
    NetSetHandler (PingHandler);

    PingSend();

}


NetSetTimeout(ulong iv, thand_f * f)
{
    if (iv == 0) {
        timeHandler = (thand_f *)0;
    } else {
        timeHandler = f;                      //函数句柄=PingTimeout
        timeStart = get_timer(0);         //获取当时时间
        timeDelta = iv;                         //超时限制时间
    }
}

PingTimeout (void)
{
    eth_halt();
    NetState = NETLOOP_FAIL;    /* we did not get the reply */
}

NetSetHandler(rxhand_f * f)
{
    packetHandler = f;                      //函数句柄=PingHandler
}

PingHandler (uchar * pkt, unsigned dest, unsigned src, unsigned len)
{
    IPaddr_t tmp;
    volatile IP_t *ip = (volatile IP_t *)pkt;

    tmp = NetReadIP((void *)&ip->ip_src);
    if (tmp != NetPingIP)
        return;

    NetState = NETLOOP_SUCCESS;
}