/* @(#)Copyright (c), 1987, 1996 StatSci, Inc.  All rights reserved. */
/* @(#)S_rpchelp.h version 3.1 created 4/18/96 */
/***
   NAME   S_rpchelp
   PURPOSE
     Provide some helper macros & typedefs to allow for EZ-RPC inclusion
     of some of the .h files in here.
   NOTES
     
***/
#ifndef S_rpchelpINCLUDED
#define S_rpchelpINCLUDED 1

/* Pre-requisite includes go here. */
#include <ansi_things.h>
#include <sccs.h>
SCCS_ID_C(S_rpchelpDotH,@(#)S_rpchelp.h 3.1 last edit 4/18/96 StatSci)

#if defined(RPC) && !defined(RPC_FILE)
#define RPC_FILE
#endif

/* NOTE: These types are needed to help the RPC data passing
   mechanisms know that the (char *) being passed is really a
   zero-terminated character string (as opposed to a raw binary
   buffer). */
typedef char string8;
typedef char binary;

/* For inclusion into EZ-RPC .rpc files (really .ppc files which get cpp'd into .rpc files) */
#if defined(RPC_FILE) /*(*/
#define RPCMOD(x) [x]
#define RPCPROTO(num) {} = num
#define RPCFUNC(num,attr) {attr} = num
#define EXTERN
#undef _NO_PROTO
#undef S_NoPrototypes
#define S_UsePrototypes

#else   /*)(*/
#define RPCMOD(x)
#define RPCPROTO(num)
#define RPCFUNC(num,attr)
#define EXTERN extern
#endif /* ) RPC_FILE */
#endif /* S_rpchelpINCLUDED */
