1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>SUN RPC subsystem</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Networking and Network Devices APIs"><link rel="up" href="netcore.html" title="Chapter&#160;1.&#160;Linux Networking"><link rel="prev" href="API-gen-estimator-active.html" title="gen_estimator_active"><link rel="next" href="API-xdr-encode-opaque-fixed.html" title="xdr_encode_opaque_fixed"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">SUN RPC subsystem</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-gen-estimator-active.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;1.&#160;Linux Networking</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-xdr-encode-opaque-fixed.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp1096857212"></a>SUN RPC subsystem</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-xdr-encode-opaque-fixed.html"><span class="phrase">xdr_encode_opaque_fixed</span></a></span><span class="refpurpose"> &#8212; 
2  Encode fixed length opaque data
3 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-encode-opaque.html"><span class="phrase">xdr_encode_opaque</span></a></span><span class="refpurpose"> &#8212; 
4     Encode variable length opaque data
5 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-terminate-string.html"><span class="phrase">xdr_terminate_string</span></a></span><span class="refpurpose"> &#8212; 
6     '\0'-terminate a string residing in an xdr_buf
7 </span></dt><dt><span class="refentrytitle"><a href="API--copy-from-pages.html"><span class="phrase">_copy_from_pages</span></a></span><span class="refpurpose"> &#8212; 
8   </span></dt><dt><span class="refentrytitle"><a href="API-xdr-stream-pos.html"><span class="phrase">xdr_stream_pos</span></a></span><span class="refpurpose"> &#8212; 
9     Return the current offset from the start of the xdr_stream
10 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-init-encode.html"><span class="phrase">xdr_init_encode</span></a></span><span class="refpurpose"> &#8212; 
11     Initialize a struct xdr_stream for sending data.
12 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-commit-encode.html"><span class="phrase">xdr_commit_encode</span></a></span><span class="refpurpose"> &#8212; 
13     Ensure all data is written to buffer
14 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-reserve-space.html"><span class="phrase">xdr_reserve_space</span></a></span><span class="refpurpose"> &#8212; 
15     Reserve buffer space for sending
16 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-truncate-encode.html"><span class="phrase">xdr_truncate_encode</span></a></span><span class="refpurpose"> &#8212; 
17     truncate an encode buffer
18 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-restrict-buflen.html"><span class="phrase">xdr_restrict_buflen</span></a></span><span class="refpurpose"> &#8212; 
19     decrease available buffer space
20 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-write-pages.html"><span class="phrase">xdr_write_pages</span></a></span><span class="refpurpose"> &#8212; 
21     Insert a list of pages into an XDR buffer for sending
22 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-init-decode.html"><span class="phrase">xdr_init_decode</span></a></span><span class="refpurpose"> &#8212; 
23     Initialize an xdr_stream for decoding data.
24 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-init-decode-pages.html"><span class="phrase">xdr_init_decode_pages</span></a></span><span class="refpurpose"> &#8212; 
25     Initialize an xdr_stream for decoding data.
26 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-set-scratch-buffer.html"><span class="phrase">xdr_set_scratch_buffer</span></a></span><span class="refpurpose"> &#8212; 
27     Attach a scratch buffer for decoding data.
28 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-inline-decode.html"><span class="phrase">xdr_inline_decode</span></a></span><span class="refpurpose"> &#8212; 
29     Retrieve XDR data to decode
30 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-read-pages.html"><span class="phrase">xdr_read_pages</span></a></span><span class="refpurpose"> &#8212; 
31     Ensure page-based XDR data to decode is aligned at current pointer position
32 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-enter-page.html"><span class="phrase">xdr_enter_page</span></a></span><span class="refpurpose"> &#8212; 
33     decode data from the XDR page
34 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-buf-subsegment.html"><span class="phrase">xdr_buf_subsegment</span></a></span><span class="refpurpose"> &#8212; 
35     set subbuf to a portion of buf
36 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-buf-trim.html"><span class="phrase">xdr_buf_trim</span></a></span><span class="refpurpose"> &#8212; 
37     lop at most <span class="quote">&#8220;<span class="quote">len</span>&#8221;</span> bytes off the end of <span class="quote">&#8220;<span class="quote">buf</span>&#8221;</span>
38 </span></dt><dt><span class="refentrytitle"><a href="API-svc-print-addr.html"><span class="phrase">svc_print_addr</span></a></span><span class="refpurpose"> &#8212; 
39  Format rq_addr field for printing
40 </span></dt><dt><span class="refentrytitle"><a href="API-svc-reserve.html"><span class="phrase">svc_reserve</span></a></span><span class="refpurpose"> &#8212; 
41     change the space reserved for the reply to a request.
42 </span></dt><dt><span class="refentrytitle"><a href="API-svc-find-xprt.html"><span class="phrase">svc_find_xprt</span></a></span><span class="refpurpose"> &#8212; 
43     find an RPC transport instance
44 </span></dt><dt><span class="refentrytitle"><a href="API-svc-xprt-names.html"><span class="phrase">svc_xprt_names</span></a></span><span class="refpurpose"> &#8212; 
45     format a buffer with a list of transport names
46 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-register-transport.html"><span class="phrase">xprt_register_transport</span></a></span><span class="refpurpose"> &#8212; 
47  register a transport implementation
48 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-unregister-transport.html"><span class="phrase">xprt_unregister_transport</span></a></span><span class="refpurpose"> &#8212; 
49     unregister a transport implementation
50 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-load-transport.html"><span class="phrase">xprt_load_transport</span></a></span><span class="refpurpose"> &#8212; 
51     load a transport implementation
52 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-reserve-xprt.html"><span class="phrase">xprt_reserve_xprt</span></a></span><span class="refpurpose"> &#8212; 
53     serialize write access to transports
54 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-release-xprt.html"><span class="phrase">xprt_release_xprt</span></a></span><span class="refpurpose"> &#8212; 
55     allow other requests to use a transport
56 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-release-xprt-cong.html"><span class="phrase">xprt_release_xprt_cong</span></a></span><span class="refpurpose"> &#8212; 
57     allow other requests to use a transport
58 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-release-rqst-cong.html"><span class="phrase">xprt_release_rqst_cong</span></a></span><span class="refpurpose"> &#8212; 
59     housekeeping when request is complete
60 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-adjust-cwnd.html"><span class="phrase">xprt_adjust_cwnd</span></a></span><span class="refpurpose"> &#8212; 
61     adjust transport congestion window
62 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-wake-pending-tasks.html"><span class="phrase">xprt_wake_pending_tasks</span></a></span><span class="refpurpose"> &#8212; 
63     wake all tasks on a transport's pending queue
64 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-wait-for-buffer-space.html"><span class="phrase">xprt_wait_for_buffer_space</span></a></span><span class="refpurpose"> &#8212; 
65     wait for transport output buffer to clear
66 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-write-space.html"><span class="phrase">xprt_write_space</span></a></span><span class="refpurpose"> &#8212; 
67     wake the task waiting for transport output buffer space
68 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-set-retrans-timeout-def.html"><span class="phrase">xprt_set_retrans_timeout_def</span></a></span><span class="refpurpose"> &#8212; 
69     set a request's retransmit timeout
70 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-set-retrans-timeout-rtt.html"><span class="phrase">xprt_set_retrans_timeout_rtt</span></a></span><span class="refpurpose"> &#8212; 
71     set a request's retransmit timeout
72 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-disconnect-done.html"><span class="phrase">xprt_disconnect_done</span></a></span><span class="refpurpose"> &#8212; 
73     mark a transport as disconnected
74 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-lookup-rqst.html"><span class="phrase">xprt_lookup_rqst</span></a></span><span class="refpurpose"> &#8212; 
75     find an RPC request corresponding to an XID
76 </span></dt><dt><span class="refentrytitle"><a href="API-xprt-complete-rqst.html"><span class="phrase">xprt_complete_rqst</span></a></span><span class="refpurpose"> &#8212; 
77     called when reply processing is complete
78 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-wake-up.html"><span class="phrase">rpc_wake_up</span></a></span><span class="refpurpose"> &#8212; 
79  wake up all rpc_tasks
80 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-wake-up-status.html"><span class="phrase">rpc_wake_up_status</span></a></span><span class="refpurpose"> &#8212; 
81     wake up all rpc_tasks and set their status value.
82 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-malloc.html"><span class="phrase">rpc_malloc</span></a></span><span class="refpurpose"> &#8212; 
83     allocate an RPC buffer
84 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-free.html"><span class="phrase">rpc_free</span></a></span><span class="refpurpose"> &#8212; 
85     free buffer allocated via rpc_malloc
86 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-skb-read-bits.html"><span class="phrase">xdr_skb_read_bits</span></a></span><span class="refpurpose"> &#8212; 
87  copy some data bits from skb to internal buffer
88 </span></dt><dt><span class="refentrytitle"><a href="API-xdr-partial-copy-from-skb.html"><span class="phrase">xdr_partial_copy_from_skb</span></a></span><span class="refpurpose"> &#8212; 
89     copy data out of an skb
90 </span></dt><dt><span class="refentrytitle"><a href="API-csum-partial-copy-to-xdr.html"><span class="phrase">csum_partial_copy_to_xdr</span></a></span><span class="refpurpose"> &#8212; 
91     checksum and copy data
92 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-alloc-iostats.html"><span class="phrase">rpc_alloc_iostats</span></a></span><span class="refpurpose"> &#8212; 
93  allocate an rpc_iostats structure
94 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-free-iostats.html"><span class="phrase">rpc_free_iostats</span></a></span><span class="refpurpose"> &#8212; 
95     release an rpc_iostats structure
96 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-count-iostats-metrics.html"><span class="phrase">rpc_count_iostats_metrics</span></a></span><span class="refpurpose"> &#8212; 
97     tally up per-task stats
98 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-count-iostats.html"><span class="phrase">rpc_count_iostats</span></a></span><span class="refpurpose"> &#8212; 
99     tally up per-task stats
100 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-queue-upcall.html"><span class="phrase">rpc_queue_upcall</span></a></span><span class="refpurpose"> &#8212; 
101  queue an upcall message to userspace
102 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-mkpipe-dentry.html"><span class="phrase">rpc_mkpipe_dentry</span></a></span><span class="refpurpose"> &#8212; 
103     make an rpc_pipefs file for kernel&lt;-&gt;userspace communication
104 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-unlink.html"><span class="phrase">rpc_unlink</span></a></span><span class="refpurpose"> &#8212; 
105     remove a pipe
106 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-init-pipe-dir-head.html"><span class="phrase">rpc_init_pipe_dir_head</span></a></span><span class="refpurpose"> &#8212; 
107     initialise a struct rpc_pipe_dir_head
108 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-init-pipe-dir-object.html"><span class="phrase">rpc_init_pipe_dir_object</span></a></span><span class="refpurpose"> &#8212; 
109     initialise a struct rpc_pipe_dir_object
110 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-add-pipe-dir-object.html"><span class="phrase">rpc_add_pipe_dir_object</span></a></span><span class="refpurpose"> &#8212; 
111     associate a rpc_pipe_dir_object to a directory
112 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-remove-pipe-dir-object.html"><span class="phrase">rpc_remove_pipe_dir_object</span></a></span><span class="refpurpose"> &#8212; 
113     remove a rpc_pipe_dir_object from a directory
114 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-find-or-alloc-pipe-dir-object.html"><span class="phrase">rpc_find_or_alloc_pipe_dir_object</span></a></span><span class="refpurpose"> &#8212; 
115   </span></dt><dt><span class="refentrytitle"><a href="API-rpcb-getport-async.html"><span class="phrase">rpcb_getport_async</span></a></span><span class="refpurpose"> &#8212; 
116  obtain the port for a given RPC service on a given host
117 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-create.html"><span class="phrase">rpc_create</span></a></span><span class="refpurpose"> &#8212; 
118  create an RPC client and transport with one call
119 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-clone-client.html"><span class="phrase">rpc_clone_client</span></a></span><span class="refpurpose"> &#8212; 
120     Clone an RPC client structure
121 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-clone-client-set-auth.html"><span class="phrase">rpc_clone_client_set_auth</span></a></span><span class="refpurpose"> &#8212; 
122     Clone an RPC client structure and set its auth
123 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-switch-client-transport.html"><span class="phrase">rpc_switch_client_transport</span></a></span><span class="refpurpose"> &#8212; 
124   </span></dt><dt><span class="refentrytitle"><a href="API-rpc-bind-new-program.html"><span class="phrase">rpc_bind_new_program</span></a></span><span class="refpurpose"> &#8212; 
125     bind a new RPC program to an existing client
126 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-run-task.html"><span class="phrase">rpc_run_task</span></a></span><span class="refpurpose"> &#8212; 
127     Allocate a new RPC task, then run rpc_execute against it
128 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-call-sync.html"><span class="phrase">rpc_call_sync</span></a></span><span class="refpurpose"> &#8212; 
129     Perform a synchronous RPC call
130 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-call-async.html"><span class="phrase">rpc_call_async</span></a></span><span class="refpurpose"> &#8212; 
131     Perform an asynchronous RPC call
132 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-peeraddr.html"><span class="phrase">rpc_peeraddr</span></a></span><span class="refpurpose"> &#8212; 
133     extract remote peer address from clnt's xprt
134 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-peeraddr2str.html"><span class="phrase">rpc_peeraddr2str</span></a></span><span class="refpurpose"> &#8212; 
135     return remote peer address in printable format
136 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-localaddr.html"><span class="phrase">rpc_localaddr</span></a></span><span class="refpurpose"> &#8212; 
137     discover local endpoint address for an RPC client
138 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-protocol.html"><span class="phrase">rpc_protocol</span></a></span><span class="refpurpose"> &#8212; 
139     Get transport protocol number for an RPC client
140 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-net-ns.html"><span class="phrase">rpc_net_ns</span></a></span><span class="refpurpose"> &#8212; 
141     Get the network namespace for this RPC client
142 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-max-payload.html"><span class="phrase">rpc_max_payload</span></a></span><span class="refpurpose"> &#8212; 
143     Get maximum payload size for a transport, in bytes
144 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-get-timeout.html"><span class="phrase">rpc_get_timeout</span></a></span><span class="refpurpose"> &#8212; 
145     Get timeout for transport in units of HZ
146 </span></dt><dt><span class="refentrytitle"><a href="API-rpc-force-rebind.html"><span class="phrase">rpc_force_rebind</span></a></span><span class="refpurpose"> &#8212; 
147     force transport to check that remote port is unchanged
148 </span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-gen-estimator-active.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="netcore.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-xdr-encode-opaque-fixed.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">gen_estimator_active</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">xdr_encode_opaque_fixed</span></td></tr></table></div></body></html>
149