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

📄 hs.h

📁 LPC2300 TCPIP协议栈
💻 H
字号:
#ifndef	_HS_H
#define	_HS_H
/* Hardware-dependent routines for the DRSI or Eagle cards for the PC
 * driving a high speed modem. These cards both contain Zilog 8530s.
 */

#ifndef	_GLOBAL_H
#include "global.h"
#endif

#ifndef	_MBUF_H
#include "mbuf.h"
#endif

#ifndef	_IFACE_H
#include "iface.h"
#endif

#define	NHS	1		/* One card max */

struct hs {
	struct {
		INTERRUPT (*vec)(void);
	} save;

	uint16 addr;	/* Base I/O adHsess */
	uint16 vec;	/* Vector */
	long ints;	/* Interrupt count */
	uint8 chain;	/* Interrupt chaining enable */
};
extern struct hs Hs[];

/* Register offset info, specific to the DRSI PCPA and Eagle cards
 * E.g., to read the data port on channel A, use
 *      inportb(hdlc[dev].base + CHANA + DATA)
 */
#define	CHANB		0	/* Base of channel B regs */
#define	CHANA		2	/* Base of channel A regs */

/* 8530 ports on each channel */
#define	CTL	0
#define	DATA	1

struct hdlc {
	long rxints;		/* Receiver interrupts */
	long txints;		/* Transmitter interrupts */
	long exints;		/* External/status interrupts */
	long spints;		/* Special receiver interrupts */
	long rxbytes;		/* Total receive bytes */
	long nomem;		/* Buffer allocate failures */
	long toobig;		/* Giant receiver packets */
	long crcerr;		/* CRC Errors */
	long aborts;		/* Receiver aborts */
	long good;		/* Valid frames */
	long txpkts;
	long overrun;		/* Receiver overruns */

	uint16 bufsiz;		/* Size of rcvbuf */

	int dev;		/* Device number */
	int clkrev;		/* Clock pins swapped */
	uint16 ctl;		/* Control register */
	uint16 data;		/* Data register */
	uint16 speed;		/* Line speed, bps */
	long txdelay;		/* Keyup delay, ticks */ 
	uint8 p;			/* P-persistence value */
	struct mbuf *txq;	/* Transmit queue */

	struct iface *iface;	/* Associated interface */
	int32 deftime;		/* Time when we can next transmit */
};

#define	OFF	0
#define	ON	1

/* Baud rate generator definitions */
struct baudrate {
	uint16 speed;
	uint8 val;
};
/* In hs.c: */
INTERRUPT (far *(hsint)(int dev))();

/* In hsvec.asm: */
INTERRUPT hs0vec(int dev);

#endif /* _HS_H */

⌨️ 快捷键说明

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