require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_UFS_FFS_FFS_EXTERN_H_)) {
    eval 'sub _UFS_FFS_FFS_EXTERN_H_ () {1;}' unless defined(&_UFS_FFS_FFS_EXTERN_H_);
    eval 'sub FFS_CLUSTERREAD () {1;}' unless defined(&FFS_CLUSTERREAD);
    eval 'sub FFS_CLUSTERWRITE () {2;}' unless defined(&FFS_CLUSTERWRITE);
    eval 'sub FFS_REALLOCBLKS () {3;}' unless defined(&FFS_REALLOCBLKS);
    eval 'sub FFS_ASYNCFREE () {4;}' unless defined(&FFS_ASYNCFREE);
    eval 'sub FFS_LOG_CHANGEOPT () {5;}' unless defined(&FFS_LOG_CHANGEOPT);
    eval 'sub FFS_EXTATTR_AUTOCREATE () {6;}' unless defined(&FFS_EXTATTR_AUTOCREATE);
    if(defined(&_KERNEL)) {
	require 'sys/pool.ph';
	eval 'sub FFS_NOBLK () {(( &daddr_t)-1);}' unless defined(&FFS_NOBLK);
	eval 'sub FFS_ITIMES {
	    my($ip, $acc, $mod, $cre) = @_;
    	    eval q( &while (($ip)-> &i_flag & ( &IN_ACCESS |  &IN_CHANGE |  &IN_UPDATE |  &IN_MODIFY))  &ffs_itimes($ip, $acc, $mod, $cre));
	}' unless defined(&FFS_ITIMES);
    }
    if(defined(&_KERNEL)) {
	require 'sys/param.ph';
	require 'sys/mount.ph';
	require 'sys/wapbl.ph';
    }
    if(defined(&_KERNEL)) {
    }
}
1;
