/* begincopyright
  Copyright (c) 1988 Xerox Corporation. All rights reserved.
  Use and copying of this software and preparation of derivative works based
  upon this software are permitted. Any distribution of this software or
  derivative works must comply with all applicable United States export
  control laws. This software is made available AS IS, and Xerox Corporation
  makes no warranty about the software, its performance or its conformity to
  any specification. Any person obtaining a copy of this software is requested
  to send their name and post office or electronic mail address to:
    PCR Coordinator
    Xerox PARC
    3333 Coyote Hill Rd.
    Palo Alto, CA 94304
  endcopyright */

/*
 * CirioNubProcs.h
 *
 * Demers, February 25, 1992 1:45:55 pm PST
 *
 * CirioNub remote procedure numbers and descriptions.
 */

#ifndef ←CEDAR←CIRIO←NUB←PROCS←
#define ←CEDAR←CIRIO←NUB←PROCS←

#include <cirio/CirioNubProtocol.h>

#define CEDAR←CIRIO←NUB←PROCS←LOW←VERSION	0
#define CEDAR←CIRIO←NUB←PROCS←VERSION		0

#define MkCedarCirioNubProcID(n)	(64+(n))

/*
 * Cedar Type Strings and Type Codes
 */

typedef struct CirioNubCedarTypeStringRep {
    char *typeString;
} * CirioNubCedarTypeString;

typedef struct CirioNubCedarTypeCodeRep {
    unsigned long typeCode;
} * CirioNubCedarTypeCode;


/*
 * Cedar CirioNubProcs
 */


/*
    unsigned Null ( unsigned desiredVersion );

    Return the "best" Cedar Cirio nub version number exported by this nub.
*/

extern CirioNubRetCode
CedarCirioNubServeNull(/* int argc, unsigned *args */);

#define CedarCirioNubProcID←Null		MkCedarCirioNubProcID(0)


/*
    struct CirioNubCedarTypeStringRep
    GetTypeString( struct CirioNubCedarTypeCodeRep );

    Convert a type string to a type code on the debuggee.
*/

extern CirioNubRetCode
CedarCirioNubServeGetTypestring( );

#define CedarCirioNubProcID←GetTypestring	MkCedarCirioNubProcID(1)

/*
    struct { bool found, struct CirioNubCedarTypeCodeRep type }
    GetTypecode( unsigned long typeStringLen,
            struct CirioNubCedarTypeStringRep );

    Convert a type code on the debuggee to a type string.
*/

extern CirioNubRetCode
CedarCirioNubServeGetTypecode( );

#define CedarCirioNubProcID←GetTypecode		MkCedarCirioNubProcID(2)

/*
    struct CirioNubCedarTypeCodeRep
    GetConcreteTypecode( struct CirioNubCedarTypeCodeRep );

    Convert opaque to concrete type code on debuggee.
*/

extern CirioNubRetCode
CedarCirioNubServeGetConcreteTypecode( );

#define CedarCirioNubProcID←GetConcreteTypecode	MkCedarCirioNubProcID(3)




#endif /* ←CEDAR←CIRIO←NUB←PROCS← */