Lines Matching refs:pb
63 psbuf_get_type(struct puffs_framebuf *pb)
67 puffs_framebuf_getdata_atoff(pb, SFTP_TYPEOFF, &type, 1);
72 psbuf_get_len(struct puffs_framebuf *pb)
76 puffs_framebuf_getdata_atoff(pb, SFTP_LENOFF, &len, 4);
81 psbuf_get_reqid(struct puffs_framebuf *pb)
85 puffs_framebuf_getdata_atoff(pb, SFTP_REQIDOFF, &req, 4);
89 #define CUROFF(pb) (puffs_framebuf_telloff(pb))
91 psbuf_read(struct puffs_usermount *pu, struct puffs_framebuf *pb,
100 if ((lenstate = READSTATE_LENGTH(CUROFF(pb))))
101 howmuch = 4 - CUROFF(pb);
103 howmuch = psbuf_get_len(pb) - (CUROFF(pb) - 4);
105 if (puffs_framebuf_reserve_space(pb, howmuch) == -1)
110 if (puffs_framebuf_getwindow(pb, CUROFF(pb), &win, &winlen)==-1)
122 puffs_framebuf_seekset(pb, CUROFF(pb) + n);
129 puffs_framebuf_seekset(pb, 9);
137 psbuf_write(struct puffs_usermount *pu, struct puffs_framebuf *pb,
145 if (CUROFF(pb) == 0) {
148 len = htobe32(puffs_framebuf_tellsize(pb) - 4);
149 puffs_framebuf_putdata_atoff(pb, 0, &len, 4);
152 howmuch = puffs_framebuf_tellsize(pb) - CUROFF(pb);
155 if (puffs_framebuf_getwindow(pb, CUROFF(pb), &win, &winlen)==-1)
167 puffs_framebuf_seekset(pb, CUROFF(pb) + n);
188 struct puffs_framebuf *pb;
190 pb = puffs_framebuf_make();
191 puffs_framebuf_seekset(pb, 4);
192 return pb;
196 psbuf_recycleout(struct puffs_framebuf *pb)
199 puffs_framebuf_recycle(pb);
200 puffs_framebuf_seekset(pb, 4);
204 psbuf_put_1(struct puffs_framebuf *pb, uint8_t val)
208 rv = puffs_framebuf_putdata(pb, &val, 1);
213 psbuf_put_2(struct puffs_framebuf *pb, uint16_t val)
218 rv = puffs_framebuf_putdata(pb, &val, 2);
223 psbuf_put_4(struct puffs_framebuf *pb, uint32_t val)
228 rv = puffs_framebuf_putdata(pb, &val, 4);
233 psbuf_put_8(struct puffs_framebuf *pb, uint64_t val)
238 rv = puffs_framebuf_putdata(pb, &val, 8);
243 psbuf_put_data(struct puffs_framebuf *pb, const void *data, uint32_t dlen)
247 psbuf_put_4(pb, dlen);
248 rv = puffs_framebuf_putdata(pb, data, dlen);
253 psbuf_put_str(struct puffs_framebuf *pb, const char *str)
256 psbuf_put_data(pb, str, strlen(str));
260 psbuf_put_vattr(struct puffs_framebuf *pb, const struct vattr *va,
287 psbuf_put_4(pb, flags);
289 psbuf_put_8(pb, va->va_size);
291 psbuf_put_4(pb, theuid);
292 psbuf_put_4(pb, thegid);
295 psbuf_put_4(pb, va->va_mode);
299 psbuf_put_4(pb, va->va_atime.tv_sec);
300 psbuf_put_4(pb, va->va_mtime.tv_sec);
307 psbuf_get_1(struct puffs_framebuf *pb, uint8_t *val)
310 ERETURN(puffs_framebuf_getdata(pb, val, 1));
314 psbuf_get_2(struct puffs_framebuf *pb, uint16_t *val)
318 rv = puffs_framebuf_getdata(pb, val, 2);
325 psbuf_get_4(struct puffs_framebuf *pb, uint32_t *val)
329 rv = puffs_framebuf_getdata(pb, val, 4);
336 psbuf_get_8(struct puffs_framebuf *pb, uint64_t *val)
340 rv = puffs_framebuf_getdata(pb, val, 8);
347 psbuf_get_str(struct puffs_framebuf *pb, char **strp, uint32_t *strlenp)
352 FAILRV(psbuf_get_4(pb, &len));
354 if (puffs_framebuf_remaining(pb) < len)
358 puffs_framebuf_getdata(pb, str, len);
369 psbuf_get_vattr(struct puffs_framebuf *pb, struct vattr *vap)
376 FAILRV(psbuf_get_4(pb, &flags));
379 FAILRV(psbuf_get_8(pb, &vap->va_size));
383 FAILRV(psbuf_get_4(pb, &vap->va_uid));
384 FAILRV(psbuf_get_4(pb, &vap->va_gid));
387 FAILRV(psbuf_get_4(pb, &vap->va_mode));
396 FAILRV(psbuf_get_4(pb, &val));
398 FAILRV(psbuf_get_4(pb, &val));
452 expectcode(struct puffs_framebuf *pb, int value)
457 type = psbuf_get_type(pb);
464 FAILRV(psbuf_get_4(pb, &error));
469 #define CHECKCODE(pb,val) \
472 rv = expectcode(pb, val); \
478 psbuf_expect_status(struct puffs_framebuf *pb)
482 if (psbuf_get_type(pb) != SSH_FXP_STATUS)
485 FAILRV(psbuf_get_4(pb, &error));
491 psbuf_expect_handle(struct puffs_framebuf *pb, char **hand, uint32_t *handlen)
494 CHECKCODE(pb, SSH_FXP_HANDLE);
495 FAILRV(psbuf_get_str(pb, hand, handlen));
502 psbuf_do_data(struct puffs_framebuf *pb, uint8_t *data, uint32_t *dlen)
508 if (psbuf_get_type(pb) != SSH_FXP_DATA) {
511 if (psbuf_get_type(pb) != SSH_FXP_STATUS)
514 if (psbuf_get_4(pb, &val) != 0)
523 if (psbuf_get_4(pb, &len) != 0)
534 bufoff = puffs_framebuf_telloff(pb);
535 if (puffs_framebuf_getwindow(pb, bufoff,
551 psbuf_expect_name(struct puffs_framebuf *pb, uint32_t *count)
554 CHECKCODE(pb, SSH_FXP_NAME);
555 FAILRV(psbuf_get_4(pb, count));
561 psbuf_expect_attrs(struct puffs_framebuf *pb, struct vattr *vap)
564 CHECKCODE(pb, SSH_FXP_ATTRS);
565 FAILRV(psbuf_get_vattr(pb, vap));
575 psbuf_req_data(struct puffs_framebuf *pb, int type, uint32_t reqid,
579 psbuf_put_1(pb, type);
580 psbuf_put_4(pb, reqid);
581 psbuf_put_data(pb, data, dlen);
585 psbuf_req_str(struct puffs_framebuf *pb, int type, uint32_t reqid,
589 psbuf_req_data(pb, type, reqid, str, strlen(str));