Lines Matching refs:pb
46 proto_getqid(struct puffs_framebuf *pb, struct qid9p *qid)
49 if (puffs_framebuf_remaining(pb) < 1+4+8)
52 p9pbuf_get_1(pb, &qid->qidtype);
53 p9pbuf_get_4(pb, &qid->qidvers);
54 p9pbuf_get_8(pb, &qid->qidpath);
110 if ((rv = (a(pb, b)))) return rv; \
115 if ((rv = p9pbuf_get_str(pb, val, strsize))) return rv; \
120 proto_getstat(struct puffs_usermount *pu, struct puffs_framebuf *pb, struct vattr *vap,
132 if ((rv = p9pbuf_get_2(pb, &size)))
134 if (puffs_framebuf_remaining(pb) < size)
188 proto_rerror(struct puffs_usermount *pu, struct puffs_framebuf *pb,
197 rv = puffs_framebuf_seekset(pb,
202 rv = p9pbuf_get_str(pb, &name, &size);
206 rv = p9pbuf_get_4(pb, _errno);
216 proto_handle_rerror(struct puffs_usermount *pu, struct puffs_framebuf *pb)
221 if (p9pbuf_get_type(pb) != P9PROTO_R_ERROR)
224 rv = proto_rerror(pu, pb, &_errno);
235 struct puffs_framebuf *pb;
240 pb = p9pbuf_makeout();
242 p9pbuf_put_1(pb, P9PROTO_T_WALK);
243 p9pbuf_put_2(pb, tag);
244 p9pbuf_put_4(pb, oldfid);
245 p9pbuf_put_4(pb, newfid);
246 p9pbuf_put_2(pb, 0);
247 GETRESPONSE(pb);
249 rv = proto_expect_walk_nqids(pu, pb, &qids);
254 puffs_framebuf_destroy(pb);
263 struct puffs_framebuf *pb;
267 pb = p9pbuf_makeout();
269 p9pbuf_put_1(pb, P9PROTO_T_CLUNK);
270 p9pbuf_put_2(pb, tag);
271 p9pbuf_put_4(pb, fid);
274 if (puffs_framev_enqueue_cc(pcc, p9p->servsock, pb, 0) == 0) {
275 if (p9pbuf_get_type(pb) != P9PROTO_R_CLUNK)
276 rv = proto_handle_rerror(pu, pb);
280 puffs_framebuf_destroy(pb);
282 JUSTSEND(pb);
298 struct puffs_framebuf *pb;
306 pb = p9pbuf_makeout();
308 p9pbuf_put_1(pb, P9PROTO_T_OPEN);
309 p9pbuf_put_2(pb, tag);
310 p9pbuf_put_4(pb, newfid);
311 p9pbuf_put_1(pb, mode);
312 GETRESPONSE(pb);
313 if (p9pbuf_get_type(pb) != P9PROTO_R_OPEN)
314 rv = proto_handle_rerror(pu, pb);
317 puffs_framebuf_destroy(pb);
322 proto_make_stat(struct puffs_usermount *pu, struct puffs_framebuf *pb,
337 startoff = puffs_framebuf_telloff(pb);
338 puffs_framebuf_seekset(pb, startoff + 2+2); /* stat[n] incl. stat[2] */
365 p9pbuf_put_2(pb, P9PROTO_STAT_NOVAL2); /* kernel type */
366 p9pbuf_put_4(pb, P9PROTO_STAT_NOVAL4); /* dev */
367 p9pbuf_put_1(pb, P9PROTO_STAT_NOVAL1); /* type */
368 p9pbuf_put_4(pb, P9PROTO_STAT_NOVAL4); /* version */
369 p9pbuf_put_8(pb, P9PROTO_STAT_NOVAL8); /* path */
370 p9pbuf_put_4(pb, mode);
371 p9pbuf_put_4(pb, atime);
372 p9pbuf_put_4(pb, mtime);
373 p9pbuf_put_8(pb, flen);
374 p9pbuf_put_str(pb, filename ? filename : "");
375 p9pbuf_put_str(pb, owner);
376 p9pbuf_put_str(pb, group);
377 p9pbuf_put_str(pb, ""); /* muid */
379 p9pbuf_put_str(pb, P9PROTO_STAT_NOSTR); /* extensions[s] */
380 p9pbuf_put_4(pb, P9PROTO_STAT_NOVAL4); /* n_uid[4] */
381 p9pbuf_put_4(pb, P9PROTO_STAT_NOVAL4); /* n_gid[4] */
382 p9pbuf_put_4(pb, P9PROTO_STAT_NOVAL4); /* n_muid[4] */
385 curoff = puffs_framebuf_telloff(pb);
386 puffs_framebuf_seekset(pb, startoff);
387 p9pbuf_put_2(pb, curoff-(startoff+2)); /* stat[n] size */
388 p9pbuf_put_2(pb, curoff-(startoff+4)); /* size[2] stat */
390 puffs_framebuf_seekset(pb, curoff);
394 proto_expect_walk_nqids(struct puffs_usermount *pu, struct puffs_framebuf *pb,
398 if (p9pbuf_get_type(pb) != P9PROTO_R_WALK)
399 return proto_handle_rerror(pu, pb);
400 return p9pbuf_get_2(pb, nqids);
404 proto_expect_qid(struct puffs_usermount *pu, struct puffs_framebuf *pb,
408 if (p9pbuf_get_type(pb) != op)
409 return proto_handle_rerror(pu, pb);
410 return proto_getqid(pb, qid);
414 proto_expect_stat(struct puffs_usermount *pu, struct puffs_framebuf *pb,
420 if (p9pbuf_get_type(pb) != P9PROTO_R_STAT)
421 return proto_handle_rerror(pu, pb);
422 if ((rv = p9pbuf_get_2(pb, &dummy)))
424 return proto_getstat(pu, pb, va, NULL, NULL);