⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 igmp.h

📁 这同样是FS8610相关的代码.看起来不错啊.
💻 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 + -