require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_NFS_NFSM_SUBS_H_)) {
    eval 'sub _NFS_NFSM_SUBS_H_ () {1;}' unless defined(&_NFS_NFSM_SUBS_H_);
    eval 'sub M_HASCL {
        my($m) = @_;
	    eval q((($m)-> &m_flags &  &M_EXT));
    }' unless defined(&M_HASCL);
    eval 'sub NFSMADV {
        my($m, $s) = @_;
	    eval q(($m)-> &m_data += ($s));
    }' unless defined(&NFSMADV);
    eval 'sub NFSMSIZ {
        my($m) = @_;
	    eval q((( &M_HASCL($m)) ? ($m)-> ($m_ext->{ext_size}) : ((($m)-> &m_flags &  &M_PKTHDR) ?  &MHLEN :  &MLEN)));
    }' unless defined(&NFSMSIZ);
    eval 'sub NFS_V2CLAMP32 {
        my($x) = @_;
	    eval q((($x) >  &INT32_MAX ?  &INT32_MAX : ( &int32_t)($x)));
    }' unless defined(&NFS_V2CLAMP32);
    eval 'sub NFS_V2CLAMP16 {
        my($x) = @_;
	    eval q((($x) >  &INT16_MAX ?  &INT16_MAX : ( &int32_t)($x)));
    }' unless defined(&NFS_V2CLAMP16);
    eval 'sub nfsm_build {
        my($a,$c,$s) = @_;
	    eval q({  &if (($s) >  &M_TRAILINGSPACE( &mb)) { \'struct mbuf\' * &mb2;  &mb2 =  &m_get( &M_WAIT,  &MT_DATA);  &MCLAIM( &mb2,  &nfs_mowner);  &if (($s) >  &MLEN)  &panic(\\"build > MLEN\\");  ($mb->{m_next}) =  &mb2;  &mb =  &mb2;  ($mb->{m_len}) = 0;  &bpos =  &mtod( &mb, \'char\' *); } ($a) = ($c)( &bpos);  ($mb->{m_len}) += ($s);  &bpos += ($s); });
    }' unless defined(&nfsm_build);
    eval 'sub nfsm_aligned {
        my($p) = @_;
	    eval q( &ALIGNED_POINTER($p, &u_int32_t));
    }' unless defined(&nfsm_aligned);
    eval 'sub nfsm_dissect {
        my($a, $c, $s) = @_;
	    eval q({  &t1 =  &mtod( &md, \'char\' *) +  ($md->{m_len})- &dpos;  &if ( &t1 >= ($s)  &&  &nfsm_aligned( &dpos)) { ($a) = ($c)( &dpos);  &dpos += ($s); }  &else  &if (( &t1 =  &nfsm_disct( &md,  &dpos, ($s),  &t1,  &cp2)) != 0){  &error =  &t1;  &m_freem( &mrep);  &goto  &nfsmout; }  &else { ($a) = ($c) &cp2; } });
    }' unless defined(&nfsm_dissect);
    eval 'sub nfsm_fhtom {
        my($n, $v3) = @_;
	    eval q({  &if ($v3) {  &t2 =  &nfsm_rndup(($n)-> &n_fhsize) +  &NFSX_UNSIGNED;  &if ( &t2 <=  &M_TRAILINGSPACE( &mb)) {  &nfsm_build( &tl,  &u_int32_t *,  &t2); * &tl++ =  &txdr_unsigned(($n)-> &n_fhsize); *( &tl + (( &t2>>2) - 2)) = 0;  &memcpy( &tl,($n)-> &n_fhp, ($n)-> &n_fhsize); }  &else  &if (( &t2 =  &nfsm_strtmbuf( &mb,  &bpos, ( &void *)($n)-> &n_fhp, ($n)-> &n_fhsize)) != 0) {  &error =  &t2;  &m_freem( &mreq);  &goto  &nfsmout; } }  &else {  &nfsm_build( &cp,  &void *,  &NFSX_V2FH);  &memcpy( &cp, ($n)-> &n_fhp,  &NFSX_V2FH); } });
    }' unless defined(&nfsm_fhtom);
    eval 'sub nfsm_srvfhtom {
        my($f, $v3) = @_;
	    eval q({  &if ($v3) {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED +  &NFSRVFH_SIZE($f)); * &tl++ =  &txdr_unsigned( &NFSRVFH_SIZE($f));  &memcpy( &tl,  &NFSRVFH_DATA($f),  &NFSRVFH_SIZE($f)); }  &else {  &KASSERT( &NFSRVFH_SIZE($f) ==  &NFSX_V2FH);  &nfsm_build( &cp,  &void *,  &NFSX_V2FH);  &memcpy( &cp,  &NFSRVFH_DATA($f),  &NFSX_V2FH); } });
    }' unless defined(&nfsm_srvfhtom);
    eval 'sub nfsm_srvpostop_fh {
        my($f) = @_;
	    eval q({  &nfsm_build( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED +  &NFSRVFH_SIZE($f)); * &tl++ =  &nfs_true; * &tl++ =  &txdr_unsigned( &NFSRVFH_SIZE($f));  &memcpy( &tl,  &NFSRVFH_DATA($f),  &NFSRVFH_SIZE($f)); });
    }' unless defined(&nfsm_srvpostop_fh);
    eval 'sub nfsm_mtofh {
        my($d, $v, $v3, $f) = @_;
	    eval q({ \'struct nfsnode\' * &ttnp;  &nfsfh_t * &ttfhp; \'int\'  &ttfhsize; \'int\'  &hasattr = 0;  &if ($v3) {  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); ($f) =  &fxdr_unsigned(\'int\', * &tl); }  &else { ($f) = 1;  &hasattr = 1; }  &if ($f) {  &nfsm_getfh( &ttfhp,  &ttfhsize, ($v3));  &if (( &t1 =  &nfs_nget(($d)-> &v_mount,  &ttfhp,  &ttfhsize,  &ttnp)) != 0) {  &error =  &t1;  &m_freem( &mrep);  &goto  &nfsmout; } ($v) =  &NFSTOV( &ttnp); }  &if ($v3) {  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if ($f)  &hasattr =  &fxdr_unsigned(\'int\', * &tl);  &else  &if ( &fxdr_unsigned(\'int\', * &tl))  &nfsm_adv( &NFSX_V3FATTR); }  &if ($f  &&  &hasattr)  &nfsm_loadattr(($v), 0, 0); });
    }' unless defined(&nfsm_mtofh);
    eval 'sub nfsm_getfh {
        my($f, $s, $v3) = @_;
	    eval q({  &if ($v3) {  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if ((($s) =  &fxdr_unsigned(\'int\', * &tl)) <= 0|| ($s) >  &NFSX_V3FHMAX) {  &m_freem( &mrep);  &error =  &EBADRPC;  &goto  &nfsmout; } }  &else ($s) =  &NFSX_V2FH;  &nfsm_dissect(($f),  &nfsfh_t *,  &nfsm_rndup($s)); });
    }' unless defined(&nfsm_getfh);
    eval 'sub nfsm_loadattr {
        my($v, $a, $flags) = @_;
	    eval q({ \'struct vnode\' * &ttvp = ($v);  &if (( &t1 =  &nfsm_loadattrcache( &ttvp,  &md,  &dpos, ($a), ($flags))) != 0) {  &error =  &t1;  &m_freem( &mrep);  &goto  &nfsmout; } ($v) =  &ttvp; });
    }' unless defined(&nfsm_loadattr);
    eval 'sub nfsm_postop_attr {
        my($v, $f, $flags) = @_;
	    eval q({ \'struct vnode\' * &ttvp = ($v);  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if ((($f) =  &fxdr_unsigned(\'int\', * &tl)) != 0) {  &if (( &t1 =  &nfsm_loadattrcache( &ttvp,  &md,  &dpos, 0, ($flags))) != 0) {  &error =  &t1; ($f) = 0;  &m_freem( &mrep);  &goto  &nfsmout; } ($v) =  &ttvp; } });
    }' unless defined(&nfsm_postop_attr);
    eval 'sub NFSV3_WCCRATTR () {0;}' unless defined(&NFSV3_WCCRATTR);
    eval 'sub NFSV3_WCCCHK () {1;}' unless defined(&NFSV3_WCCCHK);
    eval 'sub nfsm_wcc_data {
        my($v, $f, $flags, $docheck) = @_;
	    eval q({ \'int\'  &ttattrf,  &ttretf = 0,  &renewctime = 0,  &renewnctime = 0; \'struct timespec\'  &ctime,  &mtime; \'struct nfsnode\' * &nfsp =  &VTONFS($v);  &bool  &haspreopattr =  &false;  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if (* &tl ==  &nfs_true) {  &haspreopattr =  &true;  &nfsm_dissect( &tl,  &u_int32_t *, 6*  &NFSX_UNSIGNED);  &fxdr_nfsv3time( &tl + 2,  &mtime);  &fxdr_nfsv3time( &tl + 4,  &ctime);  &if ( ($n$fsp->{n_ctime}) ==  ($ctime->{t$v_sec}))  &renewctime = 1;  &if (($v)-> &v_type ==  &VDIR) {  &if ( &timespeccmp( ($n$fsp->{n_nctime}),  &ctime, ==))  &renewnctime = 1; }  &if ($f) {  &ttretf =  &timespeccmp( ($n$fsp->{n_mtime}),  &mtime, ==); } }  &nfsm_postop_attr(($v),  &ttattrf, ($flags));  &nfsp =  &VTONFS($v);  &if ( &ttattrf) {  &if ( &haspreopattr  &&  &nfs_check_wccdata( &nfsp,  &ctime,  &mtime, ($docheck)))  &renewctime =  &renewnctime =  &ttretf = 0;  &if ( &renewctime)  ($n$fsp->{n_ctime}) =  ($n$fsp->{n_vattr}->{va_ctime}->{t$v_sec});  &if ( &renewnctime)  ($n$fsp->{n_nctime}) =  ($n$fsp->{n_vattr}->{va_ctime}); }  &if ($f) { ($f) =  &ttretf; }  &else { ($f) =  &ttattrf; } });
    }' unless defined(&nfsm_wcc_data);
    eval 'sub nfsm_v3attrbuild {
        my($a, $full) = @_;
	    eval q({  &if (($a)-> &va_mode != ( &mode_t) &VNOVAL) {  &nfsm_build( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED); * &tl++ =  &nfs_true; * &tl =  &txdr_unsigned(($a)-> &va_mode); }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &nfs_false; }  &if (($full)  && ($a)-> &va_uid != ( &uid_t) &VNOVAL) {  &nfsm_build( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED); * &tl++ =  &nfs_true; * &tl =  &txdr_unsigned(($a)-> &va_uid); }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &nfs_false; }  &if (($full)  && ($a)-> &va_gid != ( &gid_t) &VNOVAL) {  &nfsm_build( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED); * &tl++ =  &nfs_true; * &tl =  &txdr_unsigned(($a)-> &va_gid); }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &nfs_false; }  &if (($full)  && ($a)-> &va_size !=  &VNOVAL) {  &nfsm_build( &tl,  &u_int32_t *, 3*  &NFSX_UNSIGNED); * &tl++ =  &nfs_true;  &txdr_hyper(($a)-> &va_size,  &tl); }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &nfs_false; }  &if (($a)-> ($v$a_atime->{tv_sec}) !=  &VNOVAL) {  &if (($a)-> ($v$a_atime->{tv_sec}) !=  &time_second) {  &nfsm_build( &tl,  &u_int32_t *, 3*  &NFSX_UNSIGNED); * &tl++ =  &txdr_unsigned( &NFSV3SATTRTIME_TOCLIENT);  &txdr_nfsv3time(($a)-> &va_atime,  &tl); }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &txdr_unsigned( &NFSV3SATTRTIME_TOSERVER); } }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &txdr_unsigned( &NFSV3SATTRTIME_DONTCHANGE); }  &if (($a)-> ($v$a_mtime->{tv_sec}) !=  &VNOVAL) {  &if (($a)-> ($v$a_mtime->{tv_sec}) !=  &time_second) {  &nfsm_build( &tl,  &u_int32_t *, 3*  &NFSX_UNSIGNED); * &tl++ =  &txdr_unsigned( &NFSV3SATTRTIME_TOCLIENT);  &txdr_nfsv3time(($a)-> &va_mtime,  &tl); }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &txdr_unsigned( &NFSV3SATTRTIME_TOSERVER); } }  &else {  &nfsm_build( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); * &tl =  &txdr_unsigned( &NFSV3SATTRTIME_DONTCHANGE); } });
    }' unless defined(&nfsm_v3attrbuild);
    eval 'sub nfsm_strsiz {
        my($s,$m) = @_;
	    eval q({  &nfsm_dissect( &tl, &uint32_t *, &NFSX_UNSIGNED);  &if (( &uint32_t)(($s) =  &fxdr_unsigned( &uint32_t,* &tl)) > ($m)) {  &m_freem( &mrep);  &error =  &EBADRPC;  &goto  &nfsmout; } });
    }' unless defined(&nfsm_strsiz);
    eval 'sub nfsm_srvnamesiz {
        my($s) = @_;
	    eval q({  &nfsm_dissect( &tl, &uint32_t *, &NFSX_UNSIGNED);  &if (( &uint32_t)(($s) =  &fxdr_unsigned( &uint32_t,* &tl)) >  &NFS_MAXNAMLEN)  &error =  &NFSERR_NAMETOL;  &if ( &error)  &nfsm_reply(0); });
    }' unless defined(&nfsm_srvnamesiz);
    eval 'sub nfsm_mtouio {
        my($p,$s) = @_;
	    eval q( &if (($s) > 0 && ( &t1 =  &nfsm_mbuftouio( &md,($p),($s), &dpos)) != 0) {  &error =  &t1;  &m_freem( &mrep);  &goto  &nfsmout; });
    }' unless defined(&nfsm_mtouio);
    eval 'sub nfsm_uiotom {
        my($p,$s) = @_;
	    eval q( &if (( &t1 =  &nfsm_uiotombuf(($p), &mb,($s), &bpos)) != 0) {  &error =  &t1;  &m_freem( &mreq);  &goto  &nfsmout; });
    }' unless defined(&nfsm_uiotom);
    eval 'sub nfsm_reqhead {
        my($n,$a,$s) = @_;
	    eval q( &mb =  &mreq =  &nfsm_reqh(($n),($a),($s), &bpos));
    }' unless defined(&nfsm_reqhead);
    eval 'sub nfsm_reqdone () { &m_freem( &mrep);  &nfsmout:;}' unless defined(&nfsm_reqdone);
    eval 'sub nfsm_rndup {
        my($a) = @_;
	    eval q(((($a)+3)(~0x3)));
    }' unless defined(&nfsm_rndup);
    eval 'sub nfsm_padlen {
        my($a) = @_;
	    eval q(( &nfsm_rndup($a) - ($a)));
    }' unless defined(&nfsm_padlen);
    eval 'sub nfsm_request1 {
        my($v, $t, $p, $c, $rexmitp) = @_;
	    eval q( &if (( &error =  &nfs_request(($v),  &mreq, ($t), ($p), ($c),  &mrep,  &md,  &dpos, ($rexmitp))) != 0) {  &if ( &error &  &NFSERR_RETERR)  &error &= ~ &NFSERR_RETERR;  &else  &goto  &nfsmout; });
    }' unless defined(&nfsm_request1);
    eval 'sub nfsm_request {
        my($v, $t, $p, $c) = @_;
	    eval q( &nfsm_request1(($v), ($t), ($p), ($c),  &NULL));
    }' unless defined(&nfsm_request);
    eval 'sub nfsm_strtom {
        my($a,$s,$m) = @_;
	    eval q( &if (($s) > ($m)) {  &m_freem( &mreq);  &error =  &ENAMETOOLONG;  &goto  &nfsmout; }  &t2 =  &nfsm_rndup($s)+ &NFSX_UNSIGNED;  &if ( &t2 <=  &M_TRAILINGSPACE( &mb)) {  &nfsm_build( &tl, &u_int32_t *, &t2); * &tl++ =  &txdr_unsigned($s); *( &tl+(( &t2>>2)-2)) = 0;  &memcpy( &tl, ( &const \'char\' *)($a), ($s)); }  &else  &if (( &t2 =  &nfsm_strtmbuf( &mb,  &bpos, ($a), ($s))) != 0) {  &error =  &t2;  &m_freem( &mreq);  &goto  &nfsmout; });
    }' unless defined(&nfsm_strtom);
    eval 'sub nfsm_srvdone () { &nfsmout:  &return( &error);}' unless defined(&nfsm_srvdone);
    eval 'sub nfsm_reply {
        my($s) = @_;
	    eval q({  ($nfsd->{nd_repstat}) =  &error;  &if ( &error  && !( ($nfsd->{nd_flag}) &  &ND_NFSV3)) ( &void)  &nfs_rephead(0,  &nfsd,  &slp,  &error,  &cache,  &frev,  &mrq,  &mb,  &bpos);  &else ( &void)  &nfs_rephead(($s),  &nfsd,  &slp,  &error,  &cache,  &frev,  &mrq,  &mb,  &bpos);  &if ( &mrep !=  &NULL) {  &m_freem( &mrep);  &mrep =  &NULL; }  &mreq = * &mrq;  &if ( &error  && (!( ($nfsd->{nd_flag}) &  &ND_NFSV3) ||  &error ==  &EBADRPC)) {  &error = 0;  &goto  &nfsmout; } });
    }' unless defined(&nfsm_reply);
    eval 'sub nfsm_writereply {
        my($s, $v3) = @_;
	    eval q({  ($nfsd->{nd_repstat}) =  &error;  &if ( &error  && !($v3)) ( &void)  &nfs_rephead(0,  &nfsd,  &slp,  &error,  &cache,  &frev,  &mreq,  &mb,  &bpos);  &else ( &void)  &nfs_rephead(($s),  &nfsd,  &slp,  &error,  &cache,  &frev,  &mreq,  &mb,  &bpos); });
    }' unless defined(&nfsm_writereply);
    eval 'sub nfsm_adv {
        my($s) = @_;
	    eval q({  &t1 =  &mtod( &md, \'char\' *) +  ($md->{m_len}) -  &dpos;  &if ( &t1 >= ($s)) {  &dpos += ($s); }  &else  &if (( &t1 =  &nfs_adv( &md,  &dpos, ($s),  &t1)) != 0) {  &error =  &t1;  &m_freem( &mrep);  &goto  &nfsmout; } });
    }' unless defined(&nfsm_adv);
    eval 'sub nfsm_srvmtofh {
        my($nsfh) = @_;
	    eval q({  &uint32_t  &fhlen =  &NFSX_V3FH;  &if ( ($nfsd->{nd_flag}) &  &ND_NFSV3) {  &nfsm_dissect( &tl,  &uint32_t *,  &NFSX_UNSIGNED);  &fhlen =  &fxdr_unsigned( &uint32_t, * &tl);  &CTASSERT( &NFSX_V3FHMAX <=  &FHANDLE_SIZE_MAX);  &if ( &fhlen >  &NFSX_V3FHMAX || ( &fhlen <  &FHANDLE_SIZE_MIN  &&  &fhlen > 0)) {  &error =  &EBADRPC;  &nfsm_reply(0); } }  &else {  &CTASSERT( &NFSX_V2FH >=  &FHANDLE_SIZE_MIN);  &fhlen =  &NFSX_V2FH; } ($nsfh)-> &nsfh_size =  &fhlen;  &if ( &fhlen != 0) {  &KASSERT( &fhlen >=  &FHANDLE_SIZE_MIN);  &KASSERT( &fhlen <=  &FHANDLE_SIZE_MAX);  &nfsm_dissect( &tl,  &u_int32_t *,  &fhlen);  &memcpy( &NFSRVFH_DATA($nsfh),  &tl,  &fhlen); } });
    }' unless defined(&nfsm_srvmtofh);
    eval 'sub nfsm_clget () { &if ( &bp >=  &be) {  &if ( &mp ==  &mb)  ($mp->{m_len}) +=  &bp- &bpos;  &mp =  &m_get( &M_WAIT,  &MT_DATA);  &MCLAIM( &mp,  &nfs_mowner);  &m_clget( &mp,  &M_WAIT);  ($mp->{m_len}) =  &NFSMSIZ( &mp);  ($mp2->{m_next}) =  &mp;  &mp2 =  &mp;  &bp =  &mtod( &mp, \'char\' *);  &be =  &bp+ ($mp->{m_len}); }  &tl = ( &u_int32_t *) &bp;}' unless defined(&nfsm_clget);
    eval 'sub nfsm_srvfillattr {
        my($a, $f) = @_;
	    eval q( &nfsm_srvfattr( &nfsd, ($a), ($f)));
    }' unless defined(&nfsm_srvfillattr);
    eval 'sub nfsm_srvwcc_data {
        my($br, $b, $ar, $a) = @_;
	    eval q( &nfsm_srvwcc( &nfsd, ($br), ($b), ($ar), ($a),  &mb,  &bpos));
    }' unless defined(&nfsm_srvwcc_data);
    eval 'sub nfsm_srvpostop_attr {
        my($r, $a) = @_;
	    eval q( &nfsm_srvpostopattr( &nfsd, ($r), ($a),  &mb,  &bpos));
    }' unless defined(&nfsm_srvpostop_attr);
    eval 'sub nfsm_srvsattr {
        my($a) = @_;
	    eval q({  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if (* &tl ==  &nfs_true) {  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); ($a)-> &va_mode =  &nfstov_mode(* &tl); }  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if (* &tl ==  &nfs_true) {  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); ($a)-> &va_uid =  &fxdr_unsigned( &uid_t, * &tl); }  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if (* &tl ==  &nfs_true) {  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED); ($a)-> &va_gid =  &fxdr_unsigned( &gid_t, * &tl); }  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &if (* &tl ==  &nfs_true) {  &nfsm_dissect( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED); ($a)-> &va_size =  &fxdr_hyper( &tl); }  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &switch ( &fxdr_unsigned(\'int\', * &tl)) {  &case  &NFSV3SATTRTIME_TOCLIENT:  &nfsm_dissect( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED);  &fxdr_nfsv3time( &tl, ($a)-> &va_atime);  &break;  &case  &NFSV3SATTRTIME_TOSERVER:  &getnanotime(($a)-> &va_atime); ($a)-> &va_vaflags |=  &VA_UTIMES_NULL;  &break; };  &nfsm_dissect( &tl,  &u_int32_t *,  &NFSX_UNSIGNED);  &switch ( &fxdr_unsigned(\'int\', * &tl)) {  &case  &NFSV3SATTRTIME_TOCLIENT:  &nfsm_dissect( &tl,  &u_int32_t *, 2*  &NFSX_UNSIGNED);  &fxdr_nfsv3time( &tl, ($a)-> &va_mtime); ($a)-> &va_vaflags &= ~ &VA_UTIMES_NULL;  &break;  &case  &NFSV3SATTRTIME_TOSERVER:  &getnanotime(($a)-> &va_mtime); ($a)-> &va_vaflags |=  &VA_UTIMES_NULL;  &break; }; });
    }' unless defined(&nfsm_srvsattr);
}
1;
