cr_protocol.h revision 10183353efa12aa94e0f3dc78e0f1c47f7928e8d
/* Copyright (c) 2001, Stanford University
* All rights reserved.
*
* See the file LICENSE.txt for information on redistributing this software.
*/
#ifndef CR_PROTOCOL_H
#define CR_PROTOCOL_H
#ifdef __cplusplus
extern "C" {
#endif
/*For now guest is allowed to connect host opengl service if protocol version matches exactly*/
/*Note: that after any change to this file, or glapi_parser\apispec.txt version should be changed*/
#define CR_PROTOCOL_VERSION_MAJOR 3
#define CR_PROTOCOL_VERSION_MINOR 1
typedef enum {
/* first message types is 'wGL\001', so we can immediately
recognize bad message types */
CR_MESSAGE_OPCODES = 0x77474c01,
typedef union {
/* pointers are usually 4 bytes, but on 64-bit machines (Alpha,
* SGI-n64, etc.) they are 8 bytes. Pass network pointers around
* as an opaque array of bytes, since the interpretation & size of
* the pointer only matter to the machine which emitted the
* pointer (and will eventually receive the pointer back again) */
unsigned int ptrAlign[2];
unsigned char ptrSize[8];
/* hack to make this packet big */
/* unsigned int junk[512]; */
typedef struct {
unsigned int conn_id;
typedef struct CRMessageOpcodes {
unsigned int numOpcodes;
typedef struct CRMessageRedirPtr {
typedef struct CRMessageWriteback {
typedef struct CRMessageReadback {
typedef struct CRMessageMulti {
typedef struct CRMessageFlowControl {
unsigned int credits;
typedef struct CRMessageReadPixels {
unsigned int bytes_per_row;
unsigned int stride;
int alignment;
int skipRows;
int skipPixels;
int rowLength;
int format;
int type;
typedef struct CRMessageNewClient {
typedef struct CRMessageGather {
unsigned long offset;
unsigned long len;
typedef union {
} CRMessage;
#ifdef __cplusplus
}
#endif
#endif /* CR_PROTOCOL_H */