home *** CD-ROM | disk | FTP | other *** search
/ Il CD di internet / CD.iso / SOURCE / N / TCPIP / NETKIT-B.05 / NETKIT-B / NetKit-B-0.05 / rpcgen / rpc_util.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-12-17  |  2.6 KB  |  114 lines

  1. /*
  2.  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
  3.  * unrestricted use provided that this legend is included on all tape
  4.  * media and as a part of the software program in whole or part.  Users
  5.  * may copy or modify Sun RPC without charge, but are not authorized
  6.  * to license or distribute it to anyone else except as part of a product or
  7.  * program developed by the user.
  8.  * 
  9.  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
  10.  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  11.  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
  12.  * 
  13.  * Sun RPC is provided with no support and without any obligation on the
  14.  * part of Sun Microsystems, Inc. to assist in its use, correction,
  15.  * modification or enhancement.
  16.  * 
  17.  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
  18.  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
  19.  * OR ANY PART THEREOF.
  20.  * 
  21.  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
  22.  * or profits or other special, indirect and consequential damages, even if
  23.  * Sun has been advised of the possibility of such damages.
  24.  * 
  25.  * Sun Microsystems, Inc.
  26.  * 2550 Garcia Avenue
  27.  * Mountain View, California  94043
  28.  *
  29.  *    from: @(#)rpc_util.h 1.6 87/06/24 (C) 1987 SMI
  30.  *    from: @(#)rpc_util.h    2.1 88/08/01 4.0 RPCSRC
  31.  *    $Id: rpc_util.h,v 1.2 1993/08/01 18:09:24 mycroft Exp $
  32.  */
  33.  
  34. /*
  35.  * rpc_util.h, Useful definitions for the RPC protocol compiler 
  36.  * Copyright (C) 1987, Sun Microsystems, Inc. 
  37.  */
  38. extern char *malloc();
  39.  
  40. #define alloc(size)        malloc((unsigned)(size))
  41. #define ALLOC(object)   (object *) malloc(sizeof(object))
  42.  
  43. #define s_print    (void) sprintf
  44. #define f_print (void) fprintf
  45.  
  46. struct list {
  47.     char *val;
  48.     struct list *next;
  49. };
  50. typedef struct list list;
  51.  
  52. /*
  53.  * Global variables 
  54.  */
  55. #define MAXLINESIZE 1024
  56. extern char curline[MAXLINESIZE];
  57. extern char *where;
  58. extern int linenum;
  59.  
  60. extern char *infilename;
  61. extern FILE *fout;
  62. extern FILE *fin;
  63.  
  64. extern list *defined;
  65.  
  66. /*
  67.  * rpc_util routines 
  68.  */
  69. void storeval();
  70.  
  71. #define STOREVAL(list,item)    \
  72.     storeval(list,(char *)item)
  73.  
  74. char *findval();
  75.  
  76. #define FINDVAL(list,item,finder) \
  77.     findval(list, (char *) item, finder)
  78.  
  79. char *fixtype();
  80. char *stringfix();
  81. void pvname();
  82. void ptype();
  83. int isvectordef();
  84. int streq();
  85. void error();
  86. void expected1();
  87. void expected2();
  88. void expected3();
  89. void tabify();
  90. void record_open();
  91.  
  92. /*
  93.  * rpc_cout routines 
  94.  */
  95. void cprint();
  96. void emit();
  97.  
  98. /*
  99.  * rpc_hout routines 
  100.  */
  101. void print_datadef();
  102.  
  103. /*
  104.  * rpc_svcout routines 
  105.  */
  106. void write_most();
  107. void write_register();
  108. void write_rest();
  109.  
  110. /*
  111.  * rpc_clntout routines
  112.  */
  113. void write_stubs();
  114.