pmap_clnt.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /* @(#)pmap_clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.11 88/02/08 SMI */
  2. /*
  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.
  9. *
  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.
  13. *
  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.
  17. *
  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.
  21. *
  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.
  25. *
  26. * Sun Microsystems, Inc.
  27. * 2550 Garcia Avenue
  28. * Mountain View, California 94043
  29. */
  30. /*
  31. * pmap_clnt.h
  32. * Supplies C routines to get to portmap services.
  33. *
  34. * Copyright (C) 1984, Sun Microsystems, Inc.
  35. */
  36. #ifndef _RPC_PMAP_CLNT_H
  37. #define _RPC_PMAP_CLNT_H 1
  38. #include <features.h>
  39. #include <rpc/types.h>
  40. #include <rpc/xdr.h>
  41. #include <rpc/clnt.h>
  42. __BEGIN_DECLS
  43. typedef bool_t (*resultproc_t) __PMT ((caddr_t resp,
  44. struct sockaddr_in *raddr));
  45. /*
  46. * Usage:
  47. * success = pmap_set(program, version, protocol, port);
  48. * success = pmap_unset(program, version);
  49. * port = pmap_getport(address, program, version, protocol);
  50. * head = pmap_getmaps(address);
  51. * clnt_stat = pmap_rmtcall(address, program, version, procedure,
  52. * xdrargs, argsp, xdrres, resp, tout, port_ptr)
  53. * (works for udp only.)
  54. * clnt_stat = clnt_broadcast(program, version, procedure,
  55. * xdrargs, argsp, xdrres, resp, eachresult)
  56. * (like pmap_rmtcall, except the call is broadcasted to all
  57. * locally connected nets. For each valid response received,
  58. * the procedure eachresult is called. Its form is:
  59. * done = eachresult(resp, raddr)
  60. * bool_t done;
  61. * caddr_t resp;
  62. * struct sockaddr_in raddr;
  63. * where resp points to the results of the call and raddr is the
  64. * address if the responder to the broadcast.
  65. */
  66. extern bool_t pmap_set __P ((__const u_long __program, __const u_long __vers,
  67. int __protocol, u_short __port));
  68. extern bool_t pmap_unset __P ((__const u_long __program, __const u_long __vers));
  69. extern struct pmaplist *pmap_getmaps __P ((struct sockaddr_in *__address));
  70. extern enum clnt_stat pmap_rmtcall __P ((struct sockaddr_in *__addr,
  71. __const u_long __prog,
  72. __const u_long __vers,
  73. __const u_long __proc,
  74. xdrproc_t __xdrargs,
  75. caddr_t __argsp, xdrproc_t __xdrres,
  76. caddr_t __resp, struct timeval __tout,
  77. u_long *__port_ptr));
  78. extern enum clnt_stat clnt_broadcast __P ((__const u_long __prog,
  79. __const u_long __vers,
  80. __const u_long __proc,
  81. xdrproc_t __xargs,
  82. caddr_t __argsp,
  83. xdrproc_t __xresults,
  84. caddr_t __resultsp,
  85. resultproc_t __eachresult));
  86. extern u_short pmap_getport __P ((struct sockaddr_in *__address,
  87. __const u_long __program,
  88. __const u_long __version,
  89. u_int __protocol));
  90. __END_DECLS
  91. #endif /* rpc/pmap_clnt.h */