#ifndef _RPC_UTIL_H
#define _RPC_UTIL_H
#include <sys/types.h>
#include <stdlib.h>
#include "rpc_scan.h"
#ifdef __cplusplus
extern "C" {
#endif
#define RPCGEN_MAJOR 1
#define RPCGEN_MINOR 1
#define f_print (void) fprintf
struct list {
definition *val;
struct list *next;
};
typedef struct list list;
struct xdrfunc {
char *name;
int pointerp;
struct xdrfunc *next;
};
typedef struct xdrfunc xdrfunc;
struct commandline {
int cflag;
int hflag;
int lflag;
int mflag;
int nflag;
int sflag;
int tflag;
int Ssflag;
int Scflag;
int makefileflag;
char *infile;
char *outfile;
};
#define PUT 1
#define GET 2
#define MAXLINESIZE 1024
extern char curline[MAXLINESIZE];
extern char *where;
extern int linenum;
extern char *infilename;
extern FILE *fout;
extern FILE *fin;
extern list *defined;
extern bas_type *typ_list_h;
extern bas_type *typ_list_t;
extern xdrfunc *xdrfunc_head, *xdrfunc_tail;
extern int inetdflag;
extern int pmflag;
extern int tblflag;
extern int logflag;
extern int newstyle;
extern int Cflag;
extern int CCflag;
extern int tirpcflag;
extern int inlinelen;
extern int mtflag;
extern int mtauto;
extern int rflag;
extern int indefinitewait;
extern int exitnow;
extern int timerflag;
extern int nonfatalerrors;
extern pid_t childpid;
extern void storeval(list **, definition *);
#define STOREVAL(list, item) \
storeval(list, item)
extern definition *findval(list *, char *, int (*)());
#define FINDVAL(list, item, finder) \
findval(list, item, finder)
extern char *fixtype(char *);
extern char *stringfix(char *);
extern char *locase(char *);
extern void pvname_svc(char *, char *);
extern void pvname(char *, char *);
extern void ptype(char *, char *, int);
extern int isvectordef(char *, relation);
extern int streq(char *, char *);
extern void error(char *);
extern void expected1(tok_kind);
extern void expected2(tok_kind, tok_kind);
extern void expected3(tok_kind, tok_kind, tok_kind);
extern void tabify(FILE *, int);
extern void record_open(char *);
extern bas_type *find_type(char *);
extern void emit(definition *);
extern void print_datadef(definition *);
extern void print_funcdef(definition *);
extern void print_xdr_func_def(char *, int, int);
extern void write_most(char *, int, int);
extern void write_rest(void);
extern void write_inetd_register(char *);
extern void write_netid_register(char *);
extern void write_nettype_register(char *);
extern void write_stubs(void);
extern void write_tables(void);
#ifdef __cplusplus
}
#endif
#endif