cr_protocol.h revision 13f76705071cb6db2cd84c495ccb53e0daebd308
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Copyright (c) 2001, Stanford University
af062818b47340eef15700d2f0211576ba3506eevboxsync * All rights reserved.
af062818b47340eef15700d2f0211576ba3506eevboxsync * See the file LICENSE.txt for information on redistributing this software.
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync/*For now guest is allowed to connect host opengl service if protocol version matches exactly*/
af062818b47340eef15700d2f0211576ba3506eevboxsync/*Note: that after any change to this file, or glapi_parser\apispec.txt version should be changed*/
4b9d6701570cb98fd36e209314239d104ec584d3vboxsynctypedef enum {
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync /* first message types is 'wGL\001', so we can immediately
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync recognize bad message types */
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef union {
af062818b47340eef15700d2f0211576ba3506eevboxsync /* pointers are usually 4 bytes, but on 64-bit machines (Alpha,
af062818b47340eef15700d2f0211576ba3506eevboxsync * SGI-n64, etc.) they are 8 bytes. Pass network pointers around
af062818b47340eef15700d2f0211576ba3506eevboxsync * as an opaque array of bytes, since the interpretation & size of
af062818b47340eef15700d2f0211576ba3506eevboxsync * the pointer only matter to the machine which emitted the
af062818b47340eef15700d2f0211576ba3506eevboxsync * pointer (and will eventually receive the pointer back again) */
af062818b47340eef15700d2f0211576ba3506eevboxsync /* hack to make this packet big */
af062818b47340eef15700d2f0211576ba3506eevboxsync /* unsigned int junk[512]; */
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct {
af062818b47340eef15700d2f0211576ba3506eevboxsync unsigned int conn_id;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageOpcodes {
af062818b47340eef15700d2f0211576ba3506eevboxsync unsigned int numOpcodes;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageRedirPtr {
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageWriteback {
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageReadback {
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageMulti {
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageFlowControl {
af062818b47340eef15700d2f0211576ba3506eevboxsync unsigned int credits;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageReadPixels {
af062818b47340eef15700d2f0211576ba3506eevboxsync unsigned int stride;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageNewClient {
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef struct CRMessageGather {
af062818b47340eef15700d2f0211576ba3506eevboxsync unsigned long offset;
af062818b47340eef15700d2f0211576ba3506eevboxsync unsigned long len;
af062818b47340eef15700d2f0211576ba3506eevboxsynctypedef union {
af062818b47340eef15700d2f0211576ba3506eevboxsyncDECLEXPORT(void) crNetworkPointerWrite( CRNetworkPointer *dst, void *src );
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* CR_PROTOCOL_H */