require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_POWERPC_PIO_H_)) {
    eval 'sub _POWERPC_PIO_H_ () {1;}' unless defined(&_POWERPC_PIO_H_);
    eval 'sub __outb {
        my($a,$v) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__outb);
    eval 'sub __outw {
        my($a,$v) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__outw);
    eval 'sub __outl {
        my($a,$v) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__outl);
    eval 'sub __outwrb {
        my($a,$v) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__outwrb);
    eval 'sub __outlrb {
        my($a,$v) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__outlrb);
    eval 'sub __inb {
        my($a) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__inb);
    eval 'sub __inw {
        my($a) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__inw);
    eval 'sub __inl {
        my($a) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__inl);
    eval 'sub __inwrb {
        my($a) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__inwrb);
    eval 'sub __inlrb {
        my($a) = @_;
	    eval q(\\"(assembly code)\\");
    }' unless defined(&__inlrb);
    eval 'sub outb {
        my($a,$v) = @_;
	    eval q(( &__outb(( &volatile  &u_int8_t *)($a), $v)));
    }' unless defined(&outb);
    eval 'sub out8 {
        my($a,$v) = @_;
	    eval q( &outb($a,$v));
    }' unless defined(&out8);
    eval 'sub outw {
        my($a,$v) = @_;
	    eval q(( &__outw(( &volatile  &u_int16_t *)($a), $v)));
    }' unless defined(&outw);
    eval 'sub out16 {
        my($a,$v) = @_;
	    eval q( &outw($a,$v));
    }' unless defined(&out16);
    eval 'sub outl {
        my($a,$v) = @_;
	    eval q(( &__outl(( &volatile  &u_int32_t *)($a), $v)));
    }' unless defined(&outl);
    eval 'sub out32 {
        my($a,$v) = @_;
	    eval q( &outl($a,$v));
    }' unless defined(&out32);
    eval 'sub inb {
        my($a) = @_;
	    eval q(( &__inb(( &volatile  &u_int8_t *)($a))));
    }' unless defined(&inb);
    eval 'sub in8 {
        my($a) = @_;
	    eval q( &inb($a));
    }' unless defined(&in8);
    eval 'sub inw {
        my($a) = @_;
	    eval q(( &__inw(( &volatile  &u_int16_t *)($a))));
    }' unless defined(&inw);
    eval 'sub in16 {
        my($a) = @_;
	    eval q( &inw($a));
    }' unless defined(&in16);
    eval 'sub inl {
        my($a) = @_;
	    eval q(( &__inl(( &volatile  &u_int32_t *)($a))));
    }' unless defined(&inl);
    eval 'sub in32 {
        my($a) = @_;
	    eval q( &inl($a));
    }' unless defined(&in32);
    eval 'sub out8rb {
        my($a,$v) = @_;
	    eval q( &outb($a,$v));
    }' unless defined(&out8rb);
    eval 'sub outwrb {
        my($a,$v) = @_;
	    eval q(( &__outwrb(( &volatile  &u_int16_t *)($a), $v)));
    }' unless defined(&outwrb);
    eval 'sub out16rb {
        my($a,$v) = @_;
	    eval q( &outwrb($a,$v));
    }' unless defined(&out16rb);
    eval 'sub outlrb {
        my($a,$v) = @_;
	    eval q(( &__outlrb(( &volatile  &u_int32_t *)($a), $v)));
    }' unless defined(&outlrb);
    eval 'sub out32rb {
        my($a,$v) = @_;
	    eval q( &outlrb($a,$v));
    }' unless defined(&out32rb);
    eval 'sub in8rb {
        my($a) = @_;
	    eval q( &inb($a));
    }' unless defined(&in8rb);
    eval 'sub inwrb {
        my($a) = @_;
	    eval q(( &__inwrb(( &volatile  &u_int16_t *)($a))));
    }' unless defined(&inwrb);
    eval 'sub in16rb {
        my($a) = @_;
	    eval q( &inwrb($a));
    }' unless defined(&in16rb);
    eval 'sub inlrb {
        my($a) = @_;
	    eval q(( &__inlrb(( &volatile  &u_int32_t *)($a))));
    }' unless defined(&inlrb);
    eval 'sub in32rb {
        my($a) = @_;
	    eval q( &inlrb($a));
    }' unless defined(&in32rb);
    if(defined(&DEBUG_SPEC)) {
	eval 'sub __flash_led {
	    my($bits,$count) = @_;
    	    eval q(; { \'int\'  &i,  &v = 0;  &if($bits == 0) {  &v = 1; $bits = 3; } $bits &= 3; $count += $count;  &v |= (*( &volatile  &u_int8_t *)( &MPC106_V_ISA_IO_SPACE + 0x1f4)) & ~3;  &while($count--) {  &v ^= $bits;  &for( &i = 100000;  &i > 0;  &i--) *( &volatile  &u_int8_t *)( &MPC106_V_ISA_IO_SPACE + 0x1f4) =  &v; } *( &u_int8_t *)( &MPC106_V_ISA_IO_SPACE + 0x1f4) &= ~3; });
	}' unless defined(&__flash_led);
    }
}
1;
