require '_h2ph_pre.ph';

unless(defined(&__LINUX_SMPLOCK_H)) {
    eval 'sub __LINUX_SMPLOCK_H () {1;}' unless defined(&__LINUX_SMPLOCK_H);
    require 'linux/config.ph';
    unless(defined(&CONFIG_SMP)) {
	eval 'sub lock_kernel () {
	    eval q( &do { }  &while(0));
	}' unless defined(&lock_kernel);
	eval 'sub unlock_kernel () {
	    eval q( &do { }  &while(0));
	}' unless defined(&unlock_kernel);
	eval 'sub release_kernel_lock {
	    local($task, $cpu) = @_;
    	    eval q( &do { }  &while(0));
	}' unless defined(&release_kernel_lock);
	eval 'sub reacquire_kernel_lock {
	    local($task) = @_;
    	    eval q( &do { }  &while(0));
	}' unless defined(&reacquire_kernel_lock);
	eval 'sub kernel_locked () {
	    eval q(1);
	}' unless defined(&kernel_locked);
    } else {
	require 'asm/smplock.ph';
    }
}
1;
