require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_MISCFS_GENFS_GENFS_NODE_H_)) {
    eval 'sub _MISCFS_GENFS_GENFS_NODE_H_ () {1;}' unless defined(&_MISCFS_GENFS_GENFS_NODE_H_);
    require 'sys/rwlock.ph';
    eval 'sub GOP_SIZE {
        my($vp, $size, $eobp, $flags) = @_;
	    eval q((* &VTOG($vp)-> ($g_op->{gop_size}))(($vp), ($size), ($eobp), ($flags)));
    }' unless defined(&GOP_SIZE);
    eval 'sub GOP_ALLOC {
        my($vp, $off, $len, $flags, $cred) = @_;
	    eval q((* &VTOG($vp)-> ($g_op->{gop_alloc}))(($vp), ($off), ($len), ($flags), ($cred)));
    }' unless defined(&GOP_ALLOC);
    eval 'sub GOP_WRITE {
        my($vp, $pgs, $npages, $flags) = @_;
	    eval q((* &VTOG($vp)-> ($g_op->{gop_write}))(($vp), ($pgs), ($npages), ($flags)));
    }' unless defined(&GOP_WRITE);
    eval 'sub GOP_PUTRANGE {
        my($vp, $off, $lop, $hip) = @_;
	    eval q((* &VTOG($vp)-> ($g_op->{gop_putrange}))(($vp), ($off), ($lop), ($hip)));
    }' unless defined(&GOP_PUTRANGE);
    eval 'sub GOP_MARKUPDATE {
        my($vp, $flags) = @_;
	    eval q(( &VTOG($vp)-> ($g_op->{gop_markupdate})) ? (* &VTOG($vp)-> ($g_op->{gop_markupdate}))(($vp), ($flags)) : ( &void)0;);
    }' unless defined(&GOP_MARKUPDATE);
    eval 'sub GOP_SIZE_MEM () {0x4;}' unless defined(&GOP_SIZE_MEM);
    eval 'sub GOP_UPDATE_ACCESSED () {1;}' unless defined(&GOP_UPDATE_ACCESSED);
    eval 'sub GOP_UPDATE_MODIFIED () {2;}' unless defined(&GOP_UPDATE_MODIFIED);
    eval 'sub VTOG {
        my($vp) = @_;
	    eval q((($vp)-> &v_data));
    }' unless defined(&VTOG);
}
1;
