/*
Copyright (c) 1993 Xerox Corporation. All rights reserved.
*/
/*
$Id$
$Date$
*
*/
/* Chauser, October 28, 1993 3:39 pm PDT */
#ifndef ←←PCR←DbgNubProtocol←h
# define ←←PCR←DbgNubProtocol←h 1
#include <config/PCR←StdDefs.h>
#include <config/PCR←Arch.h>
/*
* well known port
*/
#define PCR←DbgNubProtocol←LISTENER←PORT 4815
#define PCR←DbgNubProtocol←VERSION 0
#define PCR←DbgNubProtocol←MkVersion(proto,procs) ( ((proto)<<16) | (procs) )
/*
* return codes
*/
#define PCR←DbgNubProtocol←Res←okay PCR←ERes←okay
#define PCR←DbgNubProtocol←Res←noProc PCR←ERes←FromRes(1)
#define PCR←DbgNubProtocol←Res←badArgs PCR←ERes←FromRes(2)
/* the remaining codes require destroying the stream */
#define PCR←DbgNubProtocol←Res←MUST←CLOSE←CONNECTION PCR←ERes←FromRes(128)
#define PCR←DbgNubProtocol←Res←failure PCR←ERes←FromRes(128)
#define PCR←DbgNubProtocol←Res←failure PCR←ERes←FromRes(129)
#define PCR←DbgNubProtocol←Res←protocol PCR←ERes←FromRes(130)
#define PCR←DbgNubProtocol←Res←space PCR←ERes←FromRes(131)
/*
* types (of tagged values passed over the wire)
*/
typedef enum {
PCR←DbgNubProtocol←Tag←null = 0,
PCR←DbgNubProtocol←Tag←procID = 1,
PCR←DbgNubProtocol←Tag←retCode = 2,
PCR←DbgNubProtocol←Tag←card32 = 3,
PCR←DbgNubProtocol←Tag←int32 = 4,
PCR←DbgNubProtocol←Tag←string = 5,
PCR←DbgNubProtocol←Tag←block8 = 6,
PCR←DbgNubProtocol←Tag←block16 = 7,
PCR←DbgNubProtocol←Tag←block32 = 8,
PCR←DbgNubProtocol←Tag←last = 0x7fff
} PCR←DbgNubProtocol←Tag;
/*
* representation on the wire
*
* call is args followed by procID
* reply is results followed by retCode
*/
#if defined(PCR←Arch←STD←SIZES)
typedef short net←16;
typedef long net←32;
#else
# error NYI
#endif
typedef struct {
net←16 dnpw←tag;
net←16 dnpw←len;
} PCR←DbgNubProtocol←Wrapper;
#endif /* ←←PCR←DbgNubProtocol←h */