require '_h2ph_pre.ph'; no warnings 'redefine'; unless(defined(&__LINUX_LOCKDEP_H)) { eval 'sub __LINUX_LOCKDEP_H () {1;}' unless defined(&__LINUX_LOCKDEP_H); require 'linux/linkage.ph'; require 'linux/list.ph'; require 'linux/debug_locks.ph'; require 'linux/stacktrace.ph'; if(defined(&CONFIG_LOCKDEP)) { eval("sub LOCK_USED () { 0; }") unless defined(&LOCK_USED); eval("sub LOCK_USED_IN_HARDIRQ () { 1; }") unless defined(&LOCK_USED_IN_HARDIRQ); eval("sub LOCK_USED_IN_SOFTIRQ () { 2; }") unless defined(&LOCK_USED_IN_SOFTIRQ); eval("sub LOCK_ENABLED_SOFTIRQS () { 3; }") unless defined(&LOCK_ENABLED_SOFTIRQS); eval("sub LOCK_ENABLED_HARDIRQS () { 4; }") unless defined(&LOCK_ENABLED_HARDIRQS); eval("sub LOCK_USED_IN_HARDIRQ_READ () { 5; }") unless defined(&LOCK_USED_IN_HARDIRQ_READ); eval("sub LOCK_USED_IN_SOFTIRQ_READ () { 6; }") unless defined(&LOCK_USED_IN_SOFTIRQ_READ); eval("sub LOCK_ENABLED_SOFTIRQS_READ () { 7; }") unless defined(&LOCK_ENABLED_SOFTIRQS_READ); eval("sub LOCK_ENABLED_HARDIRQS_READ () { 8; }") unless defined(&LOCK_ENABLED_HARDIRQS_READ); eval("sub LOCK_USAGE_STATES () { 9; }") unless defined(&LOCK_USAGE_STATES); eval 'sub LOCKF_USED () {(1<< &LOCK_USED);}' unless defined(&LOCKF_USED); eval 'sub LOCKF_USED_IN_HARDIRQ () {(1<< &LOCK_USED_IN_HARDIRQ);}' unless defined(&LOCKF_USED_IN_HARDIRQ); eval 'sub LOCKF_USED_IN_SOFTIRQ () {(1<< &LOCK_USED_IN_SOFTIRQ);}' unless defined(&LOCKF_USED_IN_SOFTIRQ); eval 'sub LOCKF_ENABLED_HARDIRQS () {(1<< &LOCK_ENABLED_HARDIRQS);}' unless defined(&LOCKF_ENABLED_HARDIRQS); eval 'sub LOCKF_ENABLED_SOFTIRQS () {(1<< &LOCK_ENABLED_SOFTIRQS);}' unless defined(&LOCKF_ENABLED_SOFTIRQS); eval 'sub LOCKF_ENABLED_IRQS () {( &LOCKF_ENABLED_HARDIRQS | &LOCKF_ENABLED_SOFTIRQS);}' unless defined(&LOCKF_ENABLED_IRQS); eval 'sub LOCKF_USED_IN_IRQ () {( &LOCKF_USED_IN_HARDIRQ | &LOCKF_USED_IN_SOFTIRQ);}' unless defined(&LOCKF_USED_IN_IRQ); eval 'sub LOCKF_USED_IN_HARDIRQ_READ () {(1<< &LOCK_USED_IN_HARDIRQ_READ);}' unless defined(&LOCKF_USED_IN_HARDIRQ_READ); eval 'sub LOCKF_USED_IN_SOFTIRQ_READ () {(1<< &LOCK_USED_IN_SOFTIRQ_READ);}' unless defined(&LOCKF_USED_IN_SOFTIRQ_READ); eval 'sub LOCKF_ENABLED_HARDIRQS_READ () {(1<< &LOCK_ENABLED_HARDIRQS_READ);}' unless defined(&LOCKF_ENABLED_HARDIRQS_READ); eval 'sub LOCKF_ENABLED_SOFTIRQS_READ () {(1<< &LOCK_ENABLED_SOFTIRQS_READ);}' unless defined(&LOCKF_ENABLED_SOFTIRQS_READ); eval 'sub LOCKF_ENABLED_IRQS_READ () {( &LOCKF_ENABLED_HARDIRQS_READ | &LOCKF_ENABLED_SOFTIRQS_READ);}' unless defined(&LOCKF_ENABLED_IRQS_READ); eval 'sub LOCKF_USED_IN_IRQ_READ () {( &LOCKF_USED_IN_HARDIRQ_READ | &LOCKF_USED_IN_SOFTIRQ_READ);}' unless defined(&LOCKF_USED_IN_IRQ_READ); eval 'sub MAX_LOCKDEP_SUBCLASSES () {8;}' unless defined(&MAX_LOCKDEP_SUBCLASSES); eval 'sub lockdep_set_class { my($lock, $key) = @_; eval q( &lockdep_init_map(($lock)-> &dep_map, $key, $key)); }' unless defined(&lockdep_set_class); eval 'sub lockdep_set_class_and_name { my($lock, $key, $name) = @_; eval q( &lockdep_init_map(($lock)-> &dep_map, $name, $key)); }' unless defined(&lockdep_set_class_and_name); eval 'sub INIT_LOCKDEP () {. &lockdep_recursion = 0,;}' unless defined(&INIT_LOCKDEP); } else { eval 'sub lockdep_off { my($void) = @_; eval q({ }); }' unless defined(&lockdep_off); eval 'sub lockdep_on { my($void) = @_; eval q({ }); }' unless defined(&lockdep_on); eval 'sub lockdep_internal { my($void) = @_; eval q({ 0; }); }' unless defined(&lockdep_internal); eval 'sub lock_acquire { my($l, $s, $t, $r, $c, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&lock_acquire); eval 'sub lock_release { my($l, $n, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&lock_release); eval 'sub lockdep_init () { eval q( &do { } &while (0)); }' unless defined(&lockdep_init); eval 'sub lockdep_info () { eval q( &do { } &while (0)); }' unless defined(&lockdep_info); eval 'sub lockdep_init_map { my($lock, $name, $key) = @_; eval q( &do { ( &void)($key); } &while (0)); }' unless defined(&lockdep_init_map); eval 'sub lockdep_set_class { my($lock, $key) = @_; eval q( &do { ( &void)($key); } &while (0)); }' unless defined(&lockdep_set_class); eval 'sub lockdep_set_class_and_name { my($lock, $key, $name) = @_; eval q( &do { ( &void)($key); } &while (0)); }' unless defined(&lockdep_set_class_and_name); eval 'sub INIT_LOCKDEP () {1;}' unless defined(&INIT_LOCKDEP); eval 'sub lockdep_reset () { eval q( &do { &debug_locks = 1; } &while (0)); }' unless defined(&lockdep_reset); eval 'sub lockdep_free_key_range { my($start, $size) = @_; eval q( &do { } &while (0)); }' unless defined(&lockdep_free_key_range); } if(defined( &CONFIG_TRACE_IRQFLAGS) && defined( &CONFIG_GENERIC_HARDIRQS)) { } else { eval 'sub early_init_irq_lock_class () { eval q( &do { } &while (0)); }' unless defined(&early_init_irq_lock_class); } if(defined(&CONFIG_TRACE_IRQFLAGS)) { } else { eval 'sub early_boot_irqs_off () { eval q( &do { } &while (0)); }' unless defined(&early_boot_irqs_off); eval 'sub early_boot_irqs_on () { eval q( &do { } &while (0)); }' unless defined(&early_boot_irqs_on); } eval 'sub SINGLE_DEPTH_NESTING () {1;}' unless defined(&SINGLE_DEPTH_NESTING); if(defined(&CONFIG_DEBUG_LOCK_ALLOC)) { if(defined(&CONFIG_PROVE_LOCKING)) { eval 'sub spin_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 2, $i)); }' unless defined(&spin_acquire); } else { eval 'sub spin_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 1, $i)); }' unless defined(&spin_acquire); } eval 'sub spin_release { my($l, $n, $i) = @_; eval q( &lock_release($l, $n, $i)); }' unless defined(&spin_release); } else { eval 'sub spin_acquire { my($l, $s, $t, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&spin_acquire); eval 'sub spin_release { my($l, $n, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&spin_release); } if(defined(&CONFIG_DEBUG_LOCK_ALLOC)) { if(defined(&CONFIG_PROVE_LOCKING)) { eval 'sub rwlock_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 2, $i)); }' unless defined(&rwlock_acquire); eval 'sub rwlock_acquire_read { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 2, 2, $i)); }' unless defined(&rwlock_acquire_read); } else { eval 'sub rwlock_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 1, $i)); }' unless defined(&rwlock_acquire); eval 'sub rwlock_acquire_read { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 2, 1, $i)); }' unless defined(&rwlock_acquire_read); } eval 'sub rwlock_release { my($l, $n, $i) = @_; eval q( &lock_release($l, $n, $i)); }' unless defined(&rwlock_release); } else { eval 'sub rwlock_acquire { my($l, $s, $t, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&rwlock_acquire); eval 'sub rwlock_acquire_read { my($l, $s, $t, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&rwlock_acquire_read); eval 'sub rwlock_release { my($l, $n, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&rwlock_release); } if(defined(&CONFIG_DEBUG_LOCK_ALLOC)) { if(defined(&CONFIG_PROVE_LOCKING)) { eval 'sub mutex_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 2, $i)); }' unless defined(&mutex_acquire); } else { eval 'sub mutex_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 1, $i)); }' unless defined(&mutex_acquire); } eval 'sub mutex_release { my($l, $n, $i) = @_; eval q( &lock_release($l, $n, $i)); }' unless defined(&mutex_release); } else { eval 'sub mutex_acquire { my($l, $s, $t, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&mutex_acquire); eval 'sub mutex_release { my($l, $n, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&mutex_release); } if(defined(&CONFIG_DEBUG_LOCK_ALLOC)) { if(defined(&CONFIG_PROVE_LOCKING)) { eval 'sub rwsem_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 2, $i)); }' unless defined(&rwsem_acquire); eval 'sub rwsem_acquire_read { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 1, 2, $i)); }' unless defined(&rwsem_acquire_read); } else { eval 'sub rwsem_acquire { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 0, 1, $i)); }' unless defined(&rwsem_acquire); eval 'sub rwsem_acquire_read { my($l, $s, $t, $i) = @_; eval q( &lock_acquire($l, $s, $t, 1, 1, $i)); }' unless defined(&rwsem_acquire_read); } eval 'sub rwsem_release { my($l, $n, $i) = @_; eval q( &lock_release($l, $n, $i)); }' unless defined(&rwsem_release); } else { eval 'sub rwsem_acquire { my($l, $s, $t, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&rwsem_acquire); eval 'sub rwsem_acquire_read { my($l, $s, $t, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&rwsem_acquire_read); eval 'sub rwsem_release { my($l, $n, $i) = @_; eval q( &do { } &while (0)); }' unless defined(&rwsem_release); } } 1;