pmap_clnt.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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) (caddr_t resp, struct sockaddr_in *raddr);
  44. /*
  45. * Usage:
  46. * success = pmap_set(program, version, protocol, port);
  47. * success = pmap_unset(program, version);
  48. * port = pmap_getport(address, program, version, protocol);
  49. * head = pmap_getmaps(address);
  50. * clnt_stat = pmap_rmtcall(address, program, version, procedure,
  51. * xdrargs, argsp, xdrres, resp, tout, port_ptr)
  52. * (works for udp only.)
  53. * clnt_stat = clnt_broadcast(program, version, procedure,
  54. * xdrargs, argsp, xdrres, resp, eachresult)
  55. * (like pmap_rmtcall, except the call is broadcasted to all
  56. * locally connected nets. For each valid response received,
  57. * the procedure eachresult is called. Its form is:
  58. * done = eachresult(resp, raddr)
  59. * bool_t done;
  60. * caddr_t resp;
  61. * struct sockaddr_in raddr;
  62. * where resp points to the results of the call and raddr is the
  63. * address if the responder to the broadcast.
  64. */
  65. extern bool_t pmap_set (const u_long __program, const u_long __vers,
  66. int __protocol, u_short __port) __THROW;
  67. libc_hidden_proto(pmap_set)
  68. extern bool_t pmap_unset (const u_long __program, const u_long __vers)
  69. __THROW;
  70. libc_hidden_proto(pmap_unset)
  71. extern struct pmaplist *pmap_getmaps (struct sockaddr_in *__address) __THROW;
  72. extern enum clnt_stat pmap_rmtcall (struct sockaddr_in *__addr,
  73. const u_long __prog,
  74. const u_long __vers,
  75. const u_long __proc,
  76. xdrproc_t __xdrargs,
  77. caddr_t __argsp, xdrproc_t __xdrres,
  78. caddr_t __resp, struct timeval __tout,
  79. u_long *__port_ptr) __THROW;
  80. extern enum clnt_stat clnt_broadcast (const u_long __prog,
  81. const u_long __vers,
  82. const u_long __proc, xdrproc_t __xargs,
  83. caddr_t __argsp, xdrproc_t __xresults,
  84. caddr_t __resultsp,
  85. resultproc_t __eachresult) __THROW;
  86. extern u_short pmap_getport (struct sockaddr_in *__address,
  87. const u_long __program,
  88. const u_long __version, u_int __protocol)
  89. __THROW;
  90. libc_hidden_proto(pmap_getport)
  91. __END_DECLS
  92. #endif /* rpc/pmap_clnt.h */