DPSCAPproto.h revision 824
551N/A/*
551N/A * DPSCAPproto.h -- CAP requests constants and alignment values,
551N/A * analgous to Xproto.h
551N/A *
551N/A * (c) Copyright 1991-1994 Adobe Systems Incorporated.
551N/A * All rights reserved.
551N/A *
551N/A * Permission to use, copy, modify, distribute, and sublicense this software
551N/A * and its documentation for any purpose and without fee is hereby granted,
551N/A * provided that the above copyright notices appear in all copies and that
551N/A * both those copyright notices and this permission notice appear in
551N/A * supporting documentation and that the name of Adobe Systems Incorporated
551N/A * not be used in advertising or publicity pertaining to distribution of the
551N/A * software without specific, written prior permission. No trademark license
551N/A * to use the Adobe trademarks is hereby granted. If the Adobe trademark
551N/A * "Display PostScript"(tm) is used to describe this software, its
551N/A * functionality or for any other purpose, such use shall be limited to a
551N/A * statement that this software works in conjunction with the Display
551N/A * PostScript system. Proper trademark attribution to reflect Adobe's
551N/A * ownership of the trademark shall be given whenever any such reference to
551N/A * the Display PostScript system is made.
551N/A *
551N/A * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR
551N/A * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
551N/A * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
551N/A * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
551N/A * NON- INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE
551N/A * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL
551N/A * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,
551N/A * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN
551N/A * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT
551N/A * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE.
551N/A *
551N/A * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
551N/A * Incorporated which may be registered in certain jurisdictions
551N/A *
551N/A * Author: Adobe Systems Incorporated
551N/A */
551N/A
551N/A
551N/A#ifndef _DPSCAPproto_h
551N/A#define _DPSCAPproto_h
551N/A
551N/A/* === DEFINITIONS === */
551N/A
551N/A#define DPSCAPPROTOVERSION 3
551N/A#define DPSCAPPROTOVERSION_2 2
551N/A
551N/A#define CSDPSPORT 6016 /* add agent instance number */
551N/A#define DPS_NX_SERV_NAME "dpsnx" /* name to look up in /etc/services */
551N/A
551N/A/* Request Opcodes */
551N/A
551N/A#define DPSCAPOPCODEBASE 126
551N/A#define DPSXOPCODEBASE 125
551N/A
551N/A#define X_CAPFlushAgent 1
551N/A#define X_CAPNotify 2
551N/A#define X_CAPSetArg 3
551N/A
/* === REQUESTS === */
typedef struct _CAPConnSetup {
BYTE byteorder; /* #x42 MSB, #x6C LSB */
BYTE dpscapVersion; /* proto version of connecting client */
CARD16 flags B16; /* functional hint flags */
CARD32 libraryversion B32; /* as for XPSInit */
CARD16 authProtoNameLength B16; /* in bytes */
CARD16 authProtoDataLength B16; /* in bytes */
CARD16 displayStringLength B16; /* in bytes */
CARD16 nodeStringLength B16; /* in bytes */
CARD16 transportStringLength B16; /* in bytes */
CARD16 display B16; /* Display number */
CARD16 screen B16; /* Screen number */
CARD16 reserved B16;
CARD32 clientWindow B32; /* window for ClientMessage */
} xCAPConnSetupReq;
#define sz_xCAPConnSetupReq 28
typedef struct {
BYTE success;
BYTE reasonLength;
CARD16 additionalLength B16;
} xCAPConnReplyPrefix;
#define sz_xCAPConnReplyPrefix 4
typedef struct _CAPConnFailed {
BYTE success; /* failed = 0, success = 1 */
BYTE reasonLength; /* in bytes if failed, ignore if success */
CARD16 additionalLength B16;/* quadbytes ADDITIONAL length */
CARD32 serverVersion B32; /* as for XPSInit */
CARD8 dpscapVersion; /* proto version of agent */
CARD8 pad;
CARD16 reserved B16;
} xCAPConnFailed;
#define sz_xCAPConnFailed 12
typedef struct _CAPConnSuccess {
BYTE success; /* failed = 0, success = 1 */
BYTE reasonLength; /* in bytes if failed, ignore if success */
CARD16 additionalLength B16;/* quadbytes ADDITIONAL length */
CARD32 serverVersion B32; /* as for XPSInit */
CARD8 dpscapVersion; /* proto version of agent */
CARD8 reserved;
CARD16 flagsUsed B16; /* mask of functional hint flags used */
CARD32 preferredNumberFormat B32; /* as for XPSInit */
CARD32 floatingNameLength B32; /* as for XPSInit */
CARD32 agentWindow B32; /* client sends messages to this window */
} xCAPConnSuccess;
#define sz_xCAPConnSuccess 24
typedef struct _CAPFlushAgent {
CARD8 reqType; /* always DPSCAPOPCODEBASE */
CARD8 type; /* always X_CAPFlushAgent */
CARD16 length B16; /* quadbyte length of request */
CARD32 cxid B32; /* context XID */
} xCAPFlushAgentReq;
#define sz_xCAPFlushAgentReq 8
typedef struct _CAPNotify {
CARD8 reqType; /* always DPSCAPOPCODEBASE */
CARD8 type; /* always X_CAPNotify */
CARD16 length B16; /* quadbyte length of request */
CARD32 cxid B32; /* context XID */
CARD32 notification B32; /* notify code */
CARD32 data B32; /* data word */
CARD32 extra B32; /* extra word */
} xCAPNotifyReq;
#define sz_xCAPNotifyReq 20
typedef struct _CAPSetArg {
CARD8 reqType; /* always DPSCAPOPCODEBASE */
CARD8 type; /* always X_CAPNotify */
CARD16 length B16; /* quadbyte length of request */
CARD32 arg B32; /* argument type */
CARD32 val B32; /* value */
} xCAPSetArgReq;
#define sz_xCAPSetArgReq 12
/* === ERRORS === */
typedef struct _DPSCAPError {
BYTE type; /* always 0 */
BYTE errorCode; /* always 255 */
CARD16 sequenceNumber B16; /* the nth request from this client */
CARD8 subLength; /* how much of 21 bytes are used */
CARD8 unused;
CARD16 reserved B16;
CARD16 minorOpcode B16;
CARD8 majorOpcode; /* always 0 */
BYTE subData1;
CARD32 subData2 B32;
CARD32 subData3 B32;
CARD32 subData4 B32;
CARD32 subData5 B32;
CARD32 subData6 B32;
CARD32 subData7 B32;
} xDPSCAPError;
/* === EVENTS === */
/* Events sent from agent to client via XSendEvent */
#define DPSCAP_OUTPUT_OVERHEAD 4
#define DPSCAP_BYTESPEROUTPUTEVENT (20 - DPSCAP_OUTPUT_OVERHEAD)
#define DPSCAP_DATA_LEN (DPSCAP_BYTESPEROUTPUTEVENT-1)
typedef struct {
CARD32 cxid;
CARD8 data[DPSCAP_BYTESPEROUTPUTEVENT];
} DPSCAPOutputEvent;
typedef struct {
BYTE status;
BYTE unused;
CARD16 sequenceNumber;
CARD32 cxid;
} DPSCAPStatusEvent;
#endif /* _DPSCAPproto_h */