xref: /freebsd/usr.bin/rpcgen/rpc_util.h (revision 4e115012be61e89caf65497654493e52630b15e4)
14e115012SGarrett Wollman /*
24e115012SGarrett Wollman  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
34e115012SGarrett Wollman  * unrestricted use provided that this legend is included on all tape
44e115012SGarrett Wollman  * media and as a part of the software program in whole or part.  Users
54e115012SGarrett Wollman  * may copy or modify Sun RPC without charge, but are not authorized
64e115012SGarrett Wollman  * to license or distribute it to anyone else except as part of a product or
74e115012SGarrett Wollman  * program developed by the user.
84e115012SGarrett Wollman  *
94e115012SGarrett Wollman  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
104e115012SGarrett Wollman  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
114e115012SGarrett Wollman  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
124e115012SGarrett Wollman  *
134e115012SGarrett Wollman  * Sun RPC is provided with no support and without any obligation on the
144e115012SGarrett Wollman  * part of Sun Microsystems, Inc. to assist in its use, correction,
154e115012SGarrett Wollman  * modification or enhancement.
164e115012SGarrett Wollman  *
174e115012SGarrett Wollman  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
184e115012SGarrett Wollman  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
194e115012SGarrett Wollman  * OR ANY PART THEREOF.
204e115012SGarrett Wollman  *
214e115012SGarrett Wollman  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
224e115012SGarrett Wollman  * or profits or other special, indirect and consequential damages, even if
234e115012SGarrett Wollman  * Sun has been advised of the possibility of such damages.
244e115012SGarrett Wollman  *
254e115012SGarrett Wollman  * Sun Microsystems, Inc.
264e115012SGarrett Wollman  * 2550 Garcia Avenue
274e115012SGarrett Wollman  * Mountain View, California  94043
284e115012SGarrett Wollman  *
294e115012SGarrett Wollman  *	from: @(#)rpc_util.h 1.6 87/06/24 (C) 1987 SMI
304e115012SGarrett Wollman  *	from: @(#)rpc_util.h	2.1 88/08/01 4.0 RPCSRC
314e115012SGarrett Wollman  *	$Id: rpc_util.h,v 1.1 1993/09/13 23:20:21 jtc Exp $
324e115012SGarrett Wollman  */
334e115012SGarrett Wollman 
344e115012SGarrett Wollman /*
354e115012SGarrett Wollman  * rpc_util.h, Useful definitions for the RPC protocol compiler
364e115012SGarrett Wollman  * Copyright (C) 1987, Sun Microsystems, Inc.
374e115012SGarrett Wollman  */
384e115012SGarrett Wollman extern char *malloc();
394e115012SGarrett Wollman 
404e115012SGarrett Wollman #define alloc(size)		malloc((unsigned)(size))
414e115012SGarrett Wollman #define ALLOC(object)   (object *) malloc(sizeof(object))
424e115012SGarrett Wollman 
434e115012SGarrett Wollman #define s_print	(void) sprintf
444e115012SGarrett Wollman #define f_print (void) fprintf
454e115012SGarrett Wollman 
464e115012SGarrett Wollman struct list {
474e115012SGarrett Wollman 	char *val;
484e115012SGarrett Wollman 	struct list *next;
494e115012SGarrett Wollman };
504e115012SGarrett Wollman typedef struct list list;
514e115012SGarrett Wollman 
524e115012SGarrett Wollman /*
534e115012SGarrett Wollman  * Global variables
544e115012SGarrett Wollman  */
554e115012SGarrett Wollman #define MAXLINESIZE 1024
564e115012SGarrett Wollman extern char curline[MAXLINESIZE];
574e115012SGarrett Wollman extern char *where;
584e115012SGarrett Wollman extern int linenum;
594e115012SGarrett Wollman 
604e115012SGarrett Wollman extern char *infilename;
614e115012SGarrett Wollman extern FILE *fout;
624e115012SGarrett Wollman extern FILE *fin;
634e115012SGarrett Wollman 
644e115012SGarrett Wollman extern list *defined;
654e115012SGarrett Wollman 
664e115012SGarrett Wollman /*
674e115012SGarrett Wollman  * rpc_util routines
684e115012SGarrett Wollman  */
694e115012SGarrett Wollman void storeval();
704e115012SGarrett Wollman 
714e115012SGarrett Wollman #define STOREVAL(list,item)	\
724e115012SGarrett Wollman 	storeval(list,(char *)item)
734e115012SGarrett Wollman 
744e115012SGarrett Wollman char *findval();
754e115012SGarrett Wollman 
764e115012SGarrett Wollman #define FINDVAL(list,item,finder) \
774e115012SGarrett Wollman 	findval(list, (char *) item, finder)
784e115012SGarrett Wollman 
794e115012SGarrett Wollman char *fixtype();
804e115012SGarrett Wollman char *stringfix();
814e115012SGarrett Wollman void pvname();
824e115012SGarrett Wollman void ptype();
834e115012SGarrett Wollman int isvectordef();
844e115012SGarrett Wollman int streq();
854e115012SGarrett Wollman void error();
864e115012SGarrett Wollman void expected1();
874e115012SGarrett Wollman void expected2();
884e115012SGarrett Wollman void expected3();
894e115012SGarrett Wollman void tabify();
904e115012SGarrett Wollman void record_open();
914e115012SGarrett Wollman 
924e115012SGarrett Wollman /*
934e115012SGarrett Wollman  * rpc_cout routines
944e115012SGarrett Wollman  */
954e115012SGarrett Wollman void cprint();
964e115012SGarrett Wollman void emit();
974e115012SGarrett Wollman 
984e115012SGarrett Wollman /*
994e115012SGarrett Wollman  * rpc_hout routines
1004e115012SGarrett Wollman  */
1014e115012SGarrett Wollman void print_datadef();
1024e115012SGarrett Wollman 
1034e115012SGarrett Wollman /*
1044e115012SGarrett Wollman  * rpc_svcout routines
1054e115012SGarrett Wollman  */
1064e115012SGarrett Wollman void write_most();
1074e115012SGarrett Wollman void write_register();
1084e115012SGarrett Wollman void write_rest();
1094e115012SGarrett Wollman 
1104e115012SGarrett Wollman /*
1114e115012SGarrett Wollman  * rpc_clntout routines
1124e115012SGarrett Wollman  */
1134e115012SGarrett Wollman void write_stubs();
114