Lines Matching refs:client

3  * \brief NFS client
23 static errval_t portmap_lookup(struct nfs_client *client, u_int prog, u_int vers);
33 /// Per-instance NFS client data
35 struct rpc_client rpc_client; ///< RPC client state (XXX: must be first)
50 struct nfs_client *client = (void *)rpc_client;
60 client->mount_state, replystat, acceptstat);
64 switch (client->mount_state) {
71 client->mount_port = port;
74 r = portmap_lookup(client, NFS_PROGRAM, NFS_V3);
79 client->mount_state = NFS_INIT_GETPORT_NFS;
85 client->nfs_port = port;
88 r = rpc_call(&client->rpc_client, client->mount_port, MOUNT_PROGRAM,
90 (void *)&client->mount_path,
91 RNDUP(strlen(client->mount_path)) + BYTES_PER_XDR_UNIT,
97 client->mount_state = NFS_INIT_MOUNT;
107 client->mount_state = NFS_INIT_COMPLETE;
117 client->mount_callback(client->mount_cbarg, client, mountstat, fh);
127 client->mount_callback(client->mount_cbarg, NULL, -1, fh);
128 nfs_destroy(client);
134 static errval_t portmap_lookup(struct nfs_client *client, u_int prog, u_int vers)
144 errval_t err = rpc_call(&client->rpc_client, PMAP_PORT, PMAP_PROG, PMAP_VERS,
160 * call succeeds, the returned client instance must be freed by a later call
166 struct nfs_client *client;
168 client = malloc(sizeof(struct nfs_client));
169 if (client == NULL) {
173 errval_t r = rpc_init(&client->rpc_client, server);
175 free(client);
180 client->mount_path = path;
181 client->mount_state = NFS_INIT_GETPORT_MOUNT;
182 client->mount_callback = callback;
183 client->mount_cbarg = cbarg;
186 r = portmap_lookup(client, MOUNT_PROGRAM, MOUNT_V3);
189 nfs_destroy(client);
192 return client;
214 struct nfs_client *client = (void *)rpc_client;
221 callback(arg2, client, NULL);
227 callback(arg2, client, &result);
231 callback(arg2, client, NULL);
238 * \param client NFS client pointer, which has completed the mount process
245 errval_t nfs_getattr(struct nfs_client *client, struct nfs_fh3 fh,
248 assert(client->mount_state == NFS_INIT_COMPLETE);
254 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
266 struct nfs_client *client = (void *)rpc_client;
273 callback(arg2, client, NULL);
279 callback(arg2, client, &result);
283 callback(arg2, client, NULL);
290 * \param client NFS client pointer, which has completed the mount process
300 errval_t nfs_setattr(struct nfs_client *client, struct nfs_fh3 fh,
304 assert(client->mount_state == NFS_INIT_COMPLETE);
316 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
328 struct nfs_client *client = (void *)rpc_client;
335 callback(arg2, client, NULL);
341 callback(arg2, client, &result);
345 callback(arg2, client, NULL);
352 * \param client NFS client pointer, which has completed the mount process
361 errval_t nfs_readdir(struct nfs_client *client, struct nfs_fh3 fh,
365 assert(client->mount_state == NFS_INIT_COMPLETE);
377 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
389 struct nfs_client *client = (void *)rpc_client;
396 callback(arg2, client, NULL);
402 callback(arg2, client, &result);
406 callback(arg2, client, NULL);
413 * \param client NFS client pointer, which has completed the mount process
422 errval_t nfs_readdirplus(struct nfs_client *client, struct nfs_fh3 fh,
426 assert(client->mount_state == NFS_INIT_COMPLETE);
440 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
453 struct nfs_client *client = (void *)rpc_client;
460 callback(arg2, client, NULL);
466 callback(arg2, client, &result);
470 callback(arg2, client, NULL);
477 * \param client NFS client pointer, which has completed the mount process
485 errval_t nfs_lookup(struct nfs_client *client, struct nfs_fh3 dirfh,
488 assert(client->mount_state == NFS_INIT_COMPLETE);
497 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
510 struct nfs_client *client = (void *)rpc_client;
517 callback(arg2, client, NULL);
523 callback(arg2, client, &result);
527 callback(arg2, client, NULL);
534 * \param client NFS client pointer, which has completed the mount process
542 errval_t nfs_access(struct nfs_client *client, struct nfs_fh3 fh, uint32_t access,
545 assert(client->mount_state == NFS_INIT_COMPLETE);
552 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
564 struct nfs_client *client = (void *)rpc_client;
571 callback(arg2, client, NULL);
577 callback(arg2, client, &result);
581 callback(arg2, client, NULL);
588 * \param client NFS client pointer, which has completed the mount process
597 errval_t nfs_read(struct nfs_client *client, struct nfs_fh3 fh, offset3 offset,
602 assert(client->mount_state == NFS_INIT_COMPLETE);
610 errval_t errval = rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
624 struct nfs_client *client = (void *)rpc_client;
631 callback(arg2, client, NULL);
637 callback(arg2, client, &result);
641 callback(arg2, client, NULL);
648 * \param client NFS client pointer, which has completed the mount process
659 errval_t nfs_write(struct nfs_client *client, struct nfs_fh3 fh, offset3 offset,
663 assert(client->mount_state == NFS_INIT_COMPLETE);
676 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
688 struct nfs_client *client = (void *)rpc_client;
695 callback(arg2, client, NULL);
701 callback(arg2, client, &result);
705 callback(arg2, client, NULL);
712 * \param client NFS client pointer, which has completed the mount process
724 errval_t nfs_create(struct nfs_client *client, struct nfs_fh3 dir,
728 assert(client->mount_state == NFS_INIT_COMPLETE);
741 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
753 struct nfs_client *client = (void *)rpc_client;
760 callback(arg2, client, NULL);
766 callback(arg2, client, &result);
770 callback(arg2, client, NULL);
777 * \param client NFS client pointer, which has completed the mount process
786 errval_t nfs_mkdir(struct nfs_client *client, struct nfs_fh3 dir, const char *name,
789 assert(client->mount_state == NFS_INIT_COMPLETE);
799 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
811 struct nfs_client *client = (void *)rpc_client;
818 callback(arg2, client, NULL);
824 callback(arg2, client, &result);
828 callback(arg2, client, NULL);
835 * \param client NFS client pointer, which has completed the mount process
843 errval_t nfs_remove(struct nfs_client *client, struct nfs_fh3 dir,
847 assert(client->mount_state == NFS_INIT_COMPLETE);
856 return rpc_call(&client->rpc_client, client->nfs_port, NFS_PROGRAM,
866 void nfs_destroy(struct nfs_client *client)
868 rpc_destroy(&client->rpc_client);
869 free(client);