xref: /nrf52832-nimble/rt-thread/components/dfs/filesystems/nfs/rpc/pmap.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  */
9*10465441SEvalZero #ifndef __RPC_PMAP_PROT_H__
10*10465441SEvalZero #define __RPC_PMAP_PROT_H__
11*10465441SEvalZero 
12*10465441SEvalZero #include <rpc/xdr.h>
13*10465441SEvalZero 
14*10465441SEvalZero /* The following procedures are supported by the protocol:
15*10465441SEvalZero  *
16*10465441SEvalZero  * PMAPPROC_NULL() returns ()
17*10465441SEvalZero  * 	takes nothing, returns nothing
18*10465441SEvalZero  *
19*10465441SEvalZero  * PMAPPROC_SET(struct pmap) returns (bool_t)
20*10465441SEvalZero  * 	TRUE is success, FALSE is failure.  Registers the tuple
21*10465441SEvalZero  *	[prog, vers, prot, port].
22*10465441SEvalZero  *
23*10465441SEvalZero  * PMAPPROC_UNSET(struct pmap) returns (bool_t)
24*10465441SEvalZero  *	TRUE is success, FALSE is failure.  Un-registers pair
25*10465441SEvalZero  *	[prog, vers].  prot and port are ignored.
26*10465441SEvalZero  *
27*10465441SEvalZero  * PMAPPROC_GETPORT(struct pmap) returns (long unsigned).
28*10465441SEvalZero  *	0 is failure.  Otherwise returns the port number where the pair
29*10465441SEvalZero  *	[prog, vers] is registered.  It may lie!
30*10465441SEvalZero  *
31*10465441SEvalZero  * PMAPPROC_DUMP() RETURNS (struct pmaplist *)
32*10465441SEvalZero  *
33*10465441SEvalZero  * PMAPPROC_CALLIT(unsigned, unsigned, unsigned, string<>)
34*10465441SEvalZero  * 	RETURNS (port, string<>);
35*10465441SEvalZero  * usage: encapsulatedresults = PMAPPROC_CALLIT(prog, vers, proc, encapsulatedargs);
36*10465441SEvalZero  * 	Calls the procedure on the local machine.  If it is not registered,
37*10465441SEvalZero  *	this procedure is quite; ie it does not return error information!!!
38*10465441SEvalZero  *	This procedure only is supported on rpc/udp and calls via
39*10465441SEvalZero  *	rpc/udp.  This routine only passes null authentication parameters.
40*10465441SEvalZero  *	This file has no interface to xdr routines for PMAPPROC_CALLIT.
41*10465441SEvalZero  *
42*10465441SEvalZero  * The service supports remote procedure calls on udp/ip or tcp/ip socket 111.
43*10465441SEvalZero  */
44*10465441SEvalZero 
45*10465441SEvalZero #define PMAPPORT		((unsigned short)111)
46*10465441SEvalZero #define PMAPPROG		((unsigned long)100000)
47*10465441SEvalZero #define PMAPVERS		((unsigned long)2)
48*10465441SEvalZero #define PMAPVERS_PROTO		((unsigned long)2)
49*10465441SEvalZero #define PMAPVERS_ORIG		((unsigned long)1)
50*10465441SEvalZero #define PMAPPROC_NULL		((unsigned long)0)
51*10465441SEvalZero #define PMAPPROC_SET		((unsigned long)1)
52*10465441SEvalZero #define PMAPPROC_UNSET		((unsigned long)2)
53*10465441SEvalZero #define PMAPPROC_GETPORT	((unsigned long)3)
54*10465441SEvalZero #define PMAPPROC_DUMP		((unsigned long)4)
55*10465441SEvalZero #define PMAPPROC_CALLIT		((unsigned long)5)
56*10465441SEvalZero 
57*10465441SEvalZero struct pmap {
58*10465441SEvalZero 	long unsigned pm_prog;
59*10465441SEvalZero 	long unsigned pm_vers;
60*10465441SEvalZero 	long unsigned pm_prot;
61*10465441SEvalZero 	long unsigned pm_port;
62*10465441SEvalZero };
63*10465441SEvalZero 
64*10465441SEvalZero extern bool_t xdr_pmap (XDR *__xdrs, struct pmap *__regs);
65*10465441SEvalZero 
66*10465441SEvalZero #endif
67