|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 9900 (0x26ac) Types: TextFile Notes: UNIX file Names: »tci.h«
└─⟦fdc69b24d⟧ Bits:30004152 SW95705I 386/ix Multi User Update 1 └─⟦fdc69b24d⟧ UNIX Filesystem └─ ⟦this⟧ »U1/new/usr/include/sys/tci.h«
/* File: tci.h, TCI header declarations * * Revision History: * * 87.10.14 JCO Started. * 88.11.06 JCO Changed to TCI v.2 * */ #define minor(x) (int)(x&0xFF) #define DEB_DEV 0x01 #define DEB_INIT 0x02 #define DEB_INTR 0x04 #define DEB_OUT 0x08 #define DEB_IN 0x10 #define DEB_CMD 0x20 #define DEB_USER 0x40 #define DEB_ALL 0xff /* #define TDEBUG (DEB_INTR + DEB_IN + DEB_CMD + DEB_DEV) */ /* termio extention */ #define IFIELD 0x4000 #define ICONV 0x8000 #define OCRCL 0x0040 #define TCI_INIT 2 #define TCI_MASTER 3 #define CSP 2 #define true 1 #define false 0 struct TCI_msg_t { unsigned char msg_unit; unsigned char msg_gate; short msg_d0; unsigned short msg_cmd; unsigned short msg_paroff; unsigned short msg_prioff; unsigned short msg_size; unsigned short msg_boff; short msg_d1; short msg_d2[8]; }; struct head { unsigned short hd_first; unsigned short hd_last; }; struct TCI_unit_t { struct head ut_chain; struct x_buf ut_xb; struct TCI_msg_t ut_mes; struct TCI_cmd_descr *ut_attn; struct TCI_cmd_descr *ut_st_err; caddr_t ut_window; unsigned short ut_unit; unsigned short ut_status; }; #define ut_resp ut_chain.hd_first #define ut_last ut_chain.hd_last #define UT_MISSING 0x0001 #define UT_RESERVED 0x0002 #define UT_DROP 0x0004 #define UT_OK 0x0008 #define PARSIZE 0x200 struct TCI_cmd_descr { unsigned short c_next; unsigned char c_oper; unsigned char c_chnl; unsigned char c_result; unsigned char c_unit; unsigned short c_bufadr; unsigned short c_size; unsigned short c_count; unsigned char c_mode; unsigned char c_unit_no; unsigned char c_state; unsigned char c_prstatus; }; #define C_BOARD_STATUS 0x00 #define C_OPEN 0x01 #define C_CLOSE 0x02 #define C_ATTN 0x0f #define R_OK 0x00 #define R_NL 0x00 #define R_EOL 0x01 #define R_EOF 0x02 #define R_TCHAR 0x03 #define R_BUF_FULL 0x20 #define R_TERMINATED 0x21 #define R_TIMEOUT 0x22 #define R_INTR 0x40 #define R_QUIT 0x41 #define R_OFFLINE 0x42 #define R_CLOSED 0x43 #define R_NOT_PROCESSED 0x44 #define R_ONLINE 0x45 #define R_REGRETTED 0x48 #define R_SUSP 0x49 #define R_CHOST 0x4a #define E_ILL_CMD 0x81 #define E_ILL_CHNL 0x82 #define E_ILL_BOARD_STATUS 0x83 #define E_UNUSED 0x84 #define E_NOT_OPEN 0x85 #define E_BUZY 0x87 #define E_ILL_STATUS 0x8c #define E_ILL_BUF 0x90 #define SPECIFIC_ATTN 0x01 #define NON_SPECIFIC_ATTN 0x00 struct mode_cntrl { unsigned short mc_iflag; unsigned short mc_oflag; unsigned short mc_cflag; unsigned short mc_lflag; unsigned short mc_intr; unsigned short mc_quit; unsigned short mc_erase; unsigned short mc_kill; unsigned short mc_eof; unsigned short mc_nl; unsigned short mc_eol; unsigned short mc_susp; unsigned short mc_bslsh; unsigned short mc_chost; unsigned short mc_timeout; unsigned short mc_min_count; unsigned short mc_max_count; }; struct open_buf { unsigned short ob_size; unsigned char ob_mode[sizeof(struct mode_cntrl)]; unsigned char ob_type[10]; unsigned char ob_name[10]; }; struct timer_rec { struct timer_rec *tr_lnk; struct TCI_dev_descr *tr_dev; unsigned short tr_cnt; }; struct fifo_descr { unsigned char *fb_get; unsigned char *fb_put; unsigned char *fb_top; unsigned char *fb_base; unsigned char fb_size; unsigned char fb_getcnt; unsigned char fb_putcnt; unsigned char fb_state; }; #define FB_STOP 0x01 #define IFIFO_SIZE 64 #define I_HM 40 #define I_LM 10 #define OFIFO_SIZE 32 #define O_HM 24 #define O_LM 8 struct TCI_dev_descr { unsigned short d_state; /* 00 */ unsigned char d_use; /* 02 */ unsigned char d_ustate; /* 03 */ unsigned short d_event_msk; /* 04 */ unsigned short d_wait_msk; /* 06 */ unsigned short d_pid; /* 08 */ unsigned short d_mode; /* 0A */ unsigned short d_iostate; /* 0C */ unsigned char d_unit; /* 0E */ unsigned char d_devno; /* 0F */ unsigned char d_err; /* 10 */ unsigned char d_res; /* 11 */ unsigned char d_sinchar; /* 12 */ unsigned char d_tabs; /* 13 */ struct TCI_unit_t * d_tci_unit; /* 14 */ int (**d_casetab)(); /* 18 */ int (*d_echop)(); /* 1C */ int (*d_outproc)(); /* 20 */ int (*d_lproc)(); /* 24 */ int (*d_sigproc)(); /* 28 */ int (*d_xproc)(); /* 2C */ struct head d_cmds; /* 30 */ struct head d_in; /* 34 */ struct head d_out; /* 38 */ struct TCI_cmd_descr * d_stat_cmd; /* 3C */ char * d_outadr; /* 40 */ unsigned short d_outcnt; /* 44 */ /* 46 */ char * d_inadr; /* 48 */ unsigned short d_incnt; /* 4C */ unsigned short d_insiz; /* 4E */ unsigned short d_iflag; /* 50 */ unsigned short d_oflag; /* 52 */ unsigned short d_cflag; /* 54 */ unsigned short d_lflag; /* 56 */ unsigned short d_intr; /* 58 */ unsigned short d_quit; /* 5A */ unsigned short d_erase; /* 5C */ unsigned short d_kill; /* 5E */ unsigned short d_eof; /* 60 */ unsigned short d_nl; /* 62 */ unsigned short d_eol; /* 64 */ unsigned short d_susp; /* 66 */ unsigned short d_bslsh; /* 68 */ unsigned short d_chost; /* 6A */ unsigned short d_timeout; /* 6C */ unsigned short d_min_count; /* 6E */ unsigned short d_max_count; /* 70 */ /* 72 */ struct timer_rec d_timer_rec; /* 74 */ unsigned short d_tmode; /* 7E */ struct tncon d_tncon; /* 80 */ char d_type[10]; /* 90 */ unsigned short d_in_min; /* 9A */ unsigned short d_tx_cnt; /* 9C */ /* 9E */ struct fifo_descr d_ififo; /* A0 */ unsigned char d_ibuf[IFIFO_SIZE]; /* B4 */ struct fifo_descr d_ofifo; /* F4 */ unsigned char d_obuf[OFIFO_SIZE]; /* 108 */ int (*d_start_xmt)(); /* 128 */ int (*d_start_rec)(); /* 12C */ int (*d_start)(); /* 130 */ int (*d_stop)(); /* 134 */ int (*d_iproc)(); /* 138 */ unsigned short d_chmask; /* 13C */ /* 13E */ }; /* 140 */ #define IO_XMT 0x01 #define IO_REC 0x02 #define d_attn_unit d_tncon.tn_unit #define d_appl d_tncon.tn_appl #define d_attn_name d_tncon.tn_name #define d_tim_lnk d_timer_rec.tr_lnk #define d_tim_dev d_timer_rec.tr_dev #define d_delay d_timer_rec.tr_cnt #define d_in_cmds d_in.hd_first #define d_out_cmds d_out.hd_first #define d_chain d_cmds.hd_first #define d_window d_tci_unit->ut_window #define NO_UNIT 0x0ff #define S_OPEN 0x001 #define S_UNUSED 0x000 #define SU_OPEN 0x001 #define SU_WOPEN 0x002 #define SU_BUSY 0x004 #define SU_OSLP 0x010 #define SU_ISLP 0x020 #define READ_PRI 29 #define WRITE_PRI 28 #define MS_ESLP 0x0002 #define MS_DFLT 0x0004 #define MS_ATTN 0x0008 #define MS_CANON 0x0100 #define MS_TIMEOUT 0x0200 #define MS_DOSMODE 0x0400 #define TS_ACTIVE 0x0001 #define TS_TIMEOUT 0x0002 #define TS_FORCED 0x0004 #define TS_CHARTIMER 0x0008 #define TS_IDLETIMER 0x0010 #define TS_TERMINATE 0x0020 #define TS_DELAYED 0x0040 #define TS_WAITESC 0x0080 #define TS_ESC 0x0100 #define TS_BSLSH 0x0200 #define TS_IN_TIME (TS_WAITESC | TS_TIMEOUT | TS_CHARTIMER) #define ES_OFFLINE 0x01 #define ES_ONLINE 0x02 #define ES_DROP 0x80 #define ES_SIGNAL 0x10 #define DS_IN 0x0001 #define DS_OUT 0x0002 #define DS_CNTRL 0x0010 #define DS_INBUF 0x0100 #define DS_IFIFO 0x0200 #define DS_INCHAR 0x0400 #define DS_SICH 0x0800 #define DS_OUTBUF 0x1000 #define DS_OFIFO 0x2000 #define DS_NOSUSP 0x4000 #define DS_OUTCHAR 0x8000 #define DS_IN_ACTV (DS_INBUF + DS_INCHAR) #define DS_OUT_ACTV (DS_OUTBUF + DS_NOSUSP + DS_OFIFO) #define DS_ACTIVE (DS_IN | DS_OUT | DS_CNTRL) #define E_CMD 0x0001 #define E_ACTIVE 0x0080 #define E_ATTENTION 0x0100 #define E_TIMEOUT 0x0200 #define E_ERROR 0x1000 #define CH_SLASH 0x5c #define CH_ESC 0x1b #define CH_BS 0x08 #define CH_SPACE 0x20 #define CH_CR 0x0d #define CH_LF 0x0a #define CH_FF 0x0c #define CH_TAB 0x09 #define CH_XOFF 0x13 #define CH_XON 0x11 struct dev_cfg { unsigned short cfg_cflags; unsigned char cfg_use; unsigned char cfg_tabsiz; unsigned char cfg_xon_time; unsigned char cfg_modem; unsigned char cfg_chset; unsigned char cfg_reserved; }; #define U_UNUSED 0x00 #define U_NEUTRAL 0x01 #define U_LOGIN 0x02 #define U_PRINTER 0x04 #define U_MODEM 0x08 #define U_COPYDEV 0x10 struct cfg_descr { unsigned char cfg_chr0; unsigned char cfg_chr1; unsigned char cfg_chr2; unsigned char cfg_chr3; unsigned char cfg_chr4; unsigned char cfg_chr5; unsigned char cfg_chr6; unsigned char cfg_chr7; unsigned char cfg_no_of_devs; unsigned char cfg_chr9; unsigned char cfg_chr10; unsigned char cfg_chr11; unsigned char cfg_chr12; unsigned char cfg_chr13; unsigned char cfg_chr14; unsigned char cfg_chr15; struct dev_cfg cfg_devs[48]; }; #define CMD_OFF(x, y) (unsigned short) \ ((unsigned int) x - (unsigned int) y) #define CMD_PTR(x, y) (struct TCI_cmd_descr *) \ ((unsigned int) y + (unsigned short) x) #define TCI_PTR(x, y) (char *) \ ((unsigned int) y + (unsigned short) x) #define OPEN_PTR(x, y) (struct open_buf *) \ ((unsigned int) y + (unsigned short) x) \f /* Basic constants */ #define NIL_PTR 0 #define NULL 0 #define CMD_NULL (struct TCI_cmd_descr *)NULL #define TCI_MAX_CHNL 16 #define TCI_MAX_CMD 16 struct TCI_timer_rec { struct timer_rec * t_lnk; struct TCI_dev_descr * tr_dev; unsigned short t_cnt; };