Lines Matching defs:nmc

338 nfsm_chain_new_mbuf(struct nfsm_chain *nmc, size_t sizehint)
343 if (nmc->nmc_flags & NFSM_CHAIN_FLAG_ADD_CLUSTERS)
354 if (nmc->nmc_mcur) {
356 mbuf_setlen(nmc->nmc_mcur, nmc->nmc_ptr - (caddr_t)mbuf_data(nmc->nmc_mcur));
358 error = mbuf_setnext(nmc->nmc_mcur, mb);
366 nmc->nmc_mcur = mb;
367 nmc->nmc_ptr = mbuf_data(mb);
368 nmc->nmc_left = mbuf_trailingspace(mb);
379 nfsm_chain_add_opaque_f(struct nfsm_chain *nmc, const u_char *buf, uint32_t len)
387 if (!nmc->nmc_left) {
388 error = nfsm_chain_new_mbuf(nmc, paddedlen);
392 tlen = MIN(nmc->nmc_left, paddedlen);
397 bcopy(buf, nmc->nmc_ptr, tlen);
399 bzero(nmc->nmc_ptr, tlen);
401 nmc->nmc_ptr += tlen;
402 nmc->nmc_left -= tlen;
420 nfsm_chain_add_opaque_nopad_f(struct nfsm_chain *nmc, const u_char *buf, uint32_t len)
426 if (nmc->nmc_left <= 0) {
427 error = nfsm_chain_new_mbuf(nmc, len);
431 tlen = MIN(nmc->nmc_left, len);
432 bcopy(buf, nmc->nmc_ptr, tlen);
433 nmc->nmc_ptr += tlen;
434 nmc->nmc_left -= tlen;
447 nfsm_chain_add_uio(struct nfsm_chain *nmc, uio_t uio, uint32_t len)
455 if (!nmc->nmc_left) {
456 error = nfsm_chain_new_mbuf(nmc, paddedlen);
460 tlen = MIN(nmc->nmc_left, paddedlen);
465 uiomove(nmc->nmc_ptr, tlen, uio);
467 bzero(nmc->nmc_ptr, tlen);
469 nmc->nmc_ptr += tlen;
470 nmc->nmc_left -= tlen;
484 nfsm_chain_offset(struct nfsm_chain *nmc)
489 for (mb = nmc->nmc_mhead; mb; mb = mbuf_next(mb)) {
490 if (mb == nmc->nmc_mcur)
491 return (len + (nmc->nmc_ptr - (caddr_t) mbuf_data(mb)));
504 nfsm_chain_advance(struct nfsm_chain *nmc, uint32_t len)
509 if (nmc->nmc_left >= len) {
510 nmc->nmc_left -= len;
511 nmc->nmc_ptr += len;
514 len -= nmc->nmc_left;
515 nmc->nmc_mcur = mb = mbuf_next(nmc->nmc_mcur);
518 nmc->nmc_ptr = mbuf_data(mb);
519 nmc->nmc_left = mbuf_len(mb);
531 nfsm_chain_reverse(struct nfsm_chain *nmc, uint32_t len)
536 mlen = nmc->nmc_ptr - (caddr_t) mbuf_data(nmc->nmc_mcur);
538 nmc->nmc_ptr -= len;
539 nmc->nmc_left += len;
543 new_offset = nfsm_chain_offset(nmc) - len;
544 nfsm_chain_dissect_init(error, nmc, nmc->nmc_mhead);
548 return (nfsm_chain_advance(nmc, new_offset));
561 nfsm_chain_get_opaque_pointer_f(struct nfsm_chain *nmc, uint32_t len, u_char **pptr)
569 while (nmc->nmc_mcur && (nmc->nmc_left == 0)) {
570 mb = mbuf_next(nmc->nmc_mcur);
571 nmc->nmc_mcur = mb;
574 nmc->nmc_ptr = mbuf_data(mb);
575 nmc->nmc_left = mbuf_len(mb);
578 if (!nmc->nmc_mcur)
582 if (nmc->nmc_left >= len) {
584 *pptr = (u_char*)nmc->nmc_ptr;
585 error = nfsm_chain_advance(nmc, nfsm_rndup(len));
592 mbcur = nmc->nmc_mcur;
593 left = nmc->nmc_left;
614 bcopy(nmc->nmc_ptr, ptr, left);
631 * update nmc's state to point at the end of the mbuf
634 nmc->nmc_mcur = mbcur = mb;
635 nmc->nmc_left = 0;
636 nmc->nmc_ptr = (caddr_t)ptr;
641 *pptr = (u_char*)nmc->nmc_ptr;
644 * update nmc's state to point at the end of the mbuf
647 nmc->nmc_ptr += left;
648 nmc->nmc_left = 0;
668 bcopy(ptr, nmc->nmc_ptr, cplen);
679 nmc->nmc_ptr += cplen;
694 * update nmc's state to point after this contiguous data
697 * just set nmc to point at whatever remains in that mbuf.
699 nmc->nmc_mcur = mb;
700 nmc->nmc_ptr = mbuf_data(mb);
701 nmc->nmc_left = mbuf_len(mb);
705 error = nfsm_chain_advance(nmc, padlen);
717 nfsm_chain_get_opaque_f(struct nfsm_chain *nmc, uint32_t len, u_char *buf)
725 while (len && nmc->nmc_mcur) {
727 cplen = MIN(nmc->nmc_left, len);
729 bcopy(nmc->nmc_ptr, buf, cplen);
730 nmc->nmc_ptr += cplen;
731 nmc->nmc_left -= cplen;
737 mbuf_t mb = mbuf_next(nmc->nmc_mcur);
738 nmc->nmc_mcur = mb;
739 nmc->nmc_ptr = mb ? mbuf_data(mb) : NULL;
740 nmc->nmc_left = mb ? mbuf_len(mb) : 0;
749 nfsm_chain_adv(error, nmc, padlen);
761 nfsm_chain_get_uio(struct nfsm_chain *nmc, uint32_t len, uio_t uio)
769 while (len && nmc->nmc_mcur) {
771 cplen = MIN(nmc->nmc_left, len);
773 error = uiomove(nmc->nmc_ptr, cplen, uio);
776 nmc->nmc_ptr += cplen;
777 nmc->nmc_left -= cplen;
782 mbuf_t mb = mbuf_next(nmc->nmc_mcur);
783 nmc->nmc_mcur = mb;
784 nmc->nmc_ptr = mb ? mbuf_data(mb) : NULL;
785 nmc->nmc_left = mb ? mbuf_len(mb) : 0;
794 nfsm_chain_adv(error, nmc, padlen);
802 nfsm_chain_add_string_nfc(struct nfsm_chain *nmc, const uint8_t *s, uint32_t slen)
819 nfsm_chain_add_string(error, nmc, s, slen);
821 nfsm_chain_add_string(error, nmc, nfcname, nfclen);
832 nfsm_chain_add_v2sattr_f(struct nfsm_chain *nmc, struct vnode_attr *vap, uint32_t szrdev)
836 nfsm_chain_add_32(error, nmc, vtonfsv2_mode(vap->va_type,
838 nfsm_chain_add_32(error, nmc,
840 nfsm_chain_add_32(error, nmc,
842 nfsm_chain_add_32(error, nmc, szrdev);
843 nfsm_chain_add_v2time(error, nmc,
846 nfsm_chain_add_v2time(error, nmc,
857 nfsm_chain_add_v3sattr_f(struct nfsm_chain *nmc, struct vnode_attr *vap)
862 nfsm_chain_add_32(error, nmc, TRUE);
863 nfsm_chain_add_32(error, nmc, vap->va_mode);
865 nfsm_chain_add_32(error, nmc, FALSE);
868 nfsm_chain_add_32(error, nmc, TRUE);
869 nfsm_chain_add_32(error, nmc, vap->va_uid);
871 nfsm_chain_add_32(error, nmc, FALSE);
874 nfsm_chain_add_32(error, nmc, TRUE);
875 nfsm_chain_add_32(error, nmc, vap->va_gid);
877 nfsm_chain_add_32(error, nmc, FALSE);
880 nfsm_chain_add_32(error, nmc, TRUE);
881 nfsm_chain_add_64(error, nmc, vap->va_data_size);
883 nfsm_chain_add_32(error, nmc, FALSE);
886 nfsm_chain_add_32(error, nmc, NFS_TIME_SET_TO_SERVER);
887 nfsm_chain_add_32(error, nmc, NFS_TIME_SET_TO_SERVER);
890 nfsm_chain_add_32(error, nmc, NFS_TIME_SET_TO_CLIENT);
891 nfsm_chain_add_32(error, nmc, vap->va_access_time.tv_sec);
892 nfsm_chain_add_32(error, nmc, vap->va_access_time.tv_nsec);
894 nfsm_chain_add_32(error, nmc, NFS_TIME_DONT_CHANGE);
897 nfsm_chain_add_32(error, nmc, NFS_TIME_SET_TO_CLIENT);
898 nfsm_chain_add_32(error, nmc, vap->va_modify_time.tv_sec);
899 nfsm_chain_add_32(error, nmc, vap->va_modify_time.tv_nsec);
901 nfsm_chain_add_32(error, nmc, NFS_TIME_DONT_CHANGE);
916 struct nfsm_chain *nmc,
929 nfsm_chain_get_32(error, nmc, gotfh);
931 nfsm_chain_get_fh(error, nmc, nfsvers, fhp);
935 nfsm_chain_get_32(error, nmc, gotattr);
939 nfsm_chain_adv(error, nmc, NFSX_V3FATTR);
941 error = nfs_parsefattr(nmc, nfsvers, nvap);
958 struct nfsm_chain *nmc,
967 nfsm_chain_get_32(error, nmc, flag);
969 nfsm_chain_adv(error, nmc, 2 * NFSX_UNSIGNED);
970 nfsm_chain_get_32(error, nmc, premtime->tv_sec);
971 nfsm_chain_get_32(error, nmc, premtime->tv_nsec);
972 nfsm_chain_adv(error, nmc, 2 * NFSX_UNSIGNED);
977 nfsm_chain_postop_attr_update_flag(error, nmc, np, *newpostattr, xidp);
1215 nfs_parsefattr(struct nfsm_chain *nmc, int nfsvers, struct nfs_vattr *nvap)
1241 nfsm_chain_get_32(error, nmc, nvtype);
1242 nfsm_chain_get_32(error, nmc, vmode);
1273 nfsm_chain_get_32(error, nmc, nvap->nva_nlink);
1274 nfsm_chain_get_32(error, nmc, nvap->nva_uid);
1275 nfsm_chain_get_32(error, nmc, nvap->nva_gid);
1278 nfsm_chain_get_64(error, nmc, nvap->nva_size);
1279 nfsm_chain_get_64(error, nmc, nvap->nva_bytes);
1280 nfsm_chain_get_32(error, nmc, nvap->nva_rawdev.specdata1);
1281 nfsm_chain_get_32(error, nmc, nvap->nva_rawdev.specdata2);
1283 nfsm_chain_get_64(error, nmc, nvap->nva_fsid.major);
1285 nfsm_chain_get_64(error, nmc, nvap->nva_fileid);
1287 nfsm_chain_get_32(error, nmc, nvap->nva_size);
1288 nfsm_chain_adv(error, nmc, NFSX_UNSIGNED);
1289 nfsm_chain_get_32(error, nmc, rdev);
1293 nfsm_chain_get_32(error, nmc, val); /* blocks */
1296 nfsm_chain_get_32(error, nmc, val);
1300 nfsm_chain_get_32(error, nmc, val);
1307 nfsm_chain_get_time(error, nmc, nfsvers,
1310 nfsm_chain_get_time(error, nmc, nfsvers,
1313 nfsm_chain_get_time(error, nmc, nfsvers,
1976 struct nfsm_chain *nmc,
1985 nfsm_chain_add_32(error, nmc, FALSE);
1987 nfsm_chain_add_32(error, nmc, TRUE);
1988 nfsm_chain_add_64(error, nmc, prevap->va_data_size);
1989 nfsm_chain_add_time(error, nmc, NFS_VER3, &prevap->va_modify_time);
1990 nfsm_chain_add_time(error, nmc, NFS_VER3, &prevap->va_change_time);
1992 nfsm_chain_add_postop_attr(error, nd, nmc, postattrerr, postvap);
2003 struct nfsm_chain *nmc,
2026 nfsm_chain_get_opaque(error, nmc, len, cp);
2196 nfsm_chain_trim_data(struct nfsm_chain *nmc, int len, int *mlen)
2206 for (m = nmc->nmc_mhead; m && (m != nmc->nmc_mcur); m = mbuf_next(m))
2214 adjust = nmc->nmc_ptr - data;
2217 if (mbuf_setdata(m, nmc->nmc_ptr, dlen))
2229 if (m == nmc->nmc_mcur)
2230 nmc->nmc_left -= (cnt - len);
2238 if (m == nmc->nmc_mcur)
2239 nmc->nmc_left = 0;
2249 struct nfsm_chain *nmc,
2256 nfsm_chain_add_32(error, nmc, vtonfs_type(vap->va_type, nd->nd_vers));
2258 nfsm_chain_add_32(error, nmc, vap->va_mode & 07777);
2260 nfsm_chain_add_32(error, nmc, vtonfsv2_mode(vap->va_type, vap->va_mode));
2262 nfsm_chain_add_32(error, nmc, vap->va_nlink);
2263 nfsm_chain_add_32(error, nmc, vap->va_uid);
2264 nfsm_chain_add_32(error, nmc, vap->va_gid);
2266 nfsm_chain_add_64(error, nmc, vap->va_data_size);
2267 nfsm_chain_add_64(error, nmc, vap->va_data_alloc);
2268 nfsm_chain_add_32(error, nmc, major(vap->va_rdev));
2269 nfsm_chain_add_32(error, nmc, minor(vap->va_rdev));
2270 nfsm_chain_add_64(error, nmc, vap->va_fsid);
2271 nfsm_chain_add_64(error, nmc, vap->va_fileid);
2273 nfsm_chain_add_32(error, nmc, vap->va_data_size);
2274 nfsm_chain_add_32(error, nmc, NFS_FABLKSIZE);
2276 nfsm_chain_add_32(error, nmc, 0xffffffff);
2278 nfsm_chain_add_32(error, nmc, vap->va_rdev);
2279 nfsm_chain_add_32(error, nmc, vap->va_data_alloc / NFS_FABLKSIZE);
2280 nfsm_chain_add_32(error, nmc, vap->va_fsid);
2281 nfsm_chain_add_32(error, nmc, vap->va_fileid);
2283 nfsm_chain_add_time(error, nmc, nd->nd_vers, &vap->va_access_time);
2284 nfsm_chain_add_time(error, nmc, nd->nd_vers, &vap->va_modify_time);
2285 nfsm_chain_add_time(error, nmc, nd->nd_vers, &vap->va_change_time);
2293 struct nfsm_chain *nmc,
2307 nfsm_chain_get_32(error, nmc, val);
2314 nfsm_chain_get_32(error, nmc, val);
2317 nfsm_chain_get_32(error, nmc, val);
2321 nfsm_chain_get_32(error, nmc, val);
2325 nfsm_chain_get_time(error, nmc, NFS_VER2,
2330 nfsm_chain_get_time(error, nmc, NFS_VER2,
2339 nfsm_chain_get_32(error, nmc, val);
2341 nfsm_chain_get_32(error, nmc, val);
2344 nfsm_chain_get_32(error, nmc, val);
2346 nfsm_chain_get_32(error, nmc, val);
2349 nfsm_chain_get_32(error, nmc, val);
2351 nfsm_chain_get_32(error, nmc, val);
2354 nfsm_chain_get_32(error, nmc, val);
2356 nfsm_chain_get_64(error, nmc, val64);
2360 nfsm_chain_get_32(error, nmc, val);
2363 nfsm_chain_get_time(error, nmc, nd->nd_vers,
2374 nfsm_chain_get_32(error, nmc, val);
2377 nfsm_chain_get_time(error, nmc, nd->nd_vers,