%{ #include #include /* #include */ #include #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33) #include #include #endif %} function nfsd4_secinfo_namelen:long (secinfo:long ) { return @cast(secinfo, "nfsd4_secinfo", "kernel:nfsd")->si_namelen } function nfsd4_secinfo_name:string (secinfo:long) { return kernel_string(@cast(secinfo, "nfsd4_secinfo", "kernel:nfsd")->si_name) } /* function nfsd4_secinfo_dump:string(_secinfo:long) %{ struct nfsd4_secinfo *secinfo = (struct nfsd4_secinfo *)(long) kread(&(THIS->_secinfo)); char buf[MAXSTRINGLEN], *si_name=NULL; int cc=0; if (secinfo <= 0) { sprintf(buf+cc, "secinfo NULL"); } else { if (secinfo->si_namelen) si_name = kread(&(secinfo->si_name)); sprintf(buf+cc, "secinfo %p namelen %d name %s", secinfo, secinfo->si_namelen, si_name); cc = strlen(buf); } snprintf(THIS->__retvalue, MAXSTRINGLEN, "%s", buf); CATCH_DEREF_FAULT(); %} */