require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_SYS_AIO_H_)) {
    eval 'sub _SYS_AIO_H_ () {1;}' unless defined(&_SYS_AIO_H_);
    require 'sys/types.ph';
    require 'sys/signal.ph';
    eval 'sub AIO_CANCELED () {0x1;}' unless defined(&AIO_CANCELED);
    eval 'sub AIO_NOTCANCELED () {0x2;}' unless defined(&AIO_NOTCANCELED);
    eval 'sub AIO_ALLDONE () {0x3;}' unless defined(&AIO_ALLDONE);
    eval 'sub LIO_NOP () {0x;}' unless defined(&LIO_NOP);
    eval 'sub LIO_WRITE () {0x1;}' unless defined(&LIO_WRITE);
    eval 'sub LIO_READ () {0x2;}' unless defined(&LIO_READ);
    eval 'sub LIO_NOWAIT () {0x;}' unless defined(&LIO_NOWAIT);
    eval 'sub LIO_WAIT () {0x1;}' unless defined(&LIO_WAIT);
    if(defined(&_KERNEL)) {
	eval 'sub AIO_LISTIO_MAX () {512;}' unless defined(&AIO_LISTIO_MAX);
	eval 'sub AIO_MAX () {( &AIO_LISTIO_MAX * 16);}' unless defined(&AIO_MAX);
	require 'sys/condvar.ph';
	require 'sys/lwp.ph';
	require 'sys/mutex.ph';
	require 'sys/pool.ph';
	require 'sys/queue.ph';
	eval 'sub AIO_LIO () {0x;}' unless defined(&AIO_LIO);
	eval 'sub AIO_READ () {0x1;}' unless defined(&AIO_READ);
	eval 'sub AIO_WRITE () {0x2;}' unless defined(&AIO_WRITE);
	eval 'sub AIO_SYNC () {0x4;}' unless defined(&AIO_SYNC);
	eval 'sub AIO_DSYNC () {0x8;}' unless defined(&AIO_DSYNC);
	eval 'sub JOB_NONE () {0x;}' unless defined(&JOB_NONE);
	eval 'sub JOB_WIP () {0x1;}' unless defined(&JOB_WIP);
	eval 'sub JOB_DONE () {0x2;}' unless defined(&JOB_DONE);
    }
}
1;
