%{ #include #include #include #include #include #include #include %} function nfs_mntflags:string(rawdata) %{ char buf[1024], *ptr; int i, cc; static struct proc_nfs_info { int flag; char *str; char *nostr; } nfs_info[] = { { NFS_MOUNT_SOFT, ",soft", ",hard" }, { NFS_MOUNT_INTR, ",intr", "" }, { NFS_MOUNT_NOCTO, ",nocto", "" }, { NFS_MOUNT_NOAC, ",noac", "" }, { NFS_MOUNT_NONLM, ",nolock", "" }, { NFS_MOUNT_NOACL, ",noacl", "" }, { NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" }, { NFS_MOUNT_UNSHARED, ",nosharecache", "" }, { 0, "", "" } }; struct nfs_mount_data *data = (struct nfs_mount_data *)(long) THIS->rawdata; ptr = buf; for (i=0; nfs_info[i].flag != 0; i++) { //if (data->flags & nfs_info[i].flag) { cc = sprintf(ptr, "%s", nfs_info[i].str); ptr += cc; //} } strlcpy(THIS->__retvalue, buf,1024); %}