require '_h2ph_pre.ph'; no warnings 'redefine'; unless(defined(&__ASM_SPINLOCK_H)) { eval 'sub __ASM_SPINLOCK_H () {1;}' unless defined(&__ASM_SPINLOCK_H); if((defined(&__LINUX_ARM_ARCH__) ? &__LINUX_ARM_ARCH__ : 0) < 6) { die("SMP\ not\ supported\ on\ pre\-ARMv6\ CPUs"); } eval 'sub __raw_spin_is_locked { my($x) = @_; eval q((($x)-> &lock != 0)); }' unless defined(&__raw_spin_is_locked); eval 'sub __raw_spin_unlock_wait { my($lock) = @_; eval q( &do { &while ( &__raw_spin_is_locked($lock)) &cpu_relax(); } &while (0)); }' unless defined(&__raw_spin_unlock_wait); eval 'sub __raw_spin_lock_flags { my($lock, $flags) = @_; eval q( &__raw_spin_lock($lock)); }' unless defined(&__raw_spin_lock_flags); # some #ifdef were dropped here -- fill in the blanks eval 'sub __raw_spin_lock { my($lock) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_spin_lock); eval 'sub __raw_spin_trylock { my($lock) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_spin_trylock); # some #ifdef were dropped here -- fill in the blanks eval 'sub __raw_spin_unlock { my($lock) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_spin_unlock); eval 'sub rwlock_is_locked { my($x) = @_; eval q((*(( &volatile \'unsigned int\' *)($x)) != 0)); }' unless defined(&rwlock_is_locked); # some #ifdef were dropped here -- fill in the blanks eval 'sub __raw_write_lock { my($rw) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_write_lock); eval 'sub __raw_write_trylock { my($rw) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_write_trylock); # some #ifdef were dropped here -- fill in the blanks eval 'sub __raw_write_unlock { my($rw) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_write_unlock); eval 'sub __raw_write_can_lock { my($x) = @_; eval q((($x)-> &lock == 0x80000000)); }' unless defined(&__raw_write_can_lock); if(defined(&CONFIG_CPU_32v6K)) { } # some #ifdef were dropped here -- fill in the blanks eval 'sub __raw_read_unlock { my($rw) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_read_unlock); eval 'sub __raw_read_trylock { my($rw) = @_; eval q(\\"(assembly code)\\"); }' unless defined(&__raw_read_trylock); eval 'sub __raw_read_can_lock { my($x) = @_; eval q((($x)-> &lock < 0x80000000)); }' unless defined(&__raw_read_can_lock); } 1;