jioctl.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
#ifndef _SYS_JIOCTL_H
#define _SYS_JIOCTL_H
#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 11.5 */
#ifdef __cplusplus
extern "C" {
#endif
/*
* jioctl.h
*
* Low level control codes for communication between the host and a
* windowing terminal. See windows.h for additional messages used by
* libwindows.
*
* In case you are wondering what the "j" in jioctl stands for,
* the "j" stands for jerq which was the first windowing terminal.
* The jerq became the Blit which begot the 5620 DMD which begot
* the 615, the 620 and the 630 MTG.
*/
/*
* Ioctl requests sent to the xt driver. The types JMPX, JWINSIZE,
* and JTRUN are processed locally by xt. The others involve sending
* a control message to the terminal on channel 0 (the control
* channel). In the control message, the lower bytes of these defines
* are used as the first byte of the control message.
*
* Note that packets sent from the host to the terminal on channels
* other than 0 are implicitly data packets.
*/
#define JTYPE ('j'<<8)
#define JBOOT (JTYPE|1) /* start a download in a window */
#define JTERM (JTYPE|2) /* return to default terminal emulator */
#define JMPX (JTYPE|3) /* currently running layers? */
/*
* Timeout in seconds. Not supported by streams xt, but reserve
* this number to avoid confusion.
* #define JTIMO (JTYPE|4)
*/
#define JWINSIZE (JTYPE|5) /* inquire window size */
#define JTIMOM (JTYPE|6) /* timeouts in millisecs */
#define JZOMBOOT (JTYPE|7) /* JBOOT but wait for debugger to run */
#define JAGENT (JTYPE|9) /* control for both directions */
#define JTRUN (JTYPE|10) /* send runlayer command to layers cmd */
#define JXTPROTO (JTYPE|11) /* set xt protocol type */
/*
* jwinsize structure used by JWINSIZE message.
*/
struct jwinsize
{
char bytesx, bytesy; /* Window size in characters */
short bitsx, bitsy; /* Window size in bits */
};
/*
* Channel 0 control message format.
*/
struct jerqmesg
{
char cmd; /* A control code above */
char chan; /* Channel it refers to */
};
/*
* The first byte of every xt packet from the terminal to the host
* is one of these control codes. Data packets start with either
* C_SENDCHAR or C_SENDNCHARS.
*
* The usual format is: [command][data]
*/
#define C_SENDCHAR 1 /* Send character to layer process */
#define C_NEW 2 /* Create a new layer */
#define C_UNBLK 3 /* Unblock layer process */
#define C_DELETE 4 /* Delete layer process group */
#define C_EXIT 5 /* Exit layers */
#define C_DEFUNCT 6 /* Send terminate signal to proc. group */
#define C_SENDNCHARS 7 /* Send several characters to layer proc. */
#define C_RESHAPE 8 /* Layer has been reshaped */
#define C_RUN 9 /* Run command in layer (local to xt/layers) */
#define C_NOFLOW 10 /* Disable network xt flow control */
#define C_YESFLOW 11 /* Enable network xt flow control */
/*
* Format of JAGENT packets.
*/
struct bagent {
int size; /* size of src string going in and dest string out */
char * src; /* address of the source byte string */
char * dest; /* address of the destination byte string */
};
#ifdef __cplusplus
}
#endif
#endif /* _SYS_JIOCTL_H */