1 /* @(#)rpc_parse.h 1.3 87/03/09 (C) 1987 SMI */
3 * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
4 * unrestricted use provided that this legend is included on all tape
5 * media and as a part of the software program in whole or part. Users
6 * may copy or modify Sun RPC without charge, but are not authorized
7 * to license or distribute it to anyone else except as part of a product or
8 * program developed by the user.
10 * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
11 * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
12 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
14 * Sun RPC is provided with no support and without any obligation on the
15 * part of Sun Microsystems, Inc. to assist in its use, correction,
16 * modification or enhancement.
18 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
19 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
20 * OR ANY PART THEREOF.
22 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
23 * or profits or other special, indirect and consequential damages, even if
24 * Sun has been advised of the possibility of such damages.
26 * Sun Microsystems, Inc.
28 * Mountain View, California 94043
32 * rpc_parse.h, Definitions for the RPCL parser
33 * Copyright (C) 1987, Sun Microsystems, Inc.
56 typedef enum defkind defkind;
58 typedef char *const_def;
61 REL_VECTOR, /* fixed length array */
62 REL_ARRAY, /* variable length array */
63 REL_POINTER, /* pointer */
64 REL_ALIAS /* simple */
66 typedef enum relation relation;
74 typedef struct typedef_def typedef_def;
80 struct enumval_list *next;
82 typedef struct enumval_list enumval_list;
87 typedef struct enum_def enum_def;
97 typedef struct declaration declaration;
102 struct decl_list *next;
104 typedef struct decl_list decl_list;
109 typedef struct struct_def struct_def;
114 declaration case_decl;
115 struct case_list *next;
117 typedef struct case_list case_list;
120 declaration enum_decl;
122 declaration *default_decl;
124 typedef struct union_def union_def;
135 struct proc_list *next;
137 typedef struct proc_list proc_list;
140 struct version_list {
144 struct version_list *next;
146 typedef struct version_list version_list;
150 version_list *versions;
152 typedef struct program_def program_def;
159 #define INDIRECT_PARAM 1
160 #define PROCESSED_PARAM 2
161 #define ARRAYNAME_PARAM 4
162 #define ARRAYSIZE_PARAM 8
163 #define FREETHIS_PARAM 16
164 #define OUT_STRING 32
167 typedef struct param_list param_list;
170 defkind component_kind;
173 struct proc1_list *next;
175 typedef struct proc1_list proc1_list;
177 struct procedure_def {
180 char *proc_opcodename;
182 char *proc_serverstub;
194 typedef struct procedure_def procedure_def;
200 typedef struct special_def special_def;
204 struct spec_list *next;
206 typedef struct spec_list spec_list;
211 typedef struct spec_def spec_def;
228 typedef struct definition definition;