require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_FS_PUFFS_PUFFS_MSGIF_H_)) {
    eval 'sub _FS_PUFFS_PUFFS_MSGIF_H_ () {1;}' unless defined(&_FS_PUFFS_PUFFS_MSGIF_H_);
    require 'sys/param.ph';
    require 'sys/time.ph';
    require 'sys/ioccom.ph';
    require 'sys/uio.ph';
    require 'sys/vnode.ph';
    require 'sys/ucred.ph';
    require 'sys/statvfs.ph';
    require 'sys/dirent.ph';
    require 'sys/fcntl.ph';
    require 'dev/putter/putter.ph';
    require 'uvm/uvm_prot.ph';
    eval 'sub PUFFSOP_VFS () {0x1;}' unless defined(&PUFFSOP_VFS);
    eval 'sub PUFFSOP_VN () {0x2;}' unless defined(&PUFFSOP_VN);
    eval 'sub PUFFSOP_CACHE () {0x3;}' unless defined(&PUFFSOP_CACHE);
    eval 'sub PUFFSOP_ERROR () {0x4;}' unless defined(&PUFFSOP_ERROR);
    eval 'sub PUFFSOP_FLUSH () {0x5;}' unless defined(&PUFFSOP_FLUSH);
    eval 'sub PUFFSOP_SUSPEND () {0x6;}' unless defined(&PUFFSOP_SUSPEND);
    eval 'sub PUFFSOP_UNMOUNT () {0x7;}' unless defined(&PUFFSOP_UNMOUNT);
    eval 'sub PUFFSOPFLAG_FAF () {0x10;}' unless defined(&PUFFSOPFLAG_FAF);
    eval 'sub PUFFSOPFLAG_ISRESPONSE () {0x20;}' unless defined(&PUFFSOPFLAG_ISRESPONSE);
    eval 'sub PUFFSOP_OPCMASK () {0x7;}' unless defined(&PUFFSOP_OPCMASK);
    eval 'sub PUFFSOP_OPCLASS {
        my($a) = @_;
	    eval q((($a) &  &PUFFSOP_OPCMASK));
    }' unless defined(&PUFFSOP_OPCLASS);
    eval 'sub PUFFSOP_WANTREPLY {
        my($a) = @_;
	    eval q(((($a) &  &PUFFSOPFLAG_FAF) == 0));
    }' unless defined(&PUFFSOP_WANTREPLY);
    eval("sub PUFFS_VFS_MOUNT () { 0; }") unless defined(&PUFFS_VFS_MOUNT);
    eval("sub PUFFS_VFS_START () { 1; }") unless defined(&PUFFS_VFS_START);
    eval("sub PUFFS_VFS_UNMOUNT () { 2; }") unless defined(&PUFFS_VFS_UNMOUNT);
    eval("sub PUFFS_VFS_ROOT () { 3; }") unless defined(&PUFFS_VFS_ROOT);
    eval("sub PUFFS_VFS_QUOTACTL () { 4; }") unless defined(&PUFFS_VFS_QUOTACTL);
    eval("sub PUFFS_VFS_STATVFS () { 5; }") unless defined(&PUFFS_VFS_STATVFS);
    eval("sub PUFFS_VFS_SYNC () { 6; }") unless defined(&PUFFS_VFS_SYNC);
    eval("sub PUFFS_VFS_VGET () { 7; }") unless defined(&PUFFS_VFS_VGET);
    eval("sub PUFFS_VFS_FHTOVP () { 8; }") unless defined(&PUFFS_VFS_FHTOVP);
    eval("sub PUFFS_VFS_VPTOFH () { 9; }") unless defined(&PUFFS_VFS_VPTOFH);
    eval("sub PUFFS_VFS_INIT () { 10; }") unless defined(&PUFFS_VFS_INIT);
    eval("sub PUFFS_VFS_DONE () { 11; }") unless defined(&PUFFS_VFS_DONE);
    eval("sub PUFFS_VFS_SNAPSHOT () { 12; }") unless defined(&PUFFS_VFS_SNAPSHOT);
    eval("sub PUFFS_VFS_EXTATTRCTL () { 13; }") unless defined(&PUFFS_VFS_EXTATTRCTL);
    eval("sub PUFFS_VFS_SUSPEND () { 14; }") unless defined(&PUFFS_VFS_SUSPEND);
    eval 'sub PUFFS_VFS_MAX () { &PUFFS_VFS_SUSPEND;}' unless defined(&PUFFS_VFS_MAX);
    eval("sub PUFFS_VN_LOOKUP () { 0; }") unless defined(&PUFFS_VN_LOOKUP);
    eval("sub PUFFS_VN_CREATE () { 1; }") unless defined(&PUFFS_VN_CREATE);
    eval("sub PUFFS_VN_MKNOD () { 2; }") unless defined(&PUFFS_VN_MKNOD);
    eval("sub PUFFS_VN_OPEN () { 3; }") unless defined(&PUFFS_VN_OPEN);
    eval("sub PUFFS_VN_CLOSE () { 4; }") unless defined(&PUFFS_VN_CLOSE);
    eval("sub PUFFS_VN_ACCESS () { 5; }") unless defined(&PUFFS_VN_ACCESS);
    eval("sub PUFFS_VN_GETATTR () { 6; }") unless defined(&PUFFS_VN_GETATTR);
    eval("sub PUFFS_VN_SETATTR () { 7; }") unless defined(&PUFFS_VN_SETATTR);
    eval("sub PUFFS_VN_READ () { 8; }") unless defined(&PUFFS_VN_READ);
    eval("sub PUFFS_VN_WRITE () { 9; }") unless defined(&PUFFS_VN_WRITE);
    eval("sub PUFFS_VN_IOCTL () { 10; }") unless defined(&PUFFS_VN_IOCTL);
    eval("sub PUFFS_VN_FCNTL () { 11; }") unless defined(&PUFFS_VN_FCNTL);
    eval("sub PUFFS_VN_POLL () { 12; }") unless defined(&PUFFS_VN_POLL);
    eval("sub PUFFS_VN_KQFILTER () { 13; }") unless defined(&PUFFS_VN_KQFILTER);
    eval("sub PUFFS_VN_REVOKE () { 14; }") unless defined(&PUFFS_VN_REVOKE);
    eval("sub PUFFS_VN_MMAP () { 15; }") unless defined(&PUFFS_VN_MMAP);
    eval("sub PUFFS_VN_FSYNC () { 16; }") unless defined(&PUFFS_VN_FSYNC);
    eval("sub PUFFS_VN_SEEK () { 17; }") unless defined(&PUFFS_VN_SEEK);
    eval("sub PUFFS_VN_REMOVE () { 18; }") unless defined(&PUFFS_VN_REMOVE);
    eval("sub PUFFS_VN_LINK () { 19; }") unless defined(&PUFFS_VN_LINK);
    eval("sub PUFFS_VN_RENAME () { 20; }") unless defined(&PUFFS_VN_RENAME);
    eval("sub PUFFS_VN_MKDIR () { 21; }") unless defined(&PUFFS_VN_MKDIR);
    eval("sub PUFFS_VN_RMDIR () { 22; }") unless defined(&PUFFS_VN_RMDIR);
    eval("sub PUFFS_VN_SYMLINK () { 23; }") unless defined(&PUFFS_VN_SYMLINK);
    eval("sub PUFFS_VN_READDIR () { 24; }") unless defined(&PUFFS_VN_READDIR);
    eval("sub PUFFS_VN_READLINK () { 25; }") unless defined(&PUFFS_VN_READLINK);
    eval("sub PUFFS_VN_ABORTOP () { 26; }") unless defined(&PUFFS_VN_ABORTOP);
    eval("sub PUFFS_VN_INACTIVE () { 27; }") unless defined(&PUFFS_VN_INACTIVE);
    eval("sub PUFFS_VN_RECLAIM () { 28; }") unless defined(&PUFFS_VN_RECLAIM);
    eval("sub PUFFS_VN_LOCK () { 29; }") unless defined(&PUFFS_VN_LOCK);
    eval("sub PUFFS_VN_UNLOCK () { 30; }") unless defined(&PUFFS_VN_UNLOCK);
    eval("sub PUFFS_VN_BMAP () { 31; }") unless defined(&PUFFS_VN_BMAP);
    eval("sub PUFFS_VN_STRATEGY () { 32; }") unless defined(&PUFFS_VN_STRATEGY);
    eval("sub PUFFS_VN_PRINT () { 33; }") unless defined(&PUFFS_VN_PRINT);
    eval("sub PUFFS_VN_ISLOCKED () { 34; }") unless defined(&PUFFS_VN_ISLOCKED);
    eval("sub PUFFS_VN_PATHCONF () { 35; }") unless defined(&PUFFS_VN_PATHCONF);
    eval("sub PUFFS_VN_ADVLOCK () { 36; }") unless defined(&PUFFS_VN_ADVLOCK);
    eval("sub PUFFS_VN_LEASE () { 37; }") unless defined(&PUFFS_VN_LEASE);
    eval("sub PUFFS_VN_WHITEOUT () { 38; }") unless defined(&PUFFS_VN_WHITEOUT);
    eval("sub PUFFS_VN_GETPAGES () { 39; }") unless defined(&PUFFS_VN_GETPAGES);
    eval("sub PUFFS_VN_PUTPAGES () { 40; }") unless defined(&PUFFS_VN_PUTPAGES);
    eval("sub PUFFS_VN_GETEXTATTR () { 41; }") unless defined(&PUFFS_VN_GETEXTATTR);
    eval("sub PUFFS_VN_LISTEXTATTR () { 42; }") unless defined(&PUFFS_VN_LISTEXTATTR);
    eval("sub PUFFS_VN_OPENEXTATTR () { 43; }") unless defined(&PUFFS_VN_OPENEXTATTR);
    eval("sub PUFFS_VN_DELETEEXTATTR () { 44; }") unless defined(&PUFFS_VN_DELETEEXTATTR);
    eval("sub PUFFS_VN_SETEXTATTR () { 45; }") unless defined(&PUFFS_VN_SETEXTATTR);
    eval("sub PUFFS_VN_CLOSEEXTATTR () { 46; }") unless defined(&PUFFS_VN_CLOSEEXTATTR);
    eval("sub PUFFS_VN_FALLOCATE () { 47; }") unless defined(&PUFFS_VN_FALLOCATE);
    eval("sub PUFFS_VN_FDISCARD () { 48; }") unless defined(&PUFFS_VN_FDISCARD);
    eval 'sub PUFFS_VN_MAX () { &PUFFS_VN_FDISCARD;}' unless defined(&PUFFS_VN_MAX);
    eval 'sub PUFFS_VN_SPARE () {30;}' unless defined(&PUFFS_VN_SPARE);
    eval("sub PUFFS_ERR_ERROR () { 0; }") unless defined(&PUFFS_ERR_ERROR);
    eval("sub PUFFS_ERR_MAKENODE () { 1; }") unless defined(&PUFFS_ERR_MAKENODE);
    eval("sub PUFFS_ERR_LOOKUP () { 2; }") unless defined(&PUFFS_ERR_LOOKUP);
    eval("sub PUFFS_ERR_READDIR () { 3; }") unless defined(&PUFFS_ERR_READDIR);
    eval("sub PUFFS_ERR_READLINK () { 4; }") unless defined(&PUFFS_ERR_READLINK);
    eval("sub PUFFS_ERR_READ () { 5; }") unless defined(&PUFFS_ERR_READ);
    eval("sub PUFFS_ERR_WRITE () { 6; }") unless defined(&PUFFS_ERR_WRITE);
    eval("sub PUFFS_ERR_VPTOFH () { 7; }") unless defined(&PUFFS_ERR_VPTOFH);
    eval("sub PUFFS_ERR_GETEXTATTR () { 8; }") unless defined(&PUFFS_ERR_GETEXTATTR);
    eval("sub PUFFS_ERR_LISTEXTATTR () { 9; }") unless defined(&PUFFS_ERR_LISTEXTATTR);
    eval 'sub PUFFS_ERR_MAX () { &PUFFS_ERR_LISTEXTATTR;}' unless defined(&PUFFS_ERR_MAX);
    eval 'sub PUFFSVERSION () {30;}' unless defined(&PUFFSVERSION);
    eval 'sub PUFFSNAMESIZE () {32;}' unless defined(&PUFFSNAMESIZE);
    eval 'sub PUFFS_TYPEPREFIX () {"puffs|";}' unless defined(&PUFFS_TYPEPREFIX);
    eval 'sub PUFFS_TYPELEN () {( &_VFS_NAMELEN - ($sizeof{ &PUFFS_TYPEPREFIX}+1));}' unless defined(&PUFFS_TYPELEN);
    eval 'sub PUFFS_NAMELEN () {( &_VFS_MNAMELEN-1);}' unless defined(&PUFFS_NAMELEN);
    unless(defined(&_KERNEL)) {
	require 'string.ph';
    }
    eval 'sub statvfs_to_puffs_statvfs {
        my($s,$ps) = @_;
	    eval q({  ($p$s->{f_flag}) =  ($s->{f_flag});  ($p$s->{f_bsize}) =  ($s->{f_bsize});  ($p$s->{f_frsize}) =  ($s->{f_frsize});  ($p$s->{f_iosize}) =  ($s->{f_iosize});  ($p$s->{f_blocks}) =  ($s->{f_blocks});  ($p$s->{f_bfree}) =  ($s->{f_bfree});  ($p$s->{f_bavail}) =  ($s->{f_bavail});  ($p$s->{f_bresvd}) =  ($s->{f_bresvd});  ($p$s->{f_files}) =  ($s->{f_files});  ($p$s->{f_ffree}) =  ($s->{f_ffree});  ($p$s->{f_favail}) =  ($s->{f_favail});  ($p$s->{f_fresvd}) =  ($s->{f_fresvd});  ($p$s->{f_syncreads}) =  ($s->{f_syncreads});  ($p$s->{f_syncwrites}) =  ($s->{f_syncwrites});  ($p$s->{f_asyncreads}) =  ($s->{f_asyncreads});  ($p$s->{f_asyncwrites}) =  ($s->{f_asyncwrites});  ($p$s->{f_fsidx}) =  ($s->{f_fsidx});  ($p$s->{f_fsid}) =  ($s->{f_fsid});  ($p$s->{f_namemax}) =  ($s->{f_namemax});  ($p$s->{f_owner}) =  ($s->{f_owner});  &memset( ($p$s->{f_spare}), 0, $sizeof{ ($p$s->{f_spare})});  &memcpy( ($p$s->{f_fstypename}),  ($s->{f_fstypename}), $sizeof{ ($p$s->{f_fstypename})});  &memcpy( ($p$s->{f_mntonname}),  ($s->{f_mntonname}), $sizeof{ ($p$s->{f_mntonname})});  &memcpy( ($p$s->{f_mntfromname}),  ($s->{f_mntfromname}), $sizeof{ ($p$s->{f_mntfromname})}); });
    }' unless defined(&statvfs_to_puffs_statvfs);
    eval 'sub puffs_statvfs_to_statvfs {
        my($ps,$s) = @_;
	    eval q({  ($s->{f_flag}) =  ($p$s->{f_flag});  ($s->{f_bsize}) =  ($p$s->{f_bsize});  ($s->{f_frsize}) =  ($p$s->{f_frsize});  ($s->{f_iosize}) =  ($p$s->{f_iosize});  ($s->{f_blocks}) =  ($p$s->{f_blocks});  ($s->{f_bfree}) =  ($p$s->{f_bfree});  ($s->{f_bavail}) =  ($p$s->{f_bavail});  ($s->{f_bresvd}) =  ($p$s->{f_bresvd});  ($s->{f_files}) =  ($p$s->{f_files});  ($s->{f_ffree}) =  ($p$s->{f_ffree});  ($s->{f_favail}) =  ($p$s->{f_favail});  ($s->{f_fresvd}) =  ($p$s->{f_fresvd});  ($s->{f_syncreads}) =  ($p$s->{f_syncreads});  ($s->{f_syncwrites}) =  ($p$s->{f_syncwrites});  ($s->{f_asyncreads}) =  ($p$s->{f_asyncreads});  ($s->{f_asyncwrites}) =  ($p$s->{f_asyncwrites});  ($s->{f_fsidx}) =  ($p$s->{f_fsidx});  ($s->{f_fsid}) =  ($p$s->{f_fsid});  ($s->{f_namemax}) =  ($p$s->{f_namemax});  ($s->{f_owner}) =  ($p$s->{f_owner});  &memset( ($s->{f_spare}), 0, $sizeof{ ($s->{f_spare})});  &memcpy( ($s->{f_fstypename}),  ($p$s->{f_fstypename}), $sizeof{ ($s->{f_fstypename})});  &memcpy( ($s->{f_mntonname}),  ($p$s->{f_mntonname}), $sizeof{ ($s->{f_mntonname})});  &memcpy( ($s->{f_mntfromname}),  ($p$s->{f_mntfromname}), $sizeof{ ($s->{f_mntfromname})});  &memset( ($s->{f_mntfromlabel}), 0, $sizeof{ ($s->{f_mntfromlabel})}); });
    }' unless defined(&puffs_statvfs_to_statvfs);
    eval 'sub pa_root_rdev () { ($devunion->{dev});}' unless defined(&pa_root_rdev);
    eval 'sub PUFFS_KFLAG_NOCACHE_NAME () {0x1;}' unless defined(&PUFFS_KFLAG_NOCACHE_NAME);
    eval 'sub PUFFS_KFLAG_NOCACHE_PAGE () {0x2;}' unless defined(&PUFFS_KFLAG_NOCACHE_PAGE);
    eval 'sub PUFFS_KFLAG_NOCACHE () {0x3;}' unless defined(&PUFFS_KFLAG_NOCACHE);
    eval 'sub PUFFS_KFLAG_ALLOPS () {0x4;}' unless defined(&PUFFS_KFLAG_ALLOPS);
    eval 'sub PUFFS_KFLAG_WTCACHE () {0x8;}' unless defined(&PUFFS_KFLAG_WTCACHE);
    eval 'sub PUFFS_KFLAG_IAONDEMAND () {0x10;}' unless defined(&PUFFS_KFLAG_IAONDEMAND);
    eval 'sub PUFFS_KFLAG_LOOKUP_FULLPNBUF () {0x20;}' unless defined(&PUFFS_KFLAG_LOOKUP_FULLPNBUF);
    eval 'sub PUFFS_KFLAG_NOCACHE_ATTR () {0x40;}' unless defined(&PUFFS_KFLAG_NOCACHE_ATTR);
    eval 'sub PUFFS_KFLAG_CACHE_FS_TTL () {0x80;}' unless defined(&PUFFS_KFLAG_CACHE_FS_TTL);
    eval 'sub PUFFS_KFLAG_CACHE_DOTDOT () {0x100;}' unless defined(&PUFFS_KFLAG_CACHE_DOTDOT);
    eval 'sub PUFFS_KFLAG_NOFLUSH_META () {0x200;}' unless defined(&PUFFS_KFLAG_NOFLUSH_META);
    eval 'sub PUFFS_KFLAG_MASK () {0x3bf;}' unless defined(&PUFFS_KFLAG_MASK);
    eval 'sub PUFFS_FHFLAG_DYNAMIC () {0x1;}' unless defined(&PUFFS_FHFLAG_DYNAMIC);
    eval 'sub PUFFS_FHFLAG_NFSV2 () {0x2;}' unless defined(&PUFFS_FHFLAG_NFSV2);
    eval 'sub PUFFS_FHFLAG_NFSV3 () {0x4;}' unless defined(&PUFFS_FHFLAG_NFSV3);
    eval 'sub PUFFS_FHFLAG_PROTOMASK () {0x6;}' unless defined(&PUFFS_FHFLAG_PROTOMASK);
    eval 'sub PUFFS_FHFLAG_PASSTHROUGH () {0x8;}' unless defined(&PUFFS_FHFLAG_PASSTHROUGH);
    eval 'sub PUFFS_FHFLAG_MASK () {0xf;}' unless defined(&PUFFS_FHFLAG_MASK);
    eval 'sub PUFFS_FHSIZE_MAX () {1020;}' unless defined(&PUFFS_FHSIZE_MAX);
    eval 'sub PUFFS_SETBACK_INACT_N1 () {0x1;}' unless defined(&PUFFS_SETBACK_INACT_N1);
    eval 'sub PUFFS_SETBACK_INACT_N2 () {0x2;}' unless defined(&PUFFS_SETBACK_INACT_N2);
    eval 'sub PUFFS_SETBACK_NOREF_N1 () {0x4;}' unless defined(&PUFFS_SETBACK_NOREF_N1);
    eval 'sub PUFFS_SETBACK_NOREF_N2 () {0x8;}' unless defined(&PUFFS_SETBACK_NOREF_N2);
    eval 'sub PUFFS_SETBACK_MASK () {0xf;}' unless defined(&PUFFS_SETBACK_MASK);
    eval 'sub PUFFS_INVAL_NAMECACHE_NODE () {0;}' unless defined(&PUFFS_INVAL_NAMECACHE_NODE);
    eval 'sub PUFFS_INVAL_NAMECACHE_DIR () {1;}' unless defined(&PUFFS_INVAL_NAMECACHE_DIR);
    eval 'sub PUFFS_INVAL_NAMECACHE_ALL () {2;}' unless defined(&PUFFS_INVAL_NAMECACHE_ALL);
    eval 'sub PUFFS_INVAL_PAGECACHE_NODE_RANGE () {3;}' unless defined(&PUFFS_INVAL_PAGECACHE_NODE_RANGE);
    eval 'sub PUFFS_FLUSH_PAGECACHE_NODE_RANGE () {4;}' unless defined(&PUFFS_FLUSH_PAGECACHE_NODE_RANGE);
    eval 'sub PUFFCRED_TYPE_UUC () {1;}' unless defined(&PUFFCRED_TYPE_UUC);
    eval 'sub PUFFCRED_TYPE_INTERNAL () {2;}' unless defined(&PUFFCRED_TYPE_INTERNAL);
    eval 'sub PUFFCRED_CRED_NOCRED () {1;}' unless defined(&PUFFCRED_CRED_NOCRED);
    eval 'sub PUFFCRED_CRED_FSCRED () {2;}' unless defined(&PUFFCRED_CRED_FSCRED);
    eval 'sub PUFFS_MSG_MAXSIZE () {2* &MAXPHYS;}' unless defined(&PUFFS_MSG_MAXSIZE);
    eval 'sub PUFFS_MSGSTRUCT_MAX () {4096;}' unless defined(&PUFFS_MSGSTRUCT_MAX);
    eval 'sub PUFFS_EXTNAMELEN () { &KERNEL_NAME_MAX;}' unless defined(&PUFFS_EXTNAMELEN);
    eval 'sub PUFFS_TOMOVE {
        my($a,$b) = @_;
	    eval q(( &MIN(($a),  ($b->{pmp_msg_maxsize}) -  &PUFFS_MSGSTRUCT_MAX)));
    }' unless defined(&PUFFS_TOMOVE);
    eval 'sub PUFFS_SUSPEND_START () {0;}' unless defined(&PUFFS_SUSPEND_START);
    eval 'sub PUFFS_SUSPEND_SUSPENDED () {1;}' unless defined(&PUFFS_SUSPEND_SUSPENDED);
    eval 'sub PUFFS_SUSPEND_RESUME () {2;}' unless defined(&PUFFS_SUSPEND_RESUME);
    eval 'sub PUFFS_SUSPEND_ERROR () {3;}' unless defined(&PUFFS_SUSPEND_ERROR);
    eval 'sub PUFFS_EXTATTRCTL_HASNODE () {0x1;}' unless defined(&PUFFS_EXTATTRCTL_HASNODE);
    eval 'sub PUFFS_EXTATTRCTL_HASATTRNAME () {0x2;}' unless defined(&PUFFS_EXTATTRCTL_HASATTRNAME);
    eval 'sub PUFFS_OPEN_IO_DIRECT () {0x1;}' unless defined(&PUFFS_OPEN_IO_DIRECT);
    eval 'sub puffs_vnmsg_setattr () { &puffs_vnmsg_setgetattr;}' unless defined(&puffs_vnmsg_setattr);
    eval 'sub puffs_vnmsg_getattr () { &puffs_vnmsg_setgetattr;}' unless defined(&puffs_vnmsg_getattr);
    eval 'sub puffs_vnmsg_read () { &puffs_vnmsg_rw;}' unless defined(&puffs_vnmsg_read);
    eval 'sub puffs_vnmsg_write () { &puffs_vnmsg_rw;}' unless defined(&puffs_vnmsg_write);
    eval 'sub puffs_vnmsg_ioctl () { &puffs_vnreq_fcnioctl;}' unless defined(&puffs_vnmsg_ioctl);
    eval 'sub puffs_vnmsg_fcntl () { &puffs_vnreq_fcnioctl;}' unless defined(&puffs_vnmsg_fcntl);
    eval 'sub PUFFS_HAVE_FALLOCATE () {1;}' unless defined(&PUFFS_HAVE_FALLOCATE);
    eval 'sub PCACHE_TYPE_READ () {0;}' unless defined(&PCACHE_TYPE_READ);
    eval 'sub PCACHE_TYPE_WRITE () {1;}' unless defined(&PCACHE_TYPE_WRITE);
}
1;
