diff -u --recursive --new-file dist-2.1.26/Documentation/filesystems/vfs.txt linux/Documentation/filesystems/vfs.txt --- dist-2.1.26/Documentation/filesystems/vfs.txt Sun Feb 2 15:25:59 1997 +++ linux/Documentation/filesystems/vfs.txt Tue Feb 4 06:06:16 1997 @@ -2,6 +2,8 @@ =========================================== by Benjamin LaHaise (blah@dot.superaje.com) +Note: This document will be completed over time - I haven't forgotten! + Noone else seems to be writing this, so here's a quick description of what I've learned while writing lofs... @@ -30,7 +32,7 @@ in mounting itself, sb should be returned, otherwise NULL. options is a pointer to a maximum of PAGE_SIZE-1 bytes of options, typically a zero terminated string passed from mount. This page is freed after read_super - returns, so do not use any pointers into it. + returns, so do not keep any pointers into it. This routine _must_ set the s_op member of sb to point to a valid super_operations structure. @@ -157,9 +159,9 @@ struct file_operations ====================== - int (*lseek) (struct inode *, struct file *, off_t, int); - int (*read) (struct inode *, struct file *, char *, int); - int (*write) (struct inode *, struct file *, const char *, int); + long long (*llseek) (struct inode *, struct file *, long long, int); + long (*read) (struct inode *, struct file *, char *, unsigned long); + long (*write) (struct inode *, struct file *, const char *, unsigned long); int (*readdir) (struct inode *, struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, poll_table *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); diff -u --recursive --new-file dist-2.1.26/Makefile linux/Makefile --- dist-2.1.26/Makefile Fri Feb 7 18:02:23 1997 +++ linux/Makefile Sun Feb 9 17:06:35 1997 @@ -38,7 +38,7 @@ AR =$(CROSS_COMPILE)ar NM =$(CROSS_COMPILE)nm STRIP =$(CROSS_COMPILE)strip -MAKE =make +MAKE =make -j8 GENKSYMS=/sbin/genksyms all: do-it-all @@ -88,7 +88,7 @@ # standard CFLAGS # -CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer +CFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -mregparm=3 ifdef CONFIG_CPP CFLAGS := $(CFLAGS) -x c++ diff -u --recursive --new-file dist-2.1.26/Rules.make linux/Rules.make --- dist-2.1.26/Rules.make Sun Jan 26 12:38:23 1997 +++ linux/Rules.make Sun Jan 26 12:40:07 1997 @@ -45,7 +45,16 @@ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -S $< -o $@ %.o: %.c - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -o tmp.$@ $< + pick_host "cd /tmp && cat >tmp.$@.c && $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c tmp.$@.c -o tmp.$@ 1>&2 && cat tmp.$@ && rm tmp.$@.c tmp.$@" $@ + rm tmp.$@ + +# pick_host "cd `pwd` && $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<" + +# $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -o - $< | \ +# pick_host "cd /tmp && cat >tmp.$@.c && $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c tmp.$@.c -o tmp.$@ 1>&2 && cat tmp.$@ && rm tmp.$@.c tmp.$@" >$@ + +# $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< %.o: %.s $(AS) $(ASFLAGS) $(EXTRA_CFLAGS) -o $@ $< diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/asm_irq linux/arch/i386/kernel/asm_irq --- dist-2.1.26/arch/i386/kernel/asm_irq Wed Dec 31 19:00:00 1969 +++ linux/arch/i386/kernel/asm_irq Sun Feb 9 01:51:32 1997 @@ -0,0 +1,2 @@ +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -S irq.c -o s.irq.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -mregparm=3 -S irq.c -o s2.irq.c diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/entry.S linux/arch/i386/kernel/entry.S --- dist-2.1.26/arch/i386/kernel/entry.S Sun Jan 26 12:38:25 1997 +++ linux/arch/i386/kernel/entry.S Sat Feb 8 21:22:54 1997 @@ -201,7 +201,8 @@ notl %eax andl signal(%ebx),%eax jne signal_return -1: RESTORE_ALL +1: #call SYMBOL_NAME(hard_sti) + RESTORE_ALL ALIGN signal_return: testl $(VM_MASK),EFLAGS(%esp) @@ -210,6 +211,7 @@ pushl %esi call SYMBOL_NAME(do_signal) addl $8,%esp + #call SYMBOL_NAME(hard_sti) RESTORE_ALL ALIGN v86_signal_return: @@ -219,6 +221,7 @@ pushl %esi call SYMBOL_NAME(do_signal) addl $8,%esp + #call SYMBOL_NAME(hard_sti) RESTORE_ALL ALIGN tracesys: @@ -261,8 +264,18 @@ mov %dx,%ds mov %dx,%es GET_CURRENT(%ebx) + btsl $0,SYMBOL_NAME(sw_irq_mask) + jz err_en + sti + call *%ecx + addl $8,%esp + jmp ret_from_sys_call + +err_en: + sti call *%ecx addl $8,%esp + call SYMBOL_NAME(hard_sti) jmp ret_from_sys_call ENTRY(coprocessor_error) diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/ioport.c linux/arch/i386/kernel/ioport.c --- dist-2.1.26/arch/i386/kernel/ioport.c Fri Feb 7 18:02:24 1997 +++ linux/arch/i386/kernel/ioport.c Sun Feb 9 03:27:04 1997 @@ -51,7 +51,7 @@ /* * this changes the io permissions bitmap in the current task. */ -asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int turn_on) +asmlinkage(int sys_ioperm(unsigned long from, unsigned long num, int turn_on)) { if ((from + num <= from) || (from + num > IO_BITMAP_SIZE*32)) return -EINVAL; @@ -75,10 +75,10 @@ * code. */ -asmlinkage int sys_iopl(long ebx,long ecx,long edx, +asmlinkage(int sys_iopl(long ebx,long ecx,long edx, long esi, long edi, long ebp, long eax, long ds, long es, long orig_eax, long eip, long cs, - long eflags, long esp, long ss) + long eflags, long esp, long ss)) { unsigned int level = ebx; diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/irq.c linux/arch/i386/kernel/irq.c --- dist-2.1.26/arch/i386/kernel/irq.c Sun Jan 26 12:38:25 1997 +++ linux/arch/i386/kernel/irq.c Sun Feb 9 03:28:06 1997 @@ -8,11 +8,11 @@ * instead of just grabbing them. Thus setups with different IRQ numbers * shouldn't result in any weird surprises, and installing new handlers * should be easier. - */ - -/* + * * IRQ's are in fact implemented a bit like signal handlers for the kernel. * Naturally it's not a 1:1 relation, but there are similarities. + * + * Software interrupt masking added 3-Feb-1997 by Benjamin LaHaise */ #include @@ -43,6 +43,17 @@ static unsigned int int_count[NR_CPUS][NR_IRQS] = {{0},}; #endif +SMPVOL +unsigned long sw_irq_mask = 1, /* interrupts are initially disabled */ + sw_irq_runs = 0; + +SMPVOL +unsigned long sw_irqs_slow = 0, + sw_irqs_masked = 0, /* interrupts that are *specifically* disabled */ + sw_irqs_running = 0, + sw_irqs_pending = 0; +atomic_t sw_irqs_lost[16]; + static inline void mask_irq(unsigned int irq_nr) { unsigned char mask; @@ -75,19 +86,19 @@ { unsigned long flags; - save_flags(flags); - cli(); + hw_save_flags(flags); + hw_cli(); mask_irq(irq_nr); - restore_flags(flags); + hw_restore_flags(flags); } void enable_irq(unsigned int irq_nr) { unsigned long flags; - save_flags(flags); - cli(); + hw_save_flags(flags); + hw_cli(); unmask_irq(irq_nr); - restore_flags(flags); + hw_restore_flags(flags); } /* @@ -137,6 +148,73 @@ BUILD_RESCHEDIRQ(16) #endif +#if 0 +asmlinkage(void prof_IRQ0_interrupt (void)); + +extern unsigned int *prof_buffer; +extern unsigned long prof_shift, prof_len; + +extern int _stext; +static unsigned long prof_timer_mult = 2*2*19; +static unsigned long prof_timer_cur = 2*2*19; + +__asm__(" +"__ALIGN_STR" +"SYMBOL_NAME_STR(prof_IRQ0_interrupt)": + push %ds + pushl %eax + movl $"STR(KERNEL_DS)",%ds + + cmpw $"STR(KERNEL_CS)",10(%esp) + jne 1f + + pushl %edx + movl "SYMBOL_NAME_STR(prof_buffer)",%edx + testl %edx,%edx + jz 4f + + pushl %ecx + + movl 6(%esp),%eax + subl $"SYMBOL_NAME_STR(_stext)",%eax + movl "SYMBOL_NAME_STR(prof_shift)",%ecx + shrl %cl,%eax + cmpl %eax,"SYMBOL_NAME_STR(prof_len)" + jbe 3f + incl (%edx,%eax,4) + +3: + popl %ecx +4: + popl %edx + + decl "SYMBOL_NAME_STR(prof_timer_cur)" + jeq 2f + +1: + movl $0x20,%al + outb %al,$0x20 + popl %edx + pop %ds + iret + +2: + addl "SYMBOL_NAME_STR(prof_timer_mult)","SYMBOL_NAME_STR(prof_timer_cur)" + + popl %eax + pop %ds + + pushl $-2 + "SAVE_ALL" + movl %esp,%eax + pushl %eax + pushl $0 + call "SYMBOL_NAME_STR(do_IRQ)" + addl $8,%esp + jmp ret_from_sys_call +"); +#endif + /* * Pointers to the low-level handlers: first the general ones, then the * fast ones, then the bad ones. @@ -234,17 +312,18 @@ action = irq_action[i]; if (!action) continue; - len += sprintf(buf+len, "%2d: %10u %c %s", - i, kstat.interrupts[i], - (action->flags & SA_INTERRUPT) ? '+' : ' ', - action->name); - for (action=action->next; action; action = action->next) { + len += sprintf(buf+len, "%2d: %10u %10u %c %s", + i, kstat.interrupts[i], kstat.lost_interrupts[i], + (action && (action->flags & SA_INTERRUPT)) ? '+' : ' ', + action ? action->name : "not in use"); + for (action=action?action->next:NULL; action; action = action->next) { len += sprintf(buf+len, ",%s %s", (action->flags & SA_INTERRUPT) ? " +" : "", action->name); } len += sprintf(buf+len, "\n"); } + len += sprintf(buf+len, "sw_irq_runs: %lu\n", sw_irq_runs); /* * Linus - should you add NMI counts here ????? */ @@ -334,22 +413,11 @@ } #endif - - -/* - * do_IRQ handles IRQ's that have been installed without the - * SA_INTERRUPT flag: it uses the full signal-handling return - * and runs with other interrupts enabled. All relatively slow - * IRQ's should use this format: notably the keyboard/timer - * routines. - */ -asmlinkage void do_IRQ(int irq, struct pt_regs * regs) +static void run_irq ( int irq, struct pt_regs * regs ) { struct irqaction * action = *(irq + irq_action); int do_random = 0; - lock_kernel(); - intr_count++; #ifdef __SMP__ if(smp_threads_ready && active_kernel_processor!=smp_processor_id()) panic("IRQ %d: active processor set wrongly(%d not %d).\n", irq, active_kernel_processor, smp_processor_id()); @@ -366,43 +434,164 @@ } if (do_random & SA_SAMPLE_RANDOM) add_interrupt_randomness(irq); - intr_count--; - unlock_kernel(); } /* - * do_fast_IRQ handles IRQ's that don't need the fancy interrupt return - * stuff - the handler is also running with interrupts disabled unless - * it explicitly enables them later. - */ -asmlinkage void do_fast_IRQ(int irq) -{ - struct irqaction * action = *(irq + irq_action); - int do_random = 0; - + * Notes about the Software IRQ masking: + * - it should be SMP safe ;-) + * - it's horribly clever, and not easily understood + */ +asmlinkage(static int run_sw_irq ( int irq, struct pt_regs * regs )) +{ + int ran = 0; + goto masked; + do { + /* if this fails, someone else has taken responsibility for running the irq */ + if (set_bit(irq, &sw_irqs_running)) + goto out; +masked: + /* if interrupts aren't already disabled */ + if (!set_bit(0, &sw_irq_mask)) { + hw_sti(); + /* so long as there are interrupts pending, run the handler */ + while (clear_bit(irq, &sw_irqs_pending)) { + run_irq(irq, regs); + ran = 1; + } + /* must disable irqs to prevent recursion */ + hw_cli(); + clear_bit(0, &sw_irq_mask); + } + clear_bit(irq, &sw_irqs_running); + + /* repeat if an irq occurred as we were unmasking it */ + } while (test_bit(irq, &sw_irqs_pending) && !test_bit(0, &sw_irq_mask)) ; +out: + return ran; +} + +asmlinkage(int fudge_slow ( int irq ) __attribute((regparm(0)))); +__asm__( +SYMBOL_NAME_STR(fudge_slow) ":\n\t" + "pushl %eax\n\t" + "pushl %edx\n\t" + "movl %esp,%eax\n\t" + "pushfl\n\t" + "xorl %edx,%edx\n\t" + "mov %cs,%dx\n\t" + "pushl %edx\n\t" + "movl 20(%esp),%ecx\n\t" + "call 1f\n\t" + "popl %edx\n\t" + "popl %eax\n\t" + "ret\n\t" + + "1:\tpushl %eax\n\t" + SAVE_ALL /* this trashes %edx!!! */ + "movl %esp,%eax\n\t" + "pushl %eax\n\t" + "pushl %ecx\n\t" + "call "SYMBOL_NAME_STR(run_sw_irq)"\n\t" + "addl $8,%esp\n\t" + "movl %eax,24(%esp)\n\t" + RESTORE_ALL + /*"jmp ret_from_sys_call\n"*/ + ); + +void run_sw_irqs ( void ) +{ + int irq, ran; + sw_irq_runs++; + if (test_bit(0, &sw_irq_mask)) + return; lock_kernel(); intr_count++; -#ifdef __SMP__ - /* IRQ 13 is allowed - that's a flush tlb */ - if(smp_threads_ready && active_kernel_processor!=smp_processor_id() && irq!=13) - panic("fast_IRQ %d: active processor set wrongly(%d not %d).\n", irq, active_kernel_processor, smp_processor_id()); -#endif - kstat.interrupts[irq]++; -#ifdef __SMP_PROF__ - int_count[smp_processor_id()][irq]++; -#endif - while (action) { - do_random |= action->flags; - action->handler(irq, action->dev_id, NULL); - action = action->next; + do { + ran = 0; + for (irq=0; (irq<16) && sw_irqs_pending && !test_bit(0, &sw_irq_mask); irq++) { + if (test_bit(irq, &sw_irqs_pending) && !set_bit(irq, &sw_irqs_running)) { + hw_cli(); + if (test_bit(irq, &sw_irqs_slow)) + ran |= fudge_slow(irq); + else + ran |= run_sw_irq(irq, NULL); + hw_sti(); + } } - if (do_random & SA_SAMPLE_RANDOM) - add_interrupt_randomness(irq); + } while (ran); + intr_count--; unlock_kernel(); } +static void ack_irq ( int irq ) +{ + if (irq >= 8) + outb(0x20,0xA0); + outb(0x20,0x20); +} + +static int try_mask_irq ( int irq ) +{ + /* check if the interrupt was masked */ + if (set_bit(irq, &sw_irqs_running)) { + /* mark the irq as pending, recording lost interrupts */ + if (set_bit(irq, &sw_irqs_pending)) + atomic_inc(&sw_irqs_lost[irq]); + + /* if someone still has irq masked off, we're done. */ + if (set_bit(irq, &sw_irqs_running)) + return 1; + } + return 0; +} +/* + * do_IRQ handles IRQ's that have been installed both with and + * with the + * SA_INTERRUPT flag: it uses the full signal-handling return + * and runs with other interrupts enabled. All relatively slow + * IRQ's should use this format: notably the keyboard/timer + * routines. + * + * A 'fast' IRQ is indicated by being passed regs == NULL + * Right now there is not much difference between a 'fast' + * and a 'slow' IRQ handler. + */ +asmlinkage(int do_IRQ(int irq, struct pt_regs * regs)) +{ + int ret = 0; + if (set_bit(irq, &sw_irqs_pending)) + atomic_inc(&sw_irqs_lost[irq]); + ack_irq(irq); + if (test_bit(0, &sw_irq_mask)) + goto out; + if (set_bit(irq, &sw_irqs_running)) + goto out; + lock_kernel(); + intr_count++; + ret = run_sw_irq(irq, regs); + intr_count--; + unlock_kernel(); +#if 0 + hw_cli(); + if (!regs) + clear_bit(0, &sw_irq_mask); + if (foo) { + set_bit(0, &sw_irq_mask); + ret = 0; + } else + clear_bit(0, &sw_irq_mask); +#endif +out: + return ret; +} + +asmlinkage(void hard_sti ( void )) +{ + sti(); +} + int setup_x86_irq(int irq, struct irqaction * new) { int shared = 0; @@ -430,18 +619,21 @@ if (new->flags & SA_SAMPLE_RANDOM) rand_initialize_irq(irq); - save_flags(flags); - cli(); + hw_save_flags(flags); + hw_cli(); *p = new; if (!shared) { - if (new->flags & SA_INTERRUPT) + if (new->flags & SA_INTERRUPT) { + clear_bit(irq, &sw_irqs_slow); set_intr_gate(0x20+irq,fast_interrupt[irq]); - else + } else { + set_bit(irq, &sw_irqs_slow); set_intr_gate(0x20+irq,interrupt[irq]); + } unmask_irq(irq); } - restore_flags(flags); + hw_restore_flags(flags); return 0; } @@ -491,14 +683,14 @@ continue; /* Found it - now free it */ - save_flags(flags); - cli(); + hw_save_flags(flags); + hw_cli(); *p = action->next; if (!irq[irq_action]) { mask_irq(irq); set_intr_gate(0x20+irq,bad_interrupt[irq]); } - restore_flags(flags); + hw_restore_flags(flags); kfree(action); return; } @@ -567,4 +759,7 @@ request_region(0xa0,0x20,"pic2"); setup_x86_irq(2, &irq2); setup_x86_irq(13, &irq13); + + /* let hardware irqs happen - we've our 'buffer' now. */ + hw_sti(); } diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/ldt.c linux/arch/i386/kernel/ldt.c --- dist-2.1.26/arch/i386/kernel/ldt.c Sun Jan 26 12:38:25 1997 +++ linux/arch/i386/kernel/ldt.c Sun Feb 9 03:28:21 1997 @@ -117,7 +117,7 @@ return 0; } -asmlinkage int sys_modify_ldt(int func, void *ptr, unsigned long bytecount) +asmlinkage(int sys_modify_ldt(int func, void *ptr, unsigned long bytecount)) { int ret; diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c --- dist-2.1.26/arch/i386/kernel/process.c Sun Jan 26 12:38:25 1997 +++ linux/arch/i386/kernel/process.c Sun Feb 9 03:29:24 1997 @@ -37,9 +37,9 @@ #include #ifdef __SMP__ -asmlinkage void ret_from_smpfork(void) __asm__("ret_from_smpfork"); +asmlinkage(void ret_from_smpfork(void) __asm__("ret_from_smpfork")); #else -asmlinkage void ret_from_sys_call(void) __asm__("ret_from_sys_call"); +asmlinkage(void ret_from_sys_call(void) __asm__("ret_from_sys_call")); #endif #ifdef CONFIG_APM @@ -94,7 +94,7 @@ * The idle loop on a uniprocessor i386.. */ -asmlinkage int sys_idle(void) +asmlinkage(int sys_idle(void)) { unsigned long start_idle = 0; int ret = -EPERM; @@ -139,7 +139,7 @@ * so as to get the right locking semantics. */ -asmlinkage int sys_idle(void) +asmlinkage(int sys_idle(void)) { int ret = -EPERM; @@ -590,36 +590,32 @@ dump->u_fpvalid = dump_fpu (regs, &dump->i387); } -asmlinkage int sys_fork(struct pt_regs regs) +asmlinkage(int sys_fork(struct pt_regs regs)) { int ret; - lock_kernel(); ret = do_fork(SIGCHLD, regs.esp, ®s); - unlock_kernel(); return ret; } -asmlinkage int sys_clone(struct pt_regs regs) +asmlinkage(int sys_clone(struct pt_regs regs)) { unsigned long clone_flags; unsigned long newsp; int ret; - lock_kernel(); clone_flags = regs.ebx; newsp = regs.ecx; if (!newsp) newsp = regs.esp; ret = do_fork(clone_flags, newsp, ®s); - unlock_kernel(); return ret; } /* * sys_execve() executes a new program. */ -asmlinkage int sys_execve(struct pt_regs regs) +asmlinkage(int sys_execve(struct pt_regs regs)) { int error; char * filename; diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/ptrace.c linux/arch/i386/kernel/ptrace.c --- dist-2.1.26/arch/i386/kernel/ptrace.c Sun Jan 26 12:38:25 1997 +++ linux/arch/i386/kernel/ptrace.c Sun Feb 9 03:25:49 1997 @@ -361,7 +361,7 @@ return retval; } -asmlinkage int sys_ptrace(long request, long pid, long addr, long data) +asmlinkage(int sys_ptrace(long request, long pid, long addr, long data)) { struct task_struct *child; struct user * dummy = NULL; @@ -582,7 +582,7 @@ return ret; } -asmlinkage void syscall_trace(void) +asmlinkage(void syscall_trace(void)) { lock_kernel(); if ((current->flags & (PF_PTRACED|PF_TRACESYS)) diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/s.irq.c linux/arch/i386/kernel/s.irq.c --- dist-2.1.26/arch/i386/kernel/s.irq.c Wed Dec 31 19:00:00 1969 +++ linux/arch/i386/kernel/s.irq.c Sun Feb 9 01:51:44 1997 @@ -0,0 +1,2456 @@ + .file "irq.c" + .version "01.01" +gcc2_compiled.: +.data + .type cache_21,@object + .size cache_21,1 +cache_21: +.byte 255 + .type cache_A1,@object + .size cache_A1,1 +cache_A1: +.byte 255 +.globl sw_irq_mask + .align 4 + .type sw_irq_mask,@object + .size sw_irq_mask,4 +sw_irq_mask: + .long 1 +.globl sw_irq_runs + .align 4 + .type sw_irq_runs,@object + .size sw_irq_runs,4 +sw_irq_runs: + .long 0 +.globl sw_irqs_slow + .align 4 + .type sw_irqs_slow,@object + .size sw_irqs_slow,4 +sw_irqs_slow: + .long 0 +.globl sw_irqs_masked + .align 4 + .type sw_irqs_masked,@object + .size sw_irqs_masked,4 +sw_irqs_masked: + .long 0 +.globl sw_irqs_running + .align 4 + .type sw_irqs_running,@object + .size sw_irqs_running,4 +sw_irqs_running: + .long 0 +.globl sw_irqs_pending + .align 4 + .type sw_irqs_pending,@object + .size sw_irqs_pending,4 +sw_irqs_pending: + .long 0 +.text + .align 16 +.globl disable_irq + .type disable_irq,@function +disable_irq: + pushl %ebx + movl 8(%esp),%edx +#APP + pushfl ; popl %ebx + cli +#NO_APP + movl %edx,%ecx + andl $7,%ecx + movl $1,%eax + sall %cl,%eax + cmpl $7,%edx + ja .L648 + orb cache_21,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L647 + .align 16 +.L648: + orb cache_A1,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L647: +#APP + pushl %ebx ; popfl +#NO_APP + popl %ebx + ret +.Lfe1: + .size disable_irq,.Lfe1-disable_irq + .align 16 +.globl enable_irq + .type enable_irq,@function +enable_irq: + pushl %ebx + movl 8(%esp),%eax +#APP + pushfl ; popl %ebx + cli +#NO_APP + movl %eax,%ecx + andl $7,%ecx + movl $-2,%edx + roll %cl,%edx + cmpl $7,%eax + ja .L660 + movb cache_21,%al + andb %dl,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L659 + .align 16 +.L660: + movb cache_A1,%al + andb %dl,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L659: +#APP + pushl %ebx ; popfl +#NO_APP + popl %ebx + ret +.Lfe2: + .size enable_irq,.Lfe2-enable_irq +#APP + +.align 16,0x90 +fast_IRQ0_interrupt: + bad_IRQ0_interrupt: + IRQ0_interrupt: + pushl $-0-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $0 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + + +.align 16,0x90 +IRQ1_interrupt: + pushl $-1-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $1 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ1_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $1 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ1_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x02,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ2_interrupt: + pushl $-2-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $2 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ2_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $2 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ2_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x04,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ3_interrupt: + pushl $-3-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $3 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ3_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $3 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ3_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x08,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ4_interrupt: + pushl $-4-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $4 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ4_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $4 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ4_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x10,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ5_interrupt: + pushl $-5-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $5 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ5_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $5 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ5_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x20,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ6_interrupt: + pushl $-6-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $6 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ6_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $6 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ6_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x40,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ7_interrupt: + pushl $-7-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $7 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ7_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $7 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ7_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x80,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ8_interrupt: + pushl $-8-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $8 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ8_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $8 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ8_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x01,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ9_interrupt: + pushl $-9-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $9 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ9_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $9 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ9_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x02,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ10_interrupt: + pushl $-10-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $10 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ10_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $10 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ10_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x04,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ11_interrupt: + pushl $-11-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $11 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ11_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $11 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ11_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x08,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ12_interrupt: + pushl $-12-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $12 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ12_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $12 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ12_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x10,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ13_interrupt: + pushl $-13-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $13 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ13_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $13 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ13_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x20,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ14_interrupt: + pushl $-14-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $14 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ14_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $14 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ14_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x40,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ15_interrupt: + pushl $-15-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $15 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ15_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $15 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ15_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x80,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +#NO_APP +.data + .align 4 + .type interrupt,@object + .size interrupt,68 +interrupt: + .long IRQ0_interrupt + .long IRQ1_interrupt + .long IRQ2_interrupt + .long IRQ3_interrupt + .long IRQ4_interrupt + .long IRQ5_interrupt + .long IRQ6_interrupt + .long IRQ7_interrupt + .long IRQ8_interrupt + .long IRQ9_interrupt + .long IRQ10_interrupt + .long IRQ11_interrupt + .long IRQ12_interrupt + .long IRQ13_interrupt + .long IRQ14_interrupt + .long IRQ15_interrupt + .zero 4 + .align 4 + .type fast_interrupt,@object + .size fast_interrupt,64 +fast_interrupt: + .long fast_IRQ0_interrupt + .long fast_IRQ1_interrupt + .long fast_IRQ2_interrupt + .long fast_IRQ3_interrupt + .long fast_IRQ4_interrupt + .long fast_IRQ5_interrupt + .long fast_IRQ6_interrupt + .long fast_IRQ7_interrupt + .long fast_IRQ8_interrupt + .long fast_IRQ9_interrupt + .long fast_IRQ10_interrupt + .long fast_IRQ11_interrupt + .long fast_IRQ12_interrupt + .long fast_IRQ13_interrupt + .long fast_IRQ14_interrupt + .long fast_IRQ15_interrupt + .align 4 + .type bad_interrupt,@object + .size bad_interrupt,64 +bad_interrupt: + .long bad_IRQ0_interrupt + .long bad_IRQ1_interrupt + .long bad_IRQ2_interrupt + .long bad_IRQ3_interrupt + .long bad_IRQ4_interrupt + .long bad_IRQ5_interrupt + .long bad_IRQ6_interrupt + .long bad_IRQ7_interrupt + .long bad_IRQ8_interrupt + .long bad_IRQ9_interrupt + .long bad_IRQ10_interrupt + .long bad_IRQ11_interrupt + .long bad_IRQ12_interrupt + .long bad_IRQ13_interrupt + .long bad_IRQ14_interrupt + .long bad_IRQ15_interrupt +.text + .align 16 + .type no_action,@function +no_action: + ret +.Lfe3: + .size no_action,.Lfe3-no_action + .align 16 + .type math_error_irq,@function +math_error_irq: + xorb %al,%al +#APP + outb %al,$240 +#NO_APP + cmpb $0,ignore_irq13 + jne .L671 + cmpb $0,hard_math + je .L671 + call math_error +.L671: + ret +.Lfe4: + .size math_error_irq,.Lfe4-math_error_irq +.data + .align 4 + .type irq13,@object + .size irq13,24 +irq13: + .long math_error_irq + .long 0 + .long 0 + .long .LC0 + .long 0 + .long 0 +.section .rodata +.LC0: + .string "math error" +.data + .align 4 + .type irq2,@object + .size irq2,24 +irq2: + .long no_action + .long 0 + .long 0 + .long .LC1 + .long 0 + .long 0 +.section .rodata +.LC1: + .string "cascade" +.data + .align 4 + .type irq_action,@object + .size irq_action,64 +irq_action: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 +.section .rodata +.LC2: + .string "not in use" +.LC3: + .string "%2d: %10u %10u %c %s" +.LC4: + .string " +" +.LC5: + .string "" +.LC6: + .string ",%s %s" +.LC7: + .string "\n" +.LC8: + .string "sw_irq_runs: %lu\n" +.text + .align 16 +.globl get_irq_list + .type get_irq_list,@function +get_irq_list: + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl 20(%esp),%ebp + xorl %esi,%esi + xorl %edi,%edi + .align 4 +.L682: + movl irq_action(,%edi,4),%ebx + testl %ebx,%ebx + je .L681 + movl 12(%ebx),%eax + pushl %eax + movl $32,%eax + testb $32,7(%ebx) + je .L686 + movl $43,%eax +.L686: + pushl %eax + movl kstat+196(,%edi,4),%eax + pushl %eax + movl kstat+108(,%edi,4),%eax + pushl %eax + pushl %edi + pushl $.LC3 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + addl $28,%esp + jmp .L698 + .align 16 + .align 4 +.L693: + movl 12(%ebx),%eax + pushl %eax + movl $.LC5,%eax + testb $32,7(%ebx) + je .L694 + movl $.LC4,%eax +.L694: + pushl %eax + pushl $.LC6 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + addl $16,%esp +.L698: + movl 20(%ebx),%ebx + testl %ebx,%ebx + jne .L693 + pushl $.LC7 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + addl $8,%esp +.L681: + incl %edi + cmpl $15,%edi + jle .L682 + movl sw_irq_runs,%eax + pushl %eax + pushl $.LC8 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + movl %esi,%eax + addl $12,%esp + popl %ebx + popl %esi + popl %edi + popl %ebp + ret +.Lfe5: + .size get_irq_list,.Lfe5-get_irq_list + .align 16 + .type run_irq,@function +run_irq: + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl 20(%esp),%edi + movl 24(%esp),%ebp + movl irq_action(,%edi,4),%ebx + xorl %esi,%esi + incl kstat+108(,%edi,4) + testl %ebx,%ebx + je .L701 + .align 4 +.L702: + orl 4(%ebx),%esi + pushl %ebp + movl 16(%ebx),%eax + pushl %eax + pushl %edi + movl (%ebx),%eax + call *%eax + movl 20(%ebx),%ebx + addl $12,%esp + testl %ebx,%ebx + jne .L702 +.L701: + testl $268435456,%esi + je .L704 + pushl %edi + call add_interrupt_randomness + addl $4,%esp +.L704: + popl %ebx + popl %esi + popl %edi + popl %ebp + ret +.Lfe6: + .size run_irq,.Lfe6-run_irq + .align 16 + .type run_sw_irq,@function +run_sw_irq: + pushl %esi + pushl %ebx + movl 12(%esp),%ebx + movl 16(%esp),%esi + xorl %edx,%edx + jmp .L706 + .align 16 + .align 4 +.L707: +#APP + btsl %ebx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L712 +.L706: +#APP + btsl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L713 +#APP + sti + .align 4 +#NO_APP +.L715: +#APP + btrl %ebx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L716 + pushl %esi + pushl %ebx + call run_irq + movl $1,%edx + addl $8,%esp + jmp .L715 + .align 16 +.L716: +#APP + cli + btrl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP +.L713: +#APP + btrl %ebx,sw_irqs_running + sbbl %eax,%eax + btl %ebx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L712 +#APP + btl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L707 +.L712: + movl %edx,%eax + popl %ebx + popl %esi + ret +.Lfe7: + .size run_sw_irq,.Lfe7-run_sw_irq +#APP + fudge_slow: + pushl %eax + pushl %edx + movl %esp,%eax + pushfl + xorl %edx,%edx + mov %cs,%dx + pushl %edx + movl 20(%esp),%ecx + call 1f + popl %edx + popl %eax + ret + 1: pushl %eax + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl %ecx + call run_sw_irq + addl $8,%esp + popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +#NO_APP + .align 16 +.globl run_sw_irqs + .type run_sw_irqs,@function +run_sw_irqs: + incl sw_irq_runs +#APP + btl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L725 + incl intr_count +.L732: + xorl %edx,%edx + .align 4 +.L744: + cmpl $0,sw_irqs_pending + je .L734 +#APP + btl %edx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L735 +#APP + btsl %edx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L735 +#APP + cli + btl %edx,sw_irqs_slow + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L741 + pushl %edx + call fudge_slow + addl $4,%esp + jmp .L743 + .align 16 +.L741: + pushl $0 + pushl %edx + call run_sw_irq + addl $8,%esp +.L743: +#APP + sti +#NO_APP + jmp .L732 + .align 16 +.L735: + incl %edx + cmpl $15,%edx + jle .L744 +.L734: + decl intr_count + .align 4 +.L725: + ret +.Lfe8: + .size run_sw_irqs,.Lfe8-run_sw_irqs + .align 16 + .type ack_irq,@function +ack_irq: + cmpl $7,4(%esp) + jle .L750 + movb $32,%al +#APP + outb %al,$160 +#NO_APP +.L750: + movb $32,%al +#APP + outb %al,$32 +#NO_APP + ret +.Lfe9: + .size ack_irq,.Lfe9-ack_irq + .align 16 + .type try_mask_irq,@function +try_mask_irq: + movl 4(%esp),%edx +#APP + btsl %edx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L760 +#APP + btsl %edx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L762 +#APP + incl sw_irqs_lost(,%edx,4) +#NO_APP +.L762: +#APP + btsl %edx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L760 + movl $1,%eax + ret + .align 16 +.L760: + xorl %eax,%eax + ret +.Lfe10: + .size try_mask_irq,.Lfe10-try_mask_irq + .align 16 +.globl do_IRQ + .type do_IRQ,@function +do_IRQ: + pushl %edi + pushl %esi + pushl %ebx + movl 16(%esp),%ebx + movl 20(%esp),%edi + xorl %esi,%esi +#APP + btsl %ebx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L769 +#APP + incl sw_irqs_lost(,%ebx,4) +#NO_APP +.L769: + pushl %ebx + call ack_irq + addl $4,%esp +#APP + btl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L774 +#APP + btsl %ebx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L774 + incl intr_count + pushl %edi + pushl %ebx + call run_sw_irq + movl %eax,%esi + decl intr_count + addl $8,%esp + .align 4 +.L774: + movl %esi,%eax + popl %ebx + popl %esi + popl %edi + ret +.Lfe11: + .size do_IRQ,.Lfe11-do_IRQ + .align 16 +.globl hard_sti + .type hard_sti,@function +hard_sti: +#APP + btrl $0,sw_irq_mask + jz 1f + call run_sw_irqs +1: + +#NO_APP + ret +.Lfe12: + .size hard_sti,.Lfe12-hard_sti + .align 16 +.globl setup_x86_irq + .type setup_x86_irq,@function +setup_x86_irq: + subl $12,%esp + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl 32(%esp),%ebx + movl 36(%esp),%ebp + xorl %edi,%edi + leal 0(,%ebx,4),%eax + leal irq_action(%eax),%esi + movl irq_action(%eax),%eax + movl %eax,16(%esp) + testl %eax,%eax + je .L787 + movl 4(%eax),%esi + movl 4(%ebp),%ecx + movl %esi,%eax + andl %ecx,%eax + testl $67108864,%eax + je .L812 + movl %esi,%eax + xorl %ecx,%eax + testl $536870912,%eax + je .L790 +.L812: + movl $-16,%eax + jmp .L811 + .align 16 + .align 4 +.L790: + movl 16(%esp),%esi + addl $20,%esi + movl 16(%esp),%edx + movl 20(%edx),%edx + movl %edx,16(%esp) + testl %edx,%edx + jne .L790 + movl $1,%edi +.L787: + testb $16,7(%ebp) + je .L794 + pushl %ebx + call rand_initialize_irq + addl $4,%esp +.L794: +#APP + pushfl ; popl 24(%esp) + cli +#NO_APP + movl %ebp,(%esi) + testl %edi,%edi + jne .L795 + testb $32,7(%ebp) + je .L796 +#APP + btrl %ebx,sw_irqs_slow + sbbl %eax,%eax +#NO_APP + movl $fast_interrupt,%ecx + movl (%ecx,%ebx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ebx,8) + movl %edx,idt+260(,%ebx,8) +#NO_APP + jmp .L798 + .align 16 +.L796: +#APP + btsl %ebx,sw_irqs_slow + sbbl %eax,%eax +#NO_APP + movl $interrupt,%ecx + movl (%ecx,%ebx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ebx,8) + movl %edx,idt+260(,%ebx,8) +#NO_APP +.L798: + movl %ebx,%ecx + andl $7,%ecx + movl $-2,%eax + roll %cl,%eax + movl %eax,%ecx + cmpl $7,%ebx + ja .L801 + movb %cl,%al + andb cache_21,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L795 + .align 16 +.L801: + movb %cl,%al + andb cache_A1,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L795: +#APP + pushl 24(%esp) ; popfl +#NO_APP + xorl %eax,%eax +.L811: + popl %ebx + popl %esi + popl %edi + popl %ebp + addl $12,%esp + ret +.Lfe13: + .size setup_x86_irq,.Lfe13-setup_x86_irq + .align 16 +.globl request_irq + .type request_irq,@function +request_irq: + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl 20(%esp),%edi + movl 24(%esp),%esi + movl 28(%esp),%ebp + cmpl $15,%edi + ja .L819 + testl %esi,%esi + jne .L815 +.L819: + movl $-22,%eax + jmp .L818 + .align 16 +.L815: + pushl $3 + pushl $24 + call kmalloc + movl %eax,%ebx + addl $8,%esp + testl %ebx,%ebx + jne .L816 + movl $-12,%eax + jmp .L818 + .align 16 +.L816: + movl %esi,(%ebx) + movl %ebp,4(%ebx) + movl $0,8(%ebx) + movl 32(%esp),%edx + movl %edx,12(%ebx) + movl $0,20(%ebx) + movl 36(%esp),%edx + movl %edx,16(%ebx) + pushl %ebx + pushl %edi + call setup_x86_irq + movl %eax,%esi + addl $8,%esp + testl %esi,%esi + je .L817 + pushl %ebx + call kfree + addl $4,%esp +.L817: + movl %esi,%eax +.L818: + popl %ebx + popl %esi + popl %edi + popl %ebp + ret +.Lfe14: + .size request_irq,.Lfe14-request_irq +.section .rodata +.LC9: + .string "Trying to free IRQ%d\n" +.LC10: + .string "Trying to free free IRQ%d\n" +.text + .align 16 +.globl free_irq + .type free_irq,@function +free_irq: + subl $8,%esp + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl 28(%esp),%ebx + movl 32(%esp),%esi + cmpl $15,%ebx + jbe .L821 + pushl %ebx + pushl $.LC9 + jmp .L840 + .align 16 +.L821: + leal 0(,%ebx,4),%eax + leal irq_action(%eax),%ebp + movl irq_action(%eax),%eax + movl %eax,16(%esp) + testl %eax,%eax + je .L823 + movl %ebx,%eax + andl $7,%eax + movl $1,%edi + movl %eax,%ecx + sall %cl,%edi + .align 4 +.L825: + movl 16(%esp),%eax + cmpl %esi,16(%eax) + jne .L824 +#APP + pushfl ; popl %esi + cli +#NO_APP + movl 20(%eax),%edx + movl %edx,(%ebp) + cmpl $0,irq_action(,%ebx,4) + jne .L827 + movl %edi,%ecx + movb %cl,20(%esp) + cmpl $7,%ebx + ja .L829 + movb %cl,%al + orb cache_21,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L828 + .align 16 +.L829: + movb 20(%esp),%al + orb cache_A1,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L828: + movl bad_interrupt(,%ebx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ebx,8) + movl %edx,idt+260(,%ebx,8) +#NO_APP +.L827: +#APP + pushl %esi ; popfl +#NO_APP + movl 16(%esp),%ecx + pushl %ecx + call kfree + addl $4,%esp + jmp .L820 + .align 16 +.L824: + movl 16(%esp),%ebp + addl $20,%ebp + movl 16(%esp),%eax + movl 20(%eax),%eax + movl %eax,16(%esp) + testl %eax,%eax + jne .L825 +.L823: + pushl %ebx + pushl $.LC10 +.L840: + call printk + addl $8,%esp +.L820: + popl %ebx + popl %esi + popl %edi + popl %ebp + addl $8,%esp + ret +.Lfe15: + .size free_irq,.Lfe15-free_irq + .align 16 +.globl probe_irq_on + .type probe_irq_on,@function +probe_irq_on: + subl $4,%esp + pushl %ebx + xorl %ebx,%ebx + movl $15,%ecx + .align 4 +.L845: + cmpl $0,irq_action(,%ecx,4) + jne .L844 + pushl %ecx + movl %ecx,8(%esp) + call enable_irq + movl 8(%esp),%ecx + movl $1,%eax + sall %cl,%eax + orl %eax,%ebx + addl $4,%esp +.L844: + decl %ecx + jne .L845 + movl jiffies,%eax + leal 10(%eax),%edx + .align 4 +.L848: + movl jiffies,%eax + cmpl %eax,%edx + ja .L848 + movzbl cache_A1,%eax + sall $8,%eax + movzbl cache_21,%edx + orl %edx,%eax + notl %eax + andl %ebx,%eax + popl %ebx + addl $4,%esp + ret +.Lfe16: + .size probe_irq_on,.Lfe16-probe_irq_on + .align 16 +.globl probe_irq_off + .type probe_irq_off,@function +probe_irq_off: + movzbl cache_A1,%eax + sall $8,%eax + movzbl cache_21,%edx + orl %edx,%eax + movl 4(%esp),%edx + andl %eax,%edx + jne .L854 + xorl %eax,%eax + ret + .align 16 +.L854: +#APP + bsfl %edx,%ecx +#NO_APP + movl $1,%eax + sall %cl,%eax + andl %edx,%eax + cmpl %eax,%edx + je .L856 + negl %ecx +.L856: + movl %ecx,%eax + ret +.Lfe17: + .size probe_irq_off,.Lfe17-probe_irq_off +.data + .type smptrap.278,@object + .size smptrap.278,1 +smptrap.278: +.byte 0 +.section .rodata +.LC11: + .string "pic1" +.LC12: + .string "pic2" +.text + .align 16 +.globl init_IRQ + .type init_IRQ,@function +init_IRQ: + pushl %ebx + cmpb $0,smptrap.278 + jne .L858 + movb $1,smptrap.278 + movb $52,%al +#APP + outb %al,$67 + outb %al,$0x80 +#NO_APP + movb $156,%al +#APP + outb %al,$64 + outb %al,$0x80 +#NO_APP + movb $46,%al +#APP + outb %al,$64 +#NO_APP + xorl %ecx,%ecx + movl $bad_interrupt,%ebx + .align 4 +.L875: + movl (%ebx,%ecx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ecx,8) + movl %edx,idt+260(,%ecx,8) +#NO_APP + incl %ecx + cmpl $15,%ecx + jle .L875 + pushl $.LC11 + pushl $32 + pushl $32 + call request_region + pushl $.LC12 + pushl $32 + pushl $160 + call request_region + pushl $irq2 + pushl $2 + call setup_x86_irq + addl $32,%esp + pushl $irq13 + pushl $13 + call setup_x86_irq +#APP + sti +#NO_APP + addl $8,%esp +.L858: + popl %ebx + ret +.Lfe18: + .size init_IRQ,.Lfe18-init_IRQ + .comm sw_irqs_lost,64,4 + .ident "GCC: (GNU) 2.7.2.1" diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/s2.irq.c linux/arch/i386/kernel/s2.irq.c --- dist-2.1.26/arch/i386/kernel/s2.irq.c Wed Dec 31 19:00:00 1969 +++ linux/arch/i386/kernel/s2.irq.c Sun Feb 9 01:51:50 1997 @@ -0,0 +1,2446 @@ + .file "irq.c" + .version "01.01" +gcc2_compiled.: +.data + .type cache_21,@object + .size cache_21,1 +cache_21: +.byte 255 + .type cache_A1,@object + .size cache_A1,1 +cache_A1: +.byte 255 +.globl sw_irq_mask + .align 4 + .type sw_irq_mask,@object + .size sw_irq_mask,4 +sw_irq_mask: + .long 1 +.globl sw_irq_runs + .align 4 + .type sw_irq_runs,@object + .size sw_irq_runs,4 +sw_irq_runs: + .long 0 +.globl sw_irqs_slow + .align 4 + .type sw_irqs_slow,@object + .size sw_irqs_slow,4 +sw_irqs_slow: + .long 0 +.globl sw_irqs_masked + .align 4 + .type sw_irqs_masked,@object + .size sw_irqs_masked,4 +sw_irqs_masked: + .long 0 +.globl sw_irqs_running + .align 4 + .type sw_irqs_running,@object + .size sw_irqs_running,4 +sw_irqs_running: + .long 0 +.globl sw_irqs_pending + .align 4 + .type sw_irqs_pending,@object + .size sw_irqs_pending,4 +sw_irqs_pending: + .long 0 +.text + .align 16 +.globl disable_irq + .type disable_irq,@function +disable_irq: + pushl %ebx + movl %eax,%edx +#APP + pushfl ; popl %ebx + cli +#NO_APP + movl %edx,%ecx + andl $7,%ecx + movl $1,%eax + sall %cl,%eax + cmpl $7,%edx + ja .L648 + orb cache_21,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L647 + .align 16 +.L648: + orb cache_A1,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L647: +#APP + pushl %ebx ; popfl +#NO_APP + popl %ebx + ret +.Lfe1: + .size disable_irq,.Lfe1-disable_irq + .align 16 +.globl enable_irq + .type enable_irq,@function +enable_irq: + pushl %ebx +#APP + pushfl ; popl %ebx + cli +#NO_APP + movl %eax,%ecx + andl $7,%ecx + movl $-2,%edx + roll %cl,%edx + cmpl $7,%eax + ja .L660 + movb cache_21,%al + andb %dl,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L659 + .align 16 +.L660: + movb cache_A1,%al + andb %dl,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L659: +#APP + pushl %ebx ; popfl +#NO_APP + popl %ebx + ret +.Lfe2: + .size enable_irq,.Lfe2-enable_irq +#APP + +.align 16,0x90 +fast_IRQ0_interrupt: + bad_IRQ0_interrupt: + IRQ0_interrupt: + pushl $-0-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $0 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + + +.align 16,0x90 +IRQ1_interrupt: + pushl $-1-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $1 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ1_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $1 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ1_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x02,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ2_interrupt: + pushl $-2-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $2 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ2_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $2 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ2_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x04,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ3_interrupt: + pushl $-3-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $3 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ3_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $3 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ3_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x08,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ4_interrupt: + pushl $-4-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $4 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ4_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $4 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ4_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x10,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ5_interrupt: + pushl $-5-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $5 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ5_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $5 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ5_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x20,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ6_interrupt: + pushl $-6-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $6 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ6_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $6 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ6_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x40,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ7_interrupt: + pushl $-7-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $7 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ7_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $7 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ7_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0x21,%al + jmp 1f +1: jmp 1f +1: orb $0x80,cache_21 + movb cache_21,%al + outb %al,$0x21 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ8_interrupt: + pushl $-8-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $8 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ8_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $8 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ8_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x01,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ9_interrupt: + pushl $-9-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $9 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ9_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $9 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ9_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x02,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ10_interrupt: + pushl $-10-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $10 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ10_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $10 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ10_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x04,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ11_interrupt: + pushl $-11-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $11 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ11_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $11 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ11_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x08,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ12_interrupt: + pushl $-12-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $12 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ12_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $12 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ12_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x10,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ13_interrupt: + pushl $-13-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $13 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ13_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $13 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ13_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x20,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ14_interrupt: + pushl $-14-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $14 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ14_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $14 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ14_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x40,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret + +.align 16,0x90 +IRQ15_interrupt: + pushl $-15-2 + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl $15 + call do_IRQ + addl $8,%esp + testl %eax,%eax + jnz ret_from_sys_call +popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +.align 16,0x90 +fast_IRQ15_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + pushl $0 + pushl $15 + call do_IRQ + addl $8,%esp + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +.align 16,0x90 +bad_IRQ15_interrupt: + cld + push %es + push %ds + pushl %eax + pushl %edx + pushl %ecx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + inb $0xA1,%al + jmp 1f +1: jmp 1f +1: orb $0x80,cache_A1 + movb cache_A1,%al + outb %al,$0xA1 + jmp 1f +1: jmp 1f +1: movb $0x20,%al + outb %al,$0xA0 + jmp 1f +1: jmp 1f +1: outb %al,$0x20 + popl %ecx + popl %edx + popl %eax + pop %ds + pop %es + iret +#NO_APP +.data + .align 4 + .type interrupt,@object + .size interrupt,68 +interrupt: + .long IRQ0_interrupt + .long IRQ1_interrupt + .long IRQ2_interrupt + .long IRQ3_interrupt + .long IRQ4_interrupt + .long IRQ5_interrupt + .long IRQ6_interrupt + .long IRQ7_interrupt + .long IRQ8_interrupt + .long IRQ9_interrupt + .long IRQ10_interrupt + .long IRQ11_interrupt + .long IRQ12_interrupt + .long IRQ13_interrupt + .long IRQ14_interrupt + .long IRQ15_interrupt + .zero 4 + .align 4 + .type fast_interrupt,@object + .size fast_interrupt,64 +fast_interrupt: + .long fast_IRQ0_interrupt + .long fast_IRQ1_interrupt + .long fast_IRQ2_interrupt + .long fast_IRQ3_interrupt + .long fast_IRQ4_interrupt + .long fast_IRQ5_interrupt + .long fast_IRQ6_interrupt + .long fast_IRQ7_interrupt + .long fast_IRQ8_interrupt + .long fast_IRQ9_interrupt + .long fast_IRQ10_interrupt + .long fast_IRQ11_interrupt + .long fast_IRQ12_interrupt + .long fast_IRQ13_interrupt + .long fast_IRQ14_interrupt + .long fast_IRQ15_interrupt + .align 4 + .type bad_interrupt,@object + .size bad_interrupt,64 +bad_interrupt: + .long bad_IRQ0_interrupt + .long bad_IRQ1_interrupt + .long bad_IRQ2_interrupt + .long bad_IRQ3_interrupt + .long bad_IRQ4_interrupt + .long bad_IRQ5_interrupt + .long bad_IRQ6_interrupt + .long bad_IRQ7_interrupt + .long bad_IRQ8_interrupt + .long bad_IRQ9_interrupt + .long bad_IRQ10_interrupt + .long bad_IRQ11_interrupt + .long bad_IRQ12_interrupt + .long bad_IRQ13_interrupt + .long bad_IRQ14_interrupt + .long bad_IRQ15_interrupt +.text + .align 16 + .type no_action,@function +no_action: + ret +.Lfe3: + .size no_action,.Lfe3-no_action + .align 16 + .type math_error_irq,@function +math_error_irq: + xorb %al,%al +#APP + outb %al,$240 +#NO_APP + cmpb $0,ignore_irq13 + jne .L671 + cmpb $0,hard_math + je .L671 + call math_error +.L671: + ret +.Lfe4: + .size math_error_irq,.Lfe4-math_error_irq +.data + .align 4 + .type irq13,@object + .size irq13,24 +irq13: + .long math_error_irq + .long 0 + .long 0 + .long .LC0 + .long 0 + .long 0 +.section .rodata +.LC0: + .string "math error" +.data + .align 4 + .type irq2,@object + .size irq2,24 +irq2: + .long no_action + .long 0 + .long 0 + .long .LC1 + .long 0 + .long 0 +.section .rodata +.LC1: + .string "cascade" +.data + .align 4 + .type irq_action,@object + .size irq_action,64 +irq_action: + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 + .long 0 +.section .rodata +.LC2: + .string "not in use" +.LC3: + .string "%2d: %10u %10u %c %s" +.LC4: + .string " +" +.LC5: + .string "" +.LC6: + .string ",%s %s" +.LC7: + .string "\n" +.LC8: + .string "sw_irq_runs: %lu\n" +.text + .align 16 +.globl get_irq_list + .type get_irq_list,@function +get_irq_list: + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl %eax,%ebp + xorl %esi,%esi + xorl %edi,%edi + .align 4 +.L682: + movl irq_action(,%edi,4),%ebx + testl %ebx,%ebx + je .L681 + movl 12(%ebx),%eax + pushl %eax + movl $32,%eax + testb $32,7(%ebx) + je .L686 + movl $43,%eax +.L686: + pushl %eax + movl kstat+196(,%edi,4),%eax + pushl %eax + movl kstat+108(,%edi,4),%eax + pushl %eax + pushl %edi + pushl $.LC3 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + addl $28,%esp + jmp .L698 + .align 16 + .align 4 +.L693: + movl 12(%ebx),%eax + pushl %eax + movl $.LC5,%eax + testb $32,7(%ebx) + je .L694 + movl $.LC4,%eax +.L694: + pushl %eax + pushl $.LC6 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + addl $16,%esp +.L698: + movl 20(%ebx),%ebx + testl %ebx,%ebx + jne .L693 + pushl $.LC7 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + addl $8,%esp +.L681: + incl %edi + cmpl $15,%edi + jle .L682 + movl sw_irq_runs,%eax + pushl %eax + pushl $.LC8 + leal (%esi,%ebp),%eax + pushl %eax + call sprintf + addl %eax,%esi + movl %esi,%eax + addl $12,%esp + popl %ebx + popl %esi + popl %edi + popl %ebp + ret +.Lfe5: + .size get_irq_list,.Lfe5-get_irq_list + .align 16 + .type run_irq,@function +run_irq: + subl $4,%esp + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl %eax,%ebp + movl %edx,16(%esp) + movl irq_action(,%ebp,4),%esi + xorl %edi,%edi + incl kstat+108(,%ebp,4) + testl %esi,%esi + je .L701 + .align 4 +.L702: + orl 4(%esi),%edi + movl 16(%esi),%edx + movl (%esi),%ebx + movl 16(%esp),%ecx + movl %ebp,%eax + call *%ebx + movl 20(%esi),%esi + testl %esi,%esi + jne .L702 +.L701: + testl $268435456,%edi + je .L704 + movl %ebp,%eax + call add_interrupt_randomness +.L704: + popl %ebx + popl %esi + popl %edi + popl %ebp + addl $4,%esp + ret +.Lfe6: + .size run_irq,.Lfe6-run_irq + .align 16 + .type run_sw_irq,@function +run_sw_irq: + pushl %esi + pushl %ebx + movl %eax,%ebx + movl %edx,%esi + xorl %edx,%edx + jmp .L706 + .align 16 + .align 4 +.L707: +#APP + btsl %ebx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L712 +.L706: +#APP + btsl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L713 +#APP + sti + .align 4 +#NO_APP +.L715: +#APP + btrl %ebx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L716 + movl %esi,%edx + movl %ebx,%eax + call run_irq + movl $1,%edx + jmp .L715 + .align 16 +.L716: +#APP + cli + btrl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP +.L713: +#APP + btrl %ebx,sw_irqs_running + sbbl %eax,%eax + btl %ebx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L712 +#APP + btl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L707 +.L712: + movl %edx,%eax + popl %ebx + popl %esi + ret +.Lfe7: + .size run_sw_irq,.Lfe7-run_sw_irq +#APP + fudge_slow: + pushl %eax + pushl %edx + movl %esp,%eax + pushfl + xorl %edx,%edx + mov %cs,%dx + pushl %edx + movl 20(%esp),%ecx + call 1f + popl %edx + popl %eax + ret + 1: pushl %eax + cld + push %es + push %ds + pushl %eax + pushl %ebp + pushl %edi + pushl %esi + pushl %edx + pushl %ecx + pushl %ebx + movl $0x18,%edx + mov %dx,%ds + mov %dx,%es + movl %esp,%eax + pushl %eax + pushl %ecx + call run_sw_irq + addl $8,%esp + popl %ebx + popl %ecx + popl %edx + popl %esi + popl %edi + popl %ebp + popl %eax + pop %ds + pop %es + addl $4,%esp + iret + +#NO_APP + .align 16 +.globl run_sw_irqs + .type run_sw_irqs,@function +run_sw_irqs: + incl sw_irq_runs +#APP + btl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L725 + incl intr_count +.L732: + xorl %ecx,%ecx + .align 4 +.L744: + cmpl $0,sw_irqs_pending + je .L734 +#APP + btl %ecx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L735 +#APP + btsl %ecx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L735 +#APP + cli + btl %ecx,sw_irqs_slow + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L741 + movl %ecx,%eax + call fudge_slow + jmp .L743 + .align 16 +.L741: + xorl %edx,%edx + movl %ecx,%eax + call run_sw_irq +.L743: +#APP + sti +#NO_APP + jmp .L732 + .align 16 +.L735: + incl %ecx + cmpl $15,%ecx + jle .L744 +.L734: + decl intr_count + .align 4 +.L725: + ret +.Lfe8: + .size run_sw_irqs,.Lfe8-run_sw_irqs + .align 16 + .type ack_irq,@function +ack_irq: + cmpl $7,%eax + jle .L750 + movb $32,%al +#APP + outb %al,$160 +#NO_APP +.L750: + movb $32,%al +#APP + outb %al,$32 +#NO_APP + ret +.Lfe9: + .size ack_irq,.Lfe9-ack_irq + .align 16 + .type try_mask_irq,@function +try_mask_irq: + movl %eax,%edx +#APP + btsl %edx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L760 +#APP + btsl %edx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L762 +#APP + incl sw_irqs_lost(,%edx,4) +#NO_APP +.L762: +#APP + btsl %edx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L760 + movl $1,%eax + ret + .align 16 +.L760: + xorl %eax,%eax + ret +.Lfe10: + .size try_mask_irq,.Lfe10-try_mask_irq + .align 16 +.globl do_IRQ + .type do_IRQ,@function +do_IRQ: + pushl %edi + pushl %esi + pushl %ebx + movl %eax,%ebx + movl %edx,%edi + xorl %esi,%esi +#APP + btsl %ebx,sw_irqs_pending + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + je .L769 +#APP + incl sw_irqs_lost(,%ebx,4) +#NO_APP +.L769: + movl %ebx,%eax + call ack_irq +#APP + btl $0,sw_irq_mask + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L774 +#APP + btsl %ebx,sw_irqs_running + sbbl %eax,%eax +#NO_APP + testl %eax,%eax + jne .L774 + incl intr_count + movl %edi,%edx + movl %ebx,%eax + call run_sw_irq + movl %eax,%esi + decl intr_count + .align 4 +.L774: + movl %esi,%eax + popl %ebx + popl %esi + popl %edi + ret +.Lfe11: + .size do_IRQ,.Lfe11-do_IRQ + .align 16 +.globl hard_sti + .type hard_sti,@function +hard_sti: +#APP + btrl $0,sw_irq_mask + jz 1f + call run_sw_irqs +1: + +#NO_APP + ret +.Lfe12: + .size hard_sti,.Lfe12-hard_sti + .align 16 +.globl setup_x86_irq + .type setup_x86_irq,@function +setup_x86_irq: + subl $12,%esp + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl %eax,%ebx + movl %edx,%edi + xorl %ebp,%ebp + leal 0(,%ebx,4),%eax + leal irq_action(%eax),%esi + movl irq_action(%eax),%eax + movl %eax,16(%esp) + testl %eax,%eax + je .L787 + movl 4(%eax),%esi + movl 4(%edi),%ecx + movl %esi,%eax + andl %ecx,%eax + testl $67108864,%eax + je .L812 + movl %esi,%eax + xorl %ecx,%eax + testl $536870912,%eax + je .L790 +.L812: + movl $-16,%eax + jmp .L811 + .align 16 + .align 4 +.L790: + movl 16(%esp),%esi + addl $20,%esi + movl 16(%esp),%edx + movl 20(%edx),%edx + movl %edx,16(%esp) + testl %edx,%edx + jne .L790 + movl $1,%ebp +.L787: + testb $16,7(%edi) + je .L794 + movl %ebx,%eax + call rand_initialize_irq +.L794: +#APP + pushfl ; popl 24(%esp) + cli +#NO_APP + movl %edi,(%esi) + testl %ebp,%ebp + jne .L795 + testb $32,7(%edi) + je .L796 +#APP + btrl %ebx,sw_irqs_slow + sbbl %eax,%eax +#NO_APP + movl $fast_interrupt,%ecx + movl (%ecx,%ebx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ebx,8) + movl %edx,idt+260(,%ebx,8) +#NO_APP + jmp .L798 + .align 16 +.L796: +#APP + btsl %ebx,sw_irqs_slow + sbbl %eax,%eax +#NO_APP + movl $interrupt,%ecx + movl (%ecx,%ebx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ebx,8) + movl %edx,idt+260(,%ebx,8) +#NO_APP +.L798: + movl %ebx,%ecx + andl $7,%ecx + movl $-2,%eax + roll %cl,%eax + movl %eax,%ecx + cmpl $7,%ebx + ja .L801 + movb %cl,%al + andb cache_21,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L795 + .align 16 +.L801: + movb %cl,%al + andb cache_A1,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L795: +#APP + pushl 24(%esp) ; popfl +#NO_APP + xorl %eax,%eax +.L811: + popl %ebx + popl %esi + popl %edi + popl %ebp + addl $12,%esp + ret +.Lfe13: + .size setup_x86_irq,.Lfe13-setup_x86_irq + .align 16 +.globl request_irq + .type request_irq,@function +request_irq: + subl $4,%esp + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl %eax,%ebp + movl %edx,%esi + movl %ecx,16(%esp) + cmpl $15,%ebp + ja .L819 + testl %esi,%esi + jne .L815 +.L819: + movl $-22,%eax + jmp .L818 + .align 16 +.L815: + movl $3,%edx + movl $24,%eax + call kmalloc + movl %eax,%ebx + testl %ebx,%ebx + jne .L816 + movl $-12,%eax + jmp .L818 + .align 16 +.L816: + movl %esi,(%ebx) + movl 16(%esp),%edi + movl %edi,4(%ebx) + movl $0,8(%ebx) + movl 24(%esp),%edi + movl %edi,12(%ebx) + movl $0,20(%ebx) + movl 28(%esp),%edi + movl %edi,16(%ebx) + movl %ebx,%edx + movl %ebp,%eax + call setup_x86_irq + movl %eax,%esi + testl %esi,%esi + je .L817 + movl %ebx,%eax + call kfree +.L817: + movl %esi,%eax +.L818: + popl %ebx + popl %esi + popl %edi + popl %ebp + addl $4,%esp + ret +.Lfe14: + .size request_irq,.Lfe14-request_irq +.section .rodata +.LC9: + .string "Trying to free IRQ%d\n" +.LC10: + .string "Trying to free free IRQ%d\n" +.text + .align 16 +.globl free_irq + .type free_irq,@function +free_irq: + subl $8,%esp + pushl %ebp + pushl %edi + pushl %esi + pushl %ebx + movl %eax,%ebx + movl %edx,%esi + cmpl $15,%ebx + jbe .L821 + pushl %ebx + pushl $.LC9 + jmp .L840 + .align 16 +.L821: + leal 0(,%ebx,4),%eax + leal irq_action(%eax),%ebp + movl irq_action(%eax),%eax + movl %eax,16(%esp) + testl %eax,%eax + je .L823 + movl %ebx,%eax + andl $7,%eax + movl $1,%edi + movl %eax,%ecx + sall %cl,%edi + .align 4 +.L825: + movl 16(%esp),%eax + cmpl %esi,16(%eax) + jne .L824 +#APP + pushfl ; popl %esi + cli +#NO_APP + movl 20(%eax),%edx + movl %edx,(%ebp) + cmpl $0,irq_action(,%ebx,4) + jne .L827 + movl %edi,%ecx + movb %cl,20(%esp) + cmpl $7,%ebx + ja .L829 + movb %cl,%al + orb cache_21,%al + movb %al,cache_21 +#APP + outb %al,$33 +#NO_APP + jmp .L828 + .align 16 +.L829: + movb 20(%esp),%al + orb cache_A1,%al + movb %al,cache_A1 +#APP + outb %al,$161 +#NO_APP +.L828: + movl bad_interrupt(,%ebx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ebx,8) + movl %edx,idt+260(,%ebx,8) +#NO_APP +.L827: +#APP + pushl %esi ; popfl +#NO_APP + movl 16(%esp),%eax + call kfree + jmp .L820 + .align 16 +.L824: + movl 16(%esp),%ebp + addl $20,%ebp + movl 16(%esp),%ecx + movl 20(%ecx),%ecx + movl %ecx,16(%esp) + testl %ecx,%ecx + jne .L825 +.L823: + pushl %ebx + pushl $.LC10 +.L840: + call printk + addl $8,%esp +.L820: + popl %ebx + popl %esi + popl %edi + popl %ebp + addl $8,%esp + ret +.Lfe15: + .size free_irq,.Lfe15-free_irq + .align 16 +.globl probe_irq_on + .type probe_irq_on,@function +probe_irq_on: + subl $4,%esp + pushl %ebx + xorl %ebx,%ebx + movl $15,%ecx + .align 4 +.L845: + cmpl $0,irq_action(,%ecx,4) + jne .L844 + movl %ecx,%eax + movl %ecx,4(%esp) + call enable_irq + movl 4(%esp),%ecx + movl $1,%eax + sall %cl,%eax + orl %eax,%ebx +.L844: + decl %ecx + jne .L845 + movl jiffies,%eax + leal 10(%eax),%edx + .align 4 +.L848: + movl jiffies,%eax + cmpl %eax,%edx + ja .L848 + movzbl cache_A1,%eax + sall $8,%eax + movzbl cache_21,%edx + orl %edx,%eax + notl %eax + andl %ebx,%eax + popl %ebx + addl $4,%esp + ret +.Lfe16: + .size probe_irq_on,.Lfe16-probe_irq_on + .align 16 +.globl probe_irq_off + .type probe_irq_off,@function +probe_irq_off: + pushl %ebx + movl %eax,%ebx + movzbl cache_A1,%eax + sall $8,%eax + movzbl cache_21,%edx + orl %edx,%eax + andl %eax,%ebx + jne .L854 + xorl %eax,%eax + jmp .L857 + .align 16 +.L854: +#APP + bsfl %ebx,%ecx +#NO_APP + movl $1,%eax + sall %cl,%eax + andl %ebx,%eax + cmpl %eax,%ebx + je .L856 + negl %ecx +.L856: + movl %ecx,%eax +.L857: + popl %ebx + ret +.Lfe17: + .size probe_irq_off,.Lfe17-probe_irq_off +.data + .type smptrap.278,@object + .size smptrap.278,1 +smptrap.278: +.byte 0 +.section .rodata +.LC11: + .string "pic1" +.LC12: + .string "pic2" +.text + .align 16 +.globl init_IRQ + .type init_IRQ,@function +init_IRQ: + pushl %ebx + cmpb $0,smptrap.278 + jne .L858 + movb $1,smptrap.278 + movb $52,%al +#APP + outb %al,$67 + outb %al,$0x80 +#NO_APP + movb $156,%al +#APP + outb %al,$64 + outb %al,$0x80 +#NO_APP + movb $46,%al +#APP + outb %al,$64 +#NO_APP + xorl %ecx,%ecx + movl $bad_interrupt,%ebx + .align 4 +.L875: + movl (%ebx,%ecx,4),%edx + movl $1048576,%eax +#APP + movw %dx,%ax + movw $-29184,%dx + movl %eax,idt+256(,%ecx,8) + movl %edx,idt+260(,%ecx,8) +#NO_APP + incl %ecx + cmpl $15,%ecx + jle .L875 + movl $.LC11,%ecx + movl $32,%edx + movl $32,%eax + call request_region + movl $.LC12,%ecx + movl $32,%edx + movl $160,%eax + call request_region + movl $irq2,%edx + movl $2,%eax + call setup_x86_irq + movl $irq13,%edx + movl $13,%eax + call setup_x86_irq +#APP + sti +#NO_APP +.L858: + popl %ebx + ret +.Lfe18: + .size init_IRQ,.Lfe18-init_IRQ + .comm sw_irqs_lost,64,4 + .ident "GCC: (GNU) 2.7.2.1" diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/signal.c linux/arch/i386/kernel/signal.c --- dist-2.1.26/arch/i386/kernel/signal.c Sun Jan 26 12:38:25 1997 +++ linux/arch/i386/kernel/signal.c Sun Feb 9 03:30:46 1997 @@ -23,13 +23,14 @@ #define _BLOCKABLE (~(_S(SIGKILL) | _S(SIGSTOP))) -asmlinkage int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options); -asmlinkage int do_signal(unsigned long oldmask, struct pt_regs * regs); +asmlinkage(int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options)); +asmlinkage(int do_signal(unsigned long oldmask, struct pt_regs * regs)); +asmlinkage(int sys_sigsuspend(int restart, unsigned long oldmask, unsigned long set)); /* * atomically swap in the new signal mask, and wait for a signal. */ -asmlinkage int sys_sigsuspend(int restart, unsigned long oldmask, unsigned long set) +asmlinkage(int sys_sigsuspend(int restart, unsigned long oldmask, unsigned long set)) { unsigned long mask; struct pt_regs * regs; @@ -85,7 +86,7 @@ /* * This sets regs->esp even though we don't actually use sigstacks yet.. */ -asmlinkage int sys_sigreturn(unsigned long __unused) +asmlinkage(int sys_sigreturn(unsigned long __unused)) { #define COPY(x) regs->x = context->x #define COPY_SEG(seg) \ @@ -305,7 +306,7 @@ * the kernel can handle, and then we build all the user-level signal handling * stack-frames in one go after that. */ -asmlinkage int do_signal(unsigned long oldmask, struct pt_regs * regs) +asmlinkage(int do_signal(unsigned long oldmask, struct pt_regs * regs)) { unsigned long mask; unsigned long signr; diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/sys_i386.c linux/arch/i386/kernel/sys_i386.c --- dist-2.1.26/arch/i386/kernel/sys_i386.c Fri Feb 7 18:02:24 1997 +++ linux/arch/i386/kernel/sys_i386.c Sun Feb 9 03:32:03 1997 @@ -25,7 +25,7 @@ * sys_pipe() is the normal C calling standard for creating * a pipe. It's not the way unix traditionally does this, though. */ -asmlinkage int sys_pipe(unsigned long * fildes) +asmlinkage(int sys_pipe(unsigned long * fildes)) { int fd[2]; int error; @@ -56,7 +56,7 @@ unsigned long offset; }; -asmlinkage int old_mmap(struct mmap_arg_struct *arg) +asmlinkage(int old_mmap(struct mmap_arg_struct *arg)) { int error = -EFAULT; struct file * file = NULL; @@ -77,7 +77,7 @@ return error; } -extern asmlinkage int sys_select(int, fd_set *, fd_set *, fd_set *, struct timeval *); +extern asmlinkage(int sys_select(int, fd_set *, fd_set *, fd_set *, struct timeval *)); struct sel_arg_struct { unsigned long n; @@ -85,7 +85,7 @@ struct timeval *tvp; }; -asmlinkage int old_select(struct sel_arg_struct *arg) +asmlinkage(int old_select(struct sel_arg_struct *arg)) { struct sel_arg_struct a; int ret; @@ -103,7 +103,7 @@ * * This is really horribly ugly. */ -asmlinkage int sys_ipc (uint call, int first, int second, int third, void *ptr, long fifth) +asmlinkage(int sys_ipc (uint call, int first, int second, int third, void *ptr, long fifth)) { int version, ret; diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/test.c linux/arch/i386/kernel/test.c --- dist-2.1.26/arch/i386/kernel/test.c Wed Dec 31 19:00:00 1969 +++ linux/arch/i386/kernel/test.c Wed Feb 5 00:50:53 1997 @@ -0,0 +1,22 @@ +#include +#include + +extern void bar ( void ); + +void foo ( void ) +{ + unsigned long flags; + + save_flags(flags); + cli(); + + bar(); + + restore_flags(flags); +} + +void zoik ( void ) +{ + bar(); + sti(); +} diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/traps.c linux/arch/i386/kernel/traps.c --- dist-2.1.26/arch/i386/kernel/traps.c Fri Feb 7 18:02:24 1997 +++ linux/arch/i386/kernel/traps.c Sun Feb 9 03:34:42 1997 @@ -27,8 +27,8 @@ #include #include -asmlinkage int system_call(void); -asmlinkage void lcall7(void); +asmlinkage(int system_call(void)); +asmlinkage(void lcall7(void)); struct desc_struct default_ldt = { 0, 0 }; static inline void console_verbose(void) @@ -38,7 +38,7 @@ } #define DO_ERROR(trapnr, signr, str, name, tsk) \ -asmlinkage void do_##name(struct pt_regs * regs, long error_code) \ +asmlinkage(void do_##name(struct pt_regs * regs, long error_code)) \ { \ lock_kernel(); \ tsk->tss.error_code = error_code; \ @@ -49,7 +49,7 @@ } #define DO_VM86_ERROR(trapnr, signr, str, name, tsk) \ -asmlinkage void do_##name(struct pt_regs * regs, long error_code) \ +asmlinkage(void do_##name(struct pt_regs * regs, long error_code)) \ { \ lock_kernel(); \ if (regs->eflags & VM_MASK) { \ @@ -84,25 +84,25 @@ void page_exception(void); -asmlinkage void divide_error(void); -asmlinkage void debug(void); -asmlinkage void nmi(void); -asmlinkage void int3(void); -asmlinkage void overflow(void); -asmlinkage void bounds(void); -asmlinkage void invalid_op(void); -asmlinkage void device_not_available(void); -asmlinkage void double_fault(void); -asmlinkage void coprocessor_segment_overrun(void); -asmlinkage void invalid_TSS(void); -asmlinkage void segment_not_present(void); -asmlinkage void stack_segment(void); -asmlinkage void general_protection(void); -asmlinkage void page_fault(void); -asmlinkage void coprocessor_error(void); -asmlinkage void reserved(void); -asmlinkage void alignment_check(void); -asmlinkage void spurious_interrupt_bug(void); +asmlinkage(void divide_error(void)); +asmlinkage(void debug(void)); +asmlinkage(void nmi(void)); +asmlinkage(void int3(void)); +asmlinkage(void overflow(void)); +asmlinkage(void bounds(void)); +asmlinkage(void invalid_op(void)); +asmlinkage(void device_not_available(void)); +asmlinkage(void double_fault(void)); +asmlinkage(void coprocessor_segment_overrun(void)); +asmlinkage(void invalid_TSS(void)); +asmlinkage(void segment_not_present(void)); +asmlinkage(void stack_segment(void)); +asmlinkage(void general_protection(void)); +asmlinkage(void page_fault(void)); +asmlinkage(void coprocessor_error(void)); +asmlinkage(void reserved(void)); +asmlinkage(void alignment_check(void)); +asmlinkage(void spurious_interrupt_bug(void)); int kstack_depth_to_print = 24; @@ -202,7 +202,7 @@ flush from user space exception some people get. */ DO_ERROR(19, SIGSEGV, "cache flush denied", cache_flush_denied, current) -asmlinkage void cache_flush_denied(struct pt_regs * regs, long error_code) +asmlinkage(void cache_flush_denied(struct pt_regs * regs, long error_code)) { if (regs->eflags & VM_MASK) { handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code); @@ -214,7 +214,7 @@ force_sig(SIGSEGV, current); } -asmlinkage void do_general_protection(struct pt_regs * regs, long error_code) +asmlinkage(void do_general_protection(struct pt_regs * regs, long error_code)) { lock_kernel(); if (regs->eflags & VM_MASK) { @@ -229,7 +229,7 @@ unlock_kernel(); } -asmlinkage void do_nmi(struct pt_regs * regs, long error_code) +asmlinkage(void do_nmi(struct pt_regs * regs, long error_code)) { lock_kernel(); #ifdef CONFIG_SMP_NMI_INVAL @@ -244,7 +244,7 @@ unlock_kernel(); } -asmlinkage void do_debug(struct pt_regs * regs, long error_code) +asmlinkage(void do_debug(struct pt_regs * regs, long error_code)) { lock_kernel(); if (regs->eflags & VM_MASK) { @@ -303,7 +303,7 @@ unlock_kernel(); } -asmlinkage void do_coprocessor_error(struct pt_regs * regs, long error_code) +asmlinkage(void do_coprocessor_error(struct pt_regs * regs, long error_code)) { lock_kernel(); ignore_irq13 = 1; @@ -311,8 +311,7 @@ unlock_kernel(); } -asmlinkage void do_spurious_interrupt_bug(struct pt_regs * regs, - long error_code) +asmlinkage(void do_spurious_interrupt_bug(struct pt_regs * regs, long error_code)) { lock_kernel(); printk("Ignoring P6 Local APIC Spurious Interrupt Bug...\n"); @@ -326,7 +325,7 @@ * Careful.. There are problems with IBM-designed IRQ13 behaviour. * Don't touch unless you *really* know how it works. */ -asmlinkage void math_state_restore(void) +asmlinkage(void math_state_restore(void)) { lock_kernel(); __asm__ __volatile__("clts"); /* Allow maths ops (or we recurse) */ @@ -368,7 +367,7 @@ #ifndef CONFIG_MATH_EMULATION -asmlinkage void math_emulate(long arg) +asmlinkage(void math_emulate(long arg)) { lock_kernel(); printk("math-emulation not enabled and no coprocessor found.\n"); diff -u --recursive --new-file dist-2.1.26/arch/i386/kernel/vm86.c linux/arch/i386/kernel/vm86.c --- dist-2.1.26/arch/i386/kernel/vm86.c Sun Feb 2 15:26:00 1997 +++ linux/arch/i386/kernel/vm86.c Sun Feb 9 03:35:14 1997 @@ -62,7 +62,7 @@ ( (unsigned)( & (((struct kernel_vm86_regs *)0)->VM86_REGS_PART2) ) ) #define VM86_REGS_SIZE2 (sizeof(struct kernel_vm86_regs) - VM86_REGS_SIZE1) -asmlinkage struct pt_regs * save_v86_state(struct kernel_vm86_regs * regs) +asmlinkage(struct pt_regs * save_v86_state(struct kernel_vm86_regs * regs)) { struct pt_regs *ret; unsigned long tmp; @@ -125,7 +125,7 @@ static do_vm86_irq_handling(int subfunction, int irqnumber); static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk); -asmlinkage int sys_vm86old(struct vm86_struct * v86) +asmlinkage(int sys_vm86old(struct vm86_struct * v86)) { struct kernel_vm86_struct info; /* declare this _on top_, * this avoids wasting of stack space. @@ -156,7 +156,7 @@ } -asmlinkage int sys_vm86(unsigned long subfunction, struct vm86plus_struct * v86) +asmlinkage(int sys_vm86(unsigned long subfunction, struct vm86plus_struct * v86)) { struct kernel_vm86_struct info; /* declare this _on top_, * this avoids wasting of stack space. diff -u --recursive --new-file dist-2.1.26/arch/i386/math-emu/errors.c linux/arch/i386/math-emu/errors.c --- dist-2.1.26/arch/i386/math-emu/errors.c Tue Dec 17 07:02:07 1996 +++ linux/arch/i386/math-emu/errors.c Sun Feb 9 03:36:58 1997 @@ -371,7 +371,7 @@ /* Real operation attempted on two operands, one a NaN. */ /* Returns nz if the exception is unmasked */ -asmlinkage int real_2op_NaN(FPU_REG const *a, FPU_REG const *b, FPU_REG *dest) +asmlinkage(int real_2op_NaN(FPU_REG const *a, FPU_REG const *b, FPU_REG *dest)) { FPU_REG const *x; int signalling; @@ -437,7 +437,7 @@ /* Invalid arith operation on Valid registers */ /* Returns nz if the exception is unmasked */ -asmlinkage int arith_invalid(FPU_REG *dest) +asmlinkage(int arith_invalid(FPU_REG *dest)) { EXCEPTION(EX_Invalid); @@ -454,7 +454,7 @@ /* Divide a finite number by zero */ -asmlinkage int divide_by_zero(int sign, FPU_REG *dest) +asmlinkage(int divide_by_zero(int sign, FPU_REG *dest)) { if ( control_word & CW_ZeroDiv ) @@ -489,7 +489,7 @@ /* This may be called often, so keep it lean */ -asmlinkage void set_precision_flag_up(void) +asmlinkage(void set_precision_flag_up(void)) { if ( control_word & CW_Precision ) partial_status |= (SW_Precision | SW_C1); /* The masked response */ @@ -500,7 +500,7 @@ /* This may be called often, so keep it lean */ -asmlinkage void set_precision_flag_down(void) +asmlinkage(void set_precision_flag_down(void)) { if ( control_word & CW_Precision ) { /* The masked response */ @@ -512,7 +512,7 @@ } -asmlinkage int denormal_operand(void) +asmlinkage(int denormal_operand(void)) { if ( control_word & CW_Denormal ) { /* The masked response */ @@ -527,7 +527,7 @@ } -asmlinkage int arith_overflow(FPU_REG *dest) +asmlinkage(int arith_overflow(FPU_REG *dest)) { if ( control_word & CW_Overflow ) @@ -561,7 +561,7 @@ } -asmlinkage int arith_underflow(FPU_REG *dest) +asmlinkage(int arith_underflow(FPU_REG *dest)) { if ( control_word & CW_Underflow ) diff -u --recursive --new-file dist-2.1.26/arch/i386/math-emu/fpu_emu.h linux/arch/i386/math-emu/fpu_emu.h --- dist-2.1.26/arch/i386/math-emu/fpu_emu.h Sun Sep 22 03:11:43 1996 +++ linux/arch/i386/math-emu/fpu_emu.h Sun Feb 9 03:37:48 1997 @@ -145,24 +145,24 @@ /*----- Prototypes for functions written in assembler -----*/ /* extern void reg_move(FPU_REG *a, FPU_REG *b); */ -asmlinkage void normalize(FPU_REG *x); -asmlinkage void normalize_nuo(FPU_REG *x); -asmlinkage int reg_div(FPU_REG const *arg1, FPU_REG const *arg2, - FPU_REG *answ, unsigned int control_w); -asmlinkage int reg_u_sub(FPU_REG const *arg1, FPU_REG const *arg2, - FPU_REG *answ, unsigned int control_w); -asmlinkage int reg_u_mul(FPU_REG const *arg1, FPU_REG const *arg2, - FPU_REG *answ, unsigned int control_w); -asmlinkage int reg_u_div(FPU_REG const *arg1, FPU_REG const *arg2, - FPU_REG *answ, unsigned int control_w); -asmlinkage int reg_u_add(FPU_REG const *arg1, FPU_REG const *arg2, - FPU_REG *answ, unsigned int control_w); -asmlinkage int wm_sqrt(FPU_REG *n, unsigned int control_w); -asmlinkage unsigned shrx(void *l, unsigned x); -asmlinkage unsigned shrxs(void *v, unsigned x); -asmlinkage unsigned long div_small(unsigned long long *x, unsigned long y); -asmlinkage void round_reg(FPU_REG *arg, unsigned int extent, - unsigned int control_w); +asmlinkage(void normalize(FPU_REG *x)); +asmlinkage(void normalize_nuo(FPU_REG *x)); +asmlinkage(int reg_div(FPU_REG const *arg1, FPU_REG const *arg2, + FPU_REG *answ, unsigned int control_w)); +asmlinkage(int reg_u_sub(FPU_REG const *arg1, FPU_REG const *arg2, + FPU_REG *answ, unsigned int control_w)); +asmlinkage(int reg_u_mul(FPU_REG const *arg1, FPU_REG const *arg2, + FPU_REG *answ, unsigned int control_w)); +asmlinkage(int reg_u_div(FPU_REG const *arg1, FPU_REG const *arg2, + FPU_REG *answ, unsigned int control_w)); +asmlinkage(int reg_u_add(FPU_REG const *arg1, FPU_REG const *arg2, + FPU_REG *answ, unsigned int control_w)); +asmlinkage(int wm_sqrt(FPU_REG *n, unsigned int control_w)); +asmlinkage(unsigned shrx(void *l, unsigned x)); +asmlinkage(unsigned shrxs(void *v, unsigned x)); +asmlinkage(unsigned long div_small(unsigned long long *x, unsigned long y)); +asmlinkage(void round_reg(FPU_REG *arg, unsigned int extent, + unsigned int control_w)); #ifndef MAKING_PROTO #include "fpu_proto.h" diff -u --recursive --new-file dist-2.1.26/arch/i386/math-emu/fpu_entry.c linux/arch/i386/math-emu/fpu_entry.c --- dist-2.1.26/arch/i386/math-emu/fpu_entry.c Tue Dec 17 07:02:07 1996 +++ linux/arch/i386/math-emu/fpu_entry.c Sun Feb 9 03:38:24 1997 @@ -129,7 +129,7 @@ static int valid_prefix(unsigned char *Byte, unsigned char **fpu_eip, overrides *override); -asmlinkage void math_emulate(long arg) +asmlinkage(void math_emulate(long arg)) { unsigned char FPU_modrm, byte1; unsigned short code; diff -u --recursive --new-file dist-2.1.26/arch/i386/math-emu/fpu_proto.h linux/arch/i386/math-emu/fpu_proto.h --- dist-2.1.26/arch/i386/math-emu/fpu_proto.h Tue Dec 17 07:00:33 1996 +++ linux/arch/i386/math-emu/fpu_proto.h Sun Feb 9 03:39:02 1997 @@ -7,15 +7,15 @@ extern void stack_underflow_i(int i); extern void stack_underflow_pop(int i); extern int set_precision_flag(int flags); -asmlinkage void FPU_exception(int n); -asmlinkage int real_2op_NaN(FPU_REG const *a, FPU_REG const *b, FPU_REG *dest); -asmlinkage int arith_invalid(FPU_REG *dest); -asmlinkage int divide_by_zero(int sign, FPU_REG *dest); -asmlinkage void set_precision_flag_up(void); -asmlinkage void set_precision_flag_down(void); -asmlinkage int denormal_operand(void); -asmlinkage int arith_overflow(FPU_REG *dest); -asmlinkage int arith_underflow(FPU_REG *dest); +asmlinkage(void FPU_exception(int n)); +asmlinkage(int real_2op_NaN(FPU_REG const *a, FPU_REG const *b, FPU_REG *dest)); +asmlinkage(int arith_invalid(FPU_REG *dest)); +asmlinkage(int divide_by_zero(int sign, FPU_REG *dest)); +asmlinkage(void set_precision_flag_up(void)); +asmlinkage(void set_precision_flag_down(void)); +asmlinkage(int denormal_operand(void)); +asmlinkage(int arith_overflow(FPU_REG *dest)); +asmlinkage(int arith_underflow(FPU_REG *dest)); /* fpu_arith.c */ extern void fadd__(void); @@ -51,7 +51,7 @@ extern void fstp_i(void); /* fpu_entry.c */ -asmlinkage void math_emulate(long arg); +asmlinkage(void math_emulate(long arg)); extern void math_abort(struct info *info, unsigned int signal); /* fpu_etc.c */ diff -u --recursive --new-file dist-2.1.26/arch/i386/math-emu/poly.h linux/arch/i386/math-emu/poly.h --- dist-2.1.26/arch/i386/math-emu/poly.h Mon Aug 1 01:19:14 1994 +++ linux/arch/i386/math-emu/poly.h Sun Feb 9 03:39:34 1997 @@ -26,19 +26,19 @@ unsigned long msw; } Xsig; -asmlinkage void mul64(unsigned long long const *a, unsigned long long const *b, - unsigned long long *result); -asmlinkage void polynomial_Xsig(Xsig *, const unsigned long long *x, - const unsigned long long terms[], const int n); +asmlinkage(void mul64(unsigned long long const *a, unsigned long long const *b, + unsigned long long *result)); +asmlinkage(void polynomial_Xsig(Xsig *, const unsigned long long *x, + const unsigned long long terms[], const int n)); -asmlinkage void mul32_Xsig(Xsig *, const unsigned long mult); -asmlinkage void mul64_Xsig(Xsig *, const unsigned long long *mult); -asmlinkage void mul_Xsig_Xsig(Xsig *dest, const Xsig *mult); +asmlinkage(void mul32_Xsig(Xsig *, const unsigned long mult)); +asmlinkage(void mul64_Xsig(Xsig *, const unsigned long long *mult)); +asmlinkage(void mul_Xsig_Xsig(Xsig *dest, const Xsig *mult)); -asmlinkage void shr_Xsig(Xsig *, const int n); -asmlinkage int round_Xsig(Xsig *); -asmlinkage int norm_Xsig(Xsig *); -asmlinkage void div_Xsig(Xsig *x1, const Xsig *x2, const Xsig *dest); +asmlinkage(void shr_Xsig(Xsig *, const int n)); +asmlinkage(int round_Xsig(Xsig *)); +asmlinkage(int norm_Xsig(Xsig *)); +asmlinkage(void div_Xsig(Xsig *x1, const Xsig *x2, const Xsig *dest)); /* Macro to extract the most significant 32 bits from a long long */ #define LL_MSW(x) (((unsigned long *)&x)[1]) diff -u --recursive --new-file dist-2.1.26/arch/i386/mm/fault.c linux/arch/i386/mm/fault.c --- dist-2.1.26/arch/i386/mm/fault.c Sun Jan 26 12:38:27 1997 +++ linux/arch/i386/mm/fault.c Sun Feb 9 03:35:40 1997 @@ -84,7 +84,7 @@ * bit 1 == 0 means read, 1 means write * bit 2 == 0 means kernel, 1 means user-mode */ -asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code) +asmlinkage(void do_page_fault(struct pt_regs *regs, unsigned long error_code)) { void (*handler)(struct task_struct *, struct vm_area_struct *, diff -u --recursive --new-file dist-2.1.26/drivers/block/md.c linux/drivers/block/md.c --- dist-2.1.26/drivers/block/md.c Tue Jan 21 01:19:51 1997 +++ linux/drivers/block/md.c Wed Jan 29 00:25:54 1997 @@ -216,9 +216,12 @@ } /* Remove locks. */ - for (i=0; ii_sb,old_ino,0); + old_inode = iget(old_dir->i_sb,old_ino); if (!old_inode) goto end_rename; if (must_be_dir && !S_ISDIR(old_inode->i_mode)) goto end_rename; new_bh = affs_find_entry(new_dir,new_name,new_len,&new_ino); if (new_bh) { - new_inode = __iget(new_dir->i_sb,new_ino,0); + new_inode = iget(new_dir->i_sb,new_ino); if (!new_inode) { /* What does this mean? */ affs_brelse(new_bh); new_bh = NULL; diff -u --recursive --new-file dist-2.1.26/fs/buffer.c linux/fs/buffer.c --- dist-2.1.26/fs/buffer.c Sun Jan 26 12:38:50 1997 +++ linux/fs/buffer.c Sun Feb 9 15:10:12 1997 @@ -247,7 +247,7 @@ return sync_buffers(dev, 1); } -asmlinkage int sys_sync(void) +asmlinkage(int sys_sync(void)) { lock_kernel(); fsync_dev(0); @@ -260,7 +260,7 @@ return fsync_dev(inode->i_dev); } -asmlinkage int sys_fsync(unsigned int fd) +asmlinkage(int sys_fsync(unsigned int fd)) { struct file * file; struct inode * inode; @@ -277,7 +277,7 @@ return err; } -asmlinkage int sys_fdatasync(unsigned int fd) +asmlinkage(int sys_fdatasync(unsigned int fd)) { struct file * file; struct inode * inode; @@ -1489,7 +1489,7 @@ * and superblocks so that we could write back only the old ones as well */ -asmlinkage int sync_old_buffers(void) +asmlinkage(int sync_old_buffers(void)) { int i; int ndirty, nwritten; @@ -1556,7 +1556,7 @@ * We would want to verify each parameter, however, to make sure that it * is reasonable. */ -asmlinkage int sys_bdflush(int func, long data) +asmlinkage(int sys_bdflush(int func, long data)) { int i, error = -EPERM; diff -u --recursive --new-file dist-2.1.26/fs/dquot.c linux/fs/dquot.c --- dist-2.1.26/fs/dquot.c Sun Jan 26 12:38:50 1997 +++ linux/fs/dquot.c Sun Feb 9 15:10:21 1997 @@ -1002,7 +1002,7 @@ * calls. Maybe we need to add the process quotas etc in the future. * But we probably better use rlimits for that. */ -asmlinkage int sys_quotactl(int cmd, const char *special, int id, caddr_t addr) +asmlinkage(int sys_quotactl(int cmd, const char *special, int id, caddr_t addr)) { int cmds = 0, type = 0, flags = 0; struct inode *ino; diff -u --recursive --new-file dist-2.1.26/fs/exec.c linux/fs/exec.c --- dist-2.1.26/fs/exec.c Sun Jan 26 12:38:50 1997 +++ linux/fs/exec.c Sun Feb 9 15:10:48 1997 @@ -52,8 +52,8 @@ #include #endif -asmlinkage int sys_exit(int exit_code); -asmlinkage int sys_brk(unsigned long); +asmlinkage(int sys_exit(int exit_code)); +asmlinkage(int sys_brk(unsigned long)); /* * Here are the actual binaries that will be accepted: @@ -135,16 +135,17 @@ f->f_pos = 0; f->f_reada = 0; f->f_op = inode->i_op->default_file_ops; + inode->i_count++; if (f->f_op->open) { int error = f->f_op->open(inode,f); if (error) { f->f_count--; put_unused_fd(fd); + iput(inode); return error; } } current->files->fd[fd] = f; - inode->i_count++; } return fd; } @@ -155,7 +156,7 @@ * * Also note that we take the address to load from from the file itself. */ -asmlinkage int sys_uselib(const char * library) +asmlinkage(int sys_uselib(const char * library)) { int fd, retval; struct file * file; diff -u --recursive --new-file dist-2.1.26/fs/ext2/namei.c linux/fs/ext2/namei.c --- dist-2.1.26/fs/ext2/namei.c Tue Dec 17 07:05:41 1996 +++ linux/fs/ext2/namei.c Sun Feb 2 18:22:27 1997 @@ -978,7 +978,7 @@ retval = -ENOENT; if (!old_bh) goto end_rename; - old_inode = __iget (old_dir->i_sb, le32_to_cpu(old_de->inode), 0); /* don't cross mnt-points */ + old_inode = iget (old_dir->i_sb, le32_to_cpu(old_de->inode)); if (!old_inode) goto end_rename; if (must_be_dir && !S_ISDIR(old_inode->i_mode)) @@ -992,7 +992,7 @@ goto end_rename; new_bh = ext2_find_entry (new_dir, new_name, new_len, &new_de); if (new_bh) { - new_inode = __iget (new_dir->i_sb, le32_to_cpu(new_de->inode), 0); /* no mntp cross */ + new_inode = iget (new_dir->i_sb, le32_to_cpu(new_de->inode)); if (!new_inode) { brelse (new_bh); new_bh = NULL; diff -u --recursive --new-file dist-2.1.26/fs/ext2/super.c linux/fs/ext2/super.c --- dist-2.1.26/fs/ext2/super.c Sun Jan 5 14:05:49 1997 +++ linux/fs/ext2/super.c Wed Feb 5 02:26:33 1997 @@ -369,7 +369,7 @@ #define log2(n) ffz(~(n)) struct super_block * ext2_read_super (struct super_block * sb, void * data, - int silent) + int silent, const char * dev_name) { struct buffer_head * bh; struct ext2_super_block * es; diff -u --recursive --new-file dist-2.1.26/fs/fcntl.c linux/fs/fcntl.c --- dist-2.1.26/fs/fcntl.c Sun Jan 26 12:38:51 1997 +++ linux/fs/fcntl.c Sun Feb 9 15:11:11 1997 @@ -36,7 +36,7 @@ return arg; } -asmlinkage int sys_dup2(unsigned int oldfd, unsigned int newfd) +asmlinkage(int sys_dup2(unsigned int oldfd, unsigned int newfd)) { int err = -EBADF; @@ -57,7 +57,7 @@ return err; } -asmlinkage int sys_dup(unsigned int fildes) +asmlinkage(int sys_dup(unsigned int fildes)) { int ret; @@ -67,7 +67,7 @@ return ret; } -asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg) +asmlinkage(long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg)) { struct file * filp; struct task_struct *p; diff -u --recursive --new-file dist-2.1.26/fs/filesystems.c linux/fs/filesystems.c --- dist-2.1.26/fs/filesystems.c Sun Jan 26 12:38:51 1997 +++ linux/fs/filesystems.c Sun Feb 9 15:11:20 1997 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -32,7 +33,7 @@ extern void free_initmem(void); /* This may be used only once, enforced by 'static int callable' */ -asmlinkage int sys_setup(void) +asmlinkage(int sys_setup(void)) { static int callable = 1; int err = -1; @@ -104,6 +105,10 @@ #ifdef CONFIG_UFS_FS init_ufs_fs(); +#endif + +#ifdef CONFIG_LO_FS + init_lo_fs(); #endif #ifdef CONFIG_ROMFS_FS diff -u --recursive --new-file dist-2.1.26/fs/inode.c linux/fs/inode.c --- dist-2.1.26/fs/inode.c Tue Jan 21 01:19:51 1997 +++ linux/fs/inode.c Sun Feb 2 16:54:00 1997 @@ -145,13 +145,13 @@ __wait_on_inode(inode); } -static inline void lock_inode(struct inode * inode) +void lock_inode(struct inode * inode) { wait_on_inode(inode); inode->i_lock = 1; } -static inline void unlock_inode(struct inode * inode) +void unlock_inode(struct inode * inode) { inode->i_lock = 0; wake_up(&inode->i_wait); @@ -159,7 +159,8 @@ /* * Note that we don't want to disturb any wait-queues when we discard - * an inode. + * an inode. Note also that the inode must be locked when clear_inode + * is called. * * Argghh. Got bitten by a gcc problem with inlining: no way to tell * the compiler that the inline asm function 'memset' changes 'inode'. @@ -168,13 +169,18 @@ * * The solution is the weird use of 'volatile'. Ho humm. Have to report * it to the gcc lists, and hope we can do this more cleanly some day.. + * + * Doh!!! This has been another one of those places where races are + * bound to occur. Just remember that the inode must remain locked + * whenever we can sleep... Please!!! --blah */ void clear_inode(struct inode * inode) { struct wait_queue * wait; - truncate_inode_pages(inode, 0); - wait_on_inode(inode); + if (!inode->i_lock) + printk(KERN_DEBUG "VFS: clear_inode called with !i_lock\n"); + truncate_inode_pages(inode, 0); /* may sleep */ if (IS_WRITABLE(inode)) { if (inode->i_sb && inode->i_sb->dq_op) inode->i_sb->dq_op->drop(inode); @@ -185,6 +191,7 @@ if (inode->i_count) nr_free_inodes++; memset(inode,0,sizeof(*inode)); + inode->i_lock = 1; ((volatile struct inode *) inode)->i_wait = wait; insert_inode_free(inode); } @@ -202,7 +209,9 @@ continue; if (inode->i_count || inode->i_dirt || inode->i_lock) return 0; + lock_inode(inode); clear_inode(inode); + unlock_inode(inode); } return 1; } @@ -395,7 +404,9 @@ kdevname(dev)); continue; } + lock_inode(inode); clear_inode(inode); + unlock_inode(inode); } } @@ -441,7 +452,9 @@ } if (inode->i_sb && inode->i_sb->s_op && inode->i_sb->s_op->put_inode) { - inode->i_sb->s_op->put_inode(inode); + inode->i_lock = 1; + inode->i_sb->s_op->put_inode(inode); /* sleeps here were once bad */ + unlock_inode(inode); if (!inode->i_nlink) return; } @@ -523,6 +536,7 @@ if (best->i_count) goto repeat; found_good: + lock_inode(best); clear_inode(best); best->i_count = 1; best->i_nlink = 1; @@ -530,6 +544,7 @@ best->i_sem.count = 1; best->i_ino = ++ino; best->i_dev = 0; + unlock_inode(best); nr_free_inodes--; if (nr_free_inodes < 0) { printk ("VFS: get_empty_inode: bad free inode count.\n"); @@ -565,7 +580,7 @@ return inode; } -struct inode *__iget(struct super_block * sb, int nr, int crossmntp) +struct inode *iget(struct super_block * sb, int nr) { static struct wait_queue * update_wait = NULL; struct inode_hash_entry * h; @@ -615,19 +630,24 @@ iput(inode); goto repeat; } - if (crossmntp && inode->i_mount) { - struct inode * tmp = inode->i_mount; - tmp->i_count++; - iput(inode); - inode = tmp; - wait_on_inode(inode); - } if (empty) iput(empty); return_it: while (h->updating) sleep_on(&update_wait); + return inode; +} + +struct inode *traverse_mntp ( struct inode *inode ) +{ + while (inode->i_mount) { + struct inode * tmp = inode->i_mount; + tmp->i_count++; + iput(inode); + inode = tmp; + wait_on_inode(inode); + } return inode; } diff -u --recursive --new-file dist-2.1.26/fs/ioctl.c linux/fs/ioctl.c --- dist-2.1.26/fs/ioctl.c Sun Jan 26 12:38:51 1997 +++ linux/fs/ioctl.c Sun Feb 9 15:11:35 1997 @@ -46,7 +46,7 @@ } -asmlinkage int sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg) +asmlinkage(int sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)) { struct file * filp; unsigned int flag; diff -u --recursive --new-file dist-2.1.26/fs/isofs/inode.c linux/fs/isofs/inode.c --- dist-2.1.26/fs/isofs/inode.c Tue Jan 14 14:46:25 1997 +++ linux/fs/isofs/inode.c Wed Feb 5 19:02:31 1997 @@ -224,8 +224,8 @@ return vol_desc_start; } -struct super_block *isofs_read_super(struct super_block *s,void *data, - int silent) +static struct super_block *isofs_read_super(struct super_block *s,void *data, + int silent, const char *dev_name) { struct buffer_head *bh=NULL; int iso_blknum; diff -u --recursive --new-file dist-2.1.26/fs/lo/Makefile linux/fs/lo/Makefile --- dist-2.1.26/fs/lo/Makefile Wed Dec 31 19:00:00 1969 +++ linux/fs/lo/Makefile Sun Feb 2 16:39:11 1997 @@ -0,0 +1,15 @@ +# +# Makefile for the linux lofs-filesystem routines. +# +# Note! Dependencies are done automagically by 'make dep', which also +# removes any old dependencies. DON'T put your own dependencies here +# unless it's something special (ie not a .c file). +# +# Note 2! The CFLAGS definitions are now in the main makefile... + +O_TARGET := lo.o +O_OBJS := inode.o + +M_OBJS := $(O_TARGET) + +include $(TOPDIR)/Rules.make diff -u --recursive --new-file dist-2.1.26/fs/lo/inode.c linux/fs/lo/inode.c --- dist-2.1.26/fs/lo/inode.c Wed Dec 31 19:00:00 1969 +++ linux/fs/lo/inode.c Wed Feb 5 02:56:23 1997 @@ -0,0 +1,718 @@ +/* + * linux/fs/lo/inode.c + * + * Copyright (C) 1996, 1997 Benjamin LaHaise + * + * lofs v0.8 - a loopback filesystem for linux 2.1.25 + * + * Based on linux/fs/nfs/inode.c and others. + * + * This is FREE software with NO WARRANTY. See the file COPYING for details. + * + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +static struct file_system_type lo_fs_type; +static struct super_operations lo_sops; +static struct inode_operations lo_iops; + +static void lo_put_super(struct super_block *); + +#define DEBUG +#ifdef DEBUG +#define dprintk printk +#else +#define dprintk (void) +#endif + +static void checkinode ( struct inode *ino, char *msg) +{ + if (ino) { + if (ino->i_count <= 0) + printk(KERN_WARNING "lo: checkinode(%ld) - i_count is %d - %s\n", ino->i_ino, ino->i_count, msg); + if (!ino->u.lo_i.inode) + printk(KERN_WARNING "lo: checkinode(%ld) - underlying is NULL! (%s)\n", ino->i_ino, msg); + else if (ino->u.lo_i.inode->i_count <= 0) + printk(KERN_WARNING "lo: checkinode(%ld) - underlying i_count is %d (%s)\n", ino->i_ino, ino->u.lo_i.inode->i_count, msg); + } + else + printk(KERN_WARNING "lo: checkinode - inode is NULL! (%s)\n", msg); +} + +static void lo_update_inode ( struct inode *dest, struct inode *src ) +{ + /*dest->i_dev = src->i_dev;*/ /* methinks so? */ + + dest->i_mode = src->i_mode; + dest->i_nlink = src->i_nlink; + dest->i_uid = src->i_uid; + dest->i_gid = src->i_gid; + dest->i_rdev = src->i_rdev; + dest->i_size = src->i_size; + dest->i_atime = src->i_atime; + dest->i_mtime = src->i_mtime; + dest->i_ctime = src->i_ctime; + dest->i_blksize = src->i_blksize; + dest->i_blocks = src->i_blocks; +} + +/* + * lo needs to be able to 'automount' filesystems that are underlying whatever + * is being looped back... i.e. my /home has /home/dot1 and /home/dot2 mounted + * beneath it, so using lo to loopback mount /home has to deal with the filesystem + * from /, /home/dot1 and /home/dot2. This whole mess is dealt with by automagically + * creating a new superblock for the superblocks found as we're traversing the fs. + * It would be nice to use different inodes for the underlying inodes, but that would + * be difficult. + */ +static struct super_block *lo_automount ( struct super_block *sb ) +{ + struct super_block *s; + kdev_t dev; + + if (!(dev = get_unnamed_dev())) { + printk(KERN_ERR "lo: no unnamed devices\n"); + return NULL; + } + for (s = 0+super_blocks ;; s++) { + if (s >= NR_SUPER+super_blocks) { + printk(KERN_ERR "lo: no free super blocks\n"); + return NULL; + } + if (!(s->s_dev)) + break; + } + + s->s_dev = dev; + s->s_flags = sb->s_flags; + s->s_covered = NULL; + s->s_rd_only = 0; + s->s_dirt = 0; + s->s_type = &lo_fs_type; + + return s; +} + +static struct super_block *lo_find_automount_sb ( struct super_block *sb, struct super_block *target ) +{ + struct super_block *cur_sb = sb; + for ( cur_sb = sb; cur_sb->u.lo_sb.s_sb != target; cur_sb = cur_sb->u.lo_sb.s_lo_next) + ; + + if (!cur_sb && sb->u.lo_sb.s_automount_enabled) + cur_sb = lo_automount(target); + + return cur_sb; +} + +static int lo_notify_change ( struct inode *ino, struct iattr *ia ) +{ + int ret; + + checkinode(ino, "lo_notify_change"); + dprintk("lo_notify_change\n"); + if (ino->u.lo_i.inode->i_sb && + ino->u.lo_i.inode->i_sb->s_op && + ino->u.lo_i.inode->i_sb->s_op->notify_change) { + ret = ino->u.lo_i.inode->i_sb->s_op->notify_change(ino->u.lo_i.inode, ia); + if (ret) + return ret; + } else { + if ((ret = inode_change_ok(ino->u.lo_i.inode, ia)) != 0) + return ret; + + inode_setattr(ino->u.lo_i.inode, ia); + } + + lo_update_inode(ino, ino->u.lo_i.inode); + checkinode(ino, "post lo_notify_change"); + return 0; +} + +static int lo_create ( struct inode *dir, const char *name, int namelen, int mode, struct inode **result ) +{ + int err = -EACCES; + checkinode(dir, "lo_create"); + dprintk("lo_create\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->create) { + dir->u.lo_i.inode->i_count++; + down(&dir->u.lo_i.inode->i_sem); + err = dir->u.lo_i.inode->i_op->create(dir->u.lo_i.inode, name, namelen, mode, result); + up(&dir->u.lo_i.inode->i_sem); + if (!err && ((*result)->i_sb == dir->u.lo_i.inode->i_sb) && (S_ISDIR((*result)->i_mode) || S_ISLNK((*result)->i_mode))) { + struct inode *inode = *result; + if (!(*result = iget(dir->i_sb, inode->i_ino))) + err = -EACCES; /* should be impossible??? */ + iput(inode); + checkinode(*result, "lo_create - res"); + } + } + checkinode(dir, "post lo_create"); + iput(dir); + return err; +} + +static int lo_link ( struct inode *oldinode, struct inode *dir, const char *name, int namelen ) +{ + int err = -EPERM; + checkinode(dir, "lo_link-dir"); + checkinode(oldinode, "lo_link-oldinode"); + dprintk("lo_link\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->link) { + dir->u.lo_i.inode->i_count++; + oldinode->u.lo_i.inode->i_count++; + down(&dir->u.lo_i.inode->i_sem); + err = dir->u.lo_i.inode->i_op->link(oldinode->u.lo_i.inode, dir->u.lo_i.inode, name, namelen); + up(&dir->u.lo_i.inode->i_sem); + } + checkinode(dir, "post lo_link-dir"); + checkinode(oldinode, "post lo_link-oldinode"); + iput(oldinode); + iput(dir); + return err; +} + +static int lo_unlink ( struct inode *dir, const char *name, int namelen ) +{ + int err = -EPERM; + checkinode(dir, "lo_unlink-dir"); + dprintk("lo_unlink\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->unlink) { + dir->u.lo_i.inode->i_count++; + err = dir->u.lo_i.inode->i_op->unlink(dir->u.lo_i.inode, name, namelen); + } + checkinode(dir, "post lo_unlink-dir"); + iput(dir); + return err; +} + +static int lo_symlink ( struct inode *dir, const char *name, int namelen, const char *oldname ) +{ + int err = -EPERM; + checkinode(dir, "lo_symlink-dir"); + dprintk("lo_symlink\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->symlink) { + dir->u.lo_i.inode->i_count++; + err = dir->u.lo_i.inode->i_op->symlink(dir->u.lo_i.inode, name, namelen, oldname); + } + checkinode(dir, "post lo_symlink-dir"); + iput(dir); + return err; +} + +static int lo_mkdir ( struct inode *dir, const char *name, int namelen, int mode ) +{ + int err = -EPERM; + checkinode(dir, "lo_mkdir-dir"); + dprintk("lo_notify_mkdir\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->mkdir) { + dir->u.lo_i.inode->i_count++; + down(&dir->u.lo_i.inode->i_sem); + err = dir->u.lo_i.inode->i_op->mkdir(dir->u.lo_i.inode, name, namelen, mode); + up(&dir->u.lo_i.inode->i_sem); + } + checkinode(dir, "post lo_mkdir-dir"); + iput(dir); + return err; +} + +static int lo_rmdir ( struct inode *dir, const char *name, int namelen ) +{ + int err = -EPERM; + checkinode(dir, "lo_rmdir-dir"); + dprintk("lo_rmdir\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->rmdir) { + dir->u.lo_i.inode->i_count++; + err = dir->u.lo_i.inode->i_op->rmdir(dir->u.lo_i.inode, name, namelen); + } + checkinode(dir, "post lo_rmdir-dir"); + iput(dir); + return err; +} + +static int lo_mknod ( struct inode *dir, const char *name, int namelen, int mode, int dev ) +{ + int err = -EPERM; + checkinode(dir, "lo_mknod-dir"); + dprintk("lo_mknod\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->mknod) { + dir->u.lo_i.inode->i_count++; + down(&dir->u.lo_i.inode->i_sem); + err = dir->u.lo_i.inode->i_op->mknod(dir->u.lo_i.inode, name, namelen, mode, dev); + up(&dir->u.lo_i.inode->i_sem); + } + checkinode(dir, "post lo_mknod-dir"); + iput(dir); + return err; +} + +static int lo_rename ( struct inode *old_dir, const char *old_name, int old_len, + struct inode *new_dir, const char *new_name, int new_len, int must_be_dir ) +{ + int err = -EPERM; + checkinode(old_dir, "lo_rename-old_dir"); + checkinode(new_dir, "lo_rename-new_dir"); + dprintk("lo_rename\n"); + if (old_dir->u.lo_i.inode->i_op && + old_dir->u.lo_i.inode->i_op->rename) { + old_dir->u.lo_i.inode->i_count++; + new_dir->u.lo_i.inode->i_count++; + down(&new_dir->u.lo_i.inode->i_sem); + err = old_dir->u.lo_i.inode->i_op->rename( + old_dir->u.lo_i.inode, old_name, old_len, + new_dir->u.lo_i.inode, new_name, new_len, must_be_dir); + up(&new_dir->u.lo_i.inode->i_sem); + } + checkinode(old_dir, "post lo_rename-old_dir"); + checkinode(new_dir, "post lo_rename-new_dir"); + iput(old_dir); + iput(new_dir); + return err; +} + +static int lo_readlink ( struct inode *dir, char *buf, int bufsiz ) +{ + int err = -EINVAL; + checkinode(dir, "lo_readlink-dir"); + dprintk("lo_readlink\n"); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->readlink) { + dir->u.lo_i.inode->i_count++; + err = dir->u.lo_i.inode->i_op->readlink(dir->u.lo_i.inode, buf, bufsiz); + } + checkinode(dir, "post lo_readlink-dir"); + iput(dir); + return err; +} + +/* kludgey - replace when up/down problem fixed */ +static void lo_truncate ( struct inode *inode ) +{ + checkinode(inode, "lo_truncate"); + printk(KERN_WARNING "lo_truncate - AAARRRGGGHHH!!!\n"); +#if 0 + struct iattr newattrs; + + dprintk("lo_truncate\n"); + down(&inode->u.lo_i.inode->i_sem); + newattrs.ia_size = inode->i_size; + newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME; + notify_change(inode->u.lo_i.inode, &newattrs); + vmtruncate(inode->u.lo_i.inode, inode->i_size); + if (inode->u.lo_i.inode->i_op && + inode->u.lo_i.inode->i_op->truncate) + inode->u.lo_i.inode->i_op->truncate(inode->u.lo_i.inode); + up(&inode->u.lo_i.inode->i_sem); +#endif + iput(inode); +} + +static int lo_lookup ( struct inode *dir, const char *name, int len, struct inode **result ) +{ + int err = -ENOTDIR; + checkinode(dir, "lo_lookup"); + dprintk("lo_lookup(%ld)\n", dir->i_ino); + if (dir->u.lo_i.inode->i_op && + dir->u.lo_i.inode->i_op->lookup) { + dir->u.lo_i.inode->i_count++; + err = dir->u.lo_i.inode->i_op->lookup(dir->u.lo_i.inode, name, len, result); + if (!err && ((*result)->i_sb == dir->u.lo_i.inode->i_sb) && (S_ISDIR((*result)->i_mode)/* || S_ISLNK((*result)->i_mode)*/)) { + struct inode *inode = *result; + int before = inode->i_count; + if (!(*result = iget(dir->i_sb, inode->i_ino))) + err = -EACCES; /* should be impossible??? */ + if ((*result)->i_lock) + printk(KERN_WARNING "lo_lookup: DOH! inode (%ld use %d) is locked (uh-oh)\n", (*result)->i_ino, (*result)->i_count); + checkinode(*result, "lo_lookup - result"); + if( (((*result)->i_count == 1) && (inode->i_count != (before+1))) || + (((*result)->i_count > 1) && (inode->i_count != before)) ) + printk("lo_lookup - i_count %d - under is %d, was %d\n", (*result)->i_count, inode->i_count, before); + iput(inode); + if (!inode->i_count) + printk("lo_lookup - i_count now zero, was %d\n", before); + checkinode(*result, "lo_lookup - result2"); + } + } +#ifdef DEBUG + if (!err) + dprintk("lo_lookup: got %ld\n", (*result)->i_ino); +#endif + checkinode(dir, "post lo_lookup"); + iput(dir); + return err; +} + +/* inode is from lo, dir could be anything */ +int lo_follow_link ( struct inode *dir, struct inode *inode, int flag, int mode, struct inode **result ) +{ + int err = 0; + checkinode(inode, "lo_follow_link - inode"); + if (inode->u.lo_i.inode->i_op && + inode->u.lo_i.inode->i_op->follow_link) { + dir->i_count++; + inode->u.lo_i.inode->i_count++; + err = inode->u.lo_i.inode->i_op->follow_link(dir, inode->u.lo_i.inode, flag, mode, result); + if (!err && ((*result)->i_sb == inode->u.lo_i.inode->i_sb) && (S_ISDIR((*result)->i_mode) || S_ISLNK((*result)->i_mode))) { + struct inode *ino = *result; + if (!(*result = iget(inode->i_sb, ino->i_ino))) + err = -EACCES; /* should be impossible??? */ + if ((*result)->i_lock) + printk(KERN_WARNING "lo_follow_link: DOH! inode (%ld use %d) is locked (uh-oh)\n", (*result)->i_ino, (*result)->i_count); + iput(ino); + checkinode(*result, "lo_follow_link - result"); + } + } + else { + *result = inode; + inode->i_count ++; + } + checkinode(inode, "post lo_follow_link - inode"); + iput(dir); + iput(inode); + return err; +} + +static int lo_open ( struct inode *inode, struct file *file ) +{ + int error = 0; + checkinode(inode, "lo_open"); + if (!file) { + printk(KERN_WARNING "lo_open: Doh! file is NULL...\n"); + return -EINVAL; + } + file->private_data = NULL; + if (S_ISDIR(inode->i_mode)) { + struct file *filp; + dprintk("lo_open: - is a directory.... (hmmm)\n"); + filp = get_empty_filp(); + if (filp) { + dprintk("lo_open: got filp\n"); + file->private_data = filp; + if (!file->f_inode) + printk(KERN_WARNING "lo_open: what is happenning? - f_inode is NULL!!!\n"); + if (file->f_inode != inode) + printk(KERN_WARNING "lo_open: what is happenning? - f_inode is not the same as inode!!!\n"); + filp->f_inode = file->f_inode->u.lo_i.inode; + filp->f_inode->i_count ++; + + dprintk("lo_open: got f_inode\n"); + filp->f_mode = file->f_mode; + filp->f_flags = file->f_flags; + filp->f_pos = file->f_pos; + filp->f_reada = file->f_reada; + if (filp->f_inode->i_op) + filp->f_op = filp->f_inode->i_op->default_file_ops; + else + filp->f_op = NULL; + dprintk("lo_open: pre open\n"); + if (filp->f_op && filp->f_op->open) + error = filp->f_op->open(filp->f_inode, filp); + filp->f_flags &= ~(O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC); + dprintk("lo_open: post open\n"); + if (error) { + filp->f_count--; + printk(KERN_WARNING "lo_open: error(%d)\n", error); + } + } + else + error = -ENFILE; + } + else { + printk(KERN_WARNING "lo_open: - is a file... DOH!!!!!\n"); + error = -EOPNOTSUPP; + } + checkinode(inode, "post lo_open"); + dprintk("lo_open: done (%d)\n", error); + return error; +} + +static void lo_release ( struct inode *inode, struct file *file ) +{ + checkinode(inode, "lo_release"); + dprintk("lo_release\n"); + if (file) { +#if 0 + printk(KERN_WARNING "lo_release (%d):%ld (%d,%d)\n", inode->u.lo_i.inode->i_dev, inode->i_ino, file->f_count, + ((struct file *)file->private_data)->f_count); +#endif + fput(file->private_data, inode->u.lo_i.inode); + } + dprintk("lo_release done\n"); + checkinode(inode, "post lo_release"); +} + +static void lo_read_inode(struct inode * inode) +{ + dprintk("lo_read_inode(%ld)\n", inode->i_ino); + inode->u.lo_i.inode = iget(inode->i_sb->u.lo_sb.s_sb, inode->i_ino); + if (!inode->u.lo_i.inode) + printk(KERN_ERR "lo: Doh! - lo_read_inode couldn't iget something happy\n"); + lo_update_inode(inode, inode->u.lo_i.inode); + inode->i_op = &lo_iops; + if (S_ISCHR(inode->i_mode)) + inode->i_op = &chrdev_inode_operations; + else if (S_ISBLK(inode->i_mode)) + inode->i_op = &blkdev_inode_operations; + else if (S_ISFIFO(inode->i_mode)) + init_fifo(inode); + else if (!S_ISDIR(inode->i_mode) && !S_ISLNK(inode->i_mode)) + printk(KERN_ERR "lo: lo_read_inode: Doh! - not a directory!!!\n"); + + checkinode(inode, "lo_read_inode"); +} + +static void lo_put_inode(struct inode * inode) +{ + struct inode *ino = inode->u.lo_i.inode; +#if 0 + inode->i_lock = 1; +#endif +#if 0 + printk("lo_put_inode(%ld): %d %d\n", inode->i_ino, inode->i_count, inode->u.lo_i.inode->i_count); +#endif + checkinode(inode, "lo_put_inode"); + if (inode->i_count != 1) + printk(KERN_WARNING "lo_put_inode(%ld): i_count is %d\n", inode->i_ino, inode->i_count); + if (ino) + iput(ino); +#if 0 + clear_inode(inode); + inode->i_lock = 1; /* clear_inode wipes i_lock */ +#endif + unlock_inode(inode); +} + +void lo_statfs(struct super_block *sb, struct statfs *buf, int bufsiz) +{ + dprintk("lo_statfs\n"); + if (sb->u.lo_sb.s_sb->s_op && sb->u.lo_sb.s_sb->s_op->statfs) + sb->u.lo_sb.s_sb->s_op->statfs(sb->u.lo_sb.s_sb, buf, bufsiz); +} + +int lo_readpage ( struct inode *inode, struct page *page ) +{ + printk(KERN_WARNING "lo_readpage\n"); + if (inode->u.lo_i.inode->i_op) + return inode->u.lo_i.inode->i_op->readpage(inode->u.lo_i.inode, page); + return -EOPNOTSUPP; +} + +int lo_writepage ( struct inode *inode, struct page *page ) +{ + printk(KERN_WARNING "lo_writepage\n"); + if (inode->u.lo_i.inode->i_op) + return inode->u.lo_i.inode->i_op->writepage(inode->u.lo_i.inode, page); + return -EOPNOTSUPP; +} + +int lo_bmap ( struct inode *inode, int block ) +{ + printk(KERN_WARNING "lo_bmap\n"); +#if 0 + if ((inode->u.lo_i.inode->i_op) && (inode->u.lo_i.inode->i_op->bmap)) + return inode->u.lo_i.inode->i_op->bmap(inode->u.lo_i.inode, block); +#endif + return -EINVAL; +} + +static long lo_dir_read ( struct inode *inode, struct file *file, char *buf, unsigned long count ) +{ + printk(KERN_WARNING "lo_read - on a dir???\n"); + return -EISDIR; +} + +static int lo_readdir ( struct inode *inode, struct file *file, void *dirent, filldir_t filldir ) +{ + int err = -EOPNOTSUPP; + + checkinode(inode, "lo_readdir"); + dprintk("lo_readdir\n"); + if (!file) + printk(KERN_WARNING "lo_readdir: What???? file is NULL!!!\n"); + else if (file->private_data && + ((struct file *)file->private_data)->f_op && + ((struct file *)file->private_data)->f_op->readdir) + err = ((struct file * )file->private_data)->f_op->readdir(inode->u.lo_i.inode, file->private_data, dirent, filldir); + checkinode(inode, "post lo_readdir"); + + return err; +} + +static int lo_parse_options ( struct super_block *sb, char *options ) +{ + while ( *options ) { +#if 0 + int ret; + if ( !strncmp( "dir=", options, 4 ) ) { + dprintk("lo: using directory: %s\n", options+4); + ret = _namei(options+4, NULL, 1, &sb->u.lo_sb.s_rootinode); + return ret; + } + else +#endif + { + printk(KERN_WARNING "lo: unrecognized options '%s'\n", options); + return -1; + } + } + return 0; +} + +/* + * The way this works is that the mount process passes a structure + * in the data argument which contains an open socket to the NFS + * server and the root file handle obtained from the server's mount + * daemon. We stash these away in the private superblock fields. + * Later we can add other mount parameters like caching values. + */ + +struct super_block *lo_read_super(struct super_block *sb, + void *raw_data, int silent, + const char *dev_name) +{ + int ret; + + sb->u.lo_sb.s_sb = NULL; + sb->u.lo_sb.s_rootinode = NULL; + MOD_INC_USE_COUNT; + lock_super(sb); + if (!raw_data) { + printk(KERN_WARNING "lo_read_super: missing data argument\n"); + sb->s_dev = 0; + MOD_DEC_USE_COUNT; + return NULL; + } + + ret = lo_parse_options(sb, raw_data); + if (!ret) + ret = namei(dev_name, &sb->u.lo_sb.s_rootinode); + if (ret) { + unlock_super(sb); + printk(KERN_WARNING "lo_read_super: namei failed? (ret = %d)\n", ret); + MOD_DEC_USE_COUNT; + return NULL; + } + sb->u.lo_sb.s_sb = sb->u.lo_sb.s_rootinode->i_sb; + + unlock_super(sb); + sb->s_op = &lo_sops; + sb->s_mounted = iget(sb, sb->u.lo_sb.s_rootinode->i_ino); + if (!sb->s_mounted) { + printk(KERN_WARNING "lo_read_super: iget failed\n"); + iput(sb->u.lo_sb.s_rootinode); + MOD_DEC_USE_COUNT; + return NULL; + } + return sb; +} + +void lo_put_super ( struct super_block *sb ) +{ + dprintk("lo_put_super\n"); + lock_super(sb); + iput(sb->u.lo_sb.s_rootinode); + sb->s_dev = 0; + unlock_super(sb); + dprintk("lo: released super\n"); + MOD_DEC_USE_COUNT; +} + +/*----*/ +static struct super_operations lo_sops = { + lo_read_inode, /* read inode */ + lo_notify_change, /* notify change */ + NULL, /* write inode */ + lo_put_inode, /* put inode */ + lo_put_super, /* put superblock */ + NULL, /* write superblock */ + lo_statfs, /* stat filesystem */ + NULL +}; + +static struct file_operations lo_fops = { + NULL, /* llseek */ + lo_dir_read, /* read */ + NULL, /* write */ + lo_readdir, /* readdir */ + NULL, /* select */ + NULL, /* ioctl */ + NULL, /* mmap */ + lo_open, /* open */ + lo_release, /* release */ + NULL, /* fsync */ + NULL, /* fasync */ + NULL, /* check_media_change */ + NULL /* revalidate */ +}; + +static struct inode_operations lo_iops = { + &lo_fops, /* default file operations */ + lo_create, /* create */ + lo_lookup, /* lookup */ + lo_link, /* link */ + lo_unlink, /* unlink */ + lo_symlink, /* symlink */ + lo_mkdir, /* mkdir */ + lo_rmdir, /* rmdir */ + lo_mknod, /* mknod */ + lo_rename, /* rename */ + lo_readlink, /* readlink */ + lo_follow_link, /* follow_link */ + lo_readpage, /* readpage */ + lo_writepage, /* writepage */ + lo_bmap, /* bmap */ + lo_truncate, /* truncate */ + NULL, /* permission */ + NULL /* smap */ +}; + +/* Every kernel module contains stuff like this. */ + +static struct file_system_type lo_fs_type = { + lo_read_super, "lo", 0, NULL +}; + +int init_lo_fs(void) +{ + return register_filesystem(&lo_fs_type); +} + +#ifdef MODULE +int init_module(void) +{ + int status; + + if ((status = init_lo_fs()) == 0) + register_symtab(0); + return status; +} + +void cleanup_module(void) +{ + unregister_filesystem(&lo_fs_type); +} + +#endif diff -u --recursive --new-file dist-2.1.26/fs/locks.c linux/fs/locks.c --- dist-2.1.26/fs/locks.c Sun Jan 26 12:38:52 1997 +++ linux/fs/locks.c Sun Feb 9 15:11:44 1997 @@ -238,7 +238,7 @@ /* flock() system call entry point. Apply a FL_FLOCK style lock to * an open file descriptor. */ -asmlinkage int sys_flock(unsigned int fd, unsigned int cmd) +asmlinkage(int sys_flock(unsigned int fd, unsigned int cmd)) { struct file_lock file_lock; struct file *filp; diff -u --recursive --new-file dist-2.1.26/fs/minix/namei.c linux/fs/minix/namei.c --- dist-2.1.26/fs/minix/namei.c Tue Dec 17 07:02:51 1996 +++ linux/fs/minix/namei.c Sun Feb 2 18:23:01 1997 @@ -697,7 +697,7 @@ retval = -ENOENT; if (!old_bh) goto end_rename; - old_inode = __iget(old_dir->i_sb, old_de->inode,0); /* don't cross mnt-points */ + old_inode = iget(old_dir->i_sb, old_de->inode); if (!old_inode) goto end_rename; if (must_be_dir && !S_ISDIR(old_inode->i_mode)) @@ -709,7 +709,7 @@ goto end_rename; new_bh = minix_find_entry(new_dir,new_name,new_len,&new_de); if (new_bh) { - new_inode = __iget(new_dir->i_sb, new_de->inode, 0); + new_inode = iget(new_dir->i_sb, new_de->inode); if (!new_inode) { brelse(new_bh); new_bh = NULL; diff -u --recursive --new-file dist-2.1.26/fs/namei.c linux/fs/namei.c --- dist-2.1.26/fs/namei.c Sun Jan 26 12:38:52 1997 +++ linux/fs/namei.c Sun Feb 9 15:12:25 1997 @@ -160,7 +160,7 @@ struct inode ** result) { struct super_block * sb; - int perm; + int perm, err = 0; *result = NULL; if (!dir) @@ -168,15 +168,20 @@ /* check permissions before traversing mount-points */ perm = permission(dir,MAY_EXEC); if (len==2 && get_unaligned((u16 *) name) == 0x2e2e) { - if (dir == current->fs->root) { - *result = dir; - return 0; - } else if ((sb = dir->i_sb) && (dir == sb->s_mounted)) { - iput(dir); - dir = sb->s_covered; - if (!dir) - return -ENOENT; - dir->i_count++; + /* this is ugly - we have to check for current's root dir as another fs may be mounted on top of it -blah */ + for (;;) { + if (dir == current->fs->root) { + *result = traverse_mntp(dir); + return 0; + } else if ((sb = dir->i_sb) && (dir == sb->s_mounted)) { + if (sb->s_covered) + sb->s_covered->i_count++; /* avoid the race */ + iput(dir); + dir = sb->s_covered; + if (!dir) + return -ENOENT; + } else + break; } } if (!dir->i_op || !dir->i_op->lookup) { @@ -191,7 +196,10 @@ *result = dir; return 0; } - return dir->i_op->lookup(dir, name, len, result); + err = dir->i_op->lookup(dir, name, len, result); + if (!err) + *result = traverse_mntp(*result); + return err; } int follow_link(struct inode * dir, struct inode * inode, @@ -232,7 +240,7 @@ } if ((c = *pathname) == '/') { iput(base); - base = current->fs->root; + base = traverse_mntp(current->fs->root); /* root may be mounted on top of */ pathname++; base->i_count++; } @@ -501,7 +509,7 @@ return error; } -asmlinkage int sys_mknod(const char * filename, int mode, dev_t dev) +asmlinkage(int sys_mknod(const char * filename, int mode, dev_t dev)) { int error; char * tmp; @@ -602,7 +610,7 @@ return error; } -asmlinkage int sys_mkdir(const char * pathname, int mode) +asmlinkage(int sys_mkdir(const char * pathname, int mode)) { int error; char * tmp; @@ -655,7 +663,7 @@ return dir->i_op->rmdir(dir,basename,namelen); } -asmlinkage int sys_rmdir(const char * pathname) +asmlinkage(int sys_rmdir(const char * pathname)) { int error; char * tmp; @@ -708,7 +716,7 @@ return dir->i_op->unlink(dir,basename,namelen); } -asmlinkage int sys_unlink(const char * pathname) +asmlinkage(int sys_unlink(const char * pathname)) { int error; char * tmp; @@ -758,7 +766,7 @@ return error; } -asmlinkage int sys_symlink(const char * oldname, const char * newname) +asmlinkage(int sys_symlink(const char * oldname, const char * newname)) { int error; char * from, * to; @@ -831,7 +839,7 @@ return error; } -asmlinkage int sys_link(const char * oldname, const char * newname) +asmlinkage(int sys_link(const char * oldname, const char * newname)) { int error; char * to; @@ -923,7 +931,7 @@ return error; } -asmlinkage int sys_rename(const char * oldname, const char * newname) +asmlinkage(int sys_rename(const char * oldname, const char * newname)) { int error; char * from, * to; diff -u --recursive --new-file dist-2.1.26/fs/nfs/nfsroot.c linux/fs/nfs/nfsroot.c --- dist-2.1.26/fs/nfs/nfsroot.c Fri Feb 7 18:02:27 1997 +++ linux/fs/nfs/nfsroot.c Sun Feb 9 15:17:29 1997 @@ -152,7 +152,7 @@ /* Yes, we use sys_socket, but there's no include file for it */ -extern asmlinkage int sys_socket(int family, int type, int protocol); +asmlinkage(extern int sys_socket(int family, int type, int protocol)); /*************************************************************************** diff -u --recursive --new-file dist-2.1.26/fs/noquot.c linux/fs/noquot.c --- dist-2.1.26/fs/noquot.c Tue Dec 17 07:02:57 1996 +++ linux/fs/noquot.c Sun Feb 9 15:12:43 1997 @@ -73,7 +73,7 @@ * calls. Maybe we need to add the process quotas etc in the future. * But we probably better use rlimits for that. */ -asmlinkage int sys_quotactl(int cmd, const char *special, int id, caddr_t addr) +asmlinkage(int sys_quotactl(int cmd, const char *special, int id, caddr_t addr)) { return(-ENOPKG); } diff -u --recursive --new-file dist-2.1.26/fs/open.c linux/fs/open.c --- dist-2.1.26/fs/open.c Sun Jan 26 12:38:53 1997 +++ linux/fs/open.c Sun Feb 9 15:14:11 1997 @@ -24,7 +24,7 @@ #include #include -asmlinkage int sys_statfs(const char * path, struct statfs * buf) +asmlinkage(int sys_statfs(const char * path, struct statfs * buf)) { struct inode * inode; int error; @@ -49,7 +49,7 @@ return error; } -asmlinkage int sys_fstatfs(unsigned int fd, struct statfs * buf) +asmlinkage(int sys_fstatfs(unsigned int fd, struct statfs * buf)) { struct inode * inode; struct file * file; @@ -93,7 +93,7 @@ return error; } -asmlinkage int sys_truncate(const char * path, unsigned long length) +asmlinkage(int sys_truncate(const char * path, unsigned long length)) { struct inode * inode; int error; @@ -139,7 +139,7 @@ return error; } -asmlinkage int sys_ftruncate(unsigned int fd, unsigned long length) +asmlinkage(int sys_ftruncate(unsigned int fd, unsigned long length)) { struct inode * inode; struct file * file; @@ -178,7 +178,7 @@ * must be owner or have write permission. * Else, update from *times, must be owner or super user. */ -asmlinkage int sys_utime(char * filename, struct utimbuf * times) +asmlinkage(int sys_utime(char * filename, struct utimbuf * times)) { int error; struct inode * inode; @@ -224,7 +224,7 @@ * must be owner or have write permission. * Else, update from *times, must be owner or super user. */ -asmlinkage int sys_utimes(char * filename, struct timeval * utimes) +asmlinkage(int sys_utimes(char * filename, struct timeval * utimes)) { int error; struct inode * inode; @@ -263,7 +263,7 @@ * access() needs to use the real uid/gid, not the effective uid/gid. * We do this by temporarily setting fsuid/fsgid to the wanted values */ -asmlinkage int sys_access(const char * filename, int mode) +asmlinkage(int sys_access(const char * filename, int mode)) { struct inode * inode; int old_fsuid, old_fsgid; @@ -288,9 +288,9 @@ return res; } -asmlinkage int sys_chdir(const char * filename) +asmlinkage(int sys_chdir(const char * filename)) { - struct inode * inode; + struct inode * inode, *tmp; int error; lock_kernel(); @@ -306,17 +306,18 @@ iput(inode); goto out; } - iput(current->fs->pwd); + tmp = current->fs->pwd; current->fs->pwd = inode; + iput(tmp); error = 0; out: unlock_kernel(); return error; } -asmlinkage int sys_fchdir(unsigned int fd) +asmlinkage(int sys_fchdir(unsigned int fd)) { - struct inode * inode; + struct inode * inode, *tmp; struct file * file; int error = -EBADF; @@ -331,16 +332,17 @@ goto out; if ((error = permission(inode,MAY_EXEC)) != 0) goto out; - iput(current->fs->pwd); + tmp = current->fs->pwd; current->fs->pwd = inode; inode->i_count++; + iput(tmp); error = 0; out: unlock_kernel(); return error; } -asmlinkage int sys_chroot(const char * filename) +asmlinkage(int sys_chroot(const char * filename)) { struct inode * inode; int error; @@ -367,7 +369,7 @@ return error; } -asmlinkage int sys_fchmod(unsigned int fd, mode_t mode) +asmlinkage(int sys_fchmod(unsigned int fd, mode_t mode)) { struct inode * inode; struct file * file; @@ -397,7 +399,7 @@ return err; } -asmlinkage int sys_chmod(const char * filename, mode_t mode) +asmlinkage(int sys_chmod(const char * filename, mode_t mode)) { struct inode * inode; int error; @@ -426,7 +428,7 @@ return error; } -asmlinkage int sys_fchown(unsigned int fd, uid_t user, gid_t group) +asmlinkage(int sys_fchown(unsigned int fd, uid_t user, gid_t group)) { struct inode * inode; struct file * file; @@ -486,7 +488,7 @@ return error; } -asmlinkage int sys_chown(const char * filename, uid_t user, gid_t group) +asmlinkage(int sys_chown(const char * filename, uid_t user, gid_t group)) { struct inode * inode; int error; @@ -631,7 +633,7 @@ FD_CLR(fd, ¤t->files->open_fds); } -asmlinkage int sys_open(const char * filename,int flags,int mode) +asmlinkage(int sys_open(const char * filename,int flags,int mode)) { char * tmp; int fd, error; @@ -663,7 +665,7 @@ * For backward compatibility? Maybe this should be moved * into arch/i386 instead? */ -asmlinkage int sys_creat(const char * pathname, int mode) +asmlinkage(int sys_creat(const char * pathname, int mode)) { int ret; @@ -700,7 +702,7 @@ return 0; } -asmlinkage int sys_close(unsigned int fd) +asmlinkage(int sys_close(unsigned int fd)) { int error; struct file * filp; @@ -723,7 +725,7 @@ * This routine simulates a hangup on the tty, to arrange that users * are given clean terminals at login time. */ -asmlinkage int sys_vhangup(void) +asmlinkage(int sys_vhangup(void)) { int ret = -EPERM; diff -u --recursive --new-file dist-2.1.26/fs/proc/array.c linux/fs/proc/array.c --- dist-2.1.26/fs/proc/array.c Wed Jan 29 00:11:41 1997 +++ linux/fs/proc/array.c Wed Feb 5 02:23:53 1997 @@ -230,8 +230,11 @@ kstat.pswpin, kstat.pswpout, sum); - for (i = 0 ; i < NR_IRQS ; i++) + sum = 0; + for (i = 0 ; i < NR_IRQS ; i++) { len += sprintf(buffer + len, " %u", kstat.interrupts[i]); + sum += kstat.lost_interrupts[i]; + } len += sprintf(buffer + len, "\nctxt %u\n" "btime %lu\n" @@ -239,6 +242,10 @@ kstat.context_swtch, xtime.tv_sec - jiffies / HZ, total_forks); + len += sprintf(buffer + len, "lost_intr %u", sum); + for (i = 0 ; i < NR_IRQS ; i++) + len += sprintf(buffer + len, " %u", kstat.lost_interrupts[i]); + buffer[len++] = '\n'; return len; } diff -u --recursive --new-file dist-2.1.26/fs/proc/inode.c linux/fs/proc/inode.c --- dist-2.1.26/fs/proc/inode.c Sun Jan 5 14:05:15 1997 +++ linux/fs/proc/inode.c Wed Feb 5 02:24:56 1997 @@ -110,7 +110,7 @@ } struct super_block *proc_read_super(struct super_block *s,void *data, - int silent) + int silent, const char *dev_name) { proc_root_init(); lock_super(s); diff -u --recursive --new-file dist-2.1.26/fs/proc/kmsg.c linux/fs/proc/kmsg.c --- dist-2.1.26/fs/proc/kmsg.c Sun Jan 26 12:38:53 1997 +++ linux/fs/proc/kmsg.c Sun Feb 9 15:17:45 1997 @@ -17,7 +17,7 @@ extern unsigned long log_size; extern struct wait_queue * log_wait; -asmlinkage int sys_syslog(int type, char * bug, int count); +asmlinkage(int sys_syslog(int type, char * bug, int count)); static int kmsg_open(struct inode * inode, struct file * file) { diff -u --recursive --new-file dist-2.1.26/fs/read_write.c linux/fs/read_write.c --- dist-2.1.26/fs/read_write.c Sun Jan 26 12:38:53 1997 +++ linux/fs/read_write.c Sun Feb 9 15:14:53 1997 @@ -56,7 +56,7 @@ return fn(inode, file, offset, origin); } -asmlinkage long sys_lseek(unsigned int fd, off_t offset, unsigned int origin) +asmlinkage(long sys_lseek(unsigned int fd, off_t offset, unsigned int origin)) { long retval; struct file * file; @@ -77,9 +77,9 @@ return retval; } -asmlinkage int sys_llseek(unsigned int fd, unsigned long offset_high, +asmlinkage(int sys_llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, - unsigned int origin) + unsigned int origin)) { long retval; struct file * file; @@ -111,7 +111,7 @@ return retval; } -asmlinkage long sys_read(unsigned int fd, char * buf, unsigned long count) +asmlinkage(long sys_read(unsigned int fd, char * buf, unsigned long count)) { int error; struct file * file; @@ -143,7 +143,7 @@ return error; } -asmlinkage long sys_write(unsigned int fd, const char * buf, unsigned long count) +asmlinkage(long sys_write(unsigned int fd, const char * buf, unsigned long count)) { int error; struct file * file; @@ -264,7 +264,7 @@ return retval; } -asmlinkage long sys_readv(unsigned long fd, const struct iovec * vector, unsigned long count) +asmlinkage(long sys_readv(unsigned long fd, const struct iovec * vector, unsigned long count)) { struct file * file; struct inode * inode; @@ -281,7 +281,7 @@ return err; } -asmlinkage long sys_writev(unsigned long fd, const struct iovec * vector, unsigned long count) +asmlinkage(long sys_writev(unsigned long fd, const struct iovec * vector, unsigned long count)) { int error = -EBADF; struct file * file; diff -u --recursive --new-file dist-2.1.26/fs/readdir.c linux/fs/readdir.c --- dist-2.1.26/fs/readdir.c Sun Jan 26 12:38:54 1997 +++ linux/fs/readdir.c Sun Feb 9 15:15:07 1997 @@ -55,7 +55,7 @@ return 0; } -asmlinkage int old_readdir(unsigned int fd, void * dirent, unsigned int count) +asmlinkage(int old_readdir(unsigned int fd, void * dirent, unsigned int count)) { int error = -EBADF; struct file * file; @@ -123,7 +123,7 @@ return 0; } -asmlinkage int sys_getdents(unsigned int fd, void * dirent, unsigned int count) +asmlinkage(int sys_getdents(unsigned int fd, void * dirent, unsigned int count)) { struct file * file; struct linux_dirent * lastdirent; diff -u --recursive --new-file dist-2.1.26/fs/select.c linux/fs/select.c --- dist-2.1.26/fs/select.c Fri Feb 7 18:02:27 1997 +++ linux/fs/select.c Sun Feb 9 15:15:24 1997 @@ -280,7 +280,7 @@ * Update: ERESTARTSYS breaks at least the xview clock binary, so * I'm trying ERESTARTNOHAND which restart only when you want to. */ -asmlinkage int sys_select(int n, fd_set *inp, fd_set *outp, fd_set *exp, struct timeval *tvp) +asmlinkage(int sys_select(int n, fd_set *inp, fd_set *outp, fd_set *exp, struct timeval *tvp)) { int error = -EINVAL; fd_set_buffer *fds; @@ -384,7 +384,7 @@ return count; } -asmlinkage int sys_poll(struct pollfd * ufds, unsigned int nfds, int timeout) +asmlinkage(int sys_poll(struct pollfd * ufds, unsigned int nfds, int timeout)) { int i, count, fdcount, err; struct pollfd * fds, *fds1; diff -u --recursive --new-file dist-2.1.26/fs/stat.c linux/fs/stat.c --- dist-2.1.26/fs/stat.c Sun Jan 26 12:38:54 1997 +++ linux/fs/stat.c Sun Feb 9 15:16:13 1997 @@ -109,7 +109,7 @@ * For backward compatibility? Maybe this should be moved * into arch/i386 instead? */ -asmlinkage int sys_stat(char * filename, struct __old_kernel_stat * statbuf) +asmlinkage(int sys_stat(char * filename, struct __old_kernel_stat * statbuf)) { struct inode * inode; int error; @@ -126,7 +126,7 @@ } #endif -asmlinkage int sys_newstat(char * filename, struct stat * statbuf) +asmlinkage(int sys_newstat(char * filename, struct stat * statbuf)) { struct inode * inode; int error; @@ -148,7 +148,7 @@ * For backward compatibility? Maybe this should be moved * into arch/i386 instead? */ -asmlinkage int sys_lstat(char * filename, struct __old_kernel_stat * statbuf) +asmlinkage(int sys_lstat(char * filename, struct __old_kernel_stat * statbuf)) { struct inode * inode; int error; @@ -166,7 +166,7 @@ #endif -asmlinkage int sys_newlstat(char * filename, struct stat * statbuf) +asmlinkage(int sys_newlstat(char * filename, struct stat * statbuf)) { struct inode * inode; int error; @@ -188,7 +188,7 @@ * For backward compatibility? Maybe this should be moved * into arch/i386 instead? */ -asmlinkage int sys_fstat(unsigned int fd, struct __old_kernel_stat * statbuf) +asmlinkage(int sys_fstat(unsigned int fd, struct __old_kernel_stat * statbuf)) { struct file * f; struct inode * inode; @@ -205,7 +205,7 @@ #endif -asmlinkage int sys_newfstat(unsigned int fd, struct stat * statbuf) +asmlinkage(int sys_newfstat(unsigned int fd, struct stat * statbuf)) { struct file * f; struct inode * inode; @@ -220,7 +220,7 @@ return err; } -asmlinkage int sys_readlink(const char * path, char * buf, int bufsiz) +asmlinkage(int sys_readlink(const char * path, char * buf, int bufsiz)) { struct inode * inode; int error = -EINVAL; diff -u --recursive --new-file dist-2.1.26/fs/super.c linux/fs/super.c --- dist-2.1.26/fs/super.c Sun Jan 26 12:38:54 1997 +++ linux/fs/super.c Sun Feb 9 15:16:56 1997 @@ -242,7 +242,7 @@ /* * Whee.. Weird sysv syscall. */ -asmlinkage int sys_sysfs(int option, ...) +asmlinkage(int sys_sysfs(int option, ...)) { va_list args; int retval = -EINVAL; @@ -471,7 +471,7 @@ sb->s_op->put_super(sb); } -asmlinkage int sys_ustat(dev_t dev, struct ustat * ubuf) +asmlinkage(int sys_ustat(dev_t dev, struct ustat * ubuf)) { struct super_block *s; struct ustat tmp; @@ -502,7 +502,8 @@ return err; } -static struct super_block * read_super(kdev_t dev,const char *name,int flags, +static struct super_block * read_super(kdev_t dev,const char *dev_name, + const char *name,int flags, void *data, int silent) { struct super_block * s; @@ -527,7 +528,7 @@ } s->s_dev = dev; s->s_flags = flags; - if (!type->read_super(s,data, silent)) { + if (!type->read_super(s, data, silent, dev_name)) { s->s_dev = 0; return NULL; } @@ -630,7 +631,7 @@ * functions, they should be faked here. -- jrs */ -asmlinkage int sys_umount(char * name) +asmlinkage(int sys_umount(char * name)) { struct inode * inode; kdev_t dev; @@ -722,7 +723,7 @@ iput(dir_i); return -EBUSY; } - sb = read_super(dev,type,flags,data,0); + sb = read_super(dev,dev_name,type,flags,data,0); if (!sb) { iput(dir_i); return -EINVAL; @@ -833,8 +834,8 @@ * aren't used, as the syscall assumes we are talking to an older * version that didn't understand them. */ -asmlinkage int sys_mount(char * dev_name, char * dir_name, char * type, - unsigned long new_flags, void * data) +asmlinkage(int sys_mount(char * dev_name, char * dir_name, char * type, + unsigned long new_flags, void * data)) { struct file_system_type * fstype; struct inode * inode; @@ -1020,7 +1021,7 @@ else for (fs_type = file_systems ; fs_type ; fs_type = fs_type->next) { if (!fs_type->requires_dev) continue; - sb = read_super(ROOT_DEV,fs_type->name,root_mountflags,NULL,1); + sb = read_super(ROOT_DEV,NULL,fs_type->name,root_mountflags,NULL,1); if (sb) { inode = sb->s_mounted; inode->i_count += 3 ; /* NOTE! it is logically used 4 times, not 1 */ diff -u --recursive --new-file dist-2.1.26/fs/sysv/namei.c linux/fs/sysv/namei.c --- dist-2.1.26/fs/sysv/namei.c Wed Jul 3 05:06:03 1996 +++ linux/fs/sysv/namei.c Sun Feb 2 18:23:11 1997 @@ -691,7 +691,7 @@ retval = -ENOENT; if (!old_bh) goto end_rename; - old_inode = __iget(old_dir->i_sb, old_de->inode, 0); /* don't cross mnt-points */ + old_inode = iget(old_dir->i_sb, old_de->inode); if (!old_inode) goto end_rename; if (must_be_dir && !S_ISDIR(old_inode->i_mode)) @@ -703,7 +703,7 @@ goto end_rename; new_bh = sysv_find_entry(new_dir,new_name,new_len,&new_de); if (new_bh) { - new_inode = __iget(new_dir->i_sb, new_de->inode, 0); + new_inode = iget(new_dir->i_sb, new_de->inode); if (!new_inode) { brelse(new_bh); new_bh = NULL; diff -u --recursive --new-file dist-2.1.26/include/asm-i386/bitops.h linux/include/asm-i386/bitops.h --- dist-2.1.26/include/asm-i386/bitops.h Sun Jan 5 14:05:16 1997 +++ linux/include/asm-i386/bitops.h Tue Feb 4 23:10:01 1997 @@ -66,7 +66,13 @@ */ extern __inline__ int test_bit(int nr, const SMPVOL void * addr) { - return ((1UL << (nr & 31)) & (((const unsigned int *) addr)[nr >> 5])) != 0; + int oldbit; + + __asm__ __volatile__( + "btl %2,%1\n\tsbbl %0,%0" + :"=r" (oldbit),"=m" (ADDR) + :"ir" (nr)); + return oldbit; } /* diff -u --recursive --new-file dist-2.1.26/include/asm-i386/irq.h linux/include/asm-i386/irq.h --- dist-2.1.26/include/asm-i386/irq.h Sun Jan 26 12:38:56 1997 +++ linux/include/asm-i386/irq.h Sun Feb 9 15:52:57 1997 @@ -7,6 +7,7 @@ * (C) 1992, 1993 Linus Torvalds * * IRQ/IPI changes taken from work by Thomas Radke + * Software IRQ masking by Benjamin LaHaise */ #include @@ -22,6 +23,11 @@ #define __STR(x) #x #define STR(x) __STR(x) +#if 0 +#define CLI "movl $~0,"SYMBOL_NAME_STR(sw_irq_mask)"\n\t" +#else +#define CLI /* */ +#endif #define SAVE_ALL \ "cld\n\t" \ @@ -38,6 +44,19 @@ "mov %dx,%ds\n\t" \ "mov %dx,%es\n\t" +#define RESTORE_ALL \ + "popl %ebx\n\t" \ + "popl %ecx\n\t" \ + "popl %edx\n\t" \ + "popl %esi\n\t" \ + "popl %edi\n\t" \ + "popl %ebp\n\t" \ + "popl %eax\n\t" \ + "pop %ds\n\t" \ + "pop %es\n\t" \ + "addl $4,%esp\n\t" \ + "iret\n\t" + /* * SAVE_MOST/RESTORE_MOST is used for the faster version of IRQ handlers, * installed by using the SA_INTERRUPT flag. These kinds of IRQ's don't @@ -147,33 +166,29 @@ */ #define BUILD_MSGIRQ(chip,nr,mask) \ -asmlinkage void IRQ_NAME(nr); \ -asmlinkage void FAST_IRQ_NAME(nr); \ -asmlinkage void BAD_IRQ_NAME(nr); \ +asmlinkage_p(void IRQ_NAME(nr)); \ +asmlinkage_p(void FAST_IRQ_NAME(nr)); \ +asmlinkage_p(void BAD_IRQ_NAME(nr)); \ __asm__( \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \ "pushl $-"#nr"-2\n\t" \ SAVE_ALL \ - ACK_##chip(mask,(nr&7)) \ - "sti\n\t" \ "movl %esp,%eax\n\t" \ "pushl %eax\n\t" \ "pushl $" #nr "\n\t" \ "call "SYMBOL_NAME_STR(do_IRQ)"\n\t" \ "addl $8,%esp\n\t" \ - "cli\n\t" \ - UNBLK_##chip(mask) \ + CLI \ "jmp ret_from_sys_call\n" \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \ SAVE_MOST \ - ACK_##chip(mask,(nr&7)) \ "pushl $" #nr "\n\t" \ - "call "SYMBOL_NAME_STR(do_fast_IRQ)"\n\t" \ - "addl $4,%esp\n\t" \ - "cli\n\t" \ - UNBLK_##chip(mask) \ + "pushl $0\n\t" \ + "call "SYMBOL_NAME_STR(do_IRQ)"\n\t" \ + "addl $8,%esp\n\t" \ + CLI \ RESTORE_MOST \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(bad_IRQ) #nr "_interrupt:\n\t" \ @@ -182,7 +197,7 @@ RESTORE_MOST); #define BUILD_RESCHEDIRQ(nr) \ -asmlinkage void IRQ_NAME(nr); \ +asmlinkage_p(void IRQ_NAME(nr)); \ __asm__( \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \ @@ -194,39 +209,34 @@ "pushl $" #nr "\n\t" \ "call "SYMBOL_NAME_STR(smp_reschedule_irq)"\n\t" \ "addl $8,%esp\n\t" \ - "cli\n\t" \ "jmp ret_from_sys_call\n"); #endif /* __SMP__ */ #define BUILD_IRQ(chip,nr,mask) \ -asmlinkage void IRQ_NAME(nr); \ -asmlinkage void FAST_IRQ_NAME(nr); \ -asmlinkage void BAD_IRQ_NAME(nr); \ +asmlinkage_p(void IRQ_NAME(nr)); \ +asmlinkage_p(void FAST_IRQ_NAME(nr)); \ +asmlinkage_p(void BAD_IRQ_NAME(nr)); \ __asm__( \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \ "pushl $-"#nr"-2\n\t" \ SAVE_ALL \ - ACK_##chip(mask,(nr&7)) \ - "sti\n\t" \ "movl %esp,%eax\n\t" \ "pushl %eax\n\t" \ "pushl $" #nr "\n\t" \ "call "SYMBOL_NAME_STR(do_IRQ)"\n\t" \ "addl $8,%esp\n\t" \ - "cli\n\t" \ - UNBLK_##chip(mask) \ - "jmp ret_from_sys_call\n" \ + "testl %eax,%eax\n\t" \ + "jnz ret_from_sys_call\n" \ + RESTORE_ALL \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \ SAVE_MOST \ - ACK_##chip(mask,(nr&7)) \ + "pushl $0\n\t" \ "pushl $" #nr "\n\t" \ - "call "SYMBOL_NAME_STR(do_fast_IRQ)"\n\t" \ - "addl $4,%esp\n\t" \ - "cli\n\t" \ - UNBLK_##chip(mask) \ + "call "SYMBOL_NAME_STR(do_IRQ)"\n\t" \ + "addl $8,%esp\n\t" \ RESTORE_MOST \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(bad_IRQ) #nr "_interrupt:\n\t" \ @@ -235,9 +245,9 @@ RESTORE_MOST); #define BUILD_TIMER_IRQ(chip,nr,mask) \ -asmlinkage void IRQ_NAME(nr); \ -asmlinkage void FAST_IRQ_NAME(nr); \ -asmlinkage void BAD_IRQ_NAME(nr); \ +asmlinkage_p(void IRQ_NAME(nr)); \ +asmlinkage_p(void FAST_IRQ_NAME(nr)); \ +asmlinkage_p(void BAD_IRQ_NAME(nr)); \ __asm__( \ "\n"__ALIGN_STR"\n" \ SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \ @@ -245,14 +255,13 @@ SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \ "pushl $-"#nr"-2\n\t" \ SAVE_ALL \ - ACK_##chip(mask,(nr&7)) \ "movl %esp,%eax\n\t" \ "pushl %eax\n\t" \ "pushl $" #nr "\n\t" \ "call "SYMBOL_NAME_STR(do_IRQ)"\n\t" \ "addl $8,%esp\n\t" \ - "cli\n\t" \ - UNBLK_##chip(mask) \ - "jmp ret_from_sys_call\n"); + "testl %eax,%eax\n\t" \ + "jnz ret_from_sys_call\n" \ + RESTORE_ALL); #endif /* _ASM_IRQ_H */ diff -u --recursive --new-file dist-2.1.26/include/asm-i386/semaphore.h linux/include/asm-i386/semaphore.h --- dist-2.1.26/include/asm-i386/semaphore.h Fri Jan 24 16:04:17 1997 +++ linux/include/asm-i386/semaphore.h Sun Feb 9 15:54:01 1997 @@ -28,9 +28,9 @@ #define MUTEX ((struct semaphore) { 1, 0, NULL }) #define MUTEX_LOCKED ((struct semaphore) { 0, 0, NULL }) -asmlinkage void __down_failed(void /* special register calling convention */); -asmlinkage int __down_failed_interruptible(void /* params in registers */); -asmlinkage void __up_wakeup(void /* special register calling convention */); +asmlinkage_p(void __down_failed(void /* special register calling convention */)); +asmlinkage_p(int __down_failed_interruptible(void /* params in registers */)); +asmlinkage_p(void __up_wakeup(void /* special register calling convention */)); extern void __down(struct semaphore * sem); extern void __up(struct semaphore * sem); diff -u --recursive --new-file dist-2.1.26/include/asm-i386/system.h linux/include/asm-i386/system.h --- dist-2.1.26/include/asm-i386/system.h Sun Jan 26 12:38:56 1997 +++ linux/include/asm-i386/system.h Sun Feb 9 15:55:48 1997 @@ -1,7 +1,9 @@ #ifndef __ASM_SYSTEM_H #define __ASM_SYSTEM_H +#include #include +#include /* * Entry into gdt where to find first TSS. GDT layout: @@ -67,7 +69,8 @@ */ #define switch_to(prev,next) do { \ - cli();\ + sti(); \ + hw_cli(); \ if(prev->flags&PF_USEDFPU) \ { \ __asm__ __volatile__("fnsave %0":"=m" (prev->tss.i387.hard)); \ @@ -86,6 +89,7 @@ : /* no output */ \ :"m" (*(((char *)&next->tss.tr)-4)), \ "c" (next)); \ + sti();\ /* Now maybe reload the debug registers */ \ if(prev->debugreg[7]){ \ loaddebug(prev,0); \ @@ -99,15 +103,19 @@ #else #define switch_to(prev,next) do { \ -__asm__("movl %2,"SYMBOL_NAME_STR(current_set)"\n\t" \ + sti(); \ +__asm__("cli\n\t" \ + "movl %2,"SYMBOL_NAME_STR(current_set)"\n\t" \ "ljmp %0\n\t" \ "cmpl %1,"SYMBOL_NAME_STR(last_task_used_math)"\n\t" \ "jne 1f\n\t" \ "clts\n" \ "1:" \ + "\n\tsti" \ : /* no outputs */ \ :"m" (*(((char *)&next->tss.tr)-4)), \ "r" (prev), "r" (next)); \ + sti(); \ /* Now maybe reload the debug registers */ \ if(prev->debugreg[7]){ \ loaddebug(prev,0); \ @@ -220,13 +228,44 @@ } #define mb() __asm__ __volatile__ ("" : : :"memory") -#define sti() __asm__ __volatile__ ("sti": : :"memory") -#define cli() __asm__ __volatile__ ("cli": : :"memory") + +/* new singing, dancing software interrupt flags */ +extern SMPVOL unsigned long sw_irq_mask, sw_irqs_pending; +extern void run_sw_irqs ( void ); + +#define cli() __asm__ __volatile__(LOCK_PREFIX "btsl $0,"SYMBOL_NAME_STR(sw_irq_mask) : : :"memory") +#define sti() __asm__ __volatile__(LOCK_PREFIX \ + "btrl $0,"SYMBOL_NAME_STR(sw_irq_mask)"\n\t" \ + "jz 1f\n\t" \ + "call "SYMBOL_NAME_STR(run_sw_irqs) \ + "\n1:\n" \ + : : :"memory") #define save_flags(x) \ + do { mb(); x = sw_irq_mask; mb(); } while (0) +#define restore_flags(x) __asm__ __volatile__( \ + "testl %0,%0\n\t" \ + "jz 2f\n\t" \ + LOCK_PREFIX "btsl $0,"SYMBOL_NAME_STR(sw_irq_mask)"\n\t" \ + "jmp 1f\n" \ + "2:\n\t" \ + LOCK_PREFIX "btrl $0,"SYMBOL_NAME_STR(sw_irq_mask)"\n\t" \ + "jz 1f\n\t" \ + "call "SYMBOL_NAME_STR(run_sw_irqs) \ + "\n1:\n" \ + : :"ir" (x) :"memory") +#if 0 +#define restore_flags(x) \ + do { if (x) cli(); else sti(); } while (0) +#endif + +#define hw_sti() __asm__ __volatile__ ("sti": : :"memory") +#define hw_cli() __asm__ __volatile__ ("cli": : :"memory") + +#define hw_save_flags(x) \ __asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */ :"memory") -#define restore_flags(x) \ +#define hw_restore_flags(x) \ __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory") #define iret() __asm__ __volatile__ ("iret": : :"memory") diff -u --recursive --new-file dist-2.1.26/include/linux/ext2_fs.h linux/include/linux/ext2_fs.h --- dist-2.1.26/include/linux/ext2_fs.h Mon Sep 23 01:38:18 1996 +++ linux/include/linux/ext2_fs.h Wed Feb 5 02:26:54 1997 @@ -508,7 +508,7 @@ extern void ext2_put_super (struct super_block *); extern void ext2_write_super (struct super_block *); extern int ext2_remount (struct super_block *, int *, char *); -extern struct super_block * ext2_read_super (struct super_block *,void *,int); +extern struct super_block * ext2_read_super (struct super_block *,void *,int,const char *); extern int init_ext2_fs(void); extern void ext2_statfs (struct super_block *, struct statfs *, int); diff -u --recursive --new-file dist-2.1.26/include/linux/fs.h linux/include/linux/fs.h --- dist-2.1.26/include/linux/fs.h Fri Feb 7 18:02:27 1997 +++ linux/include/linux/fs.h Sun Feb 9 15:55:49 1997 @@ -230,6 +230,7 @@ #include #include #include +#include #include /* @@ -318,6 +319,7 @@ struct sysv_inode_info sysv_i; struct affs_inode_info affs_i; struct ufs_inode_info ufs_i; + struct lo_inode_info lo_i; struct romfs_inode_info romfs_i; struct socket socket_i; void * generic_ip; @@ -417,6 +419,7 @@ #include #include #include +#include #include struct super_block { @@ -445,6 +448,7 @@ struct sysv_sb_info sysv_sb; struct affs_sb_info affs_sb; struct ufs_sb_info ufs_sb; + struct lo_sb_info lo_sb; struct romfs_sb_info romfs_sb; void *generic_sbp; } u; @@ -517,7 +521,7 @@ }; struct file_system_type { - struct super_block *(*read_super) (struct super_block *, void *, int); + struct super_block *(*read_super) (struct super_block *, void *, int, const char *); const char *name; int requires_dev; struct file_system_type * next; @@ -526,8 +530,8 @@ extern int register_filesystem(struct file_system_type *); extern int unregister_filesystem(struct file_system_type *); -asmlinkage int sys_open(const char *, int, int); -asmlinkage int sys_close(unsigned int); /* yes, it's really unsigned */ +asmlinkage(int sys_open(const char *, int, int)); +asmlinkage(int sys_close(unsigned int)); /* yes, it's really unsigned */ extern void kill_fasync(struct fasync_struct *fa, int sig); @@ -620,8 +624,11 @@ struct inode ** res_inode, struct inode * base); extern int do_mknod(const char * filename, int mode, dev_t dev); extern int do_pipe(int *); +extern void lock_inode(struct inode * inode); +extern void unlock_inode(struct inode * inode); extern void iput(struct inode * inode); -extern struct inode * __iget(struct super_block * sb,int nr,int crsmnt); +extern struct inode * iget(struct super_block * sb,int nr); +extern struct inode *traverse_mntp(struct inode *inode); extern struct inode * get_empty_inode(void); extern void insert_inode_hash(struct inode *); extern void clear_inode(struct inode *); @@ -660,6 +667,8 @@ extern long generic_file_read(struct inode *, struct file *, char *, unsigned long); extern void put_super(kdev_t dev); +extern kdev_t get_unnamed_dev(void); +extern void put_unnamed_dev(kdev_t dev); unsigned long generate_cluster(kdev_t dev, int b[], int size); unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size); extern kdev_t ROOT_DEV; @@ -687,11 +696,6 @@ extern int inode_change_ok(struct inode *, struct iattr *); extern void inode_setattr(struct inode *, struct iattr *); - -extern inline struct inode * iget(struct super_block * sb,int nr) -{ - return __iget(sb, nr, 1); -} /* kludge to get SCSI modules working */ #include diff -u --recursive --new-file dist-2.1.26/include/linux/interrupt.h linux/include/linux/interrupt.h --- dist-2.1.26/include/linux/interrupt.h Tue Dec 17 07:27:10 1996 +++ linux/include/linux/interrupt.h Sun Feb 9 15:56:00 1997 @@ -21,7 +21,7 @@ extern unsigned long bh_mask; extern void (*bh_base[32])(void); -asmlinkage void do_bottom_half(void); +asmlinkage(void do_bottom_half(void)); /* Who gets which entry in bh_base. Things which will occur most often should come first - in which case NET should be up the top with SERIAL/TQUEUE! */ diff -u --recursive --new-file dist-2.1.26/include/linux/iso_fs.h linux/include/linux/iso_fs.h --- dist-2.1.26/include/linux/iso_fs.h Sun Aug 4 08:13:10 1996 +++ linux/include/linux/iso_fs.h Wed Feb 5 19:02:40 1997 @@ -160,7 +160,6 @@ extern int isofs_bmap(struct inode *,int); extern void isofs_put_super(struct super_block *); -extern struct super_block *isofs_read_super(struct super_block *,void *,int); extern int init_iso9660_fs(void); extern void isofs_read_inode(struct inode *); extern void isofs_put_inode(struct inode *); diff -u --recursive --new-file dist-2.1.26/include/linux/kernel.h linux/include/linux/kernel.h --- dist-2.1.26/include/linux/kernel.h Mon May 20 13:33:57 1996 +++ linux/include/linux/kernel.h Sun Feb 9 15:55:48 1997 @@ -48,8 +48,7 @@ extern int kill_pg(int pgrp, int sig, int priv); extern int kill_sl(int sess, int sig, int priv); -asmlinkage int printk(const char * fmt, ...) - __attribute__ ((format (printf, 1, 2))); +asmlinkage(int printk(const char * fmt, ...) __attribute__ ((format (printf, 1, 2)))); #if DEBUG #define pr_debug(fmt,arg...) \ diff -u --recursive --new-file dist-2.1.26/include/linux/kernel_stat.h linux/include/linux/kernel_stat.h --- dist-2.1.26/include/linux/kernel_stat.h Tue Sep 24 05:21:30 1996 +++ linux/include/linux/kernel_stat.h Sun Feb 9 15:56:00 1997 @@ -25,6 +25,7 @@ unsigned int ierrors, oerrors; unsigned int collisions; unsigned int context_swtch; + unsigned int lost_interrupts[NR_IRQS]; }; extern struct kernel_stat kstat; diff -u --recursive --new-file dist-2.1.26/include/linux/linkage.h linux/include/linux/linkage.h --- dist-2.1.26/include/linux/linkage.h Thu Jun 29 05:22:08 1995 +++ linux/include/linux/linkage.h Sun Feb 9 15:49:15 1997 @@ -2,9 +2,11 @@ #define _LINUX_LINKAGE_H #ifdef __cplusplus -#define asmlinkage extern "C" +#define asmlinkage(x) extern "C" x __attribute__ ((regparm(0))); extern "C" x +#define asmlinkage_p(x) extern "C" x __attribute__ ((regparm(0))) #else -#define asmlinkage +#define asmlinkage(x) x __attribute__ ((regparm(0))); x +#define asmlinkage_p(x) x __attribute__ ((regparm(0))) #endif #ifdef __ELF__ diff -u --recursive --new-file dist-2.1.26/include/linux/lo_fs.h linux/include/linux/lo_fs.h --- dist-2.1.26/include/linux/lo_fs.h Wed Dec 31 19:00:00 1969 +++ linux/include/linux/lo_fs.h Sun Feb 2 19:15:13 1997 @@ -0,0 +1,7 @@ +#ifndef _LINUX_LO_FS_H +#define _LINUX_LO_FS_H + +#ifdef __KERNEL__ +extern int init_lo_fs(void); +#endif +#endif diff -u --recursive --new-file dist-2.1.26/include/linux/lo_fs_i.h linux/include/linux/lo_fs_i.h --- dist-2.1.26/include/linux/lo_fs_i.h Wed Dec 31 19:00:00 1969 +++ linux/include/linux/lo_fs_i.h Sun Feb 2 16:38:11 1997 @@ -0,0 +1,11 @@ +#ifndef _LO_FS_I +#define _LO_FS_I + +/* + * lo fs inode data in memory + */ +struct lo_inode_info { + struct inode *inode; +}; + +#endif diff -u --recursive --new-file dist-2.1.26/include/linux/lo_fs_sb.h linux/include/linux/lo_fs_sb.h --- dist-2.1.26/include/linux/lo_fs_sb.h Wed Dec 31 19:00:00 1969 +++ linux/include/linux/lo_fs_sb.h Sun Feb 2 21:34:47 1997 @@ -0,0 +1,17 @@ +#ifndef _LO_FS_SB +#define _LO_FS_SB + +/* + * lo super-block data + */ +struct lo_sb_info { + struct super_block *s_sb; + struct inode *s_rootinode; + struct super_block *s_lo_next; /* next loopback superblock */ + + unsigned long s_inodes_used; /* number of inodes in use */ + + int s_automount_enabled; +}; + +#endif diff -u --recursive --new-file dist-2.1.26/include/linux/msg.h linux/include/linux/msg.h --- dist-2.1.26/include/linux/msg.h Tue Dec 17 07:05:03 1996 +++ linux/include/linux/msg.h Sun Feb 9 15:46:27 1997 @@ -69,11 +69,10 @@ short msg_ts; /* message text size */ }; -asmlinkage int sys_msgget (key_t key, int msgflg); -asmlinkage int sys_msgsnd (int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg); -asmlinkage int sys_msgrcv (int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, - int msgflg); -asmlinkage int sys_msgctl (int msqid, int cmd, struct msqid_ds *buf); +asmlinkage(int sys_msgget (key_t key, int msgflg)); +asmlinkage(int sys_msgsnd (int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg)); +asmlinkage(int sys_msgrcv (int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg)); +asmlinkage(int sys_msgctl (int msqid, int cmd, struct msqid_ds *buf)); #endif /* __KERNEL__ */ diff -u --recursive --new-file dist-2.1.26/include/linux/personality.h linux/include/linux/personality.h --- dist-2.1.26/include/linux/personality.h Sun Jan 26 12:38:59 1997 +++ linux/include/linux/personality.h Sun Feb 9 15:49:52 1997 @@ -23,7 +23,7 @@ #define PER_XENIX (0x0007 | STICKY_TIMEOUTS) /* Prototype for an lcall7 syscall handler. */ -typedef asmlinkage void (*lcall7_func)(struct pt_regs *); +typedef asmlinkage_p(void (*lcall7_func)(struct pt_regs *)); /* Description of an execution domain - personality range supported, @@ -46,6 +46,6 @@ extern struct exec_domain *lookup_exec_domain(unsigned long personality); extern int register_exec_domain(struct exec_domain *it); extern int unregister_exec_domain(struct exec_domain *it); -asmlinkage int sys_personality(unsigned long personality); +asmlinkage_p(int sys_personality(unsigned long personality)); #endif /* _PERSONALITY_H */ diff -u --recursive --new-file dist-2.1.26/include/linux/proc_fs.h linux/include/linux/proc_fs.h --- dist-2.1.26/include/linux/proc_fs.h Fri Feb 7 18:02:28 1997 +++ linux/include/linux/proc_fs.h Sun Feb 9 15:56:01 1997 @@ -290,7 +290,7 @@ } } -extern struct super_block *proc_read_super(struct super_block *,void *,int); +extern struct super_block *proc_read_super(struct super_block *,void *,int,const char *); extern int init_proc_fs(void); extern struct inode * proc_get_inode(struct super_block *, int, struct proc_dir_entry *); extern void proc_statfs(struct super_block *, struct statfs *, int); diff -u --recursive --new-file dist-2.1.26/include/linux/sched.h linux/include/linux/sched.h --- dist-2.1.26/include/linux/sched.h Fri Feb 7 18:02:28 1997 +++ linux/include/linux/sched.h Sun Feb 9 15:55:49 1997 @@ -108,7 +108,7 @@ extern void show_state(void); extern void trap_init(void); -asmlinkage void schedule(void); +asmlinkage_p(void schedule(void)); /* Open file table structure */ struct files_struct { diff -u --recursive --new-file dist-2.1.26/include/linux/sem.h linux/include/linux/sem.h --- dist-2.1.26/include/linux/sem.h Tue Dec 17 07:05:04 1996 +++ linux/include/linux/sem.h Sun Feb 9 15:50:50 1997 @@ -104,9 +104,9 @@ short * semadj; /* array of adjustments, one per semaphore */ }; -asmlinkage int sys_semget (key_t key, int nsems, int semflg); -asmlinkage int sys_semop (int semid, struct sembuf *sops, unsigned nsops); -asmlinkage int sys_semctl (int semid, int semnum, int cmd, union semun arg); +asmlinkage_p(int sys_semget (key_t key, int nsems, int semflg)); +asmlinkage_p(int sys_semop (int semid, struct sembuf *sops, unsigned nsops)); +asmlinkage_p(int sys_semctl (int semid, int semnum, int cmd, union semun arg)); #endif /* __KERNEL__ */ diff -u --recursive --new-file dist-2.1.26/include/linux/shm.h linux/include/linux/shm.h --- dist-2.1.26/include/linux/shm.h Tue Dec 17 07:05:04 1996 +++ linux/include/linux/shm.h Sun Feb 9 15:51:27 1997 @@ -60,10 +60,10 @@ #define SHM_DEST 01000 /* segment will be destroyed on last detach */ #define SHM_LOCKED 02000 /* segment will not be swapped */ -asmlinkage int sys_shmget (key_t key, int size, int flag); -asmlinkage int sys_shmat (int shmid, char *shmaddr, int shmflg, unsigned long *addr); -asmlinkage int sys_shmdt (char *shmaddr); -asmlinkage int sys_shmctl (int shmid, int cmd, struct shmid_ds *buf); +asmlinkage_p(int sys_shmget (key_t key, int size, int flag)); +asmlinkage_p(int sys_shmat (int shmid, char *shmaddr, int shmflg, unsigned long *addr)); +asmlinkage_p(int sys_shmdt (char *shmaddr)); +asmlinkage_p(int sys_shmctl (int shmid, int cmd, struct shmid_ds *buf)); #endif /* __KERNEL__ */ diff -u --recursive --new-file dist-2.1.26/include/linux/sysctl.h linux/include/linux/sysctl.h --- dist-2.1.26/include/linux/sysctl.h Fri Feb 7 18:02:28 1997 +++ linux/include/linux/sysctl.h Sun Feb 9 15:51:52 1997 @@ -183,7 +183,7 @@ #ifdef __KERNEL__ -extern asmlinkage int sys_sysctl(struct __sysctl_args *); +extern asmlinkage_p(int sys_sysctl(struct __sysctl_args *)); extern void init_sysctl(void); typedef struct ctl_table ctl_table; diff -u --recursive --new-file dist-2.1.26/init/main.c linux/init/main.c --- dist-2.1.26/init/main.c Sun Feb 2 15:26:20 1997 +++ linux/init/main.c Sun Feb 9 15:21:12 1997 @@ -534,6 +534,8 @@ better than 1% */ #define LPS_PREC 8 +extern unsigned long sw_irq_mask, sw_irqs_slow, sw_irqs_running, sw_irq_runs; + void calibrate_delay(void) { unsigned long ticks, loopbit; @@ -541,6 +543,8 @@ loops_per_sec = (1<<12); + printk( "mask: %08lx slow: %08lx pending: %08lx running: %08lx runs: %lu\n", + sw_irq_mask, sw_irqs_slow, sw_irqs_pending, sw_irqs_running, sw_irq_runs); printk("Calibrating delay loop.. "); while (loops_per_sec <<= 1) { /* wait for "start of" clock tick */ @@ -756,7 +760,7 @@ * Activate a secondary processor. */ -asmlinkage void start_secondary(void) +asmlinkage(void start_secondary(void)) { trap_init(); init_IRQ(); @@ -809,7 +813,7 @@ * Activate the first processor. */ -asmlinkage void start_kernel(void) +asmlinkage(void start_kernel(void)) { char * command_line; diff -u --recursive --new-file dist-2.1.26/ipc/msg.c linux/ipc/msg.c --- dist-2.1.26/ipc/msg.c Sun Jan 26 12:39:00 1997 +++ linux/ipc/msg.c Sun Feb 9 15:18:25 1997 @@ -393,7 +393,7 @@ return -1; } -asmlinkage int sys_msgsnd (int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg) +asmlinkage(int sys_msgsnd (int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg)) { int ret; @@ -404,8 +404,7 @@ return ret; } -asmlinkage int sys_msgrcv (int msqid, struct msgbuf *msgp, size_t msgsz, - long msgtyp, int msgflg) +asmlinkage(int sys_msgrcv (int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg)) { int ret; @@ -473,7 +472,7 @@ return (unsigned int) msq->msg_perm.seq * MSGMNI + id; } -asmlinkage int sys_msgget (key_t key, int msgflg) +asmlinkage(int sys_msgget (key_t key, int msgflg)) { int id, ret = -EPERM; struct msqid_ds *msq; @@ -556,7 +555,7 @@ kfree(msq); } -asmlinkage int sys_msgctl (int msqid, int cmd, struct msqid_ds *buf) +asmlinkage(int sys_msgctl (int msqid, int cmd, struct msqid_ds *buf)) { int id, err = -EINVAL; struct msqid_ds *msq; diff -u --recursive --new-file dist-2.1.26/ipc/sem.c linux/ipc/sem.c --- dist-2.1.26/ipc/sem.c Sun Jan 26 12:39:01 1997 +++ linux/ipc/sem.c Sun Feb 9 15:19:09 1997 @@ -130,7 +130,7 @@ return (unsigned int) sma->sem_perm.seq * SEMMNI + id; } -asmlinkage int sys_semget (key_t key, int nsems, int semflg) +asmlinkage(int sys_semget (key_t key, int nsems, int semflg)) { int id, err = -EINVAL; struct semid_ds *sma; @@ -365,7 +365,7 @@ kfree(sma); } -asmlinkage int sys_semctl (int semid, int semnum, int cmd, union semun arg) +asmlinkage(int sys_semctl (int semid, int semnum, int cmd, union semun arg)) { struct semid_ds *buf = NULL; struct semid_ds tbuf; @@ -588,7 +588,7 @@ return err; } -asmlinkage int sys_semop (int semid, struct sembuf *tsops, unsigned nsops) +asmlinkage(int sys_semop (int semid, struct sembuf *tsops, unsigned nsops)) { int i, id, size, error = -EINVAL; struct semid_ds *sma; diff -u --recursive --new-file dist-2.1.26/ipc/shm.c linux/ipc/shm.c --- dist-2.1.26/ipc/shm.c Sun Jan 26 12:39:01 1997 +++ linux/ipc/shm.c Sun Feb 9 15:19:29 1997 @@ -130,7 +130,7 @@ return (unsigned int) shp->shm_perm.seq * SHMMNI + id; } -asmlinkage int sys_shmget (key_t key, int size, int shmflg) +asmlinkage(int sys_shmget (key_t key, int size, int shmflg)) { struct shmid_ds *shp; int err, id = 0; @@ -206,7 +206,7 @@ return; } -asmlinkage int sys_shmctl (int shmid, int cmd, struct shmid_ds *buf) +asmlinkage(int sys_shmctl (int shmid, int cmd, struct shmid_ds *buf)) { struct shmid_ds tbuf; struct shmid_ds *shp; @@ -493,7 +493,7 @@ /* * Fix shmaddr, allocate descriptor, map shm, add attach descriptor to lists. */ -asmlinkage int sys_shmat (int shmid, char *shmaddr, int shmflg, ulong *raddr) +asmlinkage(int sys_shmat (int shmid, char *shmaddr, int shmflg, ulong *raddr)) { struct shmid_ds *shp; struct vm_area_struct *shmd; @@ -643,7 +643,7 @@ * detach and kill segment if marked destroyed. * The work is done in shm_close. */ -asmlinkage int sys_shmdt (char *shmaddr) +asmlinkage(int sys_shmdt (char *shmaddr)) { struct vm_area_struct *shmd, *shmdnext; diff -u --recursive --new-file dist-2.1.26/ipc/util.c linux/ipc/util.c --- dist-2.1.26/ipc/util.c Tue Dec 17 07:03:02 1996 +++ linux/ipc/util.c Sun Feb 9 15:20:44 1997 @@ -63,58 +63,57 @@ return 0; } -asmlinkage int sys_semget (key_t key, int nsems, int semflg) +asmlinkage(int sys_semget (key_t key, int nsems, int semflg)) { return -ENOSYS; } -asmlinkage int sys_semop (int semid, struct sembuf *sops, unsigned nsops) +asmlinkage(int sys_semop (int semid, struct sembuf *sops, unsigned nsops)) { return -ENOSYS; } -asmlinkage int sys_semctl (int semid, int semnum, int cmd, union semun arg) +asmlinkage(int sys_semctl (int semid, int semnum, int cmd, union semun arg)) { return -ENOSYS; } -asmlinkage int sys_msgget (key_t key, int msgflg) +asmlinkage(int sys_msgget (key_t key, int msgflg)) { return -ENOSYS; } -asmlinkage int sys_msgsnd (int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg) +asmlinkage(int sys_msgsnd (int msqid, struct msgbuf *msgp, size_t msgsz, int msgflg)) { return -ENOSYS; } -asmlinkage int sys_msgrcv (int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, - int msgflg) +asmlinkage(int sys_msgrcv (int msqid, struct msgbuf *msgp, size_t msgsz, long msgtyp, int msgflg)) { return -ENOSYS; } -asmlinkage int sys_msgctl (int msqid, int cmd, struct msqid_ds *buf) +asmlinkage(int sys_msgctl (int msqid, int cmd, struct msqid_ds *buf)) { return -ENOSYS; } -asmlinkage int sys_shmget (key_t key, int size, int flag) +asmlinkage(int sys_shmget (key_t key, int size, int flag)) { return -ENOSYS; } -asmlinkage int sys_shmat (int shmid, char *shmaddr, int shmflg, ulong *addr) +asmlinkage(int sys_shmat (int shmid, char *shmaddr, int shmflg, ulong *addr)) { return -ENOSYS; } -asmlinkage int sys_shmdt (char *shmaddr) +asmlinkage(int sys_shmdt (char *shmaddr)) { return -ENOSYS; } -asmlinkage int sys_shmctl (int shmid, int cmd, struct shmid_ds *buf) +asmlinkage(int sys_shmctl (int shmid, int cmd, struct shmid_ds *buf)) { return -ENOSYS; } diff -u --recursive --new-file dist-2.1.26/kernel/exec_domain.c linux/kernel/exec_domain.c --- dist-2.1.26/kernel/exec_domain.c Sun Jan 26 12:39:01 1997 +++ linux/kernel/exec_domain.c Sun Feb 9 03:40:39 1997 @@ -6,7 +6,7 @@ #include #include -static asmlinkage void no_lcall7(struct pt_regs * regs); +asmlinkage(static void no_lcall7(struct pt_regs * regs)); static unsigned long ident_map[32] = { @@ -29,7 +29,7 @@ static struct exec_domain *exec_domains = &default_exec_domain; -static asmlinkage void no_lcall7(struct pt_regs * regs) +asmlinkage(static void no_lcall7(struct pt_regs * regs)) { /* @@ -102,7 +102,7 @@ return -EINVAL; } -asmlinkage int sys_personality(unsigned long personality) +asmlinkage(int sys_personality(unsigned long personality)) { struct exec_domain *it; unsigned long old_personality; diff -u --recursive --new-file dist-2.1.26/kernel/exit.c linux/kernel/exit.c --- dist-2.1.26/kernel/exit.c Sun Jan 26 12:39:01 1997 +++ linux/kernel/exit.c Sun Feb 9 03:41:10 1997 @@ -320,7 +320,7 @@ * POSIX specifies that kill(-1,sig) is unspecified, but what we have * is probably wrong. Should make it like BSD or SYSV. */ -asmlinkage int sys_kill(int pid,int sig) +asmlinkage(int sys_kill(int pid,int sig)) { int err, retval = 0, count = 0; @@ -622,14 +622,14 @@ goto fake_volatile; } -asmlinkage int sys_exit(int error_code) +asmlinkage(int sys_exit(int error_code)) { lock_kernel(); do_exit((error_code&0xff)<<8); unlock_kernel(); } -asmlinkage int sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru) +asmlinkage(int sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru)) { int flag, retval; struct wait_queue wait = { current, NULL }; @@ -730,7 +730,7 @@ * sys_waitpid() remains for compatibility. waitpid() should be * implemented by calling sys_wait4() from libc.a. */ -asmlinkage int sys_waitpid(pid_t pid,unsigned int * stat_addr, int options) +asmlinkage(int sys_waitpid(pid_t pid,unsigned int * stat_addr, int options)) { int ret; diff -u --recursive --new-file dist-2.1.26/kernel/fork.c linux/kernel/fork.c --- dist-2.1.26/kernel/fork.c Sun Jan 26 12:39:01 1997 +++ linux/kernel/fork.c Sat Feb 8 17:48:28 1997 @@ -271,7 +271,6 @@ p->lock_depth = 0; p->start_time = jiffies; task[nr] = p; - SET_LINKS(p); nr_tasks++; error = -ENOMEM; @@ -293,6 +292,7 @@ p->swappable = 1; p->exit_signal = clone_flags & CSIGNAL; p->counter = current->counter >> 1; + SET_LINKS(p); if(p->pid) { wake_up_process(p); /* do this last, just in case */ } else { @@ -315,7 +315,6 @@ if (p->binfmt && p->binfmt->module) __MOD_DEC_USE_COUNT(p->binfmt->module); task[nr] = NULL; - REMOVE_LINKS(p); nr_tasks--; bad_fork_free_stack: free_kernel_stack(new_stack); diff -u --recursive --new-file dist-2.1.26/kernel/info.c linux/kernel/info.c --- dist-2.1.26/kernel/info.c Sun Jan 26 12:39:01 1997 +++ linux/kernel/info.c Sun Feb 9 03:41:23 1997 @@ -17,7 +17,7 @@ #include -asmlinkage int sys_sysinfo(struct sysinfo *info) +asmlinkage(int sys_sysinfo(struct sysinfo *info)) { struct sysinfo val; int err; diff -u --recursive --new-file dist-2.1.26/kernel/itimer.c linux/kernel/itimer.c --- dist-2.1.26/kernel/itimer.c Sun Jan 26 12:39:01 1997 +++ linux/kernel/itimer.c Sun Feb 9 03:41:41 1997 @@ -80,7 +80,7 @@ return 0; } -asmlinkage int sys_getitimer(int which, struct itimerval *value) +asmlinkage(int sys_getitimer(int which, struct itimerval *value)) { int error = -EFAULT; struct itimerval get_buffer; @@ -155,7 +155,7 @@ return 0; } -asmlinkage int sys_setitimer(int which, struct itimerval *value, struct itimerval *ovalue) +asmlinkage(int sys_setitimer(int which, struct itimerval *value, struct itimerval *ovalue)) { int error; struct itimerval set_buffer, get_buffer; diff -u --recursive --new-file dist-2.1.26/kernel/ksyms.c linux/kernel/ksyms.c --- dist-2.1.26/kernel/ksyms.c Fri Feb 7 18:02:28 1997 +++ linux/kernel/ksyms.c Fri Feb 7 18:11:59 1997 @@ -133,7 +133,7 @@ /* filesystem internal functions */ EXPORT_SYMBOL(getname); EXPORT_SYMBOL(putname); -EXPORT_SYMBOL(__iget); +EXPORT_SYMBOL(iget); EXPORT_SYMBOL(iput); EXPORT_SYMBOL(namei); EXPORT_SYMBOL(lnamei); @@ -342,6 +342,8 @@ EXPORT_SYMBOL(__down); EXPORT_SYMBOL(__up); EXPORT_SYMBOL(securelevel); +EXPORT_SYMBOL(get_unnamed_dev); +EXPORT_SYMBOL(put_unnamed_dev); /* all busmice */ EXPORT_SYMBOL(add_mouse_randomness); diff -u --recursive --new-file dist-2.1.26/kernel/module.c linux/kernel/module.c --- dist-2.1.26/kernel/module.c Sun Feb 2 15:26:20 1997 +++ linux/kernel/module.c Sun Feb 9 03:43:12 1997 @@ -113,8 +113,7 @@ * Allocate space for a module. */ -asmlinkage unsigned long -sys_create_module(const char *name_user, size_t size) +asmlinkage(unsigned long sys_create_module(const char *name_user, size_t size)) { char *name; long namelen, error; @@ -166,8 +165,7 @@ * Initialize a module. */ -asmlinkage int -sys_init_module(const char *name_user, struct module *mod_user) +asmlinkage(int sys_init_module(const char *name_user, struct module *mod_user)) { struct module mod_tmp, *mod; char *name, *n_name; @@ -354,8 +352,7 @@ return error; } -asmlinkage int -sys_delete_module(const char *name_user) +asmlinkage(int sys_delete_module(const char *name_user)) { struct module *mod, *next; char *name; @@ -618,9 +615,7 @@ return error; } -asmlinkage int -sys_query_module(const char *name_user, int which, char *buf, size_t bufsize, - size_t *ret) +asmlinkage(int sys_query_module(const char *name_user, int which, char *buf, size_t bufsize, size_t *ret)) { struct module *mod; int err; @@ -683,8 +678,7 @@ * which does not arbitrarily limit the length of symbols. */ -asmlinkage int -sys_get_kernel_syms(struct kernel_sym *table) +asmlinkage(int sys_get_kernel_syms(struct kernel_sym *table)) { struct module *mod; int i; @@ -930,27 +924,22 @@ /* Dummy syscalls for people who don't want modules */ -asmlinkage unsigned long -sys_create_module(const char *name_user, size_t size) +asmlinkage(unsigned long sys_create_module(const char *name_user, size_t size)) { return -ENOSYS; } -asmlinkage int -sys_init_module(const char *name_user, struct module *mod_user) +asmlinkage(int sys_init_module(const char *name_user, struct module *mod_user)) { return -ENOSYS; } -asmlinkage int -sys_delete_module(const char *name_user) +asmlinkage(int sys_delete_module(const char *name_user)) { return -ENOSYS; } -asmlinkage int -sys_query_module(const char *name_user, int which, char *buf, size_t bufsize, - size_t *ret) +asmlinkage(int sys_query_module(const char *name_user, int which, char *buf, size_t bufsize, size_t *ret)) { /* Let the program know about the new interface. Not that it'll do them much good. */ @@ -960,8 +949,7 @@ return -ENOSYS; } -asmlinkage int -sys_get_kernel_syms(struct kernel_sym *table) +asmlinkage(int sys_get_kernel_syms(struct kernel_sym *table)) { return -ENOSYS; } diff -u --recursive --new-file dist-2.1.26/kernel/panic.c linux/kernel/panic.c --- dist-2.1.26/kernel/panic.c Sun Jan 5 14:05:20 1997 +++ linux/kernel/panic.c Sun Feb 9 03:43:41 1997 @@ -15,7 +15,7 @@ #include #include -asmlinkage void sys_sync(void); /* it's really int */ +asmlinkage(void sys_sync(void)); /* it's really int */ extern void hard_reset_now(void); extern void do_unblank_screen(void); extern int C_A_D; diff -u --recursive --new-file dist-2.1.26/kernel/printk.c linux/kernel/printk.c --- dist-2.1.26/kernel/printk.c Sun Jan 26 12:39:01 1997 +++ linux/kernel/printk.c Sun Feb 9 03:43:57 1997 @@ -61,7 +61,7 @@ * 7 -- Enable printk's to console * 8 -- Set level of messages printed to console */ -asmlinkage int sys_syslog(int type, char * buf, int len) +asmlinkage(int sys_syslog(int type, char * buf, int len)) { unsigned long i, j, count; int do_clear = 0; @@ -166,7 +166,7 @@ } -asmlinkage int printk(const char *fmt, ...) +asmlinkage(int printk(const char *fmt, ...)) { va_list args; int i; diff -u --recursive --new-file dist-2.1.26/kernel/sched.c linux/kernel/sched.c --- dist-2.1.26/kernel/sched.c Fri Feb 7 18:02:28 1997 +++ linux/kernel/sched.c Sun Feb 9 03:46:00 1997 @@ -279,7 +279,7 @@ * tasks can run. It can not be killed, and it cannot sleep. The 'state' * information in task[0] is never used. */ -asmlinkage void schedule(void) +asmlinkage(void schedule(void)) { int c; struct task_struct * p; @@ -401,7 +401,7 @@ * For backwards compatibility? This can be done in libc so Alpha * and all newer ports shouldn't need it. */ -asmlinkage int sys_pause(void) +asmlinkage(int sys_pause(void)) { lock_kernel(); current->state = TASK_INTERRUPTIBLE; @@ -1229,6 +1229,7 @@ mark_bh(TIMER_BH); if (!user_mode(regs)) { lost_ticks_system++; +#if !defined(__i386__) if (prof_buffer && current->pid) { extern int _stext; unsigned long ip = instruction_pointer(regs); @@ -1237,6 +1238,7 @@ if (ip < prof_len) prof_buffer[ip]++; } +#endif } if (tq_timer) mark_bh(TQUEUE_BH); @@ -1248,7 +1250,7 @@ * For backwards compatibility? This can be done in libc so Alpha * and all newer ports shouldn't need it. */ -asmlinkage unsigned int sys_alarm(unsigned int seconds) +asmlinkage(unsigned int sys_alarm(unsigned int seconds)) { struct itimerval it_new, it_old; unsigned int oldalarm; @@ -1272,7 +1274,7 @@ * should be moved into arch/i386 instead? */ -asmlinkage int sys_getpid(void) +asmlinkage(int sys_getpid(void)) { /* This is SMP safe - current->pid doesnt change */ return current->pid; @@ -1301,7 +1303,7 @@ * a small window for a race, using the old pointer is * harmless for a while). */ -asmlinkage int sys_getppid(void) +asmlinkage(int sys_getppid(void)) { int pid; struct task_struct * me = current; @@ -1324,25 +1326,25 @@ return pid; } -asmlinkage int sys_getuid(void) +asmlinkage(int sys_getuid(void)) { /* Only we change this so SMP safe */ return current->uid; } -asmlinkage int sys_geteuid(void) +asmlinkage(int sys_geteuid(void)) { /* Only we change this so SMP safe */ return current->euid; } -asmlinkage int sys_getgid(void) +asmlinkage(int sys_getgid(void)) { /* Only we change this so SMP safe */ return current->gid; } -asmlinkage int sys_getegid(void) +asmlinkage(int sys_getegid(void)) { /* Only we change this so SMP safe */ return current->egid; @@ -1354,7 +1356,7 @@ * it for backward compatibility? */ -asmlinkage int sys_nice(int increment) +asmlinkage(int sys_nice(int increment)) { unsigned long newprio; int increase = 0; @@ -1469,8 +1471,7 @@ return 0; } -asmlinkage int sys_sched_setscheduler(pid_t pid, int policy, - struct sched_param *param) +asmlinkage(int sys_sched_setscheduler(pid_t pid, int policy, struct sched_param *param)) { int ret; @@ -1480,7 +1481,7 @@ return ret; } -asmlinkage int sys_sched_setparam(pid_t pid, struct sched_param *param) +asmlinkage(int sys_sched_setparam(pid_t pid, struct sched_param *param)) { int ret; @@ -1490,7 +1491,7 @@ return ret; } -asmlinkage int sys_sched_getscheduler(pid_t pid) +asmlinkage(int sys_sched_getscheduler(pid_t pid)) { struct task_struct *p; int ret = -EINVAL; @@ -1510,7 +1511,7 @@ return ret; } -asmlinkage int sys_sched_getparam(pid_t pid, struct sched_param *param) +asmlinkage(int sys_sched_getparam(pid_t pid, struct sched_param *param)) { struct task_struct *p; struct sched_param lp; @@ -1532,7 +1533,7 @@ return ret; } -asmlinkage int sys_sched_yield(void) +asmlinkage(int sys_sched_yield(void)) { lock_kernel(); cli(); @@ -1542,7 +1543,7 @@ return 0; } -asmlinkage int sys_sched_get_priority_max(int policy) +asmlinkage(int sys_sched_get_priority_max(int policy)) { int ret = -EINVAL; @@ -1560,7 +1561,7 @@ return ret; } -asmlinkage int sys_sched_get_priority_min(int policy) +asmlinkage(int sys_sched_get_priority_min(int policy)) { int ret = -EINVAL; @@ -1577,7 +1578,7 @@ return ret; } -asmlinkage int sys_sched_rr_get_interval(pid_t pid, struct timespec *interval) +asmlinkage(int sys_sched_rr_get_interval(pid_t pid, struct timespec *interval)) { struct timespec t; int ret; @@ -1615,7 +1616,7 @@ return; } -asmlinkage int sys_nanosleep(struct timespec *rqtp, struct timespec *rmtp) +asmlinkage(int sys_nanosleep(struct timespec *rqtp, struct timespec *rmtp)) { int error = -EFAULT; struct timespec t; diff -u --recursive --new-file dist-2.1.26/kernel/signal.c linux/kernel/signal.c --- dist-2.1.26/kernel/signal.c Fri Feb 7 18:02:28 1997 +++ linux/kernel/signal.c Sun Feb 9 15:59:09 1997 @@ -28,7 +28,7 @@ * uses osf_sigprocmask instead. Maybe it should be moved into * arch-dependent dir? */ -asmlinkage int sys_sigprocmask(int how, sigset_t *set, sigset_t *oset) +asmlinkage(int sys_sigprocmask(int how, sigset_t *set, sigset_t *oset)) { sigset_t new_set, old_set = current->blocked; int error; @@ -68,7 +68,7 @@ /* * For backwards compatibility? Functionality superseded by sigprocmask. */ -asmlinkage int sys_sgetmask(void) +asmlinkage(int sys_sgetmask(void)) { int ret; @@ -77,7 +77,7 @@ return ret; } -asmlinkage int sys_ssetmask(int newmask) +asmlinkage(int sys_ssetmask(int newmask)) { int old; @@ -90,7 +90,7 @@ #endif -asmlinkage int sys_sigpending(sigset_t *set) +asmlinkage(int sys_sigpending(sigset_t *set)) { int ret; @@ -137,7 +137,7 @@ /* * For backwards compatibility? Functionality superseded by sigaction. */ -asmlinkage unsigned long sys_signal(int signum, __sighandler_t handler) +asmlinkage(unsigned long sys_signal(int signum, __sighandler_t handler)) { unsigned long err; struct sigaction tmp; @@ -167,8 +167,7 @@ #endif #ifndef __sparc__ -asmlinkage int sys_sigaction(int signum, const struct sigaction * action, - struct sigaction * oldaction) +asmlinkage(int sys_sigaction(int signum, const struct sigaction * action, struct sigaction * oldaction)) { struct sigaction new_sa, *p; int ret = -EINVAL; diff -u --recursive --new-file dist-2.1.26/kernel/softirq.c linux/kernel/softirq.c --- dist-2.1.26/kernel/softirq.c Sun Jan 26 12:39:02 1997 +++ linux/kernel/softirq.c Sun Feb 9 03:46:48 1997 @@ -31,7 +31,7 @@ void (*bh_base[32])(void); -asmlinkage void do_bottom_half(void) +asmlinkage(void do_bottom_half(void)) { unsigned long active; unsigned long mask, left; diff -u --recursive --new-file dist-2.1.26/kernel/sys.c linux/kernel/sys.c --- dist-2.1.26/kernel/sys.c Fri Feb 7 18:02:29 1997 +++ linux/kernel/sys.c Sun Feb 9 03:51:06 1997 @@ -46,7 +46,7 @@ extern void adjust_clock(void); -asmlinkage int sys_ni_syscall(void) +asmlinkage(int sys_ni_syscall(void)) { return -ENOSYS; } @@ -73,7 +73,7 @@ return 0; } -asmlinkage int sys_setpriority(int which, int who, int niceval) +asmlinkage(int sys_setpriority(int which, int who, int niceval)) { struct task_struct *p; int error = EINVAL; @@ -123,7 +123,7 @@ * not return the normal nice-value, but a value that has been * offset by 20 (ie it returns 0..40 instead of -20..20) */ -asmlinkage int sys_getpriority(int which, int who) +asmlinkage(int sys_getpriority(int which, int who)) { struct task_struct *p; long max_prio = -ESRCH; @@ -157,32 +157,32 @@ * directory. */ -asmlinkage int sys_profil(void) +asmlinkage(int sys_profil(void)) { return -ENOSYS; } -asmlinkage int sys_ftime(void) +asmlinkage(int sys_ftime(void)) { return -ENOSYS; } -asmlinkage int sys_break(void) +asmlinkage(int sys_break(void)) { return -ENOSYS; } -asmlinkage int sys_stty(void) +asmlinkage(int sys_stty(void)) { return -ENOSYS; } -asmlinkage int sys_gtty(void) +asmlinkage(int sys_gtty(void)) { return -ENOSYS; } -asmlinkage int sys_prof(void) +asmlinkage(int sys_prof(void)) { return -ENOSYS; } @@ -193,7 +193,7 @@ #ifdef __sparc__ extern void halt_now(void); #endif -extern asmlinkage int sys_kill(int, int); +asmlinkage(extern int sys_kill(int, int)); /* * Reboot system call: for obvious reasons only root may call it, @@ -203,7 +203,7 @@ * * reboot doesn't sync: do that yourself before calling this. */ -asmlinkage int sys_reboot(int magic, int magic_too, int flag) +asmlinkage(int sys_reboot(int magic, int magic_too, int flag)) { if (!suser()) return -EPERM; @@ -273,7 +273,7 @@ * 100% compatible with BSD. A program which uses just setgid() will be * 100% compatible with POSIX w/ Saved ID's. */ -asmlinkage int sys_setregid(gid_t rgid, gid_t egid) +asmlinkage(int sys_setregid(gid_t rgid, gid_t egid)) { int old_rgid = current->gid; int old_egid = current->egid; @@ -314,7 +314,7 @@ /* * setgid() is implemented like SysV w/ SAVED_IDS */ -asmlinkage int sys_setgid(gid_t gid) +asmlinkage(int sys_setgid(gid_t gid)) { int old_egid = current->egid; int err = -EPERM; @@ -378,7 +378,7 @@ return 0; } -asmlinkage int sys_acct(const char *name) +asmlinkage(int sys_acct(const char *name)) { struct inode *inode = (struct inode *)0; char *tmp; @@ -454,27 +454,27 @@ * directory. */ -asmlinkage int sys_phys(void) +asmlinkage(int sys_phys(void)) { return -ENOSYS; } -asmlinkage int sys_lock(void) +asmlinkage(int sys_lock(void)) { return -ENOSYS; } -asmlinkage int sys_mpx(void) +asmlinkage(int sys_mpx(void)) { return -ENOSYS; } -asmlinkage int sys_ulimit(void) +asmlinkage(int sys_ulimit(void)) { return -ENOSYS; } -asmlinkage int sys_old_syscall(void) +asmlinkage(int sys_old_syscall(void)) { return -ENOSYS; } @@ -496,7 +496,7 @@ * 100% compatible with BSD. A program which uses just setuid() will be * 100% compatible with POSIX w/ Saved ID's. */ -asmlinkage int sys_setreuid(uid_t ruid, uid_t euid) +asmlinkage(int sys_setreuid(uid_t ruid, uid_t euid)) { int old_ruid; int old_euid; @@ -547,7 +547,7 @@ * will allow a root program to temporarily drop privileges and be able to * regain them by swapping the real and effective uid. */ -asmlinkage int sys_setuid(uid_t uid) +asmlinkage(int sys_setuid(uid_t uid)) { int old_euid = current->euid; int retval = 0; @@ -573,7 +573,7 @@ * This function implementes a generic ability to update ruid, euid, * and suid. This allows you to implement the 4.4 compatible seteuid(). */ -asmlinkage int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid) +asmlinkage(int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid)) { uid_t old_ruid, old_euid, old_suid; int err = -EPERM; @@ -604,7 +604,7 @@ return err; } -asmlinkage int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid) +asmlinkage(int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid)) { int retval; @@ -623,7 +623,7 @@ * whatever uid it wants to). It normally shadows "euid", except when * explicitly set by setfsuid() or for access.. */ -asmlinkage int sys_setfsuid(uid_t uid) +asmlinkage(int sys_setfsuid(uid_t uid)) { int old_fsuid; @@ -641,7 +641,7 @@ /* * Samma på svenska.. */ -asmlinkage int sys_setfsgid(gid_t gid) +asmlinkage(int sys_setfsgid(gid_t gid)) { int old_fsgid; @@ -656,7 +656,7 @@ return old_fsgid; } -asmlinkage long sys_times(struct tms * tbuf) +asmlinkage(long sys_times(struct tms * tbuf)) { /* * In the SMP world we might just be unlucky and have one of @@ -688,7 +688,7 @@ * LBT 04.03.94 */ -asmlinkage int sys_setpgid(pid_t pid, pid_t pgid) +asmlinkage(int sys_setpgid(pid_t pid, pid_t pgid)) { struct task_struct * p; int err = -EINVAL; @@ -739,7 +739,7 @@ return err; } -asmlinkage int sys_getpgid(pid_t pid) +asmlinkage(int sys_getpgid(pid_t pid)) { struct task_struct * p; int ret; @@ -761,13 +761,13 @@ return ret; } -asmlinkage int sys_getpgrp(void) +asmlinkage(int sys_getpgrp(void)) { /* SMP - assuming writes are word atomic this is fine */ return current->pgrp; } -asmlinkage int sys_getsid(pid_t pid) +asmlinkage(int sys_getsid(pid_t pid)) { struct task_struct * p; int ret; @@ -791,7 +791,7 @@ return ret; } -asmlinkage int sys_setsid(void) +asmlinkage(int sys_setsid(void)) { struct task_struct * p; int err = -EPERM; @@ -815,7 +815,7 @@ /* * Supplementary group ID's */ -asmlinkage int sys_getgroups(int gidsetsize, gid_t *grouplist) +asmlinkage(int sys_getgroups(int gidsetsize, gid_t *grouplist)) { int i; @@ -841,7 +841,7 @@ * without another task interfering. */ -asmlinkage int sys_setgroups(int gidsetsize, gid_t *grouplist) +asmlinkage(int sys_setgroups(int gidsetsize, gid_t *grouplist)) { if (!suser()) return -EPERM; @@ -872,7 +872,7 @@ return 1; } -asmlinkage int sys_newuname(struct new_utsname * name) +asmlinkage(int sys_newuname(struct new_utsname * name)) { int err = -EFAULT; @@ -893,7 +893,7 @@ * Move these to arch dependent dir since they are for * backward compatibility only? */ -asmlinkage int sys_uname(struct old_utsname * name) +asmlinkage(int sys_uname(struct old_utsname * name)) { int error = -EFAULT; @@ -904,7 +904,7 @@ return error; } -asmlinkage int sys_olduname(struct oldold_utsname * name) +asmlinkage(int sys_olduname(struct oldold_utsname * name)) { int error = -EFAULT; @@ -938,7 +938,7 @@ #endif -asmlinkage int sys_sethostname(char *name, int len) +asmlinkage(int sys_sethostname(char *name, int len)) { int error = -EPERM; @@ -959,7 +959,7 @@ return error; } -asmlinkage int sys_gethostname(char *name, int len) +asmlinkage(int sys_gethostname(char *name, int len)) { int i, err = -EINVAL; @@ -979,7 +979,7 @@ * Only setdomainname; getdomainname can be implemented by calling * uname() */ -asmlinkage int sys_setdomainname(char *name, int len) +asmlinkage(int sys_setdomainname(char *name, int len)) { int error = -EPERM; @@ -999,7 +999,7 @@ return error; } -asmlinkage int sys_getrlimit(unsigned int resource, struct rlimit *rlim) +asmlinkage(int sys_getrlimit(unsigned int resource, struct rlimit *rlim)) { int error; @@ -1013,7 +1013,7 @@ return error; } -asmlinkage int sys_setrlimit(unsigned int resource, struct rlimit *rlim) +asmlinkage(int sys_setrlimit(unsigned int resource, struct rlimit *rlim)) { struct rlimit new_rlim, *old_rlim; int err = -EINVAL; @@ -1092,7 +1092,7 @@ return err; } -asmlinkage int sys_getrusage(int who, struct rusage *ru) +asmlinkage(int sys_getrusage(int who, struct rusage *ru)) { int err = -EINVAL; @@ -1105,7 +1105,7 @@ return err; } -asmlinkage int sys_umask(int mask) +asmlinkage(int sys_umask(int mask)) { /* The xchg() isn't SMP-safe on x86 right now.. */ mask = xchg(¤t->fs->umask, mask & S_IRWXUGO); diff -u --recursive --new-file dist-2.1.26/kernel/sysctl.c linux/kernel/sysctl.c --- dist-2.1.26/kernel/sysctl.c Sun Jan 26 12:39:02 1997 +++ linux/kernel/sysctl.c Sun Feb 9 15:02:27 1997 @@ -224,7 +224,7 @@ return -ENOTDIR; } -extern asmlinkage int sys_sysctl(struct __sysctl_args *args) +asmlinkage(extern int sys_sysctl(struct __sysctl_args *args)) { struct __sysctl_args tmp; int error; diff -u --recursive --new-file dist-2.1.26/kernel/time.c linux/kernel/time.c --- dist-2.1.26/kernel/time.c Fri Feb 7 18:02:29 1997 +++ linux/kernel/time.c Sun Feb 9 15:02:58 1997 @@ -62,7 +62,7 @@ * why not move it into the appropriate arch directory (for those * architectures that need it). */ -asmlinkage int sys_time(int * tloc) +asmlinkage(int sys_time(int * tloc)) { int i; @@ -83,7 +83,7 @@ * architectures that need it). */ -asmlinkage int sys_stime(int * tptr) +asmlinkage(int sys_stime(int * tptr)) { int value; @@ -109,7 +109,7 @@ #endif -asmlinkage int sys_gettimeofday(struct timeval *tv, struct timezone *tz) +asmlinkage(int sys_gettimeofday(struct timeval *tv, struct timezone *tz)) { int err = -EFAULT; @@ -163,7 +163,7 @@ * as soon as possible, so that the clock can be set right. Otherwise, * various programs will get confused when the clock gets warped. */ -asmlinkage int sys_settimeofday(struct timeval *tv, struct timezone *tz) +asmlinkage(int sys_settimeofday(struct timeval *tv, struct timezone *tz)) { static int firsttime = 1; struct timeval new_tv; @@ -217,7 +217,7 @@ /* adjtimex mainly allows reading (and writing, if superuser) of * kernel time-keeping variables. used by xntpd. */ -asmlinkage int sys_adjtimex(struct timex *txc_p) +asmlinkage(int sys_adjtimex(struct timex *txc_p)) { long ltemp, mtemp, save_adjust; int error = -EFAULT; diff -u --recursive --new-file dist-2.1.26/mm/filemap.c linux/mm/filemap.c --- dist-2.1.26/mm/filemap.c Sun Jan 26 12:39:02 1997 +++ linux/mm/filemap.c Sun Feb 9 15:21:39 1997 @@ -1220,7 +1220,7 @@ return 0; } -asmlinkage int sys_msync(unsigned long start, size_t len, int flags) +asmlinkage(int sys_msync(unsigned long start, size_t len, int flags)) { unsigned long end; struct vm_area_struct * vma; diff -u --recursive --new-file dist-2.1.26/mm/mlock.c linux/mm/mlock.c --- dist-2.1.26/mm/mlock.c Sun Jan 26 12:39:03 1997 +++ linux/mm/mlock.c Sun Feb 9 15:22:00 1997 @@ -185,7 +185,7 @@ return error; } -asmlinkage int sys_mlock(unsigned long start, size_t len) +asmlinkage(int sys_mlock(unsigned long start, size_t len)) { unsigned long locked; unsigned long lock_limit; @@ -216,7 +216,7 @@ return error; } -asmlinkage int sys_munlock(unsigned long start, size_t len) +asmlinkage(int sys_munlock(unsigned long start, size_t len)) { int ret; @@ -257,7 +257,7 @@ return error; } -asmlinkage int sys_mlockall(int flags) +asmlinkage(int sys_mlockall(int flags)) { unsigned long lock_limit; int ret = -EINVAL; @@ -284,7 +284,7 @@ return ret; } -asmlinkage int sys_munlockall(void) +asmlinkage(int sys_munlockall(void)) { int ret; diff -u --recursive --new-file dist-2.1.26/mm/mmap.c linux/mm/mmap.c --- dist-2.1.26/mm/mmap.c Sun Jan 26 12:39:03 1997 +++ linux/mm/mmap.c Sun Feb 9 15:22:14 1997 @@ -67,7 +67,7 @@ return freepages > pages; } -asmlinkage unsigned long sys_brk(unsigned long brk) +asmlinkage(unsigned long sys_brk(unsigned long brk)) { unsigned long rlim, retval; unsigned long newbrk, oldbrk; @@ -792,7 +792,7 @@ insert_vm_struct(current->mm, mpnt); } -asmlinkage int sys_munmap(unsigned long addr, size_t len) +asmlinkage(int sys_munmap(unsigned long addr, size_t len)) { int ret; diff -u --recursive --new-file dist-2.1.26/mm/mprotect.c linux/mm/mprotect.c --- dist-2.1.26/mm/mprotect.c Sun Jan 26 12:39:03 1997 +++ linux/mm/mprotect.c Sun Feb 9 15:22:24 1997 @@ -202,7 +202,7 @@ return 0; } -asmlinkage int sys_mprotect(unsigned long start, size_t len, unsigned long prot) +asmlinkage(int sys_mprotect(unsigned long start, size_t len, unsigned long prot)) { unsigned long nstart, end, tmp; struct vm_area_struct * vma, * next; diff -u --recursive --new-file dist-2.1.26/mm/mremap.c linux/mm/mremap.c --- dist-2.1.26/mm/mremap.c Sun Jan 26 12:39:03 1997 +++ linux/mm/mremap.c Sun Feb 9 15:22:35 1997 @@ -159,9 +159,9 @@ * Expand (or shrink) an existing mapping, potentially moving it at the * same time (controlled by the MREMAP_MAYMOVE flag and available VM space) */ -asmlinkage unsigned long sys_mremap(unsigned long addr, +asmlinkage(unsigned long sys_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, - unsigned long flags) + unsigned long flags)) { struct vm_area_struct *vma; unsigned long ret = -EINVAL; diff -u --recursive --new-file dist-2.1.26/mm/swapfile.c linux/mm/swapfile.c --- dist-2.1.26/mm/swapfile.c Wed Jan 29 00:11:42 1997 +++ linux/mm/swapfile.c Sun Feb 9 15:22:49 1997 @@ -320,7 +320,7 @@ return 0; } -asmlinkage int sys_swapoff(const char * specialfile) +asmlinkage(int sys_swapoff(const char * specialfile)) { struct swap_info_struct * p = NULL; struct inode * inode; @@ -445,7 +445,7 @@ * * The swapon system call */ -asmlinkage int sys_swapon(const char * specialfile, int swap_flags) +asmlinkage(int sys_swapon(const char * specialfile, int swap_flags)) { struct swap_info_struct * p; struct inode * swap_inode; diff -u --recursive --new-file dist-2.1.26/net/socket.c linux/net/socket.c --- dist-2.1.26/net/socket.c Fri Feb 7 18:02:30 1997 +++ linux/net/socket.c Sun Feb 9 15:25:07 1997 @@ -559,7 +559,7 @@ } -asmlinkage int sys_socket(int family, int type, int protocol) +asmlinkage(int sys_socket(int family, int type, int protocol)) { int i, fd, err; struct socket *sock; @@ -642,7 +642,7 @@ * Create a pair of connected sockets. */ -asmlinkage int sys_socketpair(int family, int type, int protocol, int usockvec[2]) +asmlinkage(int sys_socketpair(int family, int type, int protocol, int usockvec[2])) { int fd1, fd2, i; struct socket *sock1=NULL, *sock2=NULL; @@ -717,7 +717,7 @@ * the protocol layer (having also checked the address is ok). */ -asmlinkage int sys_bind(int fd, struct sockaddr *umyaddr, int addrlen) +asmlinkage(int sys_bind(int fd, struct sockaddr *umyaddr, int addrlen)) { struct socket *sock; char address[MAX_SOCK_ADDR]; @@ -741,7 +741,7 @@ * ready for listening. */ -asmlinkage int sys_listen(int fd, int backlog) +asmlinkage(int sys_listen(int fd, int backlog)) { struct socket *sock; int err; @@ -769,7 +769,7 @@ * clean when we restucture accept also. */ -asmlinkage int sys_accept(int fd, struct sockaddr *upeer_sockaddr, int *upeer_addrlen) +asmlinkage(int sys_accept(int fd, struct sockaddr *upeer_sockaddr, int *upeer_addrlen)) { struct inode *inode; struct socket *sock, *newsock; @@ -839,7 +839,7 @@ * include the -EINPROGRESS status for such sockets. */ -asmlinkage int sys_connect(int fd, struct sockaddr *uservaddr, int addrlen) +asmlinkage(int sys_connect(int fd, struct sockaddr *uservaddr, int addrlen)) { struct socket *sock; char address[MAX_SOCK_ADDR]; @@ -862,7 +862,7 @@ * name to user space. */ -asmlinkage int sys_getsockname(int fd, struct sockaddr *usockaddr, int *usockaddr_len) +asmlinkage(int sys_getsockname(int fd, struct sockaddr *usockaddr, int *usockaddr_len)) { struct socket *sock; char address[MAX_SOCK_ADDR]; @@ -885,7 +885,7 @@ * name to user space. */ -asmlinkage int sys_getpeername(int fd, struct sockaddr *usockaddr, int *usockaddr_len) +asmlinkage(int sys_getpeername(int fd, struct sockaddr *usockaddr, int *usockaddr_len)) { struct socket *sock; char address[MAX_SOCK_ADDR]; @@ -908,7 +908,7 @@ * in user space. We check it can be read. */ -asmlinkage int sys_send(int fd, void * buff, size_t len, unsigned flags) +asmlinkage(int sys_send(int fd, void * buff, size_t len, unsigned flags)) { struct socket *sock; int err; @@ -947,8 +947,8 @@ * the protocol. */ -asmlinkage int sys_sendto(int fd, void * buff, size_t len, unsigned flags, - struct sockaddr *addr, int addr_len) +asmlinkage(int sys_sendto(int fd, void * buff, size_t len, unsigned flags, + struct sockaddr *addr, int addr_len)) { struct socket *sock; char address[MAX_SOCK_ADDR]; @@ -990,7 +990,7 @@ * Receive a datagram from a socket. Call the protocol recvmsg method */ -asmlinkage int sys_recv(int fd, void * ubuf, size_t size, unsigned flags) +asmlinkage(int sys_recv(int fd, void * ubuf, size_t size, unsigned flags)) { struct iovec iov; struct msghdr msg; @@ -1022,8 +1022,8 @@ * sender address from kernel to user space. */ -asmlinkage int sys_recvfrom(int fd, void * ubuf, size_t size, unsigned flags, - struct sockaddr *addr, int *addr_len) +asmlinkage(int sys_recvfrom(int fd, void * ubuf, size_t size, unsigned flags, + struct sockaddr *addr, int *addr_len)) { struct socket *sock; struct iovec iov; @@ -1061,7 +1061,7 @@ * to pass the user mode parameter for the protocols to sort out. */ -asmlinkage int sys_setsockopt(int fd, int level, int optname, char *optval, int optlen) +asmlinkage(int sys_setsockopt(int fd, int level, int optname, char *optval, int optlen)) { int err; struct socket *sock; @@ -1084,7 +1084,7 @@ * to pass a user mode parameter for the protocols to sort out. */ -asmlinkage int sys_getsockopt(int fd, int level, int optname, char *optval, int *optlen) +asmlinkage(int sys_getsockopt(int fd, int level, int optname, char *optval, int *optlen)) { int err; struct socket *sock; @@ -1107,7 +1107,7 @@ * Shutdown a socket. */ -asmlinkage int sys_shutdown(int fd, int how) +asmlinkage(int sys_shutdown(int fd, int how)) { int err; struct socket *sock; @@ -1126,7 +1126,7 @@ * BSD sendmsg interface */ -asmlinkage int sys_sendmsg(int fd, struct msghdr *msg, unsigned flags) +asmlinkage(int sys_sendmsg(int fd, struct msghdr *msg, unsigned flags)) { struct socket *sock; char address[MAX_SOCK_ADDR]; @@ -1196,7 +1196,7 @@ * BSD recvmsg interface */ -asmlinkage int sys_recvmsg(int fd, struct msghdr *msg, unsigned int flags) +asmlinkage(int sys_recvmsg(int fd, struct msghdr *msg, unsigned int flags)) { struct socket *sock; struct iovec iovstack[UIO_FASTIOV]; @@ -1298,7 +1298,7 @@ * Argument checking cleaned up. Saved 20% in size. */ -asmlinkage int sys_socketcall(int call, unsigned long *args) +asmlinkage(int sys_socketcall(int call, unsigned long *args)) { unsigned char nargs[18]={0,3,3,3,2,3,3,3, 4,4,4,6,6,2,5,5,3,3}; diff -u --recursive --new-file dist-2.1.26/nohup.out linux/nohup.out --- dist-2.1.26/nohup.out Wed Dec 31 19:00:00 1969 +++ linux/nohup.out Fri Feb 7 23:55:03 1997 @@ -0,0 +1,834 @@ +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/boot' +make[1]: Nothing to be done for `dep'. +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/boot' +scripts/mkdep init/*.c > .tmpdepend +scripts/mkdep `find /home/dot1/blah/kernel/2.1/linux/include/asm /home/dot1/blah/kernel/2.1/linux/include/linux /home/dot1/blah/kernel/2.1/linux/include/scsi /home/dot1/blah/kernel/2.1/linux/include/net -follow -name \*.h ! -name modversions.h -print` > .hdepend +set -e; for i in kernel drivers mm fs net ipc lib arch/i386/kernel arch/i386/mm arch/i386/lib; do make -j8 -C $i fastdep; done +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/kernel' +if [ -n "dma.c exec_domain.c exit.c fork.c info.c itimer.c ksyms.c module.c panic.c printk.c resource.c sched.c signal.c softirq.c sys.c sysctl.c time.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers' +if [ -n "" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +set -e; for i in block char net pci scsi sbus sound cdrom isdn; do make -j8 -C $i fastdep; done +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +if [ -n "acsi.c acsi_slm.c ali14xx.c amiflop.c ataflop.c cmd640.c dtc2278.c ez.c floppy.c genhd.c hd.c ht6560b.c ide-cd.c ide-cd.h ide-disk.c ide-floppy.c ide-probe.c ide-tape.c ide.c ide.h ide_modes.h linear.c linear.h ll_rw_blk.c loop.c md.c opti621.c promise.c promise.h ps2esdi.c qd6580.c raid0.c rd.c rz1000.c triton.c umc8672.c xd.c xd.h z2ram.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +if [ -n "amigamouse.c apm_bios.c atarimouse.c atixlmouse.c busmouse.c conmakehash.c console.c console_struct.h consolemap.c consolemap.h cyclades.c defkeymap.c diacr.h digi.h digi_bios.h digi_fep.h esp.c esp.h fbmem.c fep.h istallion.c kbd_kern.h keyb_m68k.c keyboard.c lp.c lp_intern.c lp_m68k.c mem.c misc.c msbusmouse.c n_tty.c pcwd.c pcxx.c pcxx.h psaux.c pty.c random.c riscom8.c riscom8.h riscom8_reg.h rtc.c selection.c selection.h serial.c softdog.c stallion.c tga.c tpqic02.c tty_io.c tty_ioctl.c vc_screen.c vesa_blank.c vga.c vt.c vt_kern.h wd501p.h wdt.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +set -e; for i in ftape; do make -j8 -C $i fastdep; done +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/char/ftape' +if [ -n "calibr.c calibr.h ecc.c ecc.h fc-10.c fc-10.h fdc-io.c fdc-io.h fdc-isr.c fdc-isr.h ftape-bsm.c ftape-bsm.h ftape-ctl.c ftape-ctl.h ftape-eof.c ftape-eof.h ftape-io.c ftape-io.h ftape-read.c ftape-read.h ftape-rw.c ftape-rw.h ftape-write.c ftape-write.h kernel-interface.c kernel-interface.h qic117.h tracing.c tracing.h vendors.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/char/ftape' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +if [ -n "3c501.c 3c503.c 3c503.h 3c505.c 3c505.h 3c507.c 3c509.c 3c523.c 3c523.h 3c59x.c 8390.c 8390.h Space.c a2065.c a2065.h ac3200.c apricot.c arcnet.c ariadne.c ariadne.h at1700.c atari_bionet.c atari_pamsnet.c atarilance.c atp.c atp.h auto_irq.c baycom.c bpqether.c bsd_comp.c cs89x0.c cs89x0.h de4x5.c de4x5.h de600.c de620.c de620.h defxx.c defxx.h depca.c depca.h dgrs.c dgrs.h dgrs_asstruct.h dgrs_bcomm.h dgrs_es4h.h dgrs_ether.h dgrs_firmware.c dgrs_i82596.h dgrs_plx9060.h dlci.c dummy.c e2100.c eepro.c eexpress.c eexpress.h eql.c es3210.c eth16i.c ewrk3.c ewrk3.h fmv18x.c hdlcdrv.c hp-plus.c hp.c hp100.c hp100.h hydra.c hydra.h i82586.h ibmtr.c ibmtr.h iow.h lance.c lance32.c lapbether.c loopback.c ltpc.c ltpc.h mkiss.c mkiss.h myri_code.h myri_sbus.c myri_sbus.h ne.c net_init.c ni52.c ni52.h ni65.c ni65.h pi2.c pi2.h plip.c ppp.c pt.c pt.h scc.c sdla.c sdla_fr.c sdla_ppp.c sdla_x25.c sdladrv.c sdlamain.c seeq8005.c seeq8005.h shaper.c shaper.h sk_g16.c sk_g16.h skeleton.c slhc.c slip.c slip.h sm_afsk1200.h sm_fsk9600.h sm_sbc.h sm_wss.h smc-mca.c smc-mca.h smc-ultra.c smc9194.c smc9194.h soundmodem.c strip.c sunhme.c sunhme.h sunlance.c sunqe.c sunqe.h tulip.c tunnel.c wavelan.c wavelan.h wavelan.p.h wd.c z8530.h znet.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/pci' +if [ -n "pci.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/pci' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +if [ -n "53c7,8xx.c 53c7,8xx.h 53c8xx_d.h 53c8xx_u.h AM53C974.c AM53C974.h BusLogic.c BusLogic.h NCR5380.c NCR5380.h NCR53c406a.c NCR53c406a.h a2091.c a2091.h a3000.c a3000.h advansys.c advansys.h aha152x.c aha152x.h aha1542.c aha1542.h aha1740.c aha1740.h aic7xxx.c aic7xxx.h aic7xxx_asm.c aic7xxx_proc.c aic7xxx_reg.h aic7xxx_seq.h atari_NCR5380.c atari_scsi.c atari_scsi.h constants.c constants.h dtc.c dtc.h eata.c eata.h eata_dma.c eata_dma.h eata_dma_proc.c eata_dma_proc.h eata_generic.h eata_pio.c eata_pio.h eata_pio_proc.c esp.c esp.h fdomain.c fdomain.h g_NCR5380.c g_NCR5380.h gvp11.c gvp11.h hosts.c hosts.h ibmmca.c ibmmca.h ide-scsi.c ide-scsi.h in2000.c in2000.h ncr53c8xx.c ncr53c8xx.h pas16.c pas16.h ppa.c ppa.h qlogicfas.c qlogicfas.h qlogicisp.c qlogicisp.h qlogicisp_asm.c qlogicpti.c qlogicpti.h qlogicpti_asm.c scsi.c scsi.h scsi_debug.c scsi_debug.h scsi_ioctl.c scsi_module.c scsi_proc.c scsi_syms.c scsicam.c sd.c sd.h sd_ioctl.c seagate.c seagate.h sg.c sr.c sr.h sr_ioctl.c sr_vendor.c st.c st.h st_options.h t128.c t128.h u14-34f.c u14-34f.h ultrastor.c ultrastor.h wd33c93.c wd33c93.h wd7000.c wd7000.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sbus' +if [ -n "dvma.c sbus.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +set -e; for i in char; do make -j8 -C $i fastdep; done +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sbus/char' +if [ -n "bwtwo.c cg_common.h cgfourteen.c cgsix.c cgthree.c fb.h leo.c linux_logo.h openprom.c rtc.c suncons.c suncons_font.h sunfb.c sunkbd.c sunkeymap.c sunmouse.c sunserial.c sunserial.h tcx.c weitek.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sbus/char' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sbus' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound' +if [ -n "ad1848.c ad1848_mixer.h adlib_card.c aedsp16.c audio.c configure.c coproc.h cs4232.c dev_table.c dev_table.h dmabuf.c finetune.h gus_card.c gus_hw.h gus_linearvol.h gus_midi.c gus_vol.c gus_wave.c hex2hex.h ics2101.c iwmem.h local.h mad16.c maui.c midi_ctrl.h midi_synth.c midi_synth.h midibuf.c mpu401.c opl3.c opl3.h os.h pas2_card.c pas2_midi.c pas2_mixer.c pas2_pcm.c pss.c sb.h sb_audio.c sb_card.c sb_common.c sb_midi.c sb_mixer.c sb_mixer.h sequencer.c sound_calls.h sound_config.h sound_switch.c sound_timer.c soundcard.c soundvers.h sscape.c sys_timer.c trix.c tuning.h uart401.c uart6850.c ulaw.h vivo.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +if [ -n "aztcd.c bpcd.c cdi.c cdrom.c cdu31a.c cm206.c gscd.c isp16.c mcd.c mcdx.c optcd.c sbpcd.c sbpcd2.c sbpcd3.c sbpcd4.c sjcd.c sonycd535.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn' +if [ -n "isdn_audio.c isdn_audio.h isdn_cards.c isdn_cards.h isdn_common.c isdn_common.h isdn_net.c isdn_net.h isdn_ppp.c isdn_ppp.h isdn_tty.c isdn_tty.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +set -e; for i in icn teles pcbit; do make -j8 -C $i fastdep; done +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn/icn' +if [ -n "icn.c icn.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn/icn' +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn/teles' +if [ -n "buffers.c callc.c card.c config.c fsm.c isdnl2.c isdnl3.c l3_1TR6.c l3_1TR6.h llglue.c mod.c proto.h q931.c tei.c teles.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn/teles' +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn/pcbit' +if [ -n "callbacks.c callbacks.h capi.c capi.h drv.c edss1.c edss1.h layer2.c layer2.h module.c pcbit.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn/pcbit' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/isdn' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/mm' +if [ -n "filemap.c kmalloc.c memory.c mlock.c mmap.c mprotect.c mremap.c page_alloc.c page_io.c slab.c swap.c swap_state.c swapfile.c vmalloc.c vmscan.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/mm' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs' +if [ -n "binfmt_aout.c binfmt_elf.c binfmt_java.c binfmt_script.c block_dev.c buffer.c dcache.c devices.c dquot.c exec.c fcntl.c fifo.c file_table.c filesystems.c inode.c ioctl.c locks.c namei.c noquot.c open.c pipe.c read_write.c readdir.c select.c stat.c super.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +set -e; for i in minix ext2 fat msdos vfat proc isofs nfs umsdos hpfs sysv smbfs ncpfs ufs affs romfs; do make -j8 -C $i fastdep; done +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/minix' +if [ -n "bitmap.c dir.c file.c fsync.c inode.c namei.c symlink.c truncate.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/minix' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/ext2' +if [ -n "acl.c balloc.c bitmap.c dir.c file.c fsync.c ialloc.c inode.c ioctl.c namei.c super.c symlink.c truncate.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/ext2' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/fat' +if [ -n "buffer.c cache.c dir.c fatfs_syms.c file.c inode.c misc.c mmap.c msbuffer.h tables.c tables.h" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/fat' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/msdos' +if [ -n "msdosfs_syms.c namei.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/msdos' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/vfat' +if [ -n "namei.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/vfat' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/proc' +if [ -n "array.c base.c fd.c inode.c kmsg.c link.c mem.c net.c openpromfs.c procfs_syms.c root.c scsi.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/proc' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/isofs' +if [ -n "dir.c file.c inode.c namei.c rock.c rock.h symlink.c util.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/isofs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/nfs' +if [ -n "bio.c dir.c file.c inode.c nfsiod.c nfsroot.c proc.c rpcsock.c sock.c symlink.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/nfs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/umsdos' +if [ -n "check.c dir.c emd.c file.c inode.c ioctl.c mangle.c namei.c rdir.c symlink.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/umsdos' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/hpfs' +if [ -n "hpfs.h hpfs_caps.c hpfs_caps.h hpfs_fs.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/hpfs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/sysv' +if [ -n "balloc.c dir.c file.c fsync.c ialloc.c inode.c namei.c symlink.c truncate.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/sysv' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/smbfs' +if [ -n "dir.c file.c inode.c ioctl.c mmap.c proc.c sock.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/smbfs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/ncpfs' +if [ -n "dir.c file.c inode.c ioctl.c mmap.c ncplib_kernel.c ncplib_kernel.h sock.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/ncpfs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/ufs' +if [ -n "ufs_dir.c ufs_file.c ufs_inode.c ufs_namei.c ufs_super.c ufs_symlink.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/ufs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/affs' +if [ -n "amigaffs.c bitmap.c dir.c file.c inode.c namei.c symlink.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/affs' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/fs/romfs' +if [ -n "inode.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs/romfs' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/fs' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net' +if [ -n "netlink.c netsyms.c protocols.c socket.c sysctl_net.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +set -e; for i in 802 ax25 bridge core ethernet ipv4 ipv6 ipx unix appletalk netrom rose lapb x25 wanrouter ; do make -j8 -C $i fastdep; done +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/802' +if [ -n "cl2llc.c fddi.c llc_macinit.c llc_sendpdu.c llc_utility.c p8022.c p8022tr.c p8023.c psnap.c sysctl_net_802.c tr.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +sysctl_net_802.c needs config but has not included config file +tr.c needs config but has not included config file +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/802' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/ax25' +if [ -n "af_ax25.c ax25_in.c ax25_out.c ax25_route.c ax25_subr.c ax25_timer.c sysctl_net_ax25.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/ax25' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/bridge' +if [ -n "br.c br_tree.c sysctl_net_bridge.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/bridge' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/core' +if [ -n "datagram.c dev.c dev_mcast.c dst.c firewall.c iovec.c neighbour.c net_alias.c scm.c skbuff.c sock.c sysctl_net_core.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/core' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/ethernet' +if [ -n "eth.c pe2.c sysctl_net_ether.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/ethernet' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/ipv4' +if [ -n "af_inet.c arp.c devinet.c fib.c icmp.c igmp.c ip_alias.c ip_forward.c ip_fragment.c ip_fw.c ip_input.c ip_masq.c ip_masq_app.c ip_masq_ftp.c ip_masq_irc.c ip_masq_raudio.c ip_nat_dumb.c ip_options.c ip_output.c ip_sockglue.c ipip.c ipmr.c packet.c proc.c protocol.c rarp.c raw.c route.c sysctl_net_ipv4.c tcp.c tcp_input.c tcp_ipv4.c tcp_output.c tcp_timer.c timer.c udp.c utils.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/ipv4' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/ipv6' +if [ -n "addrconf.c af_inet6.c datagram.c exthdrs.c icmp.c ipv6_input.c ipv6_output.c ipv6_route.c ipv6_sockglue.c mcast.c ndisc.c protocol.c raw.c reassembly.c sit.c sysctl_net_ipv6.c tcp_ipv6.c udp.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/ipv6' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/ipx' +if [ -n "af_ipx.c sysctl_net_ipx.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/ipx' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/unix' +if [ -n "af_unix.c garbage.c sysctl_net_unix.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/unix' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/appletalk' +if [ -n "aarp.c ddp.c sysctl_net_atalk.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/appletalk' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/netrom' +if [ -n "af_netrom.c nr_dev.c nr_in.c nr_out.c nr_route.c nr_subr.c nr_timer.c sysctl_net_netrom.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/netrom' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/rose' +if [ -n "af_rose.c rose_dev.c rose_in.c rose_link.c rose_out.c rose_route.c rose_subr.c rose_timer.c sysctl_net_rose.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/rose' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/lapb' +if [ -n "lapb_iface.c lapb_in.c lapb_out.c lapb_subr.c lapb_timer.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/lapb' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/x25' +if [ -n "af_x25.c sysctl_net_x25.c x25_dev.c x25_in.c x25_link.c x25_out.c x25_route.c x25_subr.c x25_timer.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/x25' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/net/wanrouter' +if [ -n "wanmain.c wanproc.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net/wanrouter' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/net' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/ipc' +if [ -n "msg.c sem.c shm.c util.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/ipc' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/lib' +if [ -n "ctype.c errno.c inflate.c string.c vsprintf.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/lib' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/kernel' +if [ -n "bios32.c entry.S head.S i386_ksyms.c ioport.c irq.c ldt.c mca.c process.c ptrace.c setup.c signal.c smp.c sys_i386.c test.c time.c trampoline.S traps.c vm86.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +test.c doesn't need config +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/kernel' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/mm' +if [ -n "extable.c fault.c init.c ioremap.c" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/mm' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/lib' +if [ -n "checksum.c locks.S semaphore.S" ]; then \ +/home/dot1/blah/kernel/2.1/linux/scripts/mkdep *.[chS] > .depend; fi +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/lib' +mv .tmpdepend .depend +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/boot' +rm -f bootsect setup +rm -f bbootsect +rm -f zImage tools/build compressed/vmlinux.out +rm -f bzImage tools/bbuild compressed/bvmlinux.out +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/boot/compressed' +rm -f xtract piggyback vmlinux bvmlinux +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/boot/compressed' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/arch/i386/boot' +rm -f kernel/ksyms.lst include/linux/compile.h +rm -f core `find . -name '*.[oas]' ! -regex '.*lxdialog/.*' -print` +rm -f core `find . -type f -name 'core' -print` +rm -f vmlinux System.map +rm -f .tmp* drivers/sound/configure +rm -f `find modules/ -type f -print` +rm -f submenu* +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c -o init/main.o init/main.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DUTS_MACHINE='"i386"' -c -o init/version.o init/version.c +set -e; for i in kernel drivers mm fs net ipc lib arch/i386/kernel arch/i386/mm arch/i386/lib; do make -j8 -C $i; done +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make -j8 all_targets +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/kernel' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DEXPORT_SYMTAB -c ksyms.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -fno-omit-frame-pointer -c sched.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.dma.o dma.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.fork.o fork.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.exec_domain.o exec_domain.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.panic.o panic.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.printk.o printk.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sys.o sys.c +pick_host "cd /tmp && cat >tmp.dma.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.dma.o.c -o tmp.dma.o 1>&2 && cat tmp.dma.o && rm tmp.dma.o.c tmp.dma.o" dma.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.panic.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.panic.o.c -o tmp.panic.o 1>&2 && cat tmp.panic.o && rm tmp.panic.o.c tmp.panic.o" panic.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.exec_domain.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.exec_domain.o.c -o tmp.exec_domain.o 1>&2 && cat tmp.exec_domain.o && rm tmp.exec_domain.o.c tmp.exec_domain.o" exec_domain.o +pick_host "cd /tmp && cat >tmp.fork.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.fork.o.c -o tmp.fork.o 1>&2 && cat tmp.fork.o && rm tmp.fork.o.c tmp.fork.o" fork.o +pick_host "cd /tmp && cat >tmp.printk.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.printk.o.c -o tmp.printk.o 1>&2 && cat tmp.printk.o && rm tmp.printk.o.c tmp.printk.o" printk.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.sys.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sys.o.c -o tmp.sys.o 1>&2 && cat tmp.sys.o && rm tmp.sys.o.c tmp.sys.o" sys.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.dma.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.module.o module.c +pick_host "cd /tmp && cat >tmp.module.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.module.o.c -o tmp.module.o 1>&2 && cat tmp.module.o && rm tmp.module.o.c tmp.module.o" module.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.panic.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.exit.o exit.c +pick_host "cd /tmp && cat >tmp.exit.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.exit.o.c -o tmp.exit.o 1>&2 && cat tmp.exit.o && rm tmp.exit.o.c tmp.exit.o" exit.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.exec_domain.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.signal.o signal.c +rm tmp.printk.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.itimer.o itimer.c +pick_host "cd /tmp && cat >tmp.signal.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.signal.o.c -o tmp.signal.o 1>&2 && cat tmp.signal.o && rm tmp.signal.o.c tmp.signal.o" signal.o +variable DISTEXECHOSTS not set! +executing locally! +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.info.o info.c +pick_host "cd /tmp && cat >tmp.itimer.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.itimer.o.c -o tmp.itimer.o 1>&2 && cat tmp.itimer.o && rm tmp.itimer.o.c tmp.itimer.o" itimer.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.info.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.info.o.c -o tmp.info.o 1>&2 && cat tmp.info.o && rm tmp.info.o.c tmp.info.o" info.o +rm tmp.fork.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.time.o time.c +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.time.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.time.o.c -o tmp.time.o 1>&2 && cat tmp.time.o && rm tmp.time.o.c tmp.time.o" time.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.info.o +rm tmp.itimer.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.softirq.o softirq.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.resource.o resource.c +rm tmp.signal.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sysctl.o sysctl.c +pick_host "cd /tmp && cat >tmp.resource.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.resource.o.c -o tmp.resource.o 1>&2 && cat tmp.resource.o && rm tmp.resource.o.c tmp.resource.o" resource.o +pick_host "cd /tmp && cat >tmp.softirq.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.softirq.o.c -o tmp.softirq.o 1>&2 && cat tmp.softirq.o && rm tmp.softirq.o.c tmp.softirq.o" softirq.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.sysctl.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sysctl.o.c -o tmp.sysctl.o 1>&2 && cat tmp.sysctl.o && rm tmp.sysctl.o.c tmp.sysctl.o" sysctl.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.exit.o +rm tmp.sys.o +rm tmp.time.o +rm tmp.module.o +rm tmp.resource.o +rm tmp.softirq.o +rm tmp.sysctl.o +rm -f kernel.o +ld -m elf_i386 -r -o kernel.o ksyms.o sched.o dma.o fork.o exec_domain.o panic.o printk.o sys.o module.o exit.o signal.o itimer.o info.o time.o softirq.o resource.o sysctl.o +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers' +set -e; for i in block char net scsi sound cdrom; do make -j8 -C $i; done +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.ll_rw_blk.o ll_rw_blk.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.genhd.o genhd.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.floppy.o floppy.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.loop.o loop.c +pick_host "cd /tmp && cat >tmp.genhd.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.genhd.o.c -o tmp.genhd.o 1>&2 && cat tmp.genhd.o && rm tmp.genhd.o.c tmp.genhd.o" genhd.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.ll_rw_blk.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.ll_rw_blk.o.c -o tmp.ll_rw_blk.o 1>&2 && cat tmp.ll_rw_blk.o && rm tmp.ll_rw_blk.o.c tmp.ll_rw_blk.o" ll_rw_blk.o +pick_host "cd /tmp && cat >tmp.loop.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.loop.o.c -o tmp.loop.o 1>&2 && cat tmp.loop.o && rm tmp.loop.o.c tmp.loop.o" loop.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.floppy.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.floppy.o.c -o tmp.floppy.o 1>&2 && cat tmp.floppy.o && rm tmp.floppy.o.c tmp.floppy.o" floppy.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.genhd.o +rm tmp.ll_rw_blk.o +rm tmp.loop.o +rm tmp.floppy.o +rm -f block.a +ar rcs block.a ll_rw_blk.o genhd.o floppy.o loop.o +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DEXPORT_SYMTAB -c serial.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.tty_io.o tty_io.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.n_tty.o n_tty.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.console.o console.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.tty_ioctl.o tty_ioctl.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.pty.o pty.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.vt.o vt.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.mem.o mem.c +pick_host "cd /tmp && cat >tmp.n_tty.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.n_tty.o.c -o tmp.n_tty.o 1>&2 && cat tmp.n_tty.o && rm tmp.n_tty.o.c tmp.n_tty.o" n_tty.o +pick_host "cd /tmp && cat >tmp.pty.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.pty.o.c -o tmp.pty.o 1>&2 && cat tmp.pty.o && rm tmp.pty.o.c tmp.pty.o" pty.o +pick_host "cd /tmp && cat >tmp.tty_io.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.tty_io.o.c -o tmp.tty_io.o 1>&2 && cat tmp.tty_io.o && rm tmp.tty_io.o.c tmp.tty_io.o" tty_io.o +pick_host "cd /tmp && cat >tmp.tty_ioctl.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.tty_ioctl.o.c -o tmp.tty_ioctl.o 1>&2 && cat tmp.tty_ioctl.o && rm tmp.tty_ioctl.o.c tmp.tty_ioctl.o" tty_ioctl.o +pick_host "cd /tmp && cat >tmp.console.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.console.o.c -o tmp.console.o 1>&2 && cat tmp.console.o && rm tmp.console.o.c tmp.console.o" console.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.mem.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.mem.o.c -o tmp.mem.o 1>&2 && cat tmp.mem.o && rm tmp.mem.o.c tmp.mem.o" mem.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.vt.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.vt.o.c -o tmp.vt.o 1>&2 && cat tmp.vt.o && rm tmp.vt.o.c tmp.vt.o" vt.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.pty.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.vc_screen.o vc_screen.c +pick_host "cd /tmp && cat >tmp.vc_screen.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.vc_screen.o.c -o tmp.vc_screen.o 1>&2 && cat tmp.vc_screen.o && rm tmp.vc_screen.o.c tmp.vc_screen.o" vc_screen.o +rm tmp.mem.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.random.o random.c +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.random.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.random.o.c -o tmp.random.o 1>&2 && cat tmp.random.o && rm tmp.random.o.c tmp.random.o" random.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.tty_ioctl.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.consolemap.o consolemap.c +pick_host "cd /tmp && cat >tmp.consolemap.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.consolemap.o.c -o tmp.consolemap.o 1>&2 && cat tmp.consolemap.o && rm tmp.consolemap.o.c tmp.consolemap.o" consolemap.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.vc_screen.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.selection.o selection.c +pick_host "cd /tmp && cat >tmp.selection.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.selection.o.c -o tmp.selection.o 1>&2 && cat tmp.selection.o && rm tmp.selection.o.c tmp.selection.o" selection.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.n_tty.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.keyboard.o keyboard.c +rm tmp.consolemap.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.defkeymap.o defkeymap.c +pick_host "cd /tmp && cat >tmp.defkeymap.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.defkeymap.o.c -o tmp.defkeymap.o 1>&2 && cat tmp.defkeymap.o && rm tmp.defkeymap.o.c tmp.defkeymap.o" defkeymap.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.tty_io.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.vga.o vga.c +pick_host "cd /tmp && cat >tmp.keyboard.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.keyboard.o.c -o tmp.keyboard.o 1>&2 && cat tmp.keyboard.o && rm tmp.keyboard.o.c tmp.keyboard.o" keyboard.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.defkeymap.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.vesa_blank.o vesa_blank.c +pick_host "cd /tmp && cat >tmp.vga.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.vga.o.c -o tmp.vga.o 1>&2 && cat tmp.vga.o && rm tmp.vga.o.c tmp.vga.o" vga.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.vesa_blank.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.vesa_blank.o.c -o tmp.vesa_blank.o 1>&2 && cat tmp.vesa_blank.o && rm tmp.vesa_blank.o.c tmp.vesa_blank.o" vesa_blank.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.selection.o +rm tmp.vt.o +rm tmp.vesa_blank.o +rm tmp.vga.o +rm tmp.keyboard.o +rm tmp.console.o +rm tmp.random.o +rm -f char.a +ar rcs char.a serial.o tty_io.o n_tty.o console.o tty_ioctl.o pty.o vt.o mem.o vc_screen.o random.o consolemap.o selection.o keyboard.o defkeymap.o vga.o vesa_blank.o +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DEXPORT_SYMTAB -c ppp.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DEXPORT_SYMTAB -c slhc.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.auto_irq.o auto_irq.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c Space.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.net_init.o net_init.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.loopback.o loopback.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c ne.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.8390.o 8390.c +pick_host "cd /tmp && cat >tmp.auto_irq.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.auto_irq.o.c -o tmp.auto_irq.o 1>&2 && cat tmp.auto_irq.o && rm tmp.auto_irq.o.c tmp.auto_irq.o" auto_irq.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.net_init.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.net_init.o.c -o tmp.net_init.o 1>&2 && cat tmp.net_init.o && rm tmp.net_init.o.c tmp.net_init.o" net_init.o +pick_host "cd /tmp && cat >tmp.8390.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.8390.o.c -o tmp.8390.o 1>&2 && cat tmp.8390.o && rm tmp.8390.o.c tmp.8390.o" 8390.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.loopback.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.loopback.o.c -o tmp.loopback.o 1>&2 && cat tmp.loopback.o && rm tmp.loopback.o.c tmp.loopback.o" loopback.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.eql.o eql.c +pick_host "cd /tmp && cat >tmp.eql.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.eql.o.c -o tmp.eql.o 1>&2 && cat tmp.eql.o && rm tmp.eql.o.c tmp.eql.o" eql.o +rm tmp.auto_irq.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.loopback.o +rm tmp.net_init.o +rm tmp.8390.o +rm tmp.eql.o +rm -f net.a +ar rcs net.a ppp.o slhc.o auto_irq.o Space.o net_init.o loopback.o ne.o 8390.o eql.o +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DEXPORT_SYMTAB -c scsi_syms.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.scsi.o scsi.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.hosts.o hosts.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.scsi_ioctl.o scsi_ioctl.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.constants.o constants.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.scsicam.o scsicam.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.scsi_proc.o scsi_proc.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.st.o st.c +pick_host "cd /tmp && cat >tmp.hosts.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.hosts.o.c -o tmp.hosts.o 1>&2 && cat tmp.hosts.o && rm tmp.hosts.o.c tmp.hosts.o" hosts.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.constants.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.constants.o.c -o tmp.constants.o 1>&2 && cat tmp.constants.o && rm tmp.constants.o.c tmp.constants.o" constants.o +pick_host "cd /tmp && cat >tmp.scsicam.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.scsicam.o.c -o tmp.scsicam.o 1>&2 && cat tmp.scsicam.o && rm tmp.scsicam.o.c tmp.scsicam.o" scsicam.o +pick_host "cd /tmp && cat >tmp.scsi_proc.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.scsi_proc.o.c -o tmp.scsi_proc.o 1>&2 && cat tmp.scsi_proc.o && rm tmp.scsi_proc.o.c tmp.scsi_proc.o" scsi_proc.o +pick_host "cd /tmp && cat >tmp.scsi_ioctl.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.scsi_ioctl.o.c -o tmp.scsi_ioctl.o 1>&2 && cat tmp.scsi_ioctl.o && rm tmp.scsi_ioctl.o.c tmp.scsi_ioctl.o" scsi_ioctl.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.scsi.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.scsi.o.c -o tmp.scsi.o 1>&2 && cat tmp.scsi.o && rm tmp.scsi.o.c tmp.scsi.o" scsi.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.st.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.st.o.c -o tmp.st.o 1>&2 && cat tmp.st.o && rm tmp.st.o.c tmp.st.o" st.o +variable DISTEXECHOSTS not set! +executing locally! +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sd.o sd.c +rm tmp.hosts.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sd_ioctl.o sd_ioctl.c +rm tmp.scsicam.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sg.o sg.c +pick_host "cd /tmp && cat >tmp.sd.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sd.o.c -o tmp.sd.o 1>&2 && cat tmp.sd.o && rm tmp.sd.o.c tmp.sd.o" sd.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.sg.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sg.o.c -o tmp.sg.o 1>&2 && cat tmp.sg.o && rm tmp.sg.o.c tmp.sg.o" sg.o +pick_host "cd /tmp && cat >tmp.sd_ioctl.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sd_ioctl.o.c -o tmp.sd_ioctl.o 1>&2 && cat tmp.sd_ioctl.o && rm tmp.sd_ioctl.o.c tmp.sd_ioctl.o" sd_ioctl.o +rm tmp.scsi_proc.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.aic7xxx.o aic7xxx.c +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.constants.o +pick_host "cd /tmp && cat >tmp.aic7xxx.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.aic7xxx.o.c -o tmp.aic7xxx.o 1>&2 && cat tmp.aic7xxx.o && rm tmp.aic7xxx.o.c tmp.aic7xxx.o" aic7xxx.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.scsi_ioctl.o +rm tmp.sd_ioctl.o +rm tmp.sg.o +rm tmp.scsi.o +rm -f scsi_n_syms.o +ld -m elf_i386 -r -o scsi_n_syms.o scsi_syms.o scsi.o +rm tmp.sd.o +rm tmp.st.o +rm tmp.aic7xxx.o +rm -f scsi.a +ar rcs scsi.a scsi_n_syms.o hosts.o scsi_ioctl.o constants.o scsicam.o scsi_proc.o st.o sd.o sd_ioctl.o sg.o aic7xxx.o +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.adlib_card.o adlib_card.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.audio.o audio.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.dmabuf.o dmabuf.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.midi_synth.o midi_synth.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.midibuf.o midibuf.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.opl3.o opl3.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sb_card.o sb_card.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sb_common.o sb_common.c +pick_host "cd /tmp && cat >tmp.adlib_card.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.adlib_card.o.c -o tmp.adlib_card.o 1>&2 && cat tmp.adlib_card.o && rm tmp.adlib_card.o.c tmp.adlib_card.o" adlib_card.o +pick_host "cd /tmp && cat >tmp.midibuf.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.midibuf.o.c -o tmp.midibuf.o 1>&2 && cat tmp.midibuf.o && rm tmp.midibuf.o.c tmp.midibuf.o" midibuf.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.midi_synth.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.midi_synth.o.c -o tmp.midi_synth.o 1>&2 && cat tmp.midi_synth.o && rm tmp.midi_synth.o.c tmp.midi_synth.o" midi_synth.o +pick_host "cd /tmp && cat >tmp.audio.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.audio.o.c -o tmp.audio.o 1>&2 && cat tmp.audio.o && rm tmp.audio.o.c tmp.audio.o" audio.o +pick_host "cd /tmp && cat >tmp.sb_card.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sb_card.o.c -o tmp.sb_card.o 1>&2 && cat tmp.sb_card.o && rm tmp.sb_card.o.c tmp.sb_card.o" sb_card.o +pick_host "cd /tmp && cat >tmp.dmabuf.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.dmabuf.o.c -o tmp.dmabuf.o 1>&2 && cat tmp.dmabuf.o && rm tmp.dmabuf.o.c tmp.dmabuf.o" dmabuf.o +pick_host "cd /tmp && cat >tmp.opl3.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.opl3.o.c -o tmp.opl3.o 1>&2 && cat tmp.opl3.o && rm tmp.opl3.o.c tmp.opl3.o" opl3.o +pick_host "cd /tmp && cat >tmp.sb_common.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sb_common.o.c -o tmp.sb_common.o 1>&2 && cat tmp.sb_common.o && rm tmp.sb_common.o.c tmp.sb_common.o" sb_common.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.sb_card.o +rm tmp.adlib_card.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sb_audio.o sb_audio.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sb_mixer.o sb_mixer.c +pick_host "cd /tmp && cat >tmp.sb_audio.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sb_audio.o.c -o tmp.sb_audio.o 1>&2 && cat tmp.sb_audio.o && rm tmp.sb_audio.o.c tmp.sb_audio.o" sb_audio.o +pick_host "cd /tmp && cat >tmp.sb_mixer.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sb_mixer.o.c -o tmp.sb_mixer.o 1>&2 && cat tmp.sb_mixer.o && rm tmp.sb_mixer.o.c tmp.sb_mixer.o" sb_mixer.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.midibuf.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sb_midi.o sb_midi.c +pick_host "cd /tmp && cat >tmp.sb_midi.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sb_midi.o.c -o tmp.sb_midi.o 1>&2 && cat tmp.sb_midi.o && rm tmp.sb_midi.o.c tmp.sb_midi.o" sb_midi.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.midi_synth.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sequencer.o sequencer.c +rm tmp.audio.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sound_timer.o sound_timer.c +pick_host "cd /tmp && cat >tmp.sound_timer.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sound_timer.o.c -o tmp.sound_timer.o 1>&2 && cat tmp.sound_timer.o && rm tmp.sound_timer.o.c tmp.sound_timer.o" sound_timer.o +pick_host "cd /tmp && cat >tmp.sequencer.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sequencer.o.c -o tmp.sequencer.o 1>&2 && cat tmp.sequencer.o && rm tmp.sequencer.o.c tmp.sequencer.o" sequencer.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.sb_common.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sys_timer.o sys_timer.c +pick_host "cd /tmp && cat >tmp.sys_timer.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sys_timer.o.c -o tmp.sys_timer.o 1>&2 && cat tmp.sys_timer.o && rm tmp.sys_timer.o.c tmp.sys_timer.o" sys_timer.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.sb_mixer.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.uart401.o uart401.c +rm tmp.opl3.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.soundcard.o soundcard.c +rm tmp.sb_midi.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.dev_table.o dev_table.c +pick_host "cd /tmp && cat >tmp.uart401.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.uart401.o.c -o tmp.uart401.o 1>&2 && cat tmp.uart401.o && rm tmp.uart401.o.c tmp.uart401.o" uart401.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.soundcard.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.soundcard.o.c -o tmp.soundcard.o 1>&2 && cat tmp.soundcard.o && rm tmp.soundcard.o.c tmp.soundcard.o" soundcard.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.dev_table.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.dev_table.o.c -o tmp.dev_table.o 1>&2 && cat tmp.dev_table.o && rm tmp.dev_table.o.c tmp.dev_table.o" dev_table.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.sound_timer.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sound_switch.o sound_switch.c +rm tmp.sb_audio.o +cd lowlevel;make CC="gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include" CFLAGS="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486" +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound/lowlevel' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.init.o init.c +pick_host "cd /tmp && cat >tmp.sound_switch.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sound_switch.o.c -o tmp.sound_switch.o 1>&2 && cat tmp.sound_switch.o && rm tmp.sound_switch.o.c tmp.sound_switch.o" sound_switch.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.init.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.init.o.c -o tmp.init.o 1>&2 && cat tmp.init.o && rm tmp.init.o.c tmp.init.o" init.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.init.o +ld -m elf_i386 -r -o lowlevel.o init.o +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound/lowlevel' +rm tmp.sys_timer.o +rm tmp.dmabuf.o +rm tmp.uart401.o +rm tmp.soundcard.o +rm tmp.dev_table.o +rm tmp.sound_switch.o +rm tmp.sequencer.o +rm -f sound.a +ar rcs sound.a adlib_card.o audio.o dmabuf.o midi_synth.o midibuf.o opl3.o sb_card.o sb_common.o sb_audio.o sb_mixer.o sb_midi.o sequencer.o sound_timer.o sys_timer.o uart401.o soundcard.o dev_table.o sound_switch.o lowlevel/lowlevel.o +sync +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.sbpcd.o sbpcd.c +pick_host "cd /tmp && cat >tmp.sbpcd.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.sbpcd.o.c -o tmp.sbpcd.o 1>&2 && cat tmp.sbpcd.o && rm tmp.sbpcd.o.c tmp.sbpcd.o" sbpcd.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.sbpcd.o +rm -f cdrom.a +ar rcs cdrom.a sbpcd.o +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make -j8 all_targets +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[2]: Nothing to be done for `all_targets'. +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/mm' +make -j8 all_targets +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/mm' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.memory.o memory.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.mmap.o mmap.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.filemap.o filemap.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.mprotect.o mprotect.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.mlock.o mlock.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.mremap.o mremap.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.kmalloc.o kmalloc.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.vmalloc.o vmalloc.c +pick_host "cd /tmp && cat >tmp.memory.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.memory.o.c -o tmp.memory.o 1>&2 && cat tmp.memory.o && rm tmp.memory.o.c tmp.memory.o" memory.o +pick_host "cd /tmp && cat >tmp.mprotect.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.mprotect.o.c -o tmp.mprotect.o 1>&2 && cat tmp.mprotect.o && rm tmp.mprotect.o.c tmp.mprotect.o" mprotect.o +pick_host "cd /tmp && cat >tmp.kmalloc.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.kmalloc.o.c -o tmp.kmalloc.o 1>&2 && cat tmp.kmalloc.o && rm tmp.kmalloc.o.c tmp.kmalloc.o" kmalloc.o +pick_host "cd /tmp && cat >tmp.mlock.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.mlock.o.c -o tmp.mlock.o 1>&2 && cat tmp.mlock.o && rm tmp.mlock.o.c tmp.mlock.o" mlock.o +pick_host "cd /tmp && cat >tmp.mremap.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.mremap.o.c -o tmp.mremap.o 1>&2 && cat tmp.mremap.o && rm tmp.mremap.o.c tmp.mremap.o" mremap.o +pick_host "cd /tmp && cat >tmp.filemap.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.filemap.o.c -o tmp.filemap.o 1>&2 && cat tmp.filemap.o && rm tmp.filemap.o.c tmp.filemap.o" filemap.o +pick_host "cd /tmp && cat >tmp.mmap.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.mmap.o.c -o tmp.mmap.o 1>&2 && cat tmp.mmap.o && rm tmp.mmap.o.c tmp.mmap.o" mmap.o +variable DISTEXECHOSTS not set! +executing locally! +pick_host "cd /tmp && cat >tmp.vmalloc.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.vmalloc.o.c -o tmp.vmalloc.o 1>&2 && cat tmp.vmalloc.o && rm tmp.vmalloc.o.c tmp.vmalloc.o" vmalloc.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +variable DISTEXECHOSTS not set! +executing locally! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.kmalloc.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.slab.o slab.c +rm tmp.vmalloc.o +rm tmp.mremap.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.swap.o swap.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.vmscan.o vmscan.c +pick_host "cd /tmp && cat >tmp.slab.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.slab.o.c -o tmp.slab.o 1>&2 && cat tmp.slab.o && rm tmp.slab.o.c tmp.slab.o" slab.o +variable DISTEXECHOSTS not set! +executing locally! +rm tmp.mprotect.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.page_io.o page_io.c +rm tmp.mlock.o +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.page_alloc.o page_alloc.c +pick_host "cd /tmp && cat >tmp.vmscan.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.vmscan.o.c -o tmp.vmscan.o 1>&2 && cat tmp.vmscan.o && rm tmp.vmscan.o.c tmp.vmscan.o" vmscan.o +pick_host "cd /tmp && cat >tmp.swap.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.swap.o.c -o tmp.swap.o 1>&2 && cat tmp.swap.o && rm tmp.swap.o.c tmp.swap.o" swap.o +variable DISTEXECHOSTS not set! +executing locally! +variable DISTEXECHOSTS not set! +executing locally! +In file included from /home/dot1/blah/kernel/2.1/linux/include/linux/tty.h:19, + from /home/dot1/blah/kernel/2.1/linux/include/linux/sched.h:26, + from /home/dot1/blah/kernel/2.1/linux/include/linux/mm.h:4, + from page_alloc.c:9: +/home/dot1/blah/kernel/2.1/linux/include/linux/fs.h:701: linux/miniX_fs.h: No such file or directory +pick_host "cd /tmp && cat >tmp.page_io.o.c && gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -c tmp.page_io.o.c -o tmp.page_io.o 1>&2 && cat tmp.page_io.o && rm tmp.page_io.o.c tmp.page_io.o" page_io.o +variable DISTEXECHOSTS not set! +executing locally! +make[2]: *** [page_alloc.o] Error 1 +make[2]: *** Waiting for unfinished jobs.... +rm tmp.swap.o +make[2]: *** Waiting for unfinished jobs.... +rm tmp.mmap.o +make[2]: *** Waiting for unfinished jobs.... +rm tmp.memory.o +rm tmp.page_io.o +rm tmp.vmscan.o +rm tmp.filemap.o +rm tmp.slab.o +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/mm' +make[1]: *** [first_rule] Error 2 +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/mm' +make: *** [linuxsubdirs] Error 2 +Command had non-zero exit status 2 +1111.64user 131.76system 22:37.98elapsed 91%CPU (0avgtext+0avgdata 0maxresident)k +0inputs+0outputs (0major+0minor)pagefaults 0swaps +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -DUTS_MACHINE='"i386"' -c -o init/version.o init/version.c +set -e; for i in kernel drivers mm fs net ipc lib arch/i386/kernel arch/i386/mm arch/i386/lib; do make -j8 -C $i; done +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make -j8 all_targets +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make[2]: Nothing to be done for `all_targets'. +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/kernel' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers' +set -e; for i in block char net scsi sound cdrom; do make -j8 -C $i; done +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make[3]: Nothing to be done for `all_targets'. +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/block' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make[3]: Nothing to be done for `all_targets'. +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/char' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make[3]: Nothing to be done for `all_targets'. +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/net' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make[3]: Nothing to be done for `all_targets'. +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/scsi' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound' +cd lowlevel;make CC="gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include" CFLAGS="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486" +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound/lowlevel' +make[3]: Nothing to be done for `all'. +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound/lowlevel' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/sound' +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make -j8 all_targets +make[3]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make[3]: Nothing to be done for `all_targets'. +make[3]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers/cdrom' +make -j8 all_targets +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[2]: Nothing to be done for `all_targets'. +make[2]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/drivers' +make[1]: Entering directory `/home/dot1/blah/kernel/2.1/linux/mm' +make -j8 all_targets +make[2]: Entering directory `/home/dot1/blah/kernel/2.1/linux/mm' +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.page_alloc.o page_alloc.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.swap_state.o swap_state.c +gcc -D__KERNEL__ -I/home/dot1/blah/kernel/2.1/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -fno-strength-reduce -m486 -DCPU=486 -E -o tmp.swapfile.o swapfile.c +In file included from /home/dot1/blah/kernel/2.1/linux/include/linux/tty.h:19, + from /home/dot1/blah/kernel/2.1/linux/include/linux/sched.h:26, + from /home/dot1/blah/kernel/2.1/linux/include/linux/mm.h:4, + from page_alloc.c:9: +/home/dot1/blah/kernel/2.1/linux/include/linux/fs.h:701: linux/miniX_fs.h: No such file or directory +In file included from /home/dot1/blah/kernel/2.1/linux/include/linux/tty.h:19, + from /home/dot1/blah/kernel/2.1/linux/include/linux/sched.h:26, + from /home/dot1/blah/kernel/2.1/linux/include/linux/mm.h:4, + from swap_state.c:8: +/home/dot1/blah/kernel/2.1/linux/include/linux/fs.h:701: linux/miniX_fs.h: No such file or directory +In file included from /home/dot1/blah/kernel/2.1/linux/include/linux/tty.h:19, + from /home/dot1/blah/kernel/2.1/linux/include/linux/sched.h:26, + from /home/dot1/blah/kernel/2.1/linux/include/linux/mm.h:4, + from swapfile.c:8: +/home/dot1/blah/kernel/2.1/linux/include/linux/fs.h:701: linux/miniX_fs.h: No such file or directory +make[2]: *** [swap_state.o] Error 1 +make[2]: *** [page_alloc.o] Error 1 +make[2]: *** [swapfile.o] Error 1 +make[1]: *** [first_rule] Error 2 +make[1]: Leaving directory `/home/dot1/blah/kernel/2.1/linux/mm' +make: *** [linuxsubdirs] Error 2 +Command had non-zero exit status 2 +21.25user 4.76system 0:28.62elapsed 90%CPU (0avgtext+0avgdata 0maxresident)k +0inputs+0outputs (0major+0minor)pagefaults 0swaps diff -u --recursive --new-file dist-2.1.26/tests/foo.c linux/tests/foo.c --- dist-2.1.26/tests/foo.c Wed Dec 31 19:00:00 1969 +++ linux/tests/foo.c Sun Feb 9 15:43:26 1997 @@ -0,0 +1,18 @@ +#define asmlinkage(x) x __attribute__ ((regparm(0))) + +long bar ( long *zork ) +{ + *zork += 1; + return *zork; +} + +asmlinkage(long biz ( long *volatile zork )); + +long biz ( long *volatile zork ); + +long biz ( long *volatile zork ) +{ + *zork += 1; + return *zork; +} +