PORTMAPPER: Add set/unset functions
[deb_libnfs.git] / include / libnfs-raw.h
CommitLineData
84004dbf
RS
1/*
2 Copyright (C) 2010 by Ronnie Sahlberg <ronniesahlberg@gmail.com>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation; either version 2.1 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program; if not, see <http://www.gnu.org/licenses/>.
16*/
17/*
18 * This is the lowlevel interface to access NFS resources.
19 * Through this interface you have access to the full gamut of nfs and nfs related
20 * protocol as well as the XDR encoded/decoded structures.
21 */
22#include <stdint.h>
8704724f
RS
23#include <rpc/rpc.h>
24#include <rpc/auth.h>
84004dbf
RS
25
26struct rpc_data {
27 int size;
28 unsigned char *data;
29};
30
31struct rpc_context;
32struct rpc_context *rpc_init_context(void);
33void rpc_destroy_context(struct rpc_context *rpc);
34
8704724f 35void rpc_set_auth(struct rpc_context *rpc, AUTH *auth);
84004dbf
RS
36
37int rpc_get_fd(struct rpc_context *rpc);
38int rpc_which_events(struct rpc_context *rpc);
39int rpc_service(struct rpc_context *rpc, int revents);
40char *rpc_get_error(struct rpc_context *rpc);
83aa785d 41int rpc_queue_length(struct rpc_context *rpc);
84004dbf
RS
42
43
44#define RPC_STATUS_SUCCESS 0
45#define RPC_STATUS_ERROR 1
46#define RPC_STATUS_CANCEL 2
47
84004dbf
RS
48/*
49 * Async connection to the tcp port at server:port.
50 * Function returns
51 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
52 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
53 *
54 * When the callback is invoked, status indicates the result:
55 * RPC_STATUS_SUCCESS : The tcp connection was successfully established.
56 * data is NULL.
57 * RPC_STATUS_ERROR : The connection failed to establish.
58 * data is the erro string.
59 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
60 * : data is NULL.
61 */
62int rpc_connect_async(struct rpc_context *rpc, const char *server, int port, rpc_cb cb, void *private_data);
63/*
64 * When disconnecting a connection in flight. All commands in flight will be called with the callback
65 * and status RPC_STATUS_ERROR. Data will be the error string for the disconnection.
66 */
67int rpc_disconnect(struct rpc_context *rpc, char *error);
68
84004dbf
RS
69
70/*
71 * PORTMAP FUNCTIONS
72 */
73
74/*
75 * Call PORTMAPPER/NULL
76 * Function returns
77 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
78 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
79 *
80 * When the callback is invoked, status indicates the result:
81 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
82 * data is NULL.
83 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
84 * data is the error string.
85 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
86 * data is NULL.
87 */
88int rpc_pmap_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
89
90
91/*
92 * Call PORTMAPPER/GETPORT.
93 * Function returns
94 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
95 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
96 *
97 * When the callback is invoked, status indicates the result:
98 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
99 * data is a (uint32_t *), containing the port returned.
100 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
101 * data is the error string.
102 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
103 * data is NULL.
104 */
5c6b1176 105int rpc_pmap_getport_async(struct rpc_context *rpc, int program, int version, int protocol, rpc_cb cb, void *private_data);
84004dbf 106
1fbe4080
RS
107/*
108 * Call PORTMAPPER/SET
109 * Function returns
110 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
111 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
112 *
113 * When the callback is invoked, status indicates the result:
114 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
115 * data is a (uint32_t *), containing status
116 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
117 * data is the error string.
118 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
119 * data is NULL.
120 */
121int rpc_pmap_set_async(struct rpc_context *rpc, int program, int version, int protocol, int port, rpc_cb cb, void *private_data);
122
123/*
124 * Call PORTMAPPER/UNSET
125 * Function returns
126 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
127 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
128 *
129 * When the callback is invoked, status indicates the result:
130 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
131 * data is a (uint32_t *), containing status
132 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
133 * data is the error string.
134 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
135 * data is NULL.
136 */
137int rpc_pmap_unset_async(struct rpc_context *rpc, int program, int version, int protocol, int port, rpc_cb cb, void *private_data);
84004dbf 138
fd59fd0d
RS
139/*
140 * Call PORTMAPPER/CALLIT.
141 * Function returns
142 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
143 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
144 *
145 * When the callback is invoked, status indicates the result:
146 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon
147 * data is a 'pmap_call_result' pointer.
148 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
149 * data is the error string.
150 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
151 * data is NULL.
152 */
153int rpc_pmap_callit_async(struct rpc_context *rpc, int program, int version, int procedure, const char *data, int datalen, rpc_cb cb, void *private_data);
84004dbf
RS
154
155/*
156 * MOUNT FUNCTIONS
157 */
158char *mountstat3_to_str(int stat);
159int mountstat3_to_errno(int error);
160
161/*
162 * Call MOUNT/NULL
163 * Function returns
164 * 0 : The call was initiated. The callback will be invoked when the call completes.
165 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
166 *
167 * When the callback is invoked, status indicates the result:
168 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
169 * data is NULL.
170 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
171 * data is the error string.
172 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
173 * data is NULL.
174 */
175int rpc_mount_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
176
177/*
178 * Call MOUNT/MNT
179 * Function returns
180 * 0 : The call was initiated. The callback will be invoked when the call completes.
181 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
182 *
183 * When the callback is invoked, status indicates the result:
184 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
185 * data is union mountres3.
186 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
187 * data is the error string.
188 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
189 * data is NULL.
190 */
191int rpc_mount_mnt_async(struct rpc_context *rpc, rpc_cb cb, char *export, void *private_data);
192
193/*
194 * Call MOUNT/DUMP
195 * Function returns
196 * 0 : The call was initiated. The callback will be invoked when the call completes.
197 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
198 *
199 * When the callback is invoked, status indicates the result:
200 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
201 * data is a mountlist.
202 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
203 * data is the error string.
204 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
205 * data is NULL.
206 */
207int rpc_mount_dump_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
208
209/*
210 * Call MOUNT/UMNT
211 * Function returns
212 * 0 : The call was initiated. The callback will be invoked when the call completes.
213 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
214 *
215 * When the callback is invoked, status indicates the result:
216 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
217 * data NULL.
218 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
219 * data is the error string.
220 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
221 * data is NULL.
222 */
223int rpc_mount_umnt_async(struct rpc_context *rpc, rpc_cb cb, char *export, void *private_data);
224
225/*
226 * Call MOUNT/UMNTALL
227 * Function returns
228 * 0 : The call was initiated. The callback will be invoked when the call completes.
229 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
230 *
231 * When the callback is invoked, status indicates the result:
232 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
233 * data NULL.
234 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
235 * data is the error string.
236 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
237 * data is NULL.
238 */
239int rpc_mount_umntall_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
240
241/*
242 * Call MOUNT/EXPORT
7f0242ca
RS
243 * NOTE: You must include 'libnfs-raw-mount.h' to get the definitions of the
244 * returned structures.
245 *
84004dbf
RS
246 * Function returns
247 * 0 : The call was initiated. The callback will be invoked when the call completes.
248 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
249 *
250 * When the callback is invoked, status indicates the result:
251 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
7f0242ca
RS
252 * data is a pointer to an exports pointer:
253 * exports export = *(exports *)data;
84004dbf
RS
254 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
255 * data is the error string.
256 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
257 * data is NULL.
258 */
259int rpc_mount_export_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
260
261
262
263
264/*
265 * NFS FUNCTIONS
266 */
267struct nfs_fh3;
268char *nfsstat3_to_str(int error);
269int nfsstat3_to_errno(int error);
270
271/*
272 * Call NFS/NULL
273 * Function returns
274 * 0 : The call was initiated. The callback will be invoked when the call completes.
275 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
276 *
277 * When the callback is invoked, status indicates the result:
278 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
279 * data is NULL.
280 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
281 * data is the error string.
282 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
283 * data is NULL.
284 */
285int rpc_nfs_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
286
287/*
288 * Call NFS/GETATTR
289 * Function returns
290 * 0 : The call was initiated. The callback will be invoked when the call completes.
291 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
292 *
293 * When the callback is invoked, status indicates the result:
294 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
295 * data is GETATTR3res
296 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
297 * data is the error string.
298 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
299 * data is NULL.
300 */
301int rpc_nfs_getattr_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, void *private_data);
302
303/*
304 * Call NFS/LOOKUP
305 * Function returns
306 * 0 : The call was initiated. The callback will be invoked when the call completes.
307 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
308 *
309 * When the callback is invoked, status indicates the result:
310 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
311 * data is LOOKUP3res
312 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
313 * data is the error string.
314 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
315 * data is NULL.
316 */
317int rpc_nfs_lookup_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *name, void *private_data);
318
319/*
320 * Call NFS/ACCESS
321 * Function returns
322 * 0 : The call was initiated. The callback will be invoked when the call completes.
323 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
324 *
325 * When the callback is invoked, status indicates the result:
326 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
327 * data is ACCESS3res
328 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
329 * data is the error string.
330 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
331 * data is NULL.
332 */
333int rpc_nfs_access_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, int access, void *private_data);
334
335/*
336 * Call NFS/READ
337 * Function returns
338 * 0 : The call was initiated. The callback will be invoked when the call completes.
339 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
340 *
341 * When the callback is invoked, status indicates the result:
342 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
343 * data is ACCESS3res
344 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
345 * data is the error string.
346 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
347 * data is NULL.
348 */
183451cf 349int rpc_nfs_read_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint64_t offset, uint64_t count, void *private_data);
84004dbf
RS
350
351/*
352 * Call NFS/WRITE
353 * Function returns
354 * 0 : The call was initiated. The callback will be invoked when the call completes.
355 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
356 *
357 * When the callback is invoked, status indicates the result:
358 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
359 * data is WRITE3res *
360 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
361 * data is the error string.
362 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
363 * data is NULL.
364 */
183451cf 365int rpc_nfs_write_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *buf, uint64_t offset, uint64_t count, int stable_how, void *private_data);
84004dbf
RS
366
367/*
368 * Call NFS/COMMIT
369 * Function returns
370 * 0 : The call was initiated. The callback will be invoked when the call completes.
371 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
372 *
373 * When the callback is invoked, status indicates the result:
374 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
375 * data is COMMIT3res *
376 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
377 * data is the error string.
378 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
379 * data is NULL.
380 */
381int rpc_nfs_commit_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, void *private_data);
382
383
384/*
385 * Call NFS/SETATTR
386 * Function returns
387 * 0 : The call was initiated. The callback will be invoked when the call completes.
388 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
389 *
390 * When the callback is invoked, status indicates the result:
391 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
392 * data is SETATTR3res *
393 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
394 * data is the error string.
395 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
396 * data is NULL.
397 */
398struct SETATTR3args;
399int rpc_nfs_setattr_async(struct rpc_context *rpc, rpc_cb cb, struct SETATTR3args *args, void *private_data);
400
401
402
403/*
404 * Call NFS/MKDIR
405 * Function returns
406 * 0 : The call was initiated. The callback will be invoked when the call completes.
407 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
408 *
409 * When the callback is invoked, status indicates the result:
410 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
411 * data is MKDIR3res *
412 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
413 * data is the error string.
414 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
415 * data is NULL.
416 */
417int rpc_nfs_mkdir_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *dir, void *private_data);
418
419
420
421
422
423/*
424 * Call NFS/RMDIR
425 * Function returns
426 * 0 : The call was initiated. The callback will be invoked when the call completes.
427 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
428 *
429 * When the callback is invoked, status indicates the result:
430 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
431 * data is RMDIR3res *
432 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
433 * data is the error string.
434 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
435 * data is NULL.
436 */
437int rpc_nfs_rmdir_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *dir, void *private_data);
438
439
440
441
442/*
443 * Call NFS/CREATE
444 * Function returns
445 * 0 : The call was initiated. The callback will be invoked when the call completes.
446 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
447 *
448 * When the callback is invoked, status indicates the result:
449 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
450 * data is CREATE3res *
451 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
452 * data is the error string.
453 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
454 * data is NULL.
455 */
456int rpc_nfs_create_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *name, int mode, void *private_data);
457
458
1ec6b50a
RS
459/*
460 * Call NFS/MKNOD
461 * Function returns
462 * 0 : The call was initiated. The callback will be invoked when the call completes.
463 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
464 *
465 * When the callback is invoked, status indicates the result:
466 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
467 * data is MKNOD3res *
468 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
469 * data is the error string.
470 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
471 * data is NULL.
472 */
473int rpc_nfs_mknod_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *file, int mode, int major, int minor, void *private_data);
84004dbf
RS
474
475
476/*
477 * Call NFS/REMOVE
478 * Function returns
479 * 0 : The call was initiated. The callback will be invoked when the call completes.
480 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
481 *
482 * When the callback is invoked, status indicates the result:
483 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
484 * data is REMOVE3res *
485 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
486 * data is the error string.
487 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
488 * data is NULL.
489 */
490int rpc_nfs_remove_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *name, void *private_data);
491
492
493
494/*
f390f181 495 * Call NFS/READDIR
84004dbf
RS
496 * Function returns
497 * 0 : The call was initiated. The callback will be invoked when the call completes.
498 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
499 *
500 * When the callback is invoked, status indicates the result:
501 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
502 * data is READDIR3res *
503 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
504 * data is the error string.
505 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
506 * data is NULL.
507 */
508int rpc_nfs_readdir_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint64_t cookie, char *cookieverf, int count, void *private_data);
509
f390f181
RS
510/*
511 * Call NFS/READDIRPLUS
512 * Function returns
513 * 0 : The call was initiated. The callback will be invoked when the call completes.
514 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
515 *
516 * When the callback is invoked, status indicates the result:
517 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
518 * data is READDIRPLUS3res *
519 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
520 * data is the error string.
521 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
522 * data is NULL.
523 */
524int rpc_nfs_readdirplus_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint64_t cookie, char *cookieverf, int count, void *private_data);
525
84004dbf
RS
526/*
527 * Call NFS/FSSTAT
528 * Function returns
529 * 0 : The call was initiated. The callback will be invoked when the call completes.
530 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
531 *
532 * When the callback is invoked, status indicates the result:
533 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
534 * data is FSSTAT3res
535 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
536 * data is the error string.
537 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
538 * data is NULL.
539 */
540int rpc_nfs_fsstat_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, void *private_data);
541
542
543
1058201e
RS
544/*
545 * Call NFS/FSINFO
546 * Function returns
547 * 0 : The call was initiated. The callback will be invoked when the call completes.
548 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
549 *
550 * When the callback is invoked, status indicates the result:
551 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
552 * data is FSINFO3res
553 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
554 * data is the error string.
555 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
556 * data is NULL.
557 */
558int rpc_nfs_fsinfo_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, void *private_data);
559
560
84004dbf
RS
561
562/*
563 * Call NFS/READLINK
564 * Function returns
565 * 0 : The call was initiated. The callback will be invoked when the call completes.
566 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
567 *
568 * When the callback is invoked, status indicates the result:
569 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
570 * data is READLINK3res *
571 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
572 * data is the error string.
573 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
574 * data is NULL.
575 */
576int rpc_nfs_readlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, void *private_data);
577
578
579
580/*
581 * Call NFS/SYMLINK
582 * Function returns
583 * 0 : The call was initiated. The callback will be invoked when the call completes.
584 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
585 *
586 * When the callback is invoked, status indicates the result:
587 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
588 * data is SYMLINK3res *
589 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
590 * data is the error string.
591 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
592 * data is NULL.
593 */
594int rpc_nfs_symlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *newname, char *oldpath, void *private_data);
595
596
597/*
598 * Call NFS/RENAME
599 * Function returns
600 * 0 : The call was initiated. The callback will be invoked when the call completes.
601 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
602 *
603 * When the callback is invoked, status indicates the result:
604 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
605 * data is RENAME3res *
606 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
607 * data is the error string.
608 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
609 * data is NULL.
610 */
611int rpc_nfs_rename_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *olddir, char *oldname, struct nfs_fh3 *newdir, char *newname, void *private_data);
612
613
614
615/*
616 * Call NFS/LINK
617 * Function returns
618 * 0 : The call was initiated. The callback will be invoked when the call completes.
619 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
620 *
621 * When the callback is invoked, status indicates the result:
622 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
623 * data is LINK3res *
624 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
625 * data is the error string.
626 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
627 * data is NULL.
628 */
629int rpc_nfs_link_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *file, struct nfs_fh3 *newdir, char *newname, void *private_data);
630
631
632
05a777d9
RS
633
634/*
635 * RQUOTA FUNCTIONS
636 */
637char *rquotastat_to_str(int error);
638int rquotastat_to_errno(int error);
639
640/*
641 * Call RQUOTA1/NULL
642 * Function returns
643 * 0 : The call was initiated. The callback will be invoked when the call completes.
644 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
645 *
646 * When the callback is invoked, status indicates the result:
647 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
648 * data is NULL.
649 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
650 * data is the error string.
651 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
652 * data is NULL.
653 */
654int rpc_rquota1_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
655
656/*
657 * Call RQUOTA1/GETQUOTA
658 * Function returns
659 * 0 : The call was initiated. The callback will be invoked when the call completes.
660 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
661 *
662 * When the callback is invoked, status indicates the result:
663 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
664 * data is a RQUOTA1res structure.
665 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
666 * data is the error string.
667 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
668 * data is NULL.
669 */
670int rpc_rquota1_getquota_async(struct rpc_context *rpc, rpc_cb cb, char *export, int uid, void *private_data);
19e74f5a
RS
671
672/*
673 * Call RQUOTA1/GETACTIVEQUOTA
674 * Function returns
675 * 0 : The call was initiated. The callback will be invoked when the call completes.
676 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
677 *
678 * When the callback is invoked, status indicates the result:
679 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
680 * data is a RQUOTA1res structure.
681 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
682 * data is the error string.
683 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
684 * data is NULL.
685 */
686int rpc_rquota1_getactivequota_async(struct rpc_context *rpc, rpc_cb cb, char *export, int uid, void *private_data);
77c23b46
RS
687
688
689
690
691/*
692 * Call RQUOTA2/NULL
693 * Function returns
694 * 0 : The call was initiated. The callback will be invoked when the call completes.
695 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
696 *
697 * When the callback is invoked, status indicates the result:
698 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
699 * data is NULL.
700 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
701 * data is the error string.
702 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
703 * data is NULL.
704 */
705int rpc_rquota2_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
706
707/*
708 * Call RQUOTA2/GETQUOTA
709 * Function returns
710 * 0 : The call was initiated. The callback will be invoked when the call completes.
711 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
712 *
713 * When the callback is invoked, status indicates the result:
714 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
715 * data is a RQUOTA1res structure.
716 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
717 * data is the error string.
718 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
719 * data is NULL.
720 */
721int rpc_rquota2_getquota_async(struct rpc_context *rpc, rpc_cb cb, char *export, int type, int uid, void *private_data);
722
723/*
724 * Call RQUOTA2/GETACTIVEQUOTA
725 * Function returns
726 * 0 : The call was initiated. The callback will be invoked when the call completes.
727 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
728 *
729 * When the callback is invoked, status indicates the result:
730 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
731 * data is a RQUOTA1res structure.
732 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
733 * data is the error string.
734 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
735 * data is NULL.
736 */
737int rpc_rquota2_getactivequota_async(struct rpc_context *rpc, rpc_cb cb, char *export, int type, int uid, void *private_data);
3847f8f6
RS
738
739
740
741/*
742 * Call NFSACL/NULL
743 * Call the NULL procedure for the NFSACL
744 *
745 * Function returns
746 * 0 : The call was initiated. The callback will be invoked when the call completes.
747 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
748 *
749 * When the callback is invoked, status indicates the result:
750 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
751 * data is NULL
752 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
753 * data is the error string.
754 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
755 * data is NULL.
756 */
757int rpc_nfsacl_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
758
759/*
760 * Call NFSACL/GETACL
761 *
762 * Function returns
763 * 0 : The call was initiated. The callback will be invoked when the call completes.
764 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
765 *
766 * When the callback is invoked, status indicates the result:
767 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
768 * data is a GETACL3res pointer
769 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
770 * data is the error string.
771 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
772 * data is NULL.
773 */
774int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint32_t mask, void *private_data);
775