require '_h2ph_pre.ph'; no warnings 'redefine'; unless(defined(&_LINUX_RWSEM_H)) { eval 'sub _LINUX_RWSEM_H () {1;}' unless defined(&_LINUX_RWSEM_H); require 'linux/linkage.ph'; if(defined(&__KERNEL__)) { require 'linux/types.ph'; require 'linux/kernel.ph'; require 'asm/system.ph'; require 'asm/atomic.ph'; if(defined(&CONFIG_RWSEM_GENERIC_SPINLOCK)) { require 'linux/rwsem-spinlock.ph'; } else { require 'asm/rwsem.ph'; } if(defined(&CONFIG_DEBUG_LOCK_ALLOC)) { } else { eval 'sub down_read_nested { my($sem, $subclass) = @_; eval q( &down_read($sem)); }' unless defined(&down_read_nested); eval 'sub down_write_nested { my($sem, $subclass) = @_; eval q( &down_write($sem)); }' unless defined(&down_write_nested); eval 'sub down_read_non_owner { my($sem) = @_; eval q( &down_read($sem)); }' unless defined(&down_read_non_owner); eval 'sub up_read_non_owner { my($sem) = @_; eval q( &up_read($sem)); }' unless defined(&up_read_non_owner); } } } 1;