📄 myfirewall.h
字号:
//////////////////////////////////////////////////////////////////////////////
// Filename: E:\fpga_fw/drivers/MYFIREWALL_v1_00_a/src/myfirewall.h
// Version: 1.00.a
// Description: MYFIREWALL Driver Header File
// Date: Mon Mar 17 21:58:13 2008 (by Create and Import Peripheral Wizard)
//////////////////////////////////////////////////////////////////////////////
#ifndef MYFIREWALL_H
#define MYFIREWALL_H
/***************************** Include Files *******************************/
#include "xbasic_types.h"
#include "xstatus.h"
#include "xio.h"
/************************** Constant Definitions ***************************/
/**
* User Logic Slave Space Offsets
* -- SLAVE_REG0 : user logic slave module register 0
* -- SLAVE_REG1 : user logic slave module register 1
* -- SLAVE_REG2 : user logic slave module register 2
* -- SLAVE_REG3 : user logic slave module register 3
*/
#define MYFIREWALL_USER_SLAVE_SPACE_OFFSET (0x00000000)
#define MYFIREWALL_SLAVE_REG0_OFFSET (MYFIREWALL_USER_SLAVE_SPACE_OFFSET + 0x00000000)
#define MYFIREWALL_SLAVE_REG1_OFFSET (MYFIREWALL_USER_SLAVE_SPACE_OFFSET + 0x00000002)
#define MYFIREWALL_SLAVE_REG2_OFFSET (MYFIREWALL_USER_SLAVE_SPACE_OFFSET + 0x00000004)
#define MYFIREWALL_SLAVE_REG3_OFFSET (MYFIREWALL_USER_SLAVE_SPACE_OFFSET + 0x00000006)
/**************************** Type Definitions *****************************/
/***************** Macros (Inline Functions) Definitions *******************/
/**
*
* Write a value to a MYFIREWALL register. A 32 bit write is performed.
* If the component is implemented in a smaller width, only the least
* significant data is written.
*
* @param BaseAddress is the base address of the MYFIREWALL device.
* @param RegOffset is the register offset from the base to write to.
* @param Data is the data written to the register.
*
* @return None.
*
* @note
* C-style signature:
* void MYFIREWALL_mWriteReg(Xuint32 BaseAddress, unsigned RegOffset, Xuint32 Data)
*
*/
#define MYFIREWALL_mWriteReg(BaseAddress, RegOffset, Data) \
XIo_Out32((BaseAddress) + (RegOffset), (Xuint32)(Data))
/**
*
* Read a value from a MYFIREWALL register. A 32 bit read is performed.
* If the component is implemented in a smaller width, only the least
* significant data is read from the register. The most significant data
* will be read as 0.
*
* @param BaseAddress is the base address of the MYFIREWALL device.
* @param RegOffset is the register offset from the base to write to.
*
* @return Data is the data from the register.
*
* @note
* C-style signature:
* Xuint32 MYFIREWALL_mReadReg(Xuint32 BaseAddress, unsigned RegOffset)
*
*/
#define MYFIREWALL_mReadReg(BaseAddress, RegOffset) \
XIo_In32((BaseAddress) + (RegOffset))
/**
*
* Write/Read value to/from MYFIREWALL user logic slave registers.
*
* @param BaseAddress is the base address of the MYFIREWALL device.
* @param Value is the data written to the register.
*
* @return Data is the data from the user logic slave register.
*
* @note
* C-style signature:
* Xuint16 MYFIREWALL_mReadSlaveRegn(Xuint32 BaseAddress)
*
*/
#define MYFIREWALL_mWriteSlaveReg0(BaseAddress, Value) \
XIo_Out16((BaseAddress) + (MYFIREWALL_SLAVE_REG0_OFFSET), (Xuint16)(Value))
#define MYFIREWALL_mWriteSlaveReg1(BaseAddress, Value) \
XIo_Out16((BaseAddress) + (MYFIREWALL_SLAVE_REG1_OFFSET), (Xuint16)(Value))
#define MYFIREWALL_mWriteSlaveReg2(BaseAddress, Value) \
XIo_Out16((BaseAddress) + (MYFIREWALL_SLAVE_REG2_OFFSET), (Xuint16)(Value))
#define MYFIREWALL_mWriteSlaveReg3(BaseAddress, Value) \
XIo_Out16((BaseAddress) + (MYFIREWALL_SLAVE_REG3_OFFSET), (Xuint16)(Value))
#define MYFIREWALL_mReadSlaveReg0(BaseAddress) \
XIo_In16((BaseAddress) + (MYFIREWALL_SLAVE_REG0_OFFSET))
#define MYFIREWALL_mReadSlaveReg1(BaseAddress) \
XIo_In16((BaseAddress) + (MYFIREWALL_SLAVE_REG1_OFFSET))
#define MYFIREWALL_mReadSlaveReg2(BaseAddress) \
XIo_In16((BaseAddress) + (MYFIREWALL_SLAVE_REG2_OFFSET))
#define MYFIREWALL_mReadSlaveReg3(BaseAddress) \
XIo_In16((BaseAddress) + (MYFIREWALL_SLAVE_REG3_OFFSET))
/************************** Function Prototypes ****************************/
/**
*
* Run a self-test on the driver/device. Note this may be a destructive test if
* resets of the device are performed.
*
* If the hardware system is not built correctly, this function may never
* return to the caller.
*
* @param baseaddr_p is the base address of the MYFIREWALL instance to be worked on.
*
* @return
*
* - XST_SUCCESS if all self-test code passed
* - XST_FAILURE if any self-test code failed
*
* @note Caching must be turned off for this function to work.
* @note Self test may fail if data memory and device are not on the same bus.
*
*/
XStatus MYFIREWALL_SelfTest(void * baseaddr_p);
void MYFIREWALL_Write_Reg(Xuint32 BaseAddress, Xuint8 RegAddress, Xuint16 Reg_Value_Wr);
Xuint16 MYFIREWALL_Read_Reg(Xuint32 BaseAddress, Xuint8 RegAddress);
void MYFIREWALL_Clear_Reg(Xuint32 BaseAddress);
void MYFIREWALL_Write_CAM(Xuint32 BaseAddress, Xuint32 Write_Data, Xuint8 Filter_Select, Xuint16 Addr_CAM);
Xuint32 MYFIREWALL_Read_CAM(Xuint32 BaseAddress, Xuint16 Addr_CAM);
void MYFIREWALL_Write_Start_Time(Xuint32 BaseAddress, Xuint32 StartTime);
Xuint32 MYFIREWALL_Read_Start_Time(Xuint32 BaseAddress);
void MYFIREWALL_Write_Byte_Counter(Xuint32 BaseAddress, Xuint32 Byte_Cnt);
Xuint32 MYFIREWALL_Read_Byte_Counter(Xuint32 BaseAddress);
void MYFIREWALL_Write_Pkt_Counter(Xuint32 BaseAddress, Xuint32 Pkt_Cnt);
Xuint32 MYFIREWALL_Read_Pkt_Counter(Xuint32 BaseAddress);
void MYFIREWALL_Write_Current_Time(Xuint32 BaseAddress, Xuint32 Curt_Time);
Xuint32 MYFIREWALL_Read_Current_Time(Xuint32 BaseAddress);
void MYFIREWALL_Write_MAC_Addr(Xuint32 BaseAddress, Xuint8 MAC_Addr0, Xuint8 MAC_Addr1, Xuint8 MAC_Addr2, Xuint8 MAC_Addr3, Xuint8 MAC_Addr4, Xuint8 MAC_Addr5);
void MYFIREWALL_Read_MAC_Addr(Xuint32 BaseAddress, Xuint8 * MAC_Addr0, Xuint8 * MAC_Addr1, Xuint8 * MAC_Addr2, Xuint8 * MAC_Addr3, Xuint8 * MAC_Addr4, Xuint8 * MAC_Addr5);
//void MYFIREWALL_Read_MAC_Addr(Xuint32 BaseAddress, Xuint16 MAC_Addr0, Xuint16 MAC_Addr1, Xuint16 MAC_Addr2)
void MYFIREWALL_Read_Hint();
void MYFIREWALL_Write_Hint();
void System_Initial(Xuint32 BaseAddress);
void MYFIREWALL_Read_Operation(Xuint32 BaseAddress);
void MYFIREWALL_Write_Operation(Xuint32 BaseAddress);
//CAM content table;
struct Filter_Rule {Xuint16 Filter_Mode_Select; //sip or dip or sp or dp
Xuint16 Handle_Manner; //drop or sample
Xuint32 Filter_Data; //ip or port
}Filter_Table[256];
Xuint16 MYFIREWALL_Search_Filter_Rule();
void MYFIREWALL_Add_Change_Filter_Rule(Xuint32 BaseAddress);
void MYFIREWALL_Delete_Rule(Xuint32 BaseAddress);
void MYFIREWALL_Flow_Statistic(Xuint32 BaseAddress);
Xuint8 Read_In_A_Char(); //0-9 for 0-9 input, 10 for ".", 11 for enter, 12 for wrong input
Xuint8 Addr_Read_In_8bit(); //one to three chars(in base 10) input to a 8-bit value
Xuint16 Value_Read_In_16bit(); //convert the input string(in base 10) into a 16-bit value
//need to be defined
Xuint32 IP_Port_Read_In_32bit(); //convert ip or port to a 32-bit value
#endif // MYFIREWALL_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -