jpayne@69: /****************************************************************************** jpayne@69: jpayne@69: jpayne@69: Copyright 1993, 1998 The Open Group jpayne@69: jpayne@69: Permission to use, copy, modify, distribute, and sell this software and its jpayne@69: documentation for any purpose is hereby granted without fee, provided that jpayne@69: the above copyright notice appear in all copies and that both that jpayne@69: copyright notice and this permission notice appear in supporting jpayne@69: documentation. jpayne@69: jpayne@69: The above copyright notice and this permission notice shall be included in jpayne@69: all copies or substantial portions of the Software. jpayne@69: jpayne@69: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR jpayne@69: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, jpayne@69: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE jpayne@69: OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN jpayne@69: AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN jpayne@69: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. jpayne@69: jpayne@69: Except as contained in this notice, the name of The Open Group shall not be jpayne@69: used in advertising or otherwise to promote the sale, use or other dealings jpayne@69: in this Software without prior written authorization from The Open Group. jpayne@69: jpayne@69: Author: Ralph Mor, X Consortium jpayne@69: ******************************************************************************/ jpayne@69: jpayne@69: #ifndef _ICEPROTO_H_ jpayne@69: #define _ICEPROTO_H_ jpayne@69: jpayne@69: #include jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 data[2]; jpayne@69: CARD32 length; jpayne@69: } iceMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD16 errorClass; jpayne@69: CARD32 length; jpayne@69: CARD8 offendingMinorOpcode; jpayne@69: CARD8 severity; jpayne@69: CARD16 unused; jpayne@69: CARD32 offendingSequenceNum; jpayne@69: /* n varying values */ jpayne@69: /* p p = pad (n, 8) */ jpayne@69: } iceErrorMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 byteOrder; jpayne@69: CARD8 unused; jpayne@69: CARD32 length; jpayne@69: } iceByteOrderMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 versionCount; jpayne@69: CARD8 authCount; jpayne@69: CARD32 length; jpayne@69: CARD8 mustAuthenticate; jpayne@69: CARD8 unused[7]; jpayne@69: /* i STRING vendor */ jpayne@69: /* j STRING release */ jpayne@69: /* k LIST of STRING authentication-protocol-names */ jpayne@69: /* m LIST of VERSION version-list */ jpayne@69: /* p p = pad (i+j+k+m, 8) */ jpayne@69: } iceConnectionSetupMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 authIndex; jpayne@69: CARD8 unused1; jpayne@69: CARD32 length; jpayne@69: CARD16 authDataLength; jpayne@69: CARD8 unused2[6]; jpayne@69: /* n varying data */ jpayne@69: /* p p = pad (n, 8) */ jpayne@69: } iceAuthRequiredMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 unused1[2]; jpayne@69: CARD32 length; jpayne@69: CARD16 authDataLength; jpayne@69: CARD8 unused2[6]; jpayne@69: /* n varying data */ jpayne@69: /* p p = pad (n, 8) */ jpayne@69: } iceAuthReplyMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 unused1[2]; jpayne@69: CARD32 length; jpayne@69: CARD16 authDataLength; jpayne@69: CARD8 unused2[6]; jpayne@69: /* n varying data */ jpayne@69: /* p p = pad (n, 8) */ jpayne@69: } iceAuthNextPhaseMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 versionIndex; jpayne@69: CARD8 unused; jpayne@69: CARD32 length; jpayne@69: /* i STRING vendor */ jpayne@69: /* j STRING release */ jpayne@69: /* p p = pad (i+j, 8) */ jpayne@69: } iceConnectionReplyMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 protocolOpcode; jpayne@69: CARD8 mustAuthenticate; jpayne@69: CARD32 length; jpayne@69: CARD8 versionCount; jpayne@69: CARD8 authCount; jpayne@69: CARD8 unused[6]; jpayne@69: /* i STRING protocol-name */ jpayne@69: /* j STRING vendor */ jpayne@69: /* k STRING release */ jpayne@69: /* m LIST of STRING authentication-protocol-names */ jpayne@69: /* n LIST of VERSION version-list */ jpayne@69: /* p p = pad (i+j+k+m+n, 8) */ jpayne@69: } iceProtocolSetupMsg; jpayne@69: jpayne@69: typedef struct { jpayne@69: CARD8 majorOpcode; jpayne@69: CARD8 minorOpcode; jpayne@69: CARD8 versionIndex; jpayne@69: CARD8 protocolOpcode; jpayne@69: CARD32 length; jpayne@69: /* i STRING vendor */ jpayne@69: /* j STRING release */ jpayne@69: /* p p = pad (i+j, 8) */ jpayne@69: } iceProtocolReplyMsg; jpayne@69: jpayne@69: typedef iceMsg icePingMsg; jpayne@69: typedef iceMsg icePingReplyMsg; jpayne@69: typedef iceMsg iceWantToCloseMsg; jpayne@69: typedef iceMsg iceNoCloseMsg; jpayne@69: jpayne@69: jpayne@69: /* jpayne@69: * SIZEOF values. These better be multiples of 8. jpayne@69: */ jpayne@69: jpayne@69: #define sz_iceMsg 8 jpayne@69: #define sz_iceErrorMsg 16 jpayne@69: #define sz_iceByteOrderMsg 8 jpayne@69: #define sz_iceConnectionSetupMsg 16 jpayne@69: #define sz_iceAuthRequiredMsg 16 jpayne@69: #define sz_iceAuthReplyMsg 16 jpayne@69: #define sz_iceAuthNextPhaseMsg 16 jpayne@69: #define sz_iceConnectionReplyMsg 8 jpayne@69: #define sz_iceProtocolSetupMsg 16 jpayne@69: #define sz_iceProtocolReplyMsg 8 jpayne@69: #define sz_icePingMsg 8 jpayne@69: #define sz_icePingReplyMsg 8 jpayne@69: #define sz_iceWantToCloseMsg 8 jpayne@69: #define sz_iceNoCloseMsg 8 jpayne@69: jpayne@69: #endif /* _ICEPROTO_H_ */