2025-04-30 16:24:29 +08:00

94 lines
2.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/****************************************************************************/
/* Copyright (c) 2007,许继集团有限公司 */
/* All rights reserved. */
/* */
/* 模块描述: */
/** 数据链路层网络功能接口
* @file gsv_clnp.h */
/* */
/* 日期 作者 注释 */
/* 2008/6/6 DJF 创建文件 */
/****************************************************************************/
#ifndef GSMV_GSV_CLNP_INC
#define GSMV_GSV_CLNP_INC
#include "glbtypes.h"
#include "sysincs.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* 网卡信息定义
*/
typedef struct
{
ST_INT index;
ST_CHAR * name;
ST_CHAR * desc;
ST_CHAR mac[6];
ST_INT fp; //网卡句柄
}GSV_ETH_INFO;
/**
* 初始化网络获取所有网卡信息给全局变量Eth_infos和Eth_num赋值这里不打开网卡
*/
ST_VOID gsv_clnp_init( void );
/**
* 终止化网络关闭所有网卡释放Eth_infos和Eth_num
*/
ST_VOID gsv_clnp_uninit( void );
/**
* 打开网卡
* @param eth_name 网卡名称
* @param timeout 接收超时时限,如果<0,则网卡设为非阻塞模式,如果=0,则设为阻塞
* 模式,阻塞无限长时间,直到收到数据,>0时表示阻塞的最大时间
*/
ST_RET gsv_clnp_eth_open( ST_INT eth_index, ST_INT timeout );
/**
* 关闭网卡,释放套接口
*/
ST_VOID gsv_clnp_eth_close( ST_INT eth_index );
/**
* 设置抓包时过滤指定网卡发出的报文
* @param eth_index 网卡序号
*/
ST_RET gsv_clnp_filter_src_mac( ST_INT eth_index );
/**
* 发送数据
* @param msg 报文
* @param msg_len 报文长度
*/
ST_RET gsv_clnp_send( ST_INT eth_index, ST_UCHAR * msg, ST_INT msg_len );
/**
* 接收报文,一次处理完缓冲区中所有报文,然后返回收到的报文数
* @param len 传出参数,接收到的报文长度
* @return 报文地址
*/
const ST_UCHAR * gsv_clnp_recv( ST_INT eth_index, ST_INT * len );
/**
* 获取主机中所有网卡信息, 必须在gsv_clnp_init之后调用
* @param eth_infos 所有网卡信息,数组
* @return 网卡个数
*/
ST_INT gsv_find_all_eth( GSV_ETH_INFO ** eth_infos );
/**
* 获取主机mac地址
*/
ST_VOID gsv_get_eth_mac( ST_INT eth_index, ST_UCHAR * mac );
#ifdef __cplusplus
}
#endif
#endif