//
// $Header$
//
//

//
// $Log$
//
//

//
// vectorser.device - serial device for the HK Vector Connection board
//
// © 1994 Henning Schmiedehausen - The Software Forge
//
//

#ifndef DEVICES_VECTORSER_H
#define DEVICES_VECTORSER_H

/*
 * Commands
 */

#define		VSCMD_SETCTRLLINES	(CMD_NONSTD+7)	/* 0x10 ADSG-compatible */

#define		VSCMD_END			VSCMD_SETCTRLLINES

#define VECTORSERNAME     "vectorser.device"

#define		VSIOCTLB_RTS  0
#define		VSIOCTLB_DTR  1

#define		VSIOCTLF_RTS  (1<<VSIOCTLB_RTS)
#define		VSIOCTLF_DTR  (1<<VSIOCTLB_DTR)

/*
 * co_query
 */

#define		QUB_DSR				3
#define		QUB_CTS				4
#define		QUB_CD				5
#define		QUB_RTS				6
#define		QUB_DTR				7

#define		QUF_DSR				(1L<<QUB_DSR)
#define		QUF_CTS				(1L<<QUB_CTS)
#define		QUF_CD				(1L<<QUB_CD)
#define		QUF_RTS				(1L<<QUB_RTS)
#define		QUF_DTR				(1L<<QUB_DTR)

struct duart_read
{
	UBYTE	 mra;
	UBYTE	 _pad0;
	UBYTE	 sra;
	UBYTE	 _pad1;
	UBYTE	 _pad2;
	UBYTE	 _pad3;
	UBYTE	 rhra;
	UBYTE	 _pad4;
	UBYTE	 ipcr;
	UBYTE	 _pad5;
	UBYTE	 isr;
	UBYTE	 _pad6;
	UBYTE	 ctu;
	UBYTE	 _pad7;
	UBYTE	 ctl;
	UBYTE	 _pad8;
	UBYTE	 mrb;
	UBYTE	 _pad9;
	UBYTE	 srb;
	UBYTE	 _pad10;
	UBYTE	 _pad11;
	UBYTE	 _pad12;
	UBYTE	 rhrb;
	UBYTE	 _pad13;
	UBYTE	 ivr;
	UBYTE	 _pad14;
	UBYTE	 ip;
	UBYTE	 _pad15;
	UBYTE	 strt;
	UBYTE	 _pad16;
	UBYTE	 stop;
};

struct duart_write
{
	UBYTE	 mra;
	UBYTE	 _pad0;
	UBYTE	 csra;
	UBYTE	 _pad1;
	UBYTE	  cra;
	UBYTE	 _pad3;
	UBYTE	 thra;
	UBYTE	 _pad4;
	UBYTE	 acr;
	UBYTE	 _pad5;
	UBYTE	 imr;
	UBYTE	 _pad6;
	UBYTE	 ctur;
	UBYTE	 _pad7;
	UBYTE	 ctlr;
	UBYTE	 _pad8;
	UBYTE	 mrb;
	UBYTE	 _pad9;
	UBYTE	 csrb;
	UBYTE	 _pad10;
	UBYTE	 crb;
	UBYTE	 _pad12;
	UBYTE	 thrb;
	UBYTE	 _pad13;
	UBYTE	 ivr;
	UBYTE	 _pad14;
	UBYTE	 opcr;
	UBYTE	 _pad15;
	UBYTE	 setop;
	UBYTE	 _pad16;
	UBYTE	 clrop;
};

struct dc_read
{
	UBYTE	 mr;
	UBYTE	 _pad0;
	UBYTE	 sr;
	UBYTE	 _pad1;
	UBYTE	 _pad2;
	UBYTE	 _pad3;
	UBYTE	 rhr;
};

struct dc_write
{
	UBYTE	 mr;
	UBYTE	 _pad0;
	UBYTE	 csr;
	UBYTE	 _pad1;
	UBYTE	  cr;
	UBYTE	 _pad3;
	UBYTE	 thr;
};


union duart
{
	struct duart_read	rd;
	struct duart_write	wr;
};

union dchannel
{
	struct dc_read	rd;
	struct dc_write	wr;
};


#endif /* DEVICES_VECTORSER_H */
