📄 icmp.h
字号:
/*********************************************************************
*
* ICMP Module Defs for Microchip TCP/IP Stack
*
*********************************************************************
* FileName: ICMP.h
* Dependencies: StackTsk.h
* IP.h
* MAC.h
* Processor: PIC18, PIC24F, PIC24H, dsPIC30F, dsPIC33F
* Complier: Microchip C18 v3.02 or higher
* Microchip C30 v2.01 or higher
* Company: Microchip Technology, Inc.
*
* Software License Agreement
*
* This software is owned by Microchip Technology Inc. ("Microchip")
* and is supplied to you for use exclusively as described in the
* associated software agreement. This software is protected by
* software and other intellectual property laws. Any use in
* violation of the software license may subject the user to criminal
* sanctions as well as civil liability. Copyright 2006 Microchip
* Technology Inc. All rights reserved.
*
* This software is provided "AS IS." MICROCHIP DISCLAIMS ALL
* WARRANTIES, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, NOT LIMITED
* TO MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
* INFRINGEMENT. Microchip shall in no event be liable for special,
* incidental, or consequential damages.
*
*
* Author Date Comment
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Nilesh Rajbharti 4/27/01 Original (Rev 1.0)
* Nilesh Rajbharti 5/22/02 Rev 2.0 (See version.log for detail)
********************************************************************/
#ifndef ICMP_H
#define ICMP_H
#include "..\Include\StackTsk.h"
#include "..\Include\IP.h"
#include "..\Include\MAC.h"
// Windows ping uses 32 bytes, while MAC uses 56 bytes.
#define MAX_ICMP_DATA (32)
#define MAX_ICMP_DATA_LEN (MAX_ICMP_DATA)
typedef enum _ICMP_CODE
{
ICMP_ECHO_REPLY = 0,
ICMP_ECHO_REQUEST = 8
} ICMP_CODE, ICMP_REQUESTS;
/*********************************************************************
* Function: BOOL ICMPIsTxReady()
*
* PreCondition: None
*
* Input: None
*
* Output: TRUE if transmit buffer is ready
* FALSE if transmit buffer is not ready
*
* Side Effects: None
*
* Note: None
*
********************************************************************/
#define ICMPIsTxReady() MACIsTxReady(TRUE)
/*********************************************************************
* Function: void ICMPPut(NODE_INFO *remote,
* ICMP_CODE code,
* BYTE *data,
* BYTE len,
* WORD id,
* WORD seq)
*
* PreCondition: ICMPIsTxReady() == TRUE
*
* Input: remote - Remote node info
* code - ICMP_ECHO_REPLY or ICMP_ECHO_REQUEST
* data - Data bytes
* len - Number of bytes to send
* id - ICMP identifier
* seq - ICMP sequence number
*
* Output: None
*
* Side Effects: None
*
* Note: A ICMP packet is created and put on MAC.
*
********************************************************************/
void ICMPPut(NODE_INFO *remote,
ICMP_CODE code,
BYTE *data,
BYTE len,
WORD id,
WORD seq);
/*********************************************************************
* Function: BOOL ICMPGet(ICMP_CODE *code,
* BYTE *data,
* BYTE *len,
* WORD *id,
* WORD *seq)
*
* PreCondition: MAC buffer contains ICMP type packet.
*
* Input: code - Buffer to hold ICMP code value
* data - Buffer to hold ICMP data
* len - Buffer to hold ICMP data length
* id - Buffer to hold ICMP id
* seq - Buffer to hold ICMP seq
*
* Output: TRUE if valid ICMP packet was received
* FALSE otherwise.
*
* Side Effects: None
*
* Overview: None
*
* Note: None
********************************************************************/
BOOL ICMPGet(ICMP_CODE *code,
BYTE *data,
BYTE *len,
WORD *id,
WORD *seq);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -