require '_h2ph_pre.ph';

unless(defined(&_CDEFS_H_)) {
    eval 'sub _CDEFS_H_ () {1;}' unless defined(&_CDEFS_H_);
    if(defined(&__KPRINTF_ATTRIBUTE__)) {
	undef(&__KPRINTF_ATTRIBUTE__) if defined(&__KPRINTF_ATTRIBUTE__);
    }
    require 'machine/cdefs.ph';
    if(defined( &__cplusplus)) {
	eval 'sub __BEGIN_DECLS () { &extern "C" {;}' unless defined(&__BEGIN_DECLS);
	eval 'sub __END_DECLS () {};;}' unless defined(&__END_DECLS);
    } else {
	eval 'sub __BEGIN_DECLS () {1;}' unless defined(&__BEGIN_DECLS);
	eval 'sub __END_DECLS () {1;}' unless defined(&__END_DECLS);
    }
    if(defined( &__STDC__) || defined( &__cplusplus)) {
	eval 'sub __P {
	    local($protos) = @_;
    	    eval q($protos);
	}' unless defined(&__P);
	eval 'sub __CONCAT {
	    local($x,$y) = @_;
    	    eval q($x  $y);
	}' unless defined(&__CONCAT);
	eval 'sub __STRING {
	    local($x) = @_;
    	    eval q($x);
	}' unless defined(&__STRING);
	eval 'sub __const () { &const;}' unless defined(&__const);
	eval 'sub __signed () {\'signed\';}' unless defined(&__signed);
	eval 'sub __volatile () { &volatile;}' unless defined(&__volatile);
	if(defined( &__cplusplus)) {
	    eval 'sub __inline () { &inline;}' unless defined(&__inline);
	} else {
	    if(!defined( &__GNUC__)  && !defined( &lint)) {
		eval 'sub __inline () {1;}' unless defined(&__inline);
	    }
	}
    } else {
	eval 'sub __P {
	    local($protos) = @_;
    	    eval q(());
	}' unless defined(&__P);
	eval 'sub __CONCAT {
	    local($x,$y) = @_;
    	    eval q( &xy);
	}' unless defined(&__CONCAT);
	eval 'sub __STRING {
	    local($x) = @_;
    	    eval q(\\"x\\");
	}' unless defined(&__STRING);
	if(!defined( &__GNUC__)  && !defined( &lint)) {
	    eval 'sub __const () {1;}' unless defined(&__const);
	    eval 'sub __inline () {1;}' unless defined(&__inline);
	    eval 'sub __signed () {1;}' unless defined(&__signed);
	    eval 'sub __volatile () {1;}' unless defined(&__volatile);
	}
	unless(defined(&NO_ANSI_KEYWORDS)) {
	    eval 'sub const () { &__const;}' unless defined(&const);
	    eval 'sub inline () { &__inline;}' unless defined(&inline);
	    eval 'sub signed () { &__signed;}' unless defined(&signed);
	    eval 'sub volatile () { &__volatile;}' unless defined(&volatile);
	}
    }
    if(!defined( &__GNUC__) || (defined(&__GNUC__) ? &__GNUC__ : 0) < 2|| ((defined(&__GNUC__) ? &__GNUC__ : 0) == 2 && (defined(&__GNUC_MINOR__) ? &__GNUC_MINOR__ : 0) < 5)) {
	eval 'sub __attribute__ {
	    local($x) = @_;
    	    eval q();
	}' unless defined(&__attribute__);
	if(defined( &__GNUC__)  && !defined( &__STRICT_ANSI__)) {
	    eval 'sub __dead () { &__volatile;}' unless defined(&__dead);
	    eval 'sub __pure () { &__const;}' unless defined(&__pure);
	}
    }
    if(defined(&__KPRINTF_ATTRIBUTE__)) {
	eval 'sub __kprintf_attribute__ {
	    local($a) = @_;
    	    eval q( &__attribute__($a));
	}' unless defined(&__kprintf_attribute__);
    } else {
	eval 'sub __kprintf_attribute__ {
	    local($a) = @_;
    	    eval q();
	}' unless defined(&__kprintf_attribute__);
    }
    unless(defined(&__dead)) {
	eval 'sub __dead () {1;}' unless defined(&__dead);
	eval 'sub __pure () {1;}' unless defined(&__pure);
    }
}
1;
