home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
old
/
ckermit80
/
edit201
/
ckvvms.h
< prev
next >
Wrap
C/C++ Source or Header
|
2020-01-01
|
4KB
|
164 lines
/* DEC/CMS REPLACEMENT HISTORY, Element CKVVMS.H */
/* *3 29-AUG-1989 00:32:39 BUDA "Add ^Y/^C from server mode" */
/* *2 16-APR-1989 17:54:51 BUDA "Add definition of SUB_PROC buffer size" */
/* *1 11-APR-1989 22:57:00 BUDA "Initial creation" */
/* DEC/CMS REPLACEMENT HISTORY, Element CKVVMS.H */
/*
* 006 22-Aug-1993 fdc Add prototype for print_msg().
* 005 26-Aug-1992 tmk Remove unused CKVRMS32 stuff
* 004 01-Dec-1989 mab Add RMS support
* 002 01-Aug-1989 mab Add partial buffer definition
* 002 08-Jul-1989 mab Add ^C/^Y code to server mode
* 001 05-Mar-1989 mab Put some common pieces in one place
*/
/*
C-Kermit structures and symbols for interrupt, terminal control, and i/o
for VMS systems
Mark A. Buda, Digital Equipment Corporation
*/
struct iosb_struct {
unsigned short status;
unsigned short size;
unsigned short terminator;
unsigned short termsize;
};
struct tt_mode {
unsigned char class;
unsigned char type;
unsigned short width;
unsigned int basic : 24;
unsigned char length;
unsigned long extended;
};
struct itmlst {
unsigned short len;
unsigned short code;
char *adr;
char *retlen;
};
struct sysatr {
unsigned long int retval; /* Address or value returned */
unsigned long int len; /* length of item */
unsigned long int type;
char *bpnt; /* Buffer pointer */
unsigned long int bcnt; /* Buffer count */
char *tbuf_adr; /* Starting address of tmp buffer */
char *tbuf_pnt; /* Address within buffer */
unsigned long int tbuf_len; /* Length of buffer */
unsigned long int tbuf_cnt;
};
struct trmmbx_message { /* jah - for edit 031 in ckvtio.c */
unsigned short type; /* Mailbox message type */
unsigned short unit; /* TTY unit number */
unsigned char ctlname_size; /* TTY controller name length */
char ctlname[15]; /* TTY controller name */
/* Add broadcast message stuff here if/when needed */
};
struct trmmbx_struct { /* jah - for edit 031 in ckvtio.c */
unsigned short channel; /* Mailbox channel */
unsigned short efn; /* EFN we set for unsolicited input */
unsigned long status; /* Completion status set by AST code */
struct iosb_struct iosb; /* I/O status block for mailbox read */
struct trmmbx_message message; /* A short mailbox message buffer */
};
/* Event flags used for I/O completion testing */
#define CON_EFN 1
#define TTY_EFN 2
#define TIM_EFN 3
#define QIOW_EFN 4
/* Error checking and reporting macros */
int print_msg();
#define SUCCESS(x) ((vms_status = (x)) & 1)
#define CHECK_ERR(s,x) (SUCCESS(x) ? 1 : print_msg(s))
/*
* Module CKVTIO
* Routine print_msg(sts) ! Print VMS error message.
* define buffer sizes that are malloced at routine first call.
*/
#define PMSG_BUF_SIZE 255
#define PMSG_MSG_SIZE PMSG_BUF_SIZE+5
/*
* Size of subprocess buffer
* This will have a direct affect on the size of a message that comes
* from the subprocess mailbox.
*/
#define SUB_BUF_SIZE 300
#ifdef COMMENT
/* This is handled in ckcdeb.h as of 2001-11-03 */
/*
* Maximum length for a device name (does not include null terminator).
*/
#define DEVNAMLEN 64
#endif /* COMMENT */
/*
* The following macro was borrowed from a posting on USENET - Thank you.
*/
#define IDENT(arg) arg /* Handy macro expands to its arguments */
#define VSTRING(name, maxlen, init) \
struct IDENT(name)_vs { \
struct dsc$descriptor_s dsc; \
unsigned short int curlen; \
char body[maxlen]; \
} name = {{maxlen, DSC$K_DTYPE_VT, DSC$K_CLASS_VS, &name.curlen}, \
sizeof(init)-1, init}
/*
* Example of using VSTRING:
*
* VSTRING(user,12,"Humpty Dumpty");
* VSTRING(line,256,"");
*
*/
/*
* UCB$M_* symbols are not in a 'C' usable format. Define this
* symbol for use in CKVTIO, when doing a getdviw()
*/
#ifndef UCB$M_ONLINE
#define UCB$M_ONLINE 16
#endif
/*
* Used by parsedir as the flags argument
*/
#define PARSE_NODE 0x001
#define PARSE_DEVICE 0x002
#define PARSE_DIRECTORY 0x004
#define PARSE_NAME 0x008
#define PARSE_TYPE 0x010
#define PARSE_VERSION 0x020
/*
*
*/
#define CKV_M_CTRLY (1 << ('Y'-64))
#define CKV_M_CTRLC (1 << ('C'-64))
#define CKV_K_CTRLC ('C'-64)
#define CKV_K_CTRLY ('Y'-64)
/*
* Partial Buffer size. This is used by zoutdump() when it gets
* an incomplete record.
*/
#define PARTIAL_BUF_SIZE 1024