📄 igmp.h
字号:
/**
* \addtogroup igmp
* @{
*/
/**
* \file
* \brief IGMP layer configuration header file
* \author glyin <glyin@fameg.com>
*/
/*
******************************************************************************
*
Copyright (c) 2006 FameG Shanghai, Inc. All rights reserved.
*
This is unpublished proprietary source code of FameG Shanghai, Inc.
*
The copyright notice above does not evidence any actual or intended
*
publication of such source code.
******************************************************************************
*/
/*
******************************************************************************
*
Project: T4 L4MCU FPGA verification
*
Filename: igmp.h
*
Date: 28/02/06
*
Purpose: IGMP functions for L4MCU (Keil C Compiler)
*
Author: Guanglei Yin
******************************************************************************
*/
#ifndef __IGMP_H__
#define __IGMP_H__
#include "kernel/system.h"
/*****************************************************************************
* CONSTANT DEFINES *
*****************************************************************************/
/*!\brief Define IGMP packet length.
*/
#define IGMP_PKTLEN 8
/*!\brief socket 0 channel flag.
*/
#define SOCKET0 0
/*!\brief socket 1 channel flag.
*/
#define SOCKET1 1
/*!\brief socket 2 channel flag.
*/
#define SOCKET2 2
/*!\brief socket 3 channel flag.
*/
#define SOCKET3 3
/*!\brief group 0 flag.
*/
#define GROUP0 0
/*!\brief group 1 flag.
*/
#define GROUP1 1
/*!\brief group 2 flag.
*/
#define GROUP2 2
/*!\brief group 3 flag.
*/
#define GROUP3 3
/*!\brief IGMP version 1 flag.
*/
#define IGMPv1 1
/*!\brief IGMP version 2 flag.
*/
#define IGMPv2 2
/*!\brief general query flag.
*/
#define GENERAL 1
/*!\brief specific query flag.
*/
#define SPECIFIC 2
/// \cond DOXYGEN_SKIP
/* IGMP packet type */
#define IGMP_QUERY_v1 0x11
#define IGMP_QUERY_v2 0x11
#define IGMP_REPORT_V1 0x12
#define IGMP_REPORT_V2 0x16
#define IGMP_LEAVE_V2 0x17
///\endcond
/*****************************************************************************
* MACROS *
*****************************************************************************/
/*!\brief Get group status.
*/
#define GET_GRP_STATUS() inb(IGMP_GRPSTAT)
/*****************************************************************************
* DATA TYPES *
*****************************************************************************/
/*!\brief Record field information in IGMP packet.
*/
typedef struct
{
/* IGMP packet */
UINT8 type; //!< The type field in IGMP packet.
UINT8 maxresptime; //!< The max response time field in IGMP packet.
UINT16 chksum; //!< The checksum field in IGMP packet.
UINT8 grpaddr[4]; //!< The group address field in IGMP packet.
} igmp_pkt;
/*****************************************************************************
* FUNCTIONS DECLARATION *
*****************************************************************************/
/* IGMP function */
extern void igmp_Init(void); /* Initialize IGMP */
extern INT8 igmp_JoinGrp(UINT8 sock, UINT8 group); /* Join group */
extern INT8 igmp_LeaveGrp(UINT8 sock, UINT8 group); /* Leave group */
extern INT8 igmp_SetGrpAddr(UINT32 grpaddr); /* Set group address */
extern void igmp_Reset(void); /* Reset IGMP */
/*****************************************************************************
* GLOBAL VARIABLES DECLARATION *
*****************************************************************************/
#endif /*__IGMP_H__*/
/** @} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -