# 1 "qpmouse.c" static __inline__ void atomic_sub(int i, volatile atomic_t *v) { __asm__ __volatile__( "" "subl %1,%0" :"=m" ((*(volatile struct { int a[100]; } *) v ) ) :"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) )); } union task_union { struct task_struct task; unsigned long stack[2048]; }; extern union task_union init_task_union; extern struct mm_struct init_mm; extern struct task_struct *task[512 ]; extern struct task_struct **tarray_freelist; extern spinlock_t taskslot_lock; extern __inline__ void add_free_taskslot(struct task_struct **t) { (void)( &taskslot_lock ) ; *t = (struct task_struct *) tarray_freelist; tarray_freelist = t; do { } while(0) ; } extern __inline__ struct task_struct **get_free_taskslot(void) { struct task_struct **tslot; (void)( &taskslot_lock ) ; if((tslot = tarray_freelist) != ((void *)0) ) tarray_freelist = (struct task_struct **) *tslot; do { } while(0) ; return tslot; } # 1 "/home/scott/wrk/driver/linux/include/linux/module.h" 1 # 1 "/home/scott/wrk/driver/linux/include/linux/config.h" 1 # 1 "/home/scott/wrk/driver/linux/include/linux/autoconf.h" 1 # 4 "/home/scott/wrk/driver/linux/include/linux/config.h" 2 # 10 "/home/scott/wrk/driver/linux/include/linux/module.h" 2 # 1 "/home/scott/wrk/driver/linux/include/asm/atomic.h" 1 typedef struct { int counter; } atomic_t; static __inline__ void atomic_add(int i, volatile atomic_t *v) { __asm__ __volatile__( "" "addl %1,%0" :"=m" ((*(volatile struct { int a[100]; } *) v ) ) :"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) )); } static __inline__ void atomic_sub(int i, volatile atomic_t *v) { __asm__ __volatile__( "" "subl %1,%0" :"=m" ((*(volatile struct { int a[100]; } *) v ) ) :"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) )); }