require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&_SYS_GPIO_H_)) {
    eval 'sub _SYS_GPIO_H_ () {1;}' unless defined(&_SYS_GPIO_H_);
    eval 'sub GPIO_PIN_LOW () {0x;}' unless defined(&GPIO_PIN_LOW);
    eval 'sub GPIO_PIN_HIGH () {0x1;}' unless defined(&GPIO_PIN_HIGH);
    eval 'sub GPIO_PIN_INPUT () {0x1;}' unless defined(&GPIO_PIN_INPUT);
    eval 'sub GPIO_PIN_OUTPUT () {0x2;}' unless defined(&GPIO_PIN_OUTPUT);
    eval 'sub GPIO_PIN_INOUT () {0x4;}' unless defined(&GPIO_PIN_INOUT);
    eval 'sub GPIO_PIN_OPENDRAIN () {0x8;}' unless defined(&GPIO_PIN_OPENDRAIN);
    eval 'sub GPIO_PIN_PUSHPULL () {0x10;}' unless defined(&GPIO_PIN_PUSHPULL);
    eval 'sub GPIO_PIN_TRISTATE () {0x20;}' unless defined(&GPIO_PIN_TRISTATE);
    eval 'sub GPIO_PIN_PULLUP () {0x40;}' unless defined(&GPIO_PIN_PULLUP);
    eval 'sub GPIOINFO () { &_IOR(ord(\'G\'), 0, \'struct gpio_info\');}' unless defined(&GPIOINFO);
    eval 'sub GPIOPINREAD () { &_IOWR(ord(\'G\'), 1, \'struct gpio_pin_op\');}' unless defined(&GPIOPINREAD);
    eval 'sub GPIOPINWRITE () { &_IOWR(ord(\'G\'), 2, \'struct gpio_pin_op\');}' unless defined(&GPIOPINWRITE);
    eval 'sub GPIOPINTOGGLE () { &_IOWR(ord(\'G\'), 3, \'struct gpio_pin_op\');}' unless defined(&GPIOPINTOGGLE);
    eval 'sub GPIOPINCTL () { &_IOWR(ord(\'G\'), 4, \'struct gpio_pin_ctl\');}' unless defined(&GPIOPINCTL);
}
1;
