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

📄 opentcp.h

📁 opentcp_mcf5282原代码
💻 H
字号:
/*********************************************************************************
File:			opentcp.h

Date:			22.1.2004

Version:		0.1

Author:			Jari Lahti (jari.lahti@violasystems.com)

Description:	General definions, bindings and includes of OpenTCP.
				Processor depended stuff like enable/disable IRQs.
				Helper functions.

Version Info:	22.1.2004 - First version (JaL)

*********************************************************************************/

#ifndef __INCLUDE_OPENTCP_H__
#define __INCLUDE_OPENTCP_H__

/* target specific		*/
#include "src/common/m5282evb.h"
#include "src/common/stdlib.h"

/* motorola fec driver	*/
#include "src/ethernet/nbuf.h"
#include "src/ethernet/nif.h"
#include "src/ethernet/fec.h"

#include "datatypes.h"
#include "eth_stub.h"
#include "debug.h"
#include "timers.h"
#include "tcp_ip.h"
#include "arp.h"
#include "http.h"
#include "firewall.h"
#include "bootp.h"
#include "tftps.h"
#include "smtp_client.h"
#include "pop3_client.h"



/* System functions	*/

#define RESET_SYSTEM()			{}

#define DISABLE_INTERRUPTS()		{}
#define ENABLE_INTERRUPTS()			{}

#define DISABLE_TIMER_IRQ()			MCF5282_INTC0_IMRH |= MCF5282_INTC_IMRH_INT55
#define ENABLE_TIMER_IRQ()			MCF5282_INTC0_IMRH &= ~MCF5282_INTC_IMRH_INT55



/* the network interface for motorola code	*/

extern NIF fec_nif;

/* and for OpenTCP internals	*/
extern struct netif localmachine;

/* rx & tx ethernet frames on OpenTCP	*/

extern struct otcp_ethframe otcp_rxframe;	/* Frame we receive	*/
extern struct otcp_ethframe otcp_txframe;	/* Frame we send	*/

/* rx & tx IP frames on OpenTCP			*/

extern struct IPFrame ReceivedIPPacket;
extern struct IPFrame SendIPPacket;

/* Network tx assemble buf				*/

extern UINT8 otcp_netbuf[];
#define OTCP_TXBUF	otcp_netbuf

/* TCP frame	*/

extern struct TCPFrame ReceivedTCPPacket;


/* Bindings of OpenTCP network macros	*/

#define RECEIVE_NETWORK_B()				eth_stub_read(&fec_nif)
#define RECEIVE_NETWORK_BUF(c,d)		eth_stub_read_buf(&fec_nif, c, d)
#define SEND_NETWORK_B(c)				eth_stub_write(&fec_nif, c)
#define SEND_NETWORK_BUF(c,d)			eth_stub_write_buf(&fec_nif, c, d)
#define NETWORK_CHECK_IF_RECEIVED()		eth_stub_isframe(&fec_nif)
#define NETWORK_RECEIVE_INITIALIZE(c)	eth_stub_seekread(&fec_nif, c)
#define NETWORK_RECEIVE_END()			eth_stub_dumpframe(&fec_nif)
#define NETWORK_SEND_INITIALIZE(c)		eth_stub_txalloc(&fec_nif)
#define NETWORK_ADD_DATALINK(c)			eth_stub_writeheader(&fec_nif, c)
#define	NETWORK_COMPLETE_SEND(c)		eth_stub_send(&fec_nif, c)



/* Helper functions	*/

/********************************************************************************
Function:		otcp_strlen

Parameters:		UINT8* str - start address of string buffer
				UINT16 len - buffer length

Return val:		INT16 - (-1) Not a string
						(>=0) Length of string

Date:			12.8.2002

Desc:			Calculates the length of given string
*********************************************************************************/
INT16 otcp_strlen(UINT8* buf, UINT16 len);

/********************************************************************************
Function:		otcp_bufsearch

Parameters:		UINT8* startadr - start address of given buffer
				UINT16 len - buffer length
				UINT8* str - given searchstring
				UINT8  caps - 0-actual(case sensitive), 1-case insensitive

Return val:		INT16 - (-1) Not found
						(>=0) Start of matched string from startadr

Date:			12.7.2002

Desc:			Seeks given string from given buffer
*********************************************************************************/
INT16 otcp_bufsearch(UINT8* startadr, UINT16 len, UINT8* str, UINT8 caps);

/********************************************************************************
Function:		otcp_toupper

Parameters:		UINT8 ch - ASCII character to be converted UPPERCASE

Return val:		UINT8 - converted character

Date:			21.8.2002

Desc:			If ch is lowercase letter it is converted to UPPERCASE and
				returned. Otherwise original character is returned
*********************************************************************************/
UINT8 otcp_toupper(UINT8 ch);

/********************************************************************************
Function:		otcp_tolower

Parameters:		UINT8 ch - ASCII character to be converted lowercase

Return val:		UINT8 - converted character

Date:			21.8.2002

Desc:			If ch is UPPERCASE letter it is converted to lowercase and
				returned. Otherwise original character is returned
*********************************************************************************/

UINT8 otcp_tolower(UINT8 ch);

/* Convert ASCII character to numerical	*/
/* e.g. '1' -> 0x01, 'A' ->0x0A			*/

UINT8 otcp_asciitohex(UINT8 ch);

/* Take one byte and return its two ASCII 	*/
/* values for both nibbles					*/

UINT16 otcp_hextoascii(UINT8 c);

/* Is the given ASCII code numerical	*/
/* e.g. '0','1','2' ... '9'				*/

UINT8 otcp_isnumeric(UINT8 ch);

/* Long to Ascii	*/

void otcp_ltoa(UINT32 nmbr, UINT8 *ch );

#endif		//guard


/* EOF	*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -