require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_PCMCIA_PCMCIACHIP_H_)) {
    eval 'sub _PCMCIA_PCMCIACHIP_H_ () {1;}' unless defined(&_PCMCIA_PCMCIACHIP_H_);
    require 'machine/bus.ph';
    eval 'sub PCMCIA_MEM_ATTR () {1;}' unless defined(&PCMCIA_MEM_ATTR);
    eval 'sub PCMCIA_MEM_COMMON () {2;}' unless defined(&PCMCIA_MEM_COMMON);
    eval 'sub PCMCIA_WIDTH_MEM8 () {8;}' unless defined(&PCMCIA_WIDTH_MEM8);
    eval 'sub PCMCIA_WIDTH_MEM16 () {16;}' unless defined(&PCMCIA_WIDTH_MEM16);
    eval 'sub PCMCIA_WIDTH_MEM_MASK () {24;}' unless defined(&PCMCIA_WIDTH_MEM_MASK);
    eval 'sub PCMCIA_WIDTH_AUTO () {0;}' unless defined(&PCMCIA_WIDTH_AUTO);
    eval 'sub PCMCIA_WIDTH_IO8 () {1;}' unless defined(&PCMCIA_WIDTH_IO8);
    eval 'sub PCMCIA_WIDTH_IO16 () {2;}' unless defined(&PCMCIA_WIDTH_IO16);
    eval 'sub pcmcia_chip_mem_alloc {
        my($tag, $handle, $size, $pcmhp) = @_;
	    eval q(((*($tag)-> &mem_alloc)(($handle), ($size), ($pcmhp))));
    }' unless defined(&pcmcia_chip_mem_alloc);
    eval 'sub pcmcia_chip_mem_free {
        my($tag, $handle, $pcmhp) = @_;
	    eval q(((*($tag)-> &mem_free)(($handle), ($pcmhp))));
    }' unless defined(&pcmcia_chip_mem_free);
    eval 'sub pcmcia_chip_mem_map {
        my($tag, $handle, $kind, $card_addr, $size, $pcmhp,		    $offsetp, $windowp) = @_;
	    eval q(((*($tag)-> &mem_map)(($handle), ($kind), ($card_addr), ($size), ($pcmhp), ($offsetp), ($windowp))));
    }' unless defined(&pcmcia_chip_mem_map);
    eval 'sub pcmcia_chip_mem_unmap {
        my($tag, $handle, $window) = @_;
	    eval q(((*($tag)-> &mem_unmap)(($handle), ($window))));
    }' unless defined(&pcmcia_chip_mem_unmap);
    eval 'sub pcmcia_chip_io_alloc {
        my($tag, $handle, $start, $size, $align, $pcihp) = @_;
	    eval q(((*($tag)-> &io_alloc)(($handle), ($start), ($size), ($align), ($pcihp))));
    }' unless defined(&pcmcia_chip_io_alloc);
    eval 'sub pcmcia_chip_io_free {
        my($tag, $handle, $pcihp) = @_;
	    eval q(((*($tag)-> &io_free)(($handle), ($pcihp))));
    }' unless defined(&pcmcia_chip_io_free);
    eval 'sub pcmcia_chip_io_map {
        my($tag, $handle, $width, $card_addr, $size, $pcihp,		    $windowp) = @_;
	    eval q(((*($tag)-> &io_map)(($handle), ($width), ($card_addr), ($size), ($pcihp), ($windowp))));
    }' unless defined(&pcmcia_chip_io_map);
    eval 'sub pcmcia_chip_io_unmap {
        my($tag, $handle, $window) = @_;
	    eval q(((*($tag)-> &io_unmap)(($handle), ($window))));
    }' unless defined(&pcmcia_chip_io_unmap);
    eval 'sub pcmcia_chip_intr_establish {
        my($tag, $handle, $pf, $ipl, $fct, $arg, $xname) = @_;
	    eval q(((*($tag)-> &intr_establish)(($handle), ($pf), ($ipl), ($fct), ($arg), ($xname))));
    }' unless defined(&pcmcia_chip_intr_establish);
    eval 'sub pcmcia_chip_intr_disestablish {
        my($tag, $handle, $ih) = @_;
	    eval q(((*($tag)-> &intr_disestablish)(($handle), ($ih))));
    }' unless defined(&pcmcia_chip_intr_disestablish);
    eval 'sub pcmcia_chip_intr_string {
        my($tag, $handle, $ih) = @_;
	    eval q(((*($tag)-> &intr_string)(($handle), ($ih))));
    }' unless defined(&pcmcia_chip_intr_string);
    eval 'sub pcmcia_chip_socket_enable {
        my($tag, $handle) = @_;
	    eval q(((*($tag)-> &socket_enable)(($handle))));
    }' unless defined(&pcmcia_chip_socket_enable);
    eval 'sub pcmcia_chip_socket_disable {
        my($tag, $handle) = @_;
	    eval q(((*($tag)-> &socket_disable)(($handle))));
    }' unless defined(&pcmcia_chip_socket_disable);
}
1;
