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

📄 com.h

📁 TCP-IP红宝书源代码
💻 H
字号:
/* com.h */

#define	DATA	0
#define	IER	1
#define	IIR	2
#define	LCR	3
#define	MCR	4
#define	LSR	5
#define	MSR	6
#define	DLL	0	/* LCR_DLAB = 1 */
#define	DLM	1	/* LCR_DLAB = 1 */

#define IER_RX		0x01	/* interrupt on receive		*/
#define	IER_TX		0x02	/* interrupt on transmit done	*/
#define	IER_LS		0x04	/* line status interrupt	*/
#define	IER_MS		0x08	/* modem status interrupt	*/
#define	LCR_STB		0x04	/* # stop bits			*/
#define	LCR_PEN		0x08	/* parity enable		*/
#define	LCR_EPS		0x10	/* even parity select		*/
#define	LCR_DLAB	0x80
#define	LCR_W5		0x00	/* 5-bit word length		*/
#define	LCR_W6		0x01	/* 6-bit word length		*/
#define	LCR_W7		0x02	/* 7-bit word length		*/
#define	LCR_W8		0x03	/* 8-bit word length		*/
#define	LSR_THRE	0x20	/* xmit hold register empty	*/
#define	MCR_DTR		0x01	/* RS-232 DTR signal		*/
#define	MCR_RTS		0x02	/* RS-232 RTS signal		*/
#define	MCR_OUT2	0x08
#define	IIR_NOINT	0x01	/* set if no interrupt pending	*/
#define	IIR_IID		0x06	/* interrupt ID bits		*/
#define	IID_RSTAT	0x06	/* receiver line status intr	*/
#define	IID_RDAT	0x04	/* receiver data intr		*/
#define	IID_THRE	0x02	/* transmit completion intr	*/
#define	IID_MSTAT	0x00	/* modem status change		*/

#define	COMBUFSZ	10	/* serial device raw buffer size*/

struct comsoft {
	unsigned char	com_buf[COMBUFSZ];	/* raw output buffer	*/
	unsigned char	com_start;		/* start of buffer	*/
	unsigned char	com_count;		/* count in buffer	*/
	int		com_osema;		/* output semaphore	*/
	struct devsw	*com_pdev;		/* devsw pointer	*/
};

extern int	brtab[];	/* baud rate table		*/
extern int	lstab[];	/* divisor count table		*/

extern struct comsoft	comtab[];

int	computc(struct devsw *, unsigned char);
int	comflush(struct devsw *);
int	comsputc(struct devsw *, unsigned char);
void	comintr(void);
void	comwstrt(struct comsoft *);
void	comiin(struct comsoft *);

⌨️ 快捷键说明

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