Lines Matching defs:clnt
69 p9_is_proto_dotl(struct p9_client *clnt)
72 return (clnt->proto_version == p9_proto_2000L);
76 p9_is_proto_dotu(struct p9_client *clnt)
79 return (clnt->proto_version == p9_proto_2000u);
84 p9_parse_opts(struct mount *mp, struct p9_client *clnt)
97 clnt->proto_version = p9_proto_2000L;
98 clnt->msize = 8192;
101 clnt->ops = p9_get_trans_by_name(trans);
133 p9_free_req(struct p9_client *clnt, struct p9_req_t *req)
138 p9_tag_destroy(clnt, req->tc->tag);
150 p9_get_request(struct p9_client *clnt, int *error)
162 tag = p9_tag_create(clnt);
166 p9_free_req(clnt, req);
175 p9_parse_receive(struct p9_buffer *buf, struct p9_client *clnt)
263 void p9_client_disconnect(struct p9_client *clnt)
266 P9_DEBUG(TRANS, "%s: clnt %p\n", __func__, clnt);
267 clnt->trans_status = P9FS_DISCONNECT;
270 void p9_client_begin_disconnect(struct p9_client *clnt)
273 P9_DEBUG(TRANS, "%s: clnt %p\n", __func__, clnt);
274 clnt->trans_status = P9FS_BEGIN_DISCONNECT;
381 p9_tag_create(struct p9_client *clnt)
385 tag = alloc_unr(&clnt->tagpool);
386 P9_DEBUG(LPROTO, "%s: clnt %p: tag %d\n", __func__, clnt, tag);
397 p9_tag_destroy(struct p9_client *clnt, uint16_t tag)
400 P9_DEBUG(LPROTO, "%s: clnt %p: tag %d\n", __func__, clnt, tag);
403 free_unr(&clnt->tagpool, tag);
408 p9_fid_create(struct p9_client *clnt)
414 fid->fid = alloc_unr(&clnt->fidpool);
424 fid->clnt = clnt;
433 struct p9_client *clnt;
436 clnt = fid->clnt;
438 free_unr(&clnt->fidpool, fid->fid);
539 struct p9_client *clnt;
541 clnt = malloc(sizeof(struct p9_client), M_P9CLNT, M_WAITOK | M_ZERO);
542 mtx_init(&clnt->clnt_mtx, "p9clnt", NULL, MTX_DEF);
545 *error = p9_parse_opts(mp, clnt);
549 if (clnt->ops == NULL) {
556 init_unrhdr(&clnt->fidpool, P9FS_ROOT_FID_NO, P9FS_MAX_FID_CNT,
557 &clnt->clnt_mtx);
558 init_unrhdr(&clnt->tagpool, P9FS_MIN_TAG, P9FS_MAX_TAG,
559 &clnt->clnt_mtx);
561 P9_DEBUG(TRANS, "%s: clnt %p trans %p msize %d protocol %d\n",
562 __func__, clnt, clnt->ops, clnt->msize, clnt->proto_version);
564 *error = clnt->ops->create(mount_tag, &clnt->handle);
570 clnt->trans_status = P9FS_CONNECT;
572 *error = p9_client_version(clnt);
577 return (clnt);
579 free(clnt, M_P9CLNT);
585 p9_client_destroy(struct p9_client *clnt)
588 P9_DEBUG(TRANS, "%s: client %p\n", __func__, clnt);
589 clnt->ops->close(clnt->handle);
592 clear_unrhdr(&clnt->fidpool);
595 clear_unrhdr(&clnt->tagpool);
597 free(clnt, M_P9CLNT);
605 p9_client_attach(struct p9_client *clnt, struct p9_fid *afid,
614 fid = p9_fid_create(clnt);
621 req = p9_client_request(clnt, P9PROTO_TATTACH, error, "ddssd", fid->fid,
626 *error = p9_buf_readf(req->rc, clnt->proto_version, "Q", &qid);
637 p9_free_req(clnt, req);
642 p9_free_req(clnt, req);
654 struct p9_client *clnt;
660 clnt = fid->clnt;
662 req = p9_client_request(clnt, P9PROTO_TREMOVE, &error, "d", fid->fid);
668 p9_free_req(clnt, req);
676 struct p9_client *clnt;
680 clnt = dfid->clnt;
682 req = p9_client_request(clnt, P9PROTO_TUNLINKAT, &error, "dsd",
689 p9_free_req(clnt, req);
701 struct p9_client *clnt;
713 clnt = fid->clnt;
714 req = p9_client_request(clnt, P9PROTO_TCLUNK, &error, "d", fid->fid);
717 p9_free_req(clnt, req);
734 struct p9_client *clnt;
740 clnt = oldfid->clnt;
749 if (clnt->trans_status != P9FS_CONNECT) {
755 fid = p9_fid_create(clnt);
772 req = p9_client_request(clnt, P9PROTO_TWALK, error, "ddT", oldfid->fid,
780 *error = p9_buf_readf(req->rc, clnt->proto_version, "R", &nwqids,
803 p9_free_req(clnt, req);
808 p9_free_req(clnt, req);
821 struct p9_client *clnt;
825 clnt = fid->clnt;
829 p9_is_proto_dotl(clnt) ? "TLOPEN" : "TOPEN",
835 if (p9_is_proto_dotl(clnt))
836 req = p9_client_request(clnt, P9PROTO_TLOPEN, &error, "dd",
839 req = p9_client_request(clnt, P9PROTO_TOPEN, &error, "db",
845 error = p9_buf_readf(req->rc, clnt->proto_version, "Qd", &fid->qid,
851 p9_is_proto_dotl(clnt) ? "RLOPEN" : "ROPEN",
858 p9_free_req(clnt, req);
869 struct p9_client *clnt;
878 clnt = fid->clnt;
880 if (rsize == 0 || rsize > clnt->msize)
881 rsize = clnt->msize;
886 req = p9_client_request(clnt, P9PROTO_TREADDIR, &error, "dqd",
895 error = p9_buf_readf(req->rc, clnt->proto_version, "D", &count,
900 p9_free_req(clnt, req);
908 p9_free_req(clnt, req);
922 struct p9_client *clnt;
927 clnt = fid->clnt;
934 if (!rsize || rsize > clnt->msize)
935 rsize = clnt->msize;
941 req = p9_client_request(clnt, P9PROTO_TREAD, &error, "dqd", fid->fid,
948 error = p9_buf_readf(req->rc, clnt->proto_version, "D", &count,
971 p9_free_req(clnt, req);
974 p9_free_req(clnt, req);
988 struct p9_client *clnt;
992 clnt = fid->clnt;
1000 if (!rsize || rsize > clnt->msize)
1001 rsize = clnt->msize;
1012 req = p9_client_request(clnt, P9PROTO_TWRITE, &error, "dqD", fid->fid,
1020 error = p9_buf_readf(req->rc, clnt->proto_version, "d", &ret);
1039 p9_free_req(clnt, req);
1042 p9_free_req(clnt, req);
1053 struct p9_client *clnt;
1061 clnt = fid->clnt;
1067 req = p9_client_request(clnt, P9PROTO_TCREATE, &error, "dsdb?s",
1072 error = p9_buf_readf(req->rc, clnt->proto_version, "Qd", &qid, &mtu);
1082 p9_free_req(clnt, req);
1092 struct p9_client *clnt;
1095 clnt = fid->clnt;
1099 req = p9_client_request(clnt, P9PROTO_TSTATFS, &error, "d", fid->fid);
1104 error = p9_buf_readf(req->rc, clnt->proto_version, "ddqqqqqqd",
1122 p9_free_req(clnt, req);
1132 struct p9_client *clnt;
1139 clnt = oldfid->clnt;
1146 req = p9_client_request(clnt, P9PROTO_TRENAMEAT, &error, "dsds",
1152 p9_free_req(clnt, req);
1162 struct p9_client *clnt;
1166 clnt = fid->clnt;
1170 req = p9_client_request(clnt, P9PROTO_TSYMLINK, &error, "dssd",
1176 error = p9_buf_readf(req->rc, clnt->proto_version, "Q", &qid);
1185 p9_free_req(clnt, req);
1195 struct p9_client *clnt;
1198 clnt = dfid->clnt;
1203 req = p9_client_request(clnt, P9PROTO_TLINK, &error, "dds", dfid->fid,
1208 p9_free_req(clnt, req);
1217 struct p9_client *clnt;
1221 clnt = fid->clnt;
1225 req = p9_client_request(clnt, P9PROTO_TREADLINK, &error, "d", fid->fid);
1229 error = p9_buf_readf(req->rc, clnt->proto_version, "s", target);
1237 p9_free_req(clnt, req);
1247 struct p9_client *clnt;
1255 clnt = fid->clnt;
1256 req = p9_client_request(clnt, P9PROTO_TGETATTR, &err, "dq", fid->fid,
1263 err = p9_buf_readf(req->rc, clnt->proto_version, "A", stat_dotl);
1269 p9_free_req(clnt, req);
1292 p9_free_req(clnt, req);
1303 struct p9_client *clnt;
1317 clnt = fid->clnt;
1320 req = p9_client_request(clnt, P9PROTO_TSETATTR, &err, "dA", fid->fid,
1328 p9_free_req(clnt, req);