home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / kernel-s / v1.2 / old-elf- / linux-1.2 / linux-1.2.11.elf.diff
Text File  |  1995-07-03  |  140KB  |  5,013 lines

  1. diff -c linux/linux/arch/i386/Makefile:1.1.1.3 linux/linux/arch/i386/Makefile:1.1.1.4
  2. *** linux/linux/arch/i386/Makefile:1.1.1.3    Mon Jul  3 21:01:39 1995
  3. --- linux/linux/arch/i386/Makefile    Mon Jul  3 21:01:39 1995
  4. ***************
  5. *** 1,4 ****
  6. --- 1,12 ----
  7.   #
  8. + # We use ELF.
  9. + #
  10. + USE_ELF=yes
  11. + #
  12. + # We use a.out.
  13. + #USE_ELF=no
  14. + #
  15.   # i386/Makefile
  16.   #
  17.   # This file is included by the global makefile so that you can add your own
  18. ***************
  19. *** 21,30 ****
  20. --- 29,55 ----
  21.   # ZLINKFLAGS   = -Ttext 0x1000
  22.   # LINKFLAGS    = -Ttext 0x100000
  23.   #
  24. + #
  25. + ifeq ($(USE_ELF),yes)
  26. + LD=ld -m elf_i386
  27. + CPP=$(CC) -E -D__ELF__
  28. + OBJDUMP =objdump
  29. + OBJDUMP_FLAGS=-k -q 
  30. + LDFLAGS=-e startup_32 
  31. + ZIMAGE_OFFSET=0x1000
  32. + IMAGE_OFFSET=0x100000
  33. + ZLINKFLAGS =-Ttext $(ZIMAGE_OFFSET) $(LDFLAGS)
  34. + LINKFLAGS =-Ttext $(IMAGE_OFFSET) $(LDFLAGS)
  35. + else
  36. + AS=/usr/i486-linuxaout/bin/as
  37. + LD=/usr/i486-linuxaout/bin/ld -m i386linux
  38. + CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include
  39. + #
  40.   # -qmagic (we need to remove the 32 byte header for bootup purposes)
  41.   #
  42.   ZLINKFLAGS =-qmagic -Ttext 0xfe0
  43.   LINKFLAGS =-qmagic -Ttext 0xfffe0
  44. + endif
  45.   CFLAGS := $(CFLAGS) -pipe
  46.   
  47.   ifdef CONFIG_M486
  48. diff -c linux/linux/arch/i386/boot/Makefile:1.1.1.1 linux/linux/arch/i386/boot/Makefile:1.1.1.2
  49. *** linux/linux/arch/i386/boot/Makefile:1.1.1.1    Mon Jul  3 21:01:39 1995
  50. --- linux/linux/arch/i386/boot/Makefile    Mon Jul  3 21:01:39 1995
  51. ***************
  52. *** 11,18 ****
  53. --- 11,27 ----
  54.   AS86    =as86 -0 -a
  55.   LD86    =ld86 -0
  56.   
  57. + ifeq ($(USE_ELF),yes)
  58. + CFLAGS := $(CFLAGS) -D__BFD__
  59. + endif
  60.   zImage: $(CONFIGURE) bootsect setup compressed/vmlinux tools/build
  61. + ifeq ($(USE_ELF),yes)
  62. +     $(OBJDUMP) $(OBJDUMP_FLAGS) -o $(ZIMAGE_OFFSET) compressed/vmlinux > compressed/vmlinux.out
  63. +     tools/build bootsect setup compressed/vmlinux.out $(ROOT_DEV) > zImage
  64. + else
  65.       tools/build bootsect setup compressed/vmlinux $(ROOT_DEV) > zImage
  66. + endif
  67.       sync
  68.   
  69.   compressed/vmlinux: $(TOPDIR)/vmlinux
  70. ***************
  71. *** 56,60 ****
  72.   
  73.   clean:
  74.       rm -f bootsect setup
  75. !     rm -f zImage tools/build
  76.       @$(MAKE) -C compressed clean
  77. --- 65,69 ----
  78.   
  79.   clean:
  80.       rm -f bootsect setup
  81. !     rm -f zImage tools/build compressed/vmlinux.out
  82.       @$(MAKE) -C compressed clean
  83. diff -c linux/linux/arch/i386/boot/compressed/Makefile:1.1.1.1 linux/linux/arch/i386/boot/compressed/Makefile:1.1.1.2
  84. *** linux/linux/arch/i386/boot/compressed/Makefile:1.1.1.1    Mon Jul  3 21:01:40 1995
  85. --- linux/linux/arch/i386/boot/compressed/Makefile    Mon Jul  3 21:01:40 1995
  86. ***************
  87. *** 11,16 ****
  88. --- 11,22 ----
  89.   
  90.   CFLAGS = -O2 -DSTDC_HEADERS
  91.   
  92. + ifeq ($(USE_ELF),yes)
  93. + TARGET=--target elf32-i386
  94. + INPUT_DATA=input_data
  95. + INPUT_LEN=input_len
  96. + endif
  97.   .c.s:
  98.       $(CC) $(CFLAGS) -S $<
  99.   .s.o:
  100. ***************
  101. *** 20,32 ****
  102.   
  103.   all: vmlinux
  104.   
  105. ! vmlinux:    piggy.o $(OBJECTS)
  106. !         $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o
  107.   
  108. ! head.o:    head.s
  109.   
  110. ! head.s: head.S $(TOPDIR)/include/linux/tasks.h
  111. !     $(CPP) -traditional head.S -o head.s
  112.   
  113.   piggy.o:    $(SYSTEM) xtract piggyback
  114.           ./xtract $(SYSTEM) | gzip -9 | ./piggyback > piggy.o
  115. --- 26,51 ----
  116.   
  117.   all: vmlinux
  118.   
  119. ! vmlinux: piggy.o $(OBJECTS)
  120. !     $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJECTS) piggy.o
  121. ! #head.o:    head.s
  122.   
  123. ! head.o: head.S $(TOPDIR)/include/linux/tasks.h
  124. !     $(CC) -traditional -c head.S
  125.   
  126. ! ifeq ($(USE_ELF),yes)
  127. ! # You cannot compress a file and have the kernel uncompress it, it must
  128. ! # be stdin
  129. ! piggy.o:    $(SYSTEM)
  130. !     tmppiggy=/tmp/$$.piggy; \
  131. !     rm -f $$tmppiggy $$tmppiggy.gz; \
  132. !     $(OBJDUMP) $(OBJDUMP_FLAGS) -o $(IMAGE_OFFSET) $(SYSTEM) > $$tmppiggy; \
  133. !     gzip -f -9 < $$tmppiggy > $$tmppiggy.gz; \
  134. !     encaps $(TARGET) piggy.o $$tmppiggy.gz $(INPUT_DATA) $(INPUT_LEN); \
  135. !     rm -f $$tmppiggy $$tmppiggy.gz
  136. ! else
  137.   
  138.   piggy.o:    $(SYSTEM) xtract piggyback
  139.           ./xtract $(SYSTEM) | gzip -9 | ./piggyback > piggy.o
  140. ***************
  141. *** 36,41 ****
  142. --- 55,62 ----
  143.   
  144.   piggyback: piggyback.c
  145.       $(HOSTCC) $(CFLAGS) -o piggyback piggyback.c
  146. + endif
  147.   
  148.   clean:
  149.       rm -f xtract piggyback vmlinux
  150. diff -c linux/linux/arch/i386/boot/compressed/head.S:1.1.1.1 linux/linux/arch/i386/boot/compressed/head.S:1.1.1.2
  151. *** linux/linux/arch/i386/boot/compressed/head.S:1.1.1.1    Mon Jul  3 21:01:40 1995
  152. --- linux/linux/arch/i386/boot/compressed/head.S    Mon Jul  3 21:01:40 1995
  153. ***************
  154. *** 19,26 ****
  155. --- 19,28 ----
  156.   .text
  157.   
  158.   #define __ASSEMBLY__
  159. + #include <linux/linkage.h>
  160.   #include <asm/segment.h>
  161.   
  162. +     .globl startup_32
  163.   startup_32:
  164.       cld
  165.       cli
  166. ***************
  167. *** 29,35 ****
  168.       mov %ax,%es
  169.       mov %ax,%fs
  170.       mov %ax,%gs
  171. !     lss _stack_start,%esp
  172.       xorl %eax,%eax
  173.   1:    incl %eax        # check that A20 really IS enabled
  174.       movl %eax,0x000000    # loop forever if it isn't
  175. --- 31,37 ----
  176.       mov %ax,%es
  177.       mov %ax,%fs
  178.       mov %ax,%gs
  179. !     lss SYMBOL_NAME(stack_start),%esp
  180.       xorl %eax,%eax
  181.   1:    incl %eax        # check that A20 really IS enabled
  182.       movl %eax,0x000000    # loop forever if it isn't
  183. ***************
  184. *** 46,53 ****
  185.    * Clear BSS
  186.    */
  187.       xorl %eax,%eax
  188. !     movl $__edata,%edi
  189. !     movl $__end,%ecx
  190.       subl %edi,%ecx
  191.       cld
  192.       rep
  193. --- 48,55 ----
  194.    * Clear BSS
  195.    */
  196.       xorl %eax,%eax
  197. !     movl $ SYMBOL_NAME(_edata),%edi
  198. !     movl $ SYMBOL_NAME(_end),%ecx
  199.       subl %edi,%ecx
  200.       cld
  201.       rep
  202. ***************
  203. *** 55,59 ****
  204.   /*
  205.    * Do the decompression, and jump to the new kernel..
  206.    */
  207. !     call _decompress_kernel
  208.       ljmp $(KERNEL_CS), $0x100000
  209. --- 57,61 ----
  210.   /*
  211.    * Do the decompression, and jump to the new kernel..
  212.    */
  213. !     call SYMBOL_NAME(decompress_kernel)
  214.       ljmp $(KERNEL_CS), $0x100000
  215. diff -c linux/linux/arch/i386/boot/compressed/inflate.c:1.1.1.4 linux/linux/arch/i386/boot/compressed/inflate.c:1.1.1.5
  216. *** linux/linux/arch/i386/boot/compressed/inflate.c:1.1.1.4    Mon Jul  3 21:01:40 1995
  217. --- linux/linux/arch/i386/boot/compressed/inflate.c    Mon Jul  3 21:01:40 1995
  218. ***************
  219. *** 9,15 ****
  220.    */
  221.   
  222.   #ifndef lint
  223. ! static char rcsid[] = "inflate.c,v 1.1.1.1 1995/03/11 20:40:35 hjl Exp";
  224.   #endif
  225.   
  226.   #include "gzip.h"
  227. --- 9,15 ----
  228.    */
  229.   
  230.   #ifndef lint
  231. ! static char rcsid[] = "$Id: inflate.c,v 0.10 1993/02/04 13:21:06 jloup Exp $";
  232.   #endif
  233.   
  234.   #include "gzip.h"
  235. diff -c linux/linux/arch/i386/boot/compressed/unzip.c:1.1.1.4 linux/linux/arch/i386/boot/compressed/unzip.c:1.1.1.5
  236. *** linux/linux/arch/i386/boot/compressed/unzip.c:1.1.1.4    Mon Jul  3 21:01:40 1995
  237. --- linux/linux/arch/i386/boot/compressed/unzip.c    Mon Jul  3 21:01:40 1995
  238. ***************
  239. *** 17,23 ****
  240.    */
  241.   
  242.   #ifndef lint
  243. ! static char rcsid[] = "unzip.c,v 1.1.1.1 1995/03/11 20:40:35 hjl Exp";
  244.   #endif
  245.   
  246.   #include "gzip.h"
  247. --- 17,23 ----
  248.    */
  249.   
  250.   #ifndef lint
  251. ! static char rcsid[] = "$Id: unzip.c,v 0.9 1993/02/10 16:07:22 jloup Exp $";
  252.   #endif
  253.   
  254.   #include "gzip.h"
  255. diff -c linux/linux/arch/i386/boot/tools/build.c:1.1.1.1 linux/linux/arch/i386/boot/tools/build.c:1.1.1.2
  256. *** linux/linux/arch/i386/boot/tools/build.c:1.1.1.1    Mon Jul  3 21:01:40 1995
  257. --- linux/linux/arch/i386/boot/tools/build.c    Mon Jul  3 21:01:40 1995
  258. ***************
  259. *** 30,40 ****
  260. --- 30,43 ----
  261.   #include <fcntl.h>
  262.   #include <linux/a.out.h>
  263.   #include <linux/config.h>
  264. + #include <errno.h>
  265.   
  266.   #define MINIX_HEADER 32
  267.   
  268.   #define N_MAGIC_OFFSET 1024
  269. + #ifndef __BFD__
  270.   static int GCC_HEADER = sizeof(struct exec);
  271. + #endif
  272.   
  273.   #define SYS_SIZE DEF_SYSSIZE
  274.   
  275. ***************
  276. *** 89,95 ****
  277. --- 92,100 ----
  278.       int i,c,id, sz;
  279.       unsigned long sys_size;
  280.       char buf[1024];
  281. + #ifndef __BFD__
  282.       struct exec *ex = (struct exec *)buf;
  283. + #endif
  284.       char major_root, minor_root;
  285.       struct stat sb;
  286.       unsigned char setup_sectors;
  287. ***************
  288. *** 190,195 ****
  289. --- 195,201 ----
  290.       
  291.       if ((id=open(argv[3],O_RDONLY,0))<0)
  292.           die("Unable to open 'system'");
  293. + #ifndef __BFD__
  294.       if (read(id,buf,GCC_HEADER) != GCC_HEADER)
  295.           die("Unable to read header of 'system'");
  296.       if (N_MAGIC(*ex) == ZMAGIC) {
  297. ***************
  298. *** 203,208 ****
  299. --- 209,222 ----
  300.           ex->a_data /1024,
  301.           ex->a_bss  /1024);
  302.       sz = N_SYMOFF(*ex) - GCC_HEADER + 4;
  303. + #else
  304. +     if (fstat (id, &sb)) {
  305. +       perror ("fstat");
  306. +       die ("Unable to stat 'system'");
  307. +     }
  308. +     sz = sb.st_size;
  309. +     fprintf (stderr, "System is %d kB\n", sz/1024);
  310. + #endif
  311.       sys_size = (sz + 15) / 16;
  312.       if (sys_size > SYS_SIZE)
  313.           die("System is too big");
  314. diff -c linux/linux/arch/i386/ibcs/Makefile:1.1.1.1 linux/linux/arch/i386/ibcs/Makefile:1.1.1.2
  315. *** linux/linux/arch/i386/ibcs/Makefile:1.1.1.1    Mon Jul  3 21:01:41 1995
  316. --- linux/linux/arch/i386/ibcs/Makefile    Mon Jul  3 21:01:41 1995
  317. ***************
  318. *** 7,12 ****
  319. --- 7,14 ----
  320.   #
  321.   # Note 2! The CFLAGS definitions are now in the main makefile...
  322.   
  323. + .S.o:
  324. +     $(CC) $(CFLAGS) -c -traditional $< -o $*.s
  325.   .S.s:
  326.       $(CPP) -traditional $< -o $*.s
  327.   .c.s:
  328. diff -c linux/linux/arch/i386/kernel/Makefile:1.1.1.3 linux/linux/arch/i386/kernel/Makefile:1.1.1.4
  329. *** linux/linux/arch/i386/kernel/Makefile:1.1.1.3    Mon Jul  3 21:01:42 1995
  330. --- linux/linux/arch/i386/kernel/Makefile    Mon Jul  3 21:01:42 1995
  331. ***************
  332. *** 13,20 ****
  333.       $(AS) -o $*.o $<
  334.   .c.o:
  335.       $(CC) $(CFLAGS) -c $<
  336. ! .S.s:
  337. !     $(CPP) -D__ASSEMBLY__ -traditional $< -o $*.s
  338.   .S.o:
  339.       $(CC) -D__ASSEMBLY__ -traditional -c $< -o $*.o
  340.   
  341. --- 13,20 ----
  342.       $(AS) -o $*.o $<
  343.   .c.o:
  344.       $(CC) $(CFLAGS) -c $<
  345. ! #.S.s:
  346. ! #    $(CPP) -D__ASSEMBLY__ -traditional $< -o $*.s
  347.   .S.o:
  348.       $(CC) -D__ASSEMBLY__ -traditional -c $< -o $*.o
  349.   
  350. ***************
  351. *** 22,31 ****
  352.   
  353.   all: kernel.o head.o
  354.   
  355. ! head.o: head.s
  356.   
  357. ! head.s: head.S $(TOPDIR)/include/linux/tasks.h
  358. !     $(CPP) -traditional -o $*.s $<
  359.   
  360.   kernel.o: $(OBJS)
  361.       $(LD) -r -o kernel.o $(OBJS)
  362. --- 22,32 ----
  363.   
  364.   all: kernel.o head.o
  365.   
  366. ! #head.o: head.s
  367.   
  368. ! head.o: head.S $(TOPDIR)/include/linux/tasks.h
  369. !     $(CC) -D__ASSEMBLY__ -traditional -c $*.S -o $*.o
  370. ! #    $(CPP) -traditional -o $*.s $<
  371.   
  372.   kernel.o: $(OBJS)
  373.       $(LD) -r -o kernel.o $(OBJS)
  374. diff -c linux/linux/arch/i386/kernel/entry.S:1.1.1.4 linux/linux/arch/i386/kernel/entry.S:1.1.1.5
  375. *** linux/linux/arch/i386/kernel/entry.S:1.1.1.4    Mon Jul  3 21:01:42 1995
  376. --- linux/linux/arch/i386/kernel/entry.S    Mon Jul  3 21:01:42 1995
  377. ***************
  378. *** 41,46 ****
  379. --- 41,47 ----
  380.    */
  381.   
  382.   #include <linux/sys.h>
  383. + #include <linux/linkage.h>
  384.   #include <asm/segment.h>
  385.   
  386.   EBX        = 0x00
  387. ***************
  388. *** 82,96 ****
  389.   
  390.   ENOSYS = 38
  391.   
  392. - .globl _system_call,_lcall7
  393. - .globl _device_not_available, _coprocessor_error
  394. - .globl _divide_error,_debug,_nmi,_int3,_overflow,_bounds,_invalid_op
  395. - .globl _double_fault,_coprocessor_segment_overrun
  396. - .globl _invalid_TSS,_segment_not_present,_stack_segment
  397. - .globl _general_protection,_reserved
  398. - .globl _alignment_check,_page_fault
  399. - .globl ret_from_sys_call, _sys_call_table
  400.   #define SAVE_ALL \
  401.       cld; \
  402.       push %gs; \
  403. --- 83,88 ----
  404. ***************
  405. *** 113,119 ****
  406.   #define RESTORE_ALL \
  407.       cmpw $(KERNEL_CS),CS(%esp); \
  408.       je 1f;   \
  409. !     movl _current,%eax; \
  410.       movl dbgreg7(%eax),%ebx; \
  411.       movl %ebx,%db7;    \
  412.   1:    popl %ebx; \
  413. --- 105,111 ----
  414.   #define RESTORE_ALL \
  415.       cmpw $(KERNEL_CS),CS(%esp); \
  416.       je 1f;   \
  417. !     movl SYMBOL_NAME(current),%eax; \
  418.       movl dbgreg7(%eax),%ebx; \
  419.       movl %ebx,%db7;    \
  420.   1:    popl %ebx; \
  421. ***************
  422. *** 130,137 ****
  423.       addl $4,%esp; \
  424.       iret
  425.   
  426. ! .align 4
  427. ! _lcall7:
  428.       pushfl            # We get a different stack layout with call gates,
  429.       pushl %eax        # which has to be cleaned up later..
  430.       SAVE_ALL
  431. --- 122,128 ----
  432.       addl $4,%esp; \
  433.       iret
  434.   
  435. ! ENTRY(lcall7)
  436.       pushfl            # We get a different stack layout with call gates,
  437.       pushl %eax        # which has to be cleaned up later..
  438.       SAVE_ALL
  439. ***************
  440. *** 142,148 ****
  441.       movl %edx,EIP(%esp)    # Now we move them to their "normal" places
  442.       movl %ecx,CS(%esp)    #
  443.       movl %esp,%eax
  444. !     movl _current,%edx
  445.       pushl %eax
  446.       movl exec_domain(%edx),%edx    # Get the execution domain
  447.       movl 4(%edx),%edx    # Get the lcall7 handler for the domain
  448. --- 133,139 ----
  449.       movl %edx,EIP(%esp)    # Now we move them to their "normal" places
  450.       movl %ecx,CS(%esp)    #
  451.       movl %esp,%eax
  452. !     movl SYMBOL_NAME(current),%edx
  453.       pushl %eax
  454.       movl exec_domain(%edx),%edx    # Get the execution domain
  455.       movl 4(%edx),%edx    # Get the lcall7 handler for the domain
  456. ***************
  457. *** 150,179 ****
  458.       popl %eax
  459.       jmp ret_from_sys_call
  460.   
  461. ! .align 4
  462.   handle_bottom_half:
  463.       pushfl
  464. !     incl _intr_count
  465.       sti
  466. !     call _do_bottom_half
  467.       popfl
  468. !     decl _intr_count
  469.       jmp 9f
  470. ! .align 4
  471.   reschedule:
  472.       pushl $ret_from_sys_call
  473. !     jmp _schedule
  474. ! .align 4
  475. ! _system_call:
  476.       pushl %eax            # save orig_eax
  477.       SAVE_ALL
  478.       movl $-ENOSYS,EAX(%esp)
  479.       cmpl $(NR_syscalls),%eax
  480.       jae ret_from_sys_call
  481. !     movl _sys_call_table(,%eax,4),%eax
  482.       testl %eax,%eax
  483.       je ret_from_sys_call
  484. !     movl _current,%ebx
  485.       andl $~CF_MASK,EFLAGS(%esp)    # clear carry - assume no errors
  486.       movl $0,errno(%ebx)
  487.       movl %db6,%edx
  488. --- 141,170 ----
  489.       popl %eax
  490.       jmp ret_from_sys_call
  491.   
  492. !     ALIGN
  493.   handle_bottom_half:
  494.       pushfl
  495. !     incl SYMBOL_NAME(intr_count)
  496.       sti
  497. !     call SYMBOL_NAME(do_bottom_half)
  498.       popfl
  499. !     decl SYMBOL_NAME(intr_count)
  500.       jmp 9f
  501. !     ALIGN
  502.   reschedule:
  503.       pushl $ret_from_sys_call
  504. !     jmp SYMBOL_NAME(schedule)
  505. ! ENTRY(system_call)
  506.       pushl %eax            # save orig_eax
  507.       SAVE_ALL
  508.       movl $-ENOSYS,EAX(%esp)
  509.       cmpl $(NR_syscalls),%eax
  510.       jae ret_from_sys_call
  511. !     movl SYMBOL_NAME(sys_call_table)(,%eax,4),%eax
  512.       testl %eax,%eax
  513.       je ret_from_sys_call
  514. !     movl SYMBOL_NAME(current),%ebx
  515.       andl $~CF_MASK,EFLAGS(%esp)    # clear carry - assume no errors
  516.       movl $0,errno(%ebx)
  517.       movl %db6,%edx
  518. ***************
  519. *** 188,212 ****
  520.       movl %edx,EAX(%esp)
  521.       orl $(CF_MASK),EFLAGS(%esp)    # set carry to indicate error
  522.       jmp ret_from_sys_call
  523. ! .align 4
  524. ! 1:    call _syscall_trace
  525.       movl ORIG_EAX(%esp),%eax
  526. !     call _sys_call_table(,%eax,4)
  527.       movl %eax,EAX(%esp)        # save the return value
  528. !     movl _current,%eax
  529.       movl errno(%eax),%edx
  530.       negl %edx
  531.       je 1f
  532.       movl %edx,EAX(%esp)
  533.       orl $(CF_MASK),EFLAGS(%esp)    # set carry to indicate error
  534. ! 1:    call _syscall_trace
  535.   
  536. !     .align 4,0x90
  537.   ret_from_sys_call:
  538. !     cmpl $0,_intr_count
  539.       jne 2f
  540. ! 9:    movl _bh_mask,%eax
  541. !     andl _bh_active,%eax
  542.       jne handle_bottom_half
  543.       movl EFLAGS(%esp),%eax        # check VM86 flag: CS/SS are
  544.       testl $(VM_MASK),%eax        # different then
  545. --- 179,204 ----
  546.       movl %edx,EAX(%esp)
  547.       orl $(CF_MASK),EFLAGS(%esp)    # set carry to indicate error
  548.       jmp ret_from_sys_call
  549. !     ALIGN
  550. ! 1:    call SYMBOL_NAME(syscall_trace)
  551.       movl ORIG_EAX(%esp),%eax
  552. !     call SYMBOL_NAME(sys_call_table)(,%eax,4)
  553.       movl %eax,EAX(%esp)        # save the return value
  554. !     movl SYMBOL_NAME(current),%eax
  555.       movl errno(%eax),%edx
  556.       negl %edx
  557.       je 1f
  558.       movl %edx,EAX(%esp)
  559.       orl $(CF_MASK),EFLAGS(%esp)    # set carry to indicate error
  560. ! 1:    call SYMBOL_NAME(syscall_trace)
  561.   
  562. !     ALIGN
  563. !     .globl ret_from_sys_call
  564.   ret_from_sys_call:
  565. !     cmpl $0,SYMBOL_NAME(intr_count)
  566.       jne 2f
  567. ! 9:    movl SYMBOL_NAME(bh_mask),%eax
  568. !     andl SYMBOL_NAME(bh_active),%eax
  569.       jne handle_bottom_half
  570.       movl EFLAGS(%esp),%eax        # check VM86 flag: CS/SS are
  571.       testl $(VM_MASK),%eax        # different then
  572. ***************
  573. *** 217,226 ****
  574.       orl $(IF_MASK),%eax        # these just try to make sure
  575.       andl $~NT_MASK,%eax        # the program doesn't do anything
  576.       movl %eax,EFLAGS(%esp)        # stupid
  577. !     cmpl $0,_need_resched
  578.       jne reschedule
  579. !     movl _current,%eax
  580. !     cmpl _task,%eax            # task[0] cannot have signals
  581.       je 2f
  582.       cmpl $0,state(%eax)        # state
  583.       jne reschedule
  584. --- 209,218 ----
  585.       orl $(IF_MASK),%eax        # these just try to make sure
  586.       andl $~NT_MASK,%eax        # the program doesn't do anything
  587.       movl %eax,EFLAGS(%esp)        # stupid
  588. !     cmpl $0,SYMBOL_NAME(need_resched)
  589.       jne reschedule
  590. !     movl SYMBOL_NAME(current),%eax
  591. !     cmpl SYMBOL_NAME(task),%eax    # task[0] cannot have signals
  592.       je 2f
  593.       cmpl $0,state(%eax)        # state
  594.       jne reschedule
  595. ***************
  596. *** 232,264 ****
  597.       andl signal(%eax),%ecx
  598.       jne signal_return
  599.   2:    RESTORE_ALL
  600. ! .align 4
  601.   signal_return:
  602.       movl %esp,%ecx
  603.       pushl %ecx
  604.       testl $(VM_MASK),EFLAGS(%ecx)
  605.       jne v86_signal_return
  606.       pushl %ebx
  607. !     call _do_signal
  608.       popl %ebx
  609.       popl %ebx
  610.       RESTORE_ALL
  611. ! .align 4
  612.   v86_signal_return:
  613. !     call _save_v86_state
  614.       movl %eax,%esp
  615.       pushl %eax
  616.       pushl %ebx
  617. !     call _do_signal
  618.       popl %ebx
  619.       popl %ebx
  620.       RESTORE_ALL
  621.   
  622. ! .align 4
  623. ! _divide_error:
  624.       pushl $0        # no error code
  625. !     pushl $_do_divide_error
  626. ! .align 4,0x90
  627.   error_code:
  628.       push %fs
  629.       push %es
  630. --- 224,255 ----
  631.       andl signal(%eax),%ecx
  632.       jne signal_return
  633.   2:    RESTORE_ALL
  634. !     ALIGN
  635.   signal_return:
  636.       movl %esp,%ecx
  637.       pushl %ecx
  638.       testl $(VM_MASK),EFLAGS(%ecx)
  639.       jne v86_signal_return
  640.       pushl %ebx
  641. !     call SYMBOL_NAME(do_signal)
  642.       popl %ebx
  643.       popl %ebx
  644.       RESTORE_ALL
  645. !     ALIGN
  646.   v86_signal_return:
  647. !     call SYMBOL_NAME(save_v86_state)
  648.       movl %eax,%esp
  649.       pushl %eax
  650.       pushl %ebx
  651. !     call SYMBOL_NAME(do_signal)
  652.       popl %ebx
  653.       popl %ebx
  654.       RESTORE_ALL
  655.   
  656. ! ENTRY(divide_error)
  657.       pushl $0        # no error code
  658. !     pushl $ SYMBOL_NAME(do_divide_error)
  659. !     ALIGN
  660.   error_code:
  661.       push %fs
  662.       push %es
  663. ***************
  664. *** 287,293 ****
  665.       movl $(USER_DS),%edx
  666.       mov %dx,%fs
  667.       pushl %eax
  668. !     movl _current,%eax
  669.       movl %db6,%edx
  670.       movl %edx,dbgreg6(%eax)  # save current hardware debugging status
  671.       popl %eax
  672. --- 278,284 ----
  673.       movl $(USER_DS),%edx
  674.       mov %dx,%fs
  675.       pushl %eax
  676. !     movl SYMBOL_NAME(current),%eax
  677.       movl %db6,%edx
  678.       movl %edx,dbgreg6(%eax)  # save current hardware debugging status
  679.       popl %eax
  680. ***************
  681. *** 295,544 ****
  682.       addl $8,%esp
  683.       jmp ret_from_sys_call
  684.   
  685. ! .align 4
  686. ! _coprocessor_error:
  687.       pushl $0
  688. !     pushl $_do_coprocessor_error
  689.       jmp error_code
  690.   
  691. ! .align 4
  692. ! _device_not_available:
  693.       pushl $-1        # mark this as an int
  694.       SAVE_ALL
  695.       pushl $ret_from_sys_call
  696.       movl %cr0,%eax
  697.       testl $0x4,%eax            # EM (math emulation bit)
  698. !     je _math_state_restore
  699.       pushl $0        # temporary storage for ORIG_EIP
  700. !     call _math_emulate
  701.       addl $4,%esp
  702.       ret
  703.   
  704. ! .align 4
  705. ! _debug:
  706.       pushl $0
  707. !     pushl $_do_debug
  708.       jmp error_code
  709.   
  710. ! .align 4
  711. ! _nmi:
  712.       pushl $0
  713. !     pushl $_do_nmi
  714.       jmp error_code
  715.   
  716. ! .align 4
  717. ! _int3:
  718.       pushl $0
  719. !     pushl $_do_int3
  720.       jmp error_code
  721.   
  722. ! .align 4
  723. ! _overflow:
  724.       pushl $0
  725. !     pushl $_do_overflow
  726.       jmp error_code
  727.   
  728. ! .align 4
  729. ! _bounds:
  730.       pushl $0
  731. !     pushl $_do_bounds
  732.       jmp error_code
  733.   
  734. ! .align 4
  735. ! _invalid_op:
  736.       pushl $0
  737. !     pushl $_do_invalid_op
  738.       jmp error_code
  739.   
  740. ! .align 4
  741. ! _coprocessor_segment_overrun:
  742.       pushl $0
  743. !     pushl $_do_coprocessor_segment_overrun
  744.       jmp error_code
  745.   
  746. ! .align 4
  747. ! _reserved:
  748.       pushl $0
  749. !     pushl $_do_reserved
  750.       jmp error_code
  751.   
  752. ! .align 4
  753. ! _double_fault:
  754. !     pushl $_do_double_fault
  755.       jmp error_code
  756.   
  757. ! .align 4
  758. ! _invalid_TSS:
  759. !     pushl $_do_invalid_TSS
  760.       jmp error_code
  761.   
  762. ! .align 4
  763. ! _segment_not_present:
  764. !     pushl $_do_segment_not_present
  765.       jmp error_code
  766.   
  767. ! .align 4
  768. ! _stack_segment:
  769. !     pushl $_do_stack_segment
  770.       jmp error_code
  771.   
  772. ! .align 4
  773. ! _general_protection:
  774. !     pushl $_do_general_protection
  775.       jmp error_code
  776.   
  777. ! .align 4
  778. ! _alignment_check:
  779. !     pushl $_do_alignment_check
  780.       jmp error_code
  781.   
  782. ! .align 4
  783. ! _page_fault:
  784. !     pushl $_do_page_fault
  785.       jmp error_code
  786.   
  787.   .data
  788. ! .align 4
  789. ! _sys_call_table:
  790. !     .long _sys_setup        /* 0 */
  791. !     .long _sys_exit
  792. !     .long _sys_fork
  793. !     .long _sys_read
  794. !     .long _sys_write
  795. !     .long _sys_open            /* 5 */
  796. !     .long _sys_close
  797. !     .long _sys_waitpid
  798. !     .long _sys_creat
  799. !     .long _sys_link
  800. !     .long _sys_unlink        /* 10 */
  801. !     .long _sys_execve
  802. !     .long _sys_chdir
  803. !     .long _sys_time
  804. !     .long _sys_mknod
  805. !     .long _sys_chmod        /* 15 */
  806. !     .long _sys_chown
  807. !     .long _sys_break
  808. !     .long _sys_stat
  809. !     .long _sys_lseek
  810. !     .long _sys_getpid        /* 20 */
  811. !     .long _sys_mount
  812. !     .long _sys_umount
  813. !     .long _sys_setuid
  814. !     .long _sys_getuid
  815. !     .long _sys_stime        /* 25 */
  816. !     .long _sys_ptrace
  817. !     .long _sys_alarm
  818. !     .long _sys_fstat
  819. !     .long _sys_pause
  820. !     .long _sys_utime        /* 30 */
  821. !     .long _sys_stty
  822. !     .long _sys_gtty
  823. !     .long _sys_access
  824. !     .long _sys_nice
  825. !     .long _sys_ftime        /* 35 */
  826. !     .long _sys_sync
  827. !     .long _sys_kill
  828. !     .long _sys_rename
  829. !     .long _sys_mkdir
  830. !     .long _sys_rmdir        /* 40 */
  831. !     .long _sys_dup
  832. !     .long _sys_pipe
  833. !     .long _sys_times
  834. !     .long _sys_prof
  835. !     .long _sys_brk            /* 45 */
  836. !     .long _sys_setgid
  837. !     .long _sys_getgid
  838. !     .long _sys_signal
  839. !     .long _sys_geteuid
  840. !     .long _sys_getegid        /* 50 */
  841. !     .long _sys_acct
  842. !     .long _sys_phys
  843. !     .long _sys_lock
  844. !     .long _sys_ioctl
  845. !     .long _sys_fcntl        /* 55 */
  846. !     .long _sys_mpx
  847. !     .long _sys_setpgid
  848. !     .long _sys_ulimit
  849. !     .long _sys_olduname
  850. !     .long _sys_umask        /* 60 */
  851. !     .long _sys_chroot
  852. !     .long _sys_ustat
  853. !     .long _sys_dup2
  854. !     .long _sys_getppid
  855. !     .long _sys_getpgrp        /* 65 */
  856. !     .long _sys_setsid
  857. !     .long _sys_sigaction
  858. !     .long _sys_sgetmask
  859. !     .long _sys_ssetmask
  860. !     .long _sys_setreuid        /* 70 */
  861. !     .long _sys_setregid
  862. !     .long _sys_sigsuspend
  863. !     .long _sys_sigpending
  864. !     .long _sys_sethostname
  865. !     .long _sys_setrlimit        /* 75 */
  866. !     .long _sys_getrlimit
  867. !     .long _sys_getrusage
  868. !     .long _sys_gettimeofday
  869. !     .long _sys_settimeofday
  870. !     .long _sys_getgroups        /* 80 */
  871. !     .long _sys_setgroups
  872. !     .long _sys_select
  873. !     .long _sys_symlink
  874. !     .long _sys_lstat
  875. !     .long _sys_readlink        /* 85 */
  876. !     .long _sys_uselib
  877. !     .long _sys_swapon
  878. !     .long _sys_reboot
  879. !     .long _sys_readdir
  880. !     .long _sys_mmap            /* 90 */
  881. !     .long _sys_munmap
  882. !     .long _sys_truncate
  883. !     .long _sys_ftruncate
  884. !     .long _sys_fchmod
  885. !     .long _sys_fchown        /* 95 */
  886. !     .long _sys_getpriority
  887. !     .long _sys_setpriority
  888. !     .long _sys_profil
  889. !     .long _sys_statfs
  890. !     .long _sys_fstatfs        /* 100 */
  891. !     .long _sys_ioperm
  892. !     .long _sys_socketcall
  893. !     .long _sys_syslog
  894. !     .long _sys_setitimer
  895. !     .long _sys_getitimer        /* 105 */
  896. !     .long _sys_newstat
  897. !     .long _sys_newlstat
  898. !     .long _sys_newfstat
  899. !     .long _sys_uname
  900. !     .long _sys_iopl            /* 110 */
  901. !     .long _sys_vhangup
  902. !     .long _sys_idle
  903. !     .long _sys_vm86
  904. !     .long _sys_wait4
  905. !     .long _sys_swapoff        /* 115 */
  906. !     .long _sys_sysinfo
  907. !     .long _sys_ipc
  908. !     .long _sys_fsync
  909. !     .long _sys_sigreturn
  910. !     .long _sys_clone        /* 120 */
  911. !     .long _sys_setdomainname
  912. !     .long _sys_newuname
  913. !     .long _sys_modify_ldt
  914. !     .long _sys_adjtimex
  915. !     .long _sys_mprotect        /* 125 */
  916. !     .long _sys_sigprocmask
  917. !     .long _sys_create_module
  918. !     .long _sys_init_module
  919. !     .long _sys_delete_module
  920. !     .long _sys_get_kernel_syms    /* 130 */
  921. !     .long _sys_quotactl
  922. !     .long _sys_getpgid
  923. !     .long _sys_fchdir
  924. !     .long _sys_bdflush
  925. !     .long _sys_sysfs        /* 135 */
  926. !     .long _sys_personality
  927.       .long 0                /* for afs_syscall */
  928. !     .long _sys_setfsuid
  929. !     .long _sys_setfsgid
  930. !     .long _sys_llseek        /* 140 */
  931.       .space (NR_syscalls-140)*4
  932. --- 286,517 ----
  933.       addl $8,%esp
  934.       jmp ret_from_sys_call
  935.   
  936. ! ENTRY(coprocessor_error)
  937.       pushl $0
  938. !     pushl $ SYMBOL_NAME(do_coprocessor_error)
  939.       jmp error_code
  940.   
  941. ! ENTRY(device_not_available)
  942.       pushl $-1        # mark this as an int
  943.       SAVE_ALL
  944.       pushl $ret_from_sys_call
  945.       movl %cr0,%eax
  946.       testl $0x4,%eax            # EM (math emulation bit)
  947. !     je  SYMBOL_NAME(math_state_restore)
  948.       pushl $0        # temporary storage for ORIG_EIP
  949. !     call  SYMBOL_NAME(math_emulate)
  950.       addl $4,%esp
  951.       ret
  952.   
  953. ! ENTRY(debug)
  954.       pushl $0
  955. !     pushl $ SYMBOL_NAME(do_debug)
  956.       jmp error_code
  957.   
  958. ! ENTRY(nmi)
  959.       pushl $0
  960. !     pushl $ SYMBOL_NAME(do_nmi)
  961.       jmp error_code
  962.   
  963. ! ENTRY(int3)
  964.       pushl $0
  965. !     pushl $ SYMBOL_NAME(do_int3)
  966.       jmp error_code
  967.   
  968. ! ENTRY(overflow)
  969.       pushl $0
  970. !     pushl $ SYMBOL_NAME(do_overflow)
  971.       jmp error_code
  972.   
  973. ! ENTRY(bounds)
  974.       pushl $0
  975. !     pushl $ SYMBOL_NAME(do_bounds)
  976.       jmp error_code
  977.   
  978. ! ENTRY(invalid_op)
  979.       pushl $0
  980. !     pushl $ SYMBOL_NAME(do_invalid_op)
  981.       jmp error_code
  982.   
  983. ! ENTRY(coprocessor_segment_overrun)
  984.       pushl $0
  985. !     pushl $ SYMBOL_NAME(do_coprocessor_segment_overrun)
  986.       jmp error_code
  987.   
  988. ! ENTRY(reserved)
  989.       pushl $0
  990. !     pushl $ SYMBOL_NAME(do_reserved)
  991.       jmp error_code
  992.   
  993. ! ENTRY(double_fault)
  994. !     pushl $ SYMBOL_NAME(do_double_fault)
  995.       jmp error_code
  996.   
  997. ! ENTRY(invalid_TSS)
  998. !     pushl $ SYMBOL_NAME(do_invalid_TSS)
  999.       jmp error_code
  1000.   
  1001. ! ENTRY(segment_not_present)
  1002. !     pushl $ SYMBOL_NAME(do_segment_not_present)
  1003.       jmp error_code
  1004.   
  1005. ! ENTRY(stack_segment)
  1006. !     pushl $ SYMBOL_NAME(do_stack_segment)
  1007.       jmp error_code
  1008.   
  1009. ! ENTRY(general_protection)
  1010. !     pushl $ SYMBOL_NAME(do_general_protection)
  1011.       jmp error_code
  1012.   
  1013. ! ENTRY(alignment_check)
  1014. !     pushl $ SYMBOL_NAME(do_alignment_check)
  1015.       jmp error_code
  1016.   
  1017. ! ENTRY(page_fault)
  1018. !     pushl $ SYMBOL_NAME(do_page_fault)
  1019.       jmp error_code
  1020.   
  1021.   .data
  1022. ! ENTRY(sys_call_table)
  1023. !     .long SYMBOL_NAME(sys_setup)        /* 0 */
  1024. !     .long SYMBOL_NAME(sys_exit)
  1025. !     .long SYMBOL_NAME(sys_fork)
  1026. !     .long SYMBOL_NAME(sys_read)
  1027. !     .long SYMBOL_NAME(sys_write)
  1028. !     .long SYMBOL_NAME(sys_open)        /* 5 */
  1029. !     .long SYMBOL_NAME(sys_close)
  1030. !     .long SYMBOL_NAME(sys_waitpid)
  1031. !     .long SYMBOL_NAME(sys_creat)
  1032. !     .long SYMBOL_NAME(sys_link)
  1033. !     .long SYMBOL_NAME(sys_unlink)        /* 10 */
  1034. !     .long SYMBOL_NAME(sys_execve)
  1035. !     .long SYMBOL_NAME(sys_chdir)
  1036. !     .long SYMBOL_NAME(sys_time)
  1037. !     .long SYMBOL_NAME(sys_mknod)
  1038. !     .long SYMBOL_NAME(sys_chmod)        /* 15 */
  1039. !     .long SYMBOL_NAME(sys_chown)
  1040. !     .long SYMBOL_NAME(sys_break)
  1041. !     .long SYMBOL_NAME(sys_stat)
  1042. !     .long SYMBOL_NAME(sys_lseek)
  1043. !     .long SYMBOL_NAME(sys_getpid)        /* 20 */
  1044. !     .long SYMBOL_NAME(sys_mount)
  1045. !     .long SYMBOL_NAME(sys_umount)
  1046. !     .long SYMBOL_NAME(sys_setuid)
  1047. !     .long SYMBOL_NAME(sys_getuid)
  1048. !     .long SYMBOL_NAME(sys_stime)        /* 25 */
  1049. !     .long SYMBOL_NAME(sys_ptrace)
  1050. !     .long SYMBOL_NAME(sys_alarm)
  1051. !     .long SYMBOL_NAME(sys_fstat)
  1052. !     .long SYMBOL_NAME(sys_pause)
  1053. !     .long SYMBOL_NAME(sys_utime)        /* 30 */
  1054. !     .long SYMBOL_NAME(sys_stty)
  1055. !     .long SYMBOL_NAME(sys_gtty)
  1056. !     .long SYMBOL_NAME(sys_access)
  1057. !     .long SYMBOL_NAME(sys_nice)
  1058. !     .long SYMBOL_NAME(sys_ftime)        /* 35 */
  1059. !     .long SYMBOL_NAME(sys_sync)
  1060. !     .long SYMBOL_NAME(sys_kill)
  1061. !     .long SYMBOL_NAME(sys_rename)
  1062. !     .long SYMBOL_NAME(sys_mkdir)
  1063. !     .long SYMBOL_NAME(sys_rmdir)        /* 40 */
  1064. !     .long SYMBOL_NAME(sys_dup)
  1065. !     .long SYMBOL_NAME(sys_pipe)
  1066. !     .long SYMBOL_NAME(sys_times)
  1067. !     .long SYMBOL_NAME(sys_prof)
  1068. !     .long SYMBOL_NAME(sys_brk)        /* 45 */
  1069. !     .long SYMBOL_NAME(sys_setgid)
  1070. !     .long SYMBOL_NAME(sys_getgid)
  1071. !     .long SYMBOL_NAME(sys_signal)
  1072. !     .long SYMBOL_NAME(sys_geteuid)
  1073. !     .long SYMBOL_NAME(sys_getegid)        /* 50 */
  1074. !     .long SYMBOL_NAME(sys_acct)
  1075. !     .long SYMBOL_NAME(sys_phys)
  1076. !     .long SYMBOL_NAME(sys_lock)
  1077. !     .long SYMBOL_NAME(sys_ioctl)
  1078. !     .long SYMBOL_NAME(sys_fcntl)        /* 55 */
  1079. !     .long SYMBOL_NAME(sys_mpx)
  1080. !     .long SYMBOL_NAME(sys_setpgid)
  1081. !     .long SYMBOL_NAME(sys_ulimit)
  1082. !     .long SYMBOL_NAME(sys_olduname)
  1083. !     .long SYMBOL_NAME(sys_umask)        /* 60 */
  1084. !     .long SYMBOL_NAME(sys_chroot)
  1085. !     .long SYMBOL_NAME(sys_ustat)
  1086. !     .long SYMBOL_NAME(sys_dup2)
  1087. !     .long SYMBOL_NAME(sys_getppid)
  1088. !     .long SYMBOL_NAME(sys_getpgrp)        /* 65 */
  1089. !     .long SYMBOL_NAME(sys_setsid)
  1090. !     .long SYMBOL_NAME(sys_sigaction)
  1091. !     .long SYMBOL_NAME(sys_sgetmask)
  1092. !     .long SYMBOL_NAME(sys_ssetmask)
  1093. !     .long SYMBOL_NAME(sys_setreuid)        /* 70 */
  1094. !     .long SYMBOL_NAME(sys_setregid)
  1095. !     .long SYMBOL_NAME(sys_sigsuspend)
  1096. !     .long SYMBOL_NAME(sys_sigpending)
  1097. !     .long SYMBOL_NAME(sys_sethostname)
  1098. !     .long SYMBOL_NAME(sys_setrlimit)    /* 75 */
  1099. !     .long SYMBOL_NAME(sys_getrlimit)
  1100. !     .long SYMBOL_NAME(sys_getrusage)
  1101. !     .long SYMBOL_NAME(sys_gettimeofday)
  1102. !     .long SYMBOL_NAME(sys_settimeofday)
  1103. !     .long SYMBOL_NAME(sys_getgroups)    /* 80 */
  1104. !     .long SYMBOL_NAME(sys_setgroups)
  1105. !     .long SYMBOL_NAME(sys_select)
  1106. !     .long SYMBOL_NAME(sys_symlink)
  1107. !     .long SYMBOL_NAME(sys_lstat)
  1108. !     .long SYMBOL_NAME(sys_readlink)        /* 85 */
  1109. !     .long SYMBOL_NAME(sys_uselib)
  1110. !     .long SYMBOL_NAME(sys_swapon)
  1111. !     .long SYMBOL_NAME(sys_reboot)
  1112. !     .long SYMBOL_NAME(sys_readdir)
  1113. !     .long SYMBOL_NAME(sys_mmap)        /* 90 */
  1114. !     .long SYMBOL_NAME(sys_munmap)
  1115. !     .long SYMBOL_NAME(sys_truncate)
  1116. !     .long SYMBOL_NAME(sys_ftruncate)
  1117. !     .long SYMBOL_NAME(sys_fchmod)
  1118. !     .long SYMBOL_NAME(sys_fchown)        /* 95 */
  1119. !     .long SYMBOL_NAME(sys_getpriority)
  1120. !     .long SYMBOL_NAME(sys_setpriority)
  1121. !     .long SYMBOL_NAME(sys_profil)
  1122. !     .long SYMBOL_NAME(sys_statfs)
  1123. !     .long SYMBOL_NAME(sys_fstatfs)        /* 100 */
  1124. !     .long SYMBOL_NAME(sys_ioperm)
  1125. !     .long SYMBOL_NAME(sys_socketcall)
  1126. !     .long SYMBOL_NAME(sys_syslog)
  1127. !     .long SYMBOL_NAME(sys_setitimer)
  1128. !     .long SYMBOL_NAME(sys_getitimer)    /* 105 */
  1129. !     .long SYMBOL_NAME(sys_newstat)
  1130. !     .long SYMBOL_NAME(sys_newlstat)
  1131. !     .long SYMBOL_NAME(sys_newfstat)
  1132. !     .long SYMBOL_NAME(sys_uname)
  1133. !     .long SYMBOL_NAME(sys_iopl)        /* 110 */
  1134. !     .long SYMBOL_NAME(sys_vhangup)
  1135. !     .long SYMBOL_NAME(sys_idle)
  1136. !     .long SYMBOL_NAME(sys_vm86)
  1137. !     .long SYMBOL_NAME(sys_wait4)
  1138. !     .long SYMBOL_NAME(sys_swapoff)        /* 115 */
  1139. !     .long SYMBOL_NAME(sys_sysinfo)
  1140. !     .long SYMBOL_NAME(sys_ipc)
  1141. !     .long SYMBOL_NAME(sys_fsync)
  1142. !     .long SYMBOL_NAME(sys_sigreturn)
  1143. !     .long SYMBOL_NAME(sys_clone)        /* 120 */
  1144. !     .long SYMBOL_NAME(sys_setdomainname)
  1145. !     .long SYMBOL_NAME(sys_newuname)
  1146. !     .long SYMBOL_NAME(sys_modify_ldt)
  1147. !     .long SYMBOL_NAME(sys_adjtimex)
  1148. !     .long SYMBOL_NAME(sys_mprotect)        /* 125 */
  1149. !     .long SYMBOL_NAME(sys_sigprocmask)
  1150. !     .long SYMBOL_NAME(sys_create_module)
  1151. !     .long SYMBOL_NAME(sys_init_module)
  1152. !     .long SYMBOL_NAME(sys_delete_module)
  1153. !     .long SYMBOL_NAME(sys_get_kernel_syms)    /* 130 */
  1154. !     .long SYMBOL_NAME(sys_quotactl)
  1155. !     .long SYMBOL_NAME(sys_getpgid)
  1156. !     .long SYMBOL_NAME(sys_fchdir)
  1157. !     .long SYMBOL_NAME(sys_bdflush)
  1158. !     .long SYMBOL_NAME(sys_sysfs)        /* 135 */
  1159. !     .long SYMBOL_NAME(sys_personality)
  1160.       .long 0                /* for afs_syscall */
  1161. !     .long SYMBOL_NAME(sys_setfsuid)
  1162. !     .long SYMBOL_NAME(sys_setfsgid)
  1163. !     .long SYMBOL_NAME(sys_llseek)        /* 140 */
  1164.       .space (NR_syscalls-140)*4
  1165. diff -c linux/linux/arch/i386/kernel/head.S:1.1.1.4 linux/linux/arch/i386/kernel/head.S:1.1.1.5
  1166. *** linux/linux/arch/i386/kernel/head.S:1.1.1.4    Mon Jul  3 21:01:42 1995
  1167. --- linux/linux/arch/i386/kernel/head.S    Mon Jul  3 21:01:42 1995
  1168. ***************
  1169. *** 9,24 ****
  1170.    */
  1171.   
  1172.   .text
  1173. - .globl _idt,_gdt,
  1174. - .globl _swapper_pg_dir,_pg0
  1175. - .globl _empty_bad_page
  1176. - .globl _empty_bad_page_table
  1177. - .globl _empty_zero_page
  1178. - .globl _floppy_track_buffer
  1179.   
  1180. - #define __ASSEMBLY__
  1181.   #include <linux/tasks.h>
  1182.   #include <linux/fd.h>
  1183.   #include <asm/segment.h>
  1184.   
  1185.   #define CL_MAGIC_ADDR    0x90020
  1186. --- 9,18 ----
  1187.    */
  1188.   
  1189.   .text
  1190.   
  1191.   #include <linux/tasks.h>
  1192.   #include <linux/fd.h>
  1193. + #include <linux/linkage.h>
  1194.   #include <asm/segment.h>
  1195.   
  1196.   #define CL_MAGIC_ADDR    0x90020
  1197. ***************
  1198. *** 30,35 ****
  1199. --- 24,30 ----
  1200.    * swapper_pg_dir is the main page directory, address 0x00001000 (or at
  1201.    * address 0x00101000 for a compressed boot).
  1202.    */
  1203. +     .globl startup_32
  1204.   startup_32:
  1205.       cld
  1206.       movl $(KERNEL_DS),%eax
  1207. ***************
  1208. *** 42,49 ****
  1209.    * Clear BSS first so that there are no surprises...
  1210.    */
  1211.       xorl %eax,%eax
  1212. !     movl $__edata,%edi
  1213. !     movl $__end,%ecx
  1214.       subl %edi,%ecx
  1215.       cld
  1216.       rep
  1217. --- 37,44 ----
  1218.    * Clear BSS first so that there are no surprises...
  1219.    */
  1220.       xorl %eax,%eax
  1221. !     movl $ SYMBOL_NAME(_edata),%edi
  1222. !     movl $ SYMBOL_NAME(_end),%ecx
  1223.       subl %edi,%ecx
  1224.       cld
  1225.       rep
  1226. ***************
  1227. *** 71,77 ****
  1228.    * is for the command line.
  1229.    */
  1230.       movl $0x90000,%esi
  1231. !     movl $_empty_zero_page,%edi
  1232.       movl $512,%ecx
  1233.       cld
  1234.       rep
  1235. --- 66,72 ----
  1236.    * is for the command line.
  1237.    */
  1238.       movl $0x90000,%esi
  1239. !     movl $ SYMBOL_NAME(empty_zero_page),%edi
  1240.       movl $512,%ecx
  1241.       cld
  1242.       rep
  1243. ***************
  1244. *** 82,88 ****
  1245.       stosl
  1246.       cmpw $(CL_MAGIC),CL_MAGIC_ADDR
  1247.       jne 1f
  1248. !     movl $_empty_zero_page+2048,%edi
  1249.       movzwl CL_OFFSET,%esi
  1250.       addl $(CL_BASE_ADDR),%esi
  1251.       movl $2048,%ecx
  1252. --- 77,83 ----
  1253.       stosl
  1254.       cmpw $(CL_MAGIC),CL_MAGIC_ADDR
  1255.       jne 1f
  1256. !     movl $ SYMBOL_NAME(empty_zero_page)+2048,%edi
  1257.       movzwl CL_OFFSET,%esi
  1258.       addl $(CL_BASE_ADDR),%esi
  1259.       movl $2048,%ecx
  1260. ***************
  1261. *** 95,101 ****
  1262.    * apply at our cpl of 0 and the stack ought to be aligned already, and
  1263.    * we don't need to preserve eflags.
  1264.    */
  1265. !     movl $3,_x86
  1266.       pushfl            # push EFLAGS
  1267.       popl %eax        # get EFLAGS
  1268.       movl %eax,%ecx        # save original EFLAGS
  1269. --- 90,96 ----
  1270.    * apply at our cpl of 0 and the stack ought to be aligned already, and
  1271.    * we don't need to preserve eflags.
  1272.    */
  1273. !     movl $3, SYMBOL_NAME(x86)
  1274.       pushfl            # push EFLAGS
  1275.       popl %eax        # get EFLAGS
  1276.       movl %eax,%ecx        # save original EFLAGS
  1277. ***************
  1278. *** 107,113 ****
  1279.       xorl %ecx,%eax        # change in flags
  1280.       andl $0x40000,%eax    # check if AC bit changed
  1281.       je is386
  1282. !     movl $4,_x86
  1283.       movl %ecx,%eax
  1284.       xorl $0x200000,%eax    # check ID flag
  1285.       pushl %eax
  1286. --- 102,108 ----
  1287.       xorl %ecx,%eax        # change in flags
  1288.       andl $0x40000,%eax    # check if AC bit changed
  1289.       je is386
  1290. !     movl $4,SYMBOL_NAME(x86)
  1291.       movl %ecx,%eax
  1292.       xorl $0x200000,%eax    # check ID flag
  1293.       pushl %eax
  1294. ***************
  1295. *** 124,142 ****
  1296.       .byte 0x0f, 0xa2    # check the processor type
  1297.       movb %al, %cl        # save reg for future use
  1298.       andb $0x0f,%ah        # mask processor family
  1299. !     movb %ah, _x86
  1300.       andb $0xf0, %eax    # mask model
  1301.       shrb $4, %al
  1302. !     movb %al, _x86_model
  1303.       andb $0x0f, %cl        # mask mask revision
  1304. !     movb %cl, _x86_mask
  1305. !     movl %edx, _x86_capability
  1306.       /* get vendor info */
  1307.       xorl %eax, %eax            # call CPUID with 0 -> return vendor ID
  1308.       .byte 0x0f, 0xa2        # CPUID
  1309. !     movl %ebx, _x86_vendor_id    # lo 4 chars
  1310. !     movl %edx, _x86_vendor_id+4    # next 4 chars
  1311. !     movl %ecx, _x86_vendor_id+8    # last 4 chars
  1312.   
  1313.       movl %cr0,%eax        # 486+
  1314.       andl $0x80000011,%eax    # Save PG,PE,ET
  1315. --- 119,137 ----
  1316.       .byte 0x0f, 0xa2    # check the processor type
  1317.       movb %al, %cl        # save reg for future use
  1318.       andb $0x0f,%ah        # mask processor family
  1319. !     movb %ah,SYMBOL_NAME(x86)
  1320.       andb $0xf0, %eax    # mask model
  1321.       shrb $4, %al
  1322. !     movb %al,SYMBOL_NAME(x86_model)
  1323.       andb $0x0f, %cl        # mask mask revision
  1324. !     movb %cl,SYMBOL_NAME(x86_mask)
  1325. !     movl %edx,SYMBOL_NAME(x86_capability)
  1326.       /* get vendor info */
  1327.       xorl %eax, %eax            # call CPUID with 0 -> return vendor ID
  1328.       .byte 0x0f, 0xa2        # CPUID
  1329. !     movl %ebx,SYMBOL_NAME(x86_vendor_id)    # lo 4 chars
  1330. !     movl %edx,SYMBOL_NAME(x86_vendor_id)+4    # next 4 chars
  1331. !     movl %ecx,SYMBOL_NAME(x86_vendor_id)+8    # last 4 chars
  1332.   
  1333.       movl %cr0,%eax        # 486+
  1334.       andl $0x80000011,%eax    # Save PG,PE,ET
  1335. ***************
  1336. *** 171,177 ****
  1337.       pushl %eax
  1338.       pushl %eax
  1339.       cld            # gcc2 wants the direction flag cleared at all times
  1340. !     call _start_kernel
  1341.   L6:
  1342.       jmp L6            # main should never return here, but
  1343.                   # just in case, we know what happens.
  1344. --- 166,172 ----
  1345.       pushl %eax
  1346.       pushl %eax
  1347.       cld            # gcc2 wants the direction flag cleared at all times
  1348. !     call SYMBOL_NAME(start_kernel)
  1349.   L6:
  1350.       jmp L6            # main should never return here, but
  1351.                   # just in case, we know what happens.
  1352. ***************
  1353. *** 180,186 ****
  1354.    * We depend on ET to be correct. This checks for 287/387.
  1355.    */
  1356.   check_x87:
  1357. !     movb $0,_hard_math
  1358.       clts
  1359.       fninit
  1360.       fstsw %ax
  1361. --- 175,181 ----
  1362.    * We depend on ET to be correct. This checks for 287/387.
  1363.    */
  1364.   check_x87:
  1365. !     movb $0,SYMBOL_NAME(hard_math)
  1366.       clts
  1367.       fninit
  1368.       fstsw %ax
  1369. ***************
  1370. *** 190,197 ****
  1371.       xorl $4,%eax        /* set EM */
  1372.       movl %eax,%cr0
  1373.       ret
  1374. ! .align 2
  1375. ! 1:    movb $1,_hard_math
  1376.       .byte 0xDB,0xE4        /* fsetpm for 287, ignored by 387 */
  1377.       ret
  1378.   
  1379. --- 185,192 ----
  1380.       xorl $4,%eax        /* set EM */
  1381.       movl %eax,%cr0
  1382.       ret
  1383. !     ALIGN
  1384. ! 1:    movb $1,SYMBOL_NAME(hard_math)
  1385.       .byte 0xDB,0xE4        /* fsetpm for 287, ignored by 387 */
  1386.       ret
  1387.   
  1388. ***************
  1389. *** 211,217 ****
  1390.       movw %dx,%ax        /* selector = 0x0010 = cs */
  1391.       movw $0x8E00,%dx    /* interrupt gate - dpl=0, present */
  1392.   
  1393. !     lea _idt,%edi
  1394.       mov $256,%ecx
  1395.   rp_sidt:
  1396.       movl %eax,(%edi)
  1397. --- 206,212 ----
  1398.       movw %dx,%ax        /* selector = 0x0010 = cs */
  1399.       movw $0x8E00,%dx    /* interrupt gate - dpl=0, present */
  1400.   
  1401. !     lea SYMBOL_NAME(idt),%edi
  1402.       mov $256,%ecx
  1403.   rp_sidt:
  1404.       movl %eax,(%edi)
  1405. ***************
  1406. *** 233,256 ****
  1407.    * (ref: update, 25Sept92)  -- croutons@crunchy.uucp 
  1408.    * (ref: 92.10.11 - Linus Torvalds. Corrected 16M limit - no upper memory limit)
  1409.    */
  1410. ! .align 2
  1411.   setup_paging:
  1412.       movl $1024*2,%ecx        /* 2 pages - swapper_pg_dir+1 page table */
  1413.       xorl %eax,%eax
  1414. !     movl $_swapper_pg_dir,%edi    /* swapper_pg_dir is at 0x1000 */
  1415.       cld;rep;stosl
  1416.   /* Identity-map the kernel in low 4MB memory for ease of transition */
  1417. !     movl $_pg0+7,_swapper_pg_dir        /* set present bit/user r/w */
  1418.   /* But the real place is at 0xC0000000 */
  1419. !     movl $_pg0+7,_swapper_pg_dir+3072    /* set present bit/user r/w */
  1420. !     movl $_pg0+4092,%edi
  1421.       movl $0x03ff007,%eax        /*  4Mb - 4096 + 7 (r/w user,p) */
  1422.       std
  1423.   1:    stosl            /* fill the page backwards - more efficient :-) */
  1424.       subl $0x1000,%eax
  1425.       jge 1b
  1426.       cld
  1427. !     movl $_swapper_pg_dir,%eax
  1428.       movl %eax,%cr3            /* cr3 - page directory start */
  1429.       movl %cr0,%eax
  1430.       orl $0x80000000,%eax
  1431. --- 228,253 ----
  1432.    * (ref: update, 25Sept92)  -- croutons@crunchy.uucp 
  1433.    * (ref: 92.10.11 - Linus Torvalds. Corrected 16M limit - no upper memory limit)
  1434.    */
  1435. !     ALIGN
  1436.   setup_paging:
  1437.       movl $1024*2,%ecx        /* 2 pages - swapper_pg_dir+1 page table */
  1438.       xorl %eax,%eax
  1439. !     movl $ SYMBOL_NAME(swapper_pg_dir),%edi    /* swapper_pg_dir is at 0x1000 */
  1440.       cld;rep;stosl
  1441.   /* Identity-map the kernel in low 4MB memory for ease of transition */
  1442. ! /* set present bit/user r/w */
  1443. !     movl $ SYMBOL_NAME(pg0)+7,SYMBOL_NAME(swapper_pg_dir)
  1444.   /* But the real place is at 0xC0000000 */
  1445. ! /* set present bit/user r/w */
  1446. !     movl $ SYMBOL_NAME(pg0)+7,SYMBOL_NAME(swapper_pg_dir)+3072
  1447. !     movl $ SYMBOL_NAME(pg0)+4092,%edi
  1448.       movl $0x03ff007,%eax        /*  4Mb - 4096 + 7 (r/w user,p) */
  1449.       std
  1450.   1:    stosl            /* fill the page backwards - more efficient :-) */
  1451.       subl $0x1000,%eax
  1452.       jge 1b
  1453.       cld
  1454. !     movl $ SYMBOL_NAME(swapper_pg_dir),%eax
  1455.       movl %eax,%cr3            /* cr3 - page directory start */
  1456.       movl %cr0,%eax
  1457.       orl $0x80000000,%eax
  1458. ***************
  1459. *** 268,289 ****
  1460.    * by 2-3k.  This would be a good thing to do at some point.....
  1461.    */
  1462.   .org 0x1000
  1463. ! _swapper_pg_dir:
  1464.   /*
  1465.    * The page tables are initialized to only 4MB here - the final page
  1466.    * tables are set up later depending on memory size.
  1467.    */
  1468.   .org 0x2000
  1469. ! _pg0:
  1470.   
  1471.   .org 0x3000
  1472. ! _empty_bad_page:
  1473.   
  1474.   .org 0x4000
  1475. ! _empty_bad_page_table:
  1476.   
  1477.   .org 0x5000
  1478. ! _empty_zero_page:
  1479.   
  1480.   .org 0x6000
  1481.   /*
  1482. --- 265,286 ----
  1483.    * by 2-3k.  This would be a good thing to do at some point.....
  1484.    */
  1485.   .org 0x1000
  1486. ! ENTRY(swapper_pg_dir)
  1487.   /*
  1488.    * The page tables are initialized to only 4MB here - the final page
  1489.    * tables are set up later depending on memory size.
  1490.    */
  1491.   .org 0x2000
  1492. ! ENTRY(pg0)
  1493.   
  1494.   .org 0x3000
  1495. ! ENTRY(empty_bad_page)
  1496.   
  1497.   .org 0x4000
  1498. ! ENTRY(empty_bad_page_table)
  1499.   
  1500.   .org 0x5000
  1501. ! ENTRY(empty_zero_page)
  1502.   
  1503.   .org 0x6000
  1504.   /*
  1505. ***************
  1506. *** 292,308 ****
  1507.    * sector read/write can mess it up. It can contain one full cylinder (sic) of
  1508.    * data (36*2*512 bytes).
  1509.    */
  1510. ! _floppy_track_buffer:
  1511.       .fill 512*2*MAX_BUFFER_SECTORS,1,0
  1512.       
  1513.   stack_start:
  1514. !     .long _init_user_stack+4096
  1515.       .long KERNEL_DS
  1516.   
  1517.   /* This is the default interrupt "handler" :-) */
  1518.   int_msg:
  1519.       .asciz "Unknown interrupt\n"
  1520. ! .align 2
  1521.   ignore_int:
  1522.       cld
  1523.       pushl %eax
  1524. --- 289,305 ----
  1525.    * sector read/write can mess it up. It can contain one full cylinder (sic) of
  1526.    * data (36*2*512 bytes).
  1527.    */
  1528. ! ENTRY(floppy_track_buffer)
  1529.       .fill 512*2*MAX_BUFFER_SECTORS,1,0
  1530.       
  1531.   stack_start:
  1532. !     .long SYMBOL_NAME(init_user_stack)+4096
  1533.       .long KERNEL_DS
  1534.   
  1535.   /* This is the default interrupt "handler" :-) */
  1536.   int_msg:
  1537.       .asciz "Unknown interrupt\n"
  1538. !     ALIGN
  1539.   ignore_int:
  1540.       cld
  1541.       pushl %eax
  1542. ***************
  1543. *** 316,322 ****
  1544.       mov %ax,%es
  1545.       mov %ax,%fs
  1546.       pushl $int_msg
  1547. !     call _printk
  1548.       popl %eax
  1549.       pop %fs
  1550.       pop %es
  1551. --- 313,319 ----
  1552.       mov %ax,%es
  1553.       mov %ax,%fs
  1554.       pushl $int_msg
  1555. !     call SYMBOL_NAME(printk)
  1556.       popl %eax
  1557.       pop %fs
  1558.       pop %es
  1559. ***************
  1560. *** 329,356 ****
  1561.   /*
  1562.    * The interrupt descriptor table has room for 256 idt's
  1563.    */
  1564. ! .align 4
  1565.   .word 0
  1566.   idt_descr:
  1567.       .word 256*8-1        # idt contains 256 entries
  1568. !     .long 0xc0000000+_idt
  1569.   
  1570. ! .align 4
  1571. ! _idt:
  1572.       .fill 256,8,0        # idt is uninitialized
  1573.   
  1574. ! .align 4
  1575.   .word 0
  1576.   gdt_descr:
  1577.       .word (8+2*NR_TASKS)*8-1
  1578. !     .long 0xc0000000+_gdt
  1579.   
  1580.   /*
  1581.    * This gdt setup gives the kernel a 1GB address space at virtual
  1582.    * address 0xC0000000 - space enough for expansion, I hope.
  1583.    */
  1584. ! .align 4
  1585. ! _gdt:
  1586.       .quad 0x0000000000000000    /* NULL descriptor */
  1587.       .quad 0x0000000000000000    /* not used */
  1588.       .quad 0xc0c39a000000ffff    /* 0x10 kernel 1GB code at 0xC0000000 */
  1589. --- 326,351 ----
  1590.   /*
  1591.    * The interrupt descriptor table has room for 256 idt's
  1592.    */
  1593. !     ALIGN
  1594.   .word 0
  1595.   idt_descr:
  1596.       .word 256*8-1        # idt contains 256 entries
  1597. !     .long 0xc0000000+SYMBOL_NAME(idt)
  1598.   
  1599. ! ENTRY(idt)
  1600.       .fill 256,8,0        # idt is uninitialized
  1601.   
  1602. !     ALIGN
  1603.   .word 0
  1604.   gdt_descr:
  1605.       .word (8+2*NR_TASKS)*8-1
  1606. !     .long 0xc0000000+SYMBOL_NAME(gdt)
  1607.   
  1608.   /*
  1609.    * This gdt setup gives the kernel a 1GB address space at virtual
  1610.    * address 0xC0000000 - space enough for expansion, I hope.
  1611.    */
  1612. ! ENTRY(gdt)
  1613.       .quad 0x0000000000000000    /* NULL descriptor */
  1614.       .quad 0x0000000000000000    /* not used */
  1615.       .quad 0xc0c39a000000ffff    /* 0x10 kernel 1GB code at 0xC0000000 */
  1616. diff -c linux/linux/arch/i386/kernel/process.c:1.1.1.4 linux/linux/arch/i386/kernel/process.c:1.1.1.5
  1617. *** linux/linux/arch/i386/kernel/process.c:1.1.1.4    Mon Jul  3 21:01:42 1995
  1618. --- linux/linux/arch/i386/kernel/process.c    Mon Jul  3 21:01:42 1995
  1619. ***************
  1620. *** 194,199 ****
  1621. --- 194,224 ----
  1622.   }
  1623.   
  1624.   /*
  1625. +  * fill in the fpu structure for a core dump..
  1626. +  */
  1627. + int dump_fpu (struct user_i387_struct* fpu)
  1628. + {
  1629. +     int fpvalid;
  1630. + /* Flag indicating the math stuff is valid. We don't support this for the
  1631. +    soft-float routines yet */
  1632. +     if (hard_math) {
  1633. +         if ((fpvalid = current->used_math) != 0) {
  1634. +             if (last_task_used_math == current)
  1635. +                 __asm__("clts ; fnsave %0": :"m" (*fpu));
  1636. +             else
  1637. +                 memcpy(fpu,¤t->tss.i387.hard,sizeof(*fpu));
  1638. +         }
  1639. +     } else {
  1640. +         /* we should dump the emulator state here, but we need to
  1641. +            convert it into standard 387 format first.. */
  1642. +         fpvalid = 0;
  1643. +     }
  1644. +     return fpvalid;
  1645. + }
  1646. + /*
  1647.    * fill in the user structure for a core dump..
  1648.    */
  1649.   void dump_thread(struct pt_regs * regs, struct user * dump)
  1650. ***************
  1651. *** 216,235 ****
  1652.   
  1653.       dump->regs = *regs;
  1654.   
  1655. ! /* Flag indicating the math stuff is valid. We don't support this for the
  1656. !    soft-float routines yet */
  1657. !     if (hard_math) {
  1658. !         if ((dump->u_fpvalid = current->used_math) != 0) {
  1659. !             if (last_task_used_math == current)
  1660. !                 __asm__("clts ; fnsave %0": :"m" (dump->i387));
  1661. !             else
  1662. !                 memcpy(&dump->i387,¤t->tss.i387.hard,sizeof(dump->i387));
  1663. !         }
  1664. !     } else {
  1665. !         /* we should dump the emulator state here, but we need to
  1666. !            convert it into standard 387 format first.. */
  1667. !         dump->u_fpvalid = 0;
  1668. !     }
  1669.   }
  1670.   
  1671.   asmlinkage int sys_fork(struct pt_regs regs)
  1672. --- 241,247 ----
  1673.   
  1674.       dump->regs = *regs;
  1675.   
  1676. !     dump->u_fpvalid = dump_fpu (&dump->i387);
  1677.   }
  1678.   
  1679.   asmlinkage int sys_fork(struct pt_regs regs)
  1680. diff -c linux/linux/arch/i386/kernel/setup.c:1.1.1.3 linux/linux/arch/i386/kernel/setup.c:1.1.1.4
  1681. *** linux/linux/arch/i386/kernel/setup.c:1.1.1.3    Mon Jul  3 21:01:42 1995
  1682. --- linux/linux/arch/i386/kernel/setup.c    Mon Jul  3 21:01:42 1995
  1683. ***************
  1684. *** 55,61 ****
  1685.   unsigned char aux_device_present;
  1686.   extern int ramdisk_size;
  1687.   extern int root_mountflags;
  1688. ! extern int etext, edata, end;
  1689.   
  1690.   extern char empty_zero_page[PAGE_SIZE];
  1691.   
  1692. --- 55,61 ----
  1693.   unsigned char aux_device_present;
  1694.   extern int ramdisk_size;
  1695.   extern int root_mountflags;
  1696. ! extern int _etext, _edata, _end;
  1697.   
  1698.   extern char empty_zero_page[PAGE_SIZE];
  1699.   
  1700. ***************
  1701. *** 95,105 ****
  1702.   #endif
  1703.       if (MOUNT_ROOT_RDONLY)
  1704.           root_mountflags |= MS_RDONLY;
  1705. !     memory_start = (unsigned long) &end;
  1706.       init_task.mm->start_code = TASK_SIZE;
  1707. !     init_task.mm->end_code = TASK_SIZE + (unsigned long) &etext;
  1708. !     init_task.mm->end_data = TASK_SIZE + (unsigned long) &edata;
  1709. !     init_task.mm->brk = TASK_SIZE + (unsigned long) &end;
  1710.   
  1711.       for (;;) {
  1712.           if (c == ' ' && *(unsigned long *)from == *(unsigned long *)"mem=") {
  1713. --- 95,105 ----
  1714.   #endif
  1715.       if (MOUNT_ROOT_RDONLY)
  1716.           root_mountflags |= MS_RDONLY;
  1717. !     memory_start = (unsigned long) &_end;
  1718.       init_task.mm->start_code = TASK_SIZE;
  1719. !     init_task.mm->end_code = TASK_SIZE + (unsigned long) &_etext;
  1720. !     init_task.mm->end_data = TASK_SIZE + (unsigned long) &_edata;
  1721. !     init_task.mm->brk = TASK_SIZE + (unsigned long) &_end;
  1722.   
  1723.       for (;;) {
  1724.           if (c == ' ' && *(unsigned long *)from == *(unsigned long *)"mem=") {
  1725. diff -c linux/linux/arch/i386/kernel/traps.c:1.1.1.1 linux/linux/arch/i386/kernel/traps.c:1.1.1.2
  1726. *** linux/linux/arch/i386/kernel/traps.c:1.1.1.1    Mon Jul  3 21:01:43 1995
  1727. --- linux/linux/arch/i386/kernel/traps.c    Mon Jul  3 21:01:43 1995
  1728. ***************
  1729. *** 99,105 ****
  1730.       unsigned long esp;
  1731.       unsigned short ss;
  1732.       unsigned long *stack, addr, module_start, module_end;
  1733. !     extern char start_kernel, etext;
  1734.   
  1735.       esp = (unsigned long) ®s->esp;
  1736.       ss = KERNEL_DS;
  1737. --- 99,105 ----
  1738.       unsigned long esp;
  1739.       unsigned short ss;
  1740.       unsigned long *stack, addr, module_start, module_end;
  1741. !     extern char start_kernel, _etext;
  1742.   
  1743.       esp = (unsigned long) ®s->esp;
  1744.       ss = KERNEL_DS;
  1745. ***************
  1746. *** 147,153 ****
  1747.            * out the call path that was taken.
  1748.            */
  1749.           if (((addr >= (unsigned long) &start_kernel) &&
  1750. !              (addr <= (unsigned long) &etext)) ||
  1751.               ((addr >= module_start) && (addr <= module_end))) {
  1752.               if (i && ((i % 8) == 0))
  1753.                   printk("\n       ");
  1754. --- 147,153 ----
  1755.            * out the call path that was taken.
  1756.            */
  1757.           if (((addr >= (unsigned long) &start_kernel) &&
  1758. !              (addr <= (unsigned long) &_etext)) ||
  1759.               ((addr >= module_start) && (addr <= module_end))) {
  1760.               if (i && ((i % 8) == 0))
  1761.                   printk("\n       ");
  1762. diff -c linux/linux/arch/i386/math-emu/div_Xsig.S:1.1.1.1 linux/linux/arch/i386/math-emu/div_Xsig.S:1.1.1.2
  1763. *** linux/linux/arch/i386/math-emu/div_Xsig.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  1764. --- linux/linux/arch/i386/math-emu/div_Xsig.S    Mon Jul  3 21:01:44 1995
  1765. ***************
  1766. *** 74,84 ****
  1767.   
  1768.   
  1769.   .text
  1770. !     .align 2,144
  1771. ! .globl _div_Xsig
  1772. ! _div_Xsig:
  1773.       pushl    %ebp
  1774.       movl    %esp,%ebp
  1775.   #ifndef NON_REENTRANT_FPU
  1776. --- 74,80 ----
  1777.   
  1778.   
  1779.   .text
  1780. ! ENTRY(div_Xsig)
  1781.       pushl    %ebp
  1782.       movl    %esp,%ebp
  1783.   #ifndef NON_REENTRANT_FPU
  1784. diff -c linux/linux/arch/i386/math-emu/div_small.S:1.1.1.1 linux/linux/arch/i386/math-emu/div_small.S:1.1.1.2
  1785. *** linux/linux/arch/i386/math-emu/div_small.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  1786. --- linux/linux/arch/i386/math-emu/div_small.S    Mon Jul  3 21:01:44 1995
  1787. ***************
  1788. *** 17,27 ****
  1789.   #include "fpu_asm.h"
  1790.   
  1791.   .text
  1792. !     .align 2,144
  1793. ! .globl _div_small
  1794. ! _div_small:
  1795.       pushl    %ebp
  1796.       movl    %esp,%ebp
  1797.   
  1798. --- 17,23 ----
  1799.   #include "fpu_asm.h"
  1800.   
  1801.   .text
  1802. ! ENTRY(div_small)
  1803.       pushl    %ebp
  1804.       movl    %esp,%ebp
  1805.   
  1806. diff -c linux/linux/arch/i386/math-emu/fpu_asm.h:1.1.1.1 linux/linux/arch/i386/math-emu/fpu_asm.h:1.1.1.2
  1807. *** linux/linux/arch/i386/math-emu/fpu_asm.h:1.1.1.1    Mon Jul  3 21:01:44 1995
  1808. --- linux/linux/arch/i386/math-emu/fpu_asm.h    Mon Jul  3 21:01:44 1995
  1809. ***************
  1810. *** 9,17 ****
  1811.   #ifndef _FPU_ASM_H_
  1812.   #define _FPU_ASM_H_
  1813.   
  1814.   #include "fpu_emu.h"
  1815.   
  1816. ! #define    EXCEPTION    _exception
  1817.   
  1818.   
  1819.   #define PARAM1    8(%ebp)
  1820. --- 9,18 ----
  1821.   #ifndef _FPU_ASM_H_
  1822.   #define _FPU_ASM_H_
  1823.   
  1824. + #include <linux/linkage.h>
  1825.   #include "fpu_emu.h"
  1826.   
  1827. ! #define    EXCEPTION    SYMBOL_NAME(exception)
  1828.   
  1829.   
  1830.   #define PARAM1    8(%ebp)
  1831. diff -c linux/linux/arch/i386/math-emu/mul_Xsig.S:1.1.1.1 linux/linux/arch/i386/math-emu/mul_Xsig.S:1.1.1.2
  1832. *** linux/linux/arch/i386/math-emu/mul_Xsig.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  1833. --- linux/linux/arch/i386/math-emu/mul_Xsig.S    Mon Jul  3 21:01:44 1995
  1834. ***************
  1835. *** 24,32 ****
  1836.   #include "fpu_asm.h"
  1837.   
  1838.   .text
  1839. !     .align 2,144
  1840. ! .globl _mul32_Xsig
  1841. ! _mul32_Xsig:
  1842.       pushl %ebp
  1843.       movl %esp,%ebp
  1844.       subl $16,%esp
  1845. --- 24,30 ----
  1846.   #include "fpu_asm.h"
  1847.   
  1848.   .text
  1849. ! ENTRY(mul32_Xsig)
  1850.       pushl %ebp
  1851.       movl %esp,%ebp
  1852.       subl $16,%esp
  1853. ***************
  1854. *** 66,74 ****
  1855.       ret
  1856.   
  1857.   
  1858. !     .align 2,144
  1859. ! .globl _mul64_Xsig
  1860. ! _mul64_Xsig:
  1861.       pushl %ebp
  1862.       movl %esp,%ebp
  1863.       subl $16,%esp
  1864. --- 64,70 ----
  1865.       ret
  1866.   
  1867.   
  1868. ! ENTRY(mul64_Xsig)
  1869.       pushl %ebp
  1870.       movl %esp,%ebp
  1871.       subl $16,%esp
  1872. ***************
  1873. *** 121,129 ****
  1874.   
  1875.   
  1876.   
  1877. !     .align 2,144
  1878. ! .globl _mul_Xsig_Xsig
  1879. ! _mul_Xsig_Xsig:
  1880.       pushl %ebp
  1881.       movl %esp,%ebp
  1882.       subl $16,%esp
  1883. --- 117,123 ----
  1884.   
  1885.   
  1886.   
  1887. ! ENTRY(mul_Xsig_Xsig)
  1888.       pushl %ebp
  1889.       movl %esp,%ebp
  1890.       subl $16,%esp
  1891. diff -c linux/linux/arch/i386/math-emu/polynom_Xsig.S:1.1.1.1 linux/linux/arch/i386/math-emu/polynom_Xsig.S:1.1.1.2
  1892. *** linux/linux/arch/i386/math-emu/polynom_Xsig.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  1893. --- linux/linux/arch/i386/math-emu/polynom_Xsig.S    Mon Jul  3 21:01:44 1995
  1894. ***************
  1895. *** 36,44 ****
  1896.   #define OVERFLOWED      -16(%ebp)    /* addition overflow flag */
  1897.   
  1898.   .text
  1899. !     .align 2,144
  1900. ! .globl _polynomial_Xsig
  1901. ! _polynomial_Xsig:
  1902.       pushl    %ebp
  1903.       movl    %esp,%ebp
  1904.       subl    $32,%esp
  1905. --- 36,42 ----
  1906.   #define OVERFLOWED      -16(%ebp)    /* addition overflow flag */
  1907.   
  1908.   .text
  1909. ! ENTRY(polynomial_Xsig)
  1910.       pushl    %ebp
  1911.       movl    %esp,%ebp
  1912.       subl    $32,%esp
  1913. diff -c linux/linux/arch/i386/math-emu/reg_div.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_div.S:1.1.1.2
  1914. *** linux/linux/arch/i386/math-emu/reg_div.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  1915. --- linux/linux/arch/i386/math-emu/reg_div.S    Mon Jul  3 21:01:44 1995
  1916. ***************
  1917. *** 19,28 ****
  1918.   
  1919.   
  1920.   .text
  1921. !     .align 2
  1922. ! .globl    _reg_div
  1923. ! _reg_div:
  1924.       pushl    %ebp
  1925.       movl    %esp,%ebp
  1926.   #ifndef NON_REENTRANT_FPU
  1927. --- 19,25 ----
  1928.   
  1929.   
  1930.   .text
  1931. ! ENTRY(reg_div)
  1932.       pushl    %ebp
  1933.       movl    %esp,%ebp
  1934.   #ifndef NON_REENTRANT_FPU
  1935. ***************
  1936. *** 47,53 ****
  1937.       cmpl    EXP_UNDER,EXP(%esi)
  1938.       jg    xL_arg1_not_denormal
  1939.   
  1940. !     call    _denormal_operand
  1941.       orl    %eax,%eax
  1942.       jnz    fpu_Arith_exit
  1943.   
  1944. --- 44,50 ----
  1945.       cmpl    EXP_UNDER,EXP(%esi)
  1946.       jg    xL_arg1_not_denormal
  1947.   
  1948. !     call    SYMBOL_NAME(denormal_operand)
  1949.       orl    %eax,%eax
  1950.       jnz    fpu_Arith_exit
  1951.   
  1952. ***************
  1953. *** 55,61 ****
  1954.       cmpl    EXP_UNDER,EXP(%ebx)
  1955.       jg    xL_arg2_not_denormal
  1956.   
  1957. !     call    _denormal_operand
  1958.       orl    %eax,%eax
  1959.       jnz    fpu_Arith_exit
  1960.   
  1961. --- 52,58 ----
  1962.       cmpl    EXP_UNDER,EXP(%ebx)
  1963.       jg    xL_arg2_not_denormal
  1964.   
  1965. !     call    SYMBOL_NAME(denormal_operand)
  1966.       orl    %eax,%eax
  1967.       jnz    fpu_Arith_exit
  1968.   
  1969. ***************
  1970. *** 75,81 ****
  1971.       addl    EXP_BIAS,%edx
  1972.       movl    %edx,EXP(%edi)
  1973.   
  1974. !     jmp    _divide_kernel
  1975.   
  1976.   
  1977.   /*-----------------------------------------------------------------------*/
  1978. --- 72,78 ----
  1979.       addl    EXP_BIAS,%edx
  1980.       movl    %edx,EXP(%edi)
  1981.   
  1982. !     jmp    SYMBOL_NAME(divide_kernel)
  1983.   
  1984.   
  1985.   /*-----------------------------------------------------------------------*/
  1986. ***************
  1987. *** 92,105 ****
  1988.       pushl    %edi            /* Destination */
  1989.       pushl    %esi
  1990.       pushl    %ebx            /* Ordering is important here */
  1991. !     call    _real_2op_NaN
  1992.       jmp    LDiv_exit
  1993.   
  1994.   /* Invalid operations */
  1995.   L_zero_zero:
  1996.   L_inf_inf:
  1997.       pushl    %edi            /* Destination */
  1998. !     call    _arith_invalid        /* 0/0 or Infinity/Infinity */
  1999.       jmp    LDiv_exit
  2000.   
  2001.   L_no_NaN_arg:
  2002. --- 89,102 ----
  2003.       pushl    %edi            /* Destination */
  2004.       pushl    %esi
  2005.       pushl    %ebx            /* Ordering is important here */
  2006. !     call    SYMBOL_NAME(real_2op_NaN)
  2007.       jmp    LDiv_exit
  2008.   
  2009.   /* Invalid operations */
  2010.   L_zero_zero:
  2011.   L_inf_inf:
  2012.       pushl    %edi            /* Destination */
  2013. !     call    SYMBOL_NAME(arith_invalid) /* 0/0 or Infinity/Infinity */
  2014.       jmp    LDiv_exit
  2015.   
  2016.   L_no_NaN_arg:
  2017. ***************
  2018. *** 126,132 ****
  2019.       cmpl    EXP_UNDER,EXP(%ebx)
  2020.       jg    L_copy_arg1        /* Answer is Inf */
  2021.   
  2022. !     call    _denormal_operand
  2023.       orl    %eax,%eax
  2024.       jnz    fpu_Arith_exit
  2025.   #endif DENORM_OPERAND
  2026. --- 123,129 ----
  2027.       cmpl    EXP_UNDER,EXP(%ebx)
  2028.       jg    L_copy_arg1        /* Answer is Inf */
  2029.   
  2030. !     call    SYMBOL_NAME(denormal_operand)
  2031.       orl    %eax,%eax
  2032.       jnz    fpu_Arith_exit
  2033.   #endif DENORM_OPERAND
  2034. ***************
  2035. *** 151,157 ****
  2036.       movb    SIGN(%esi),%al
  2037.       xorb    SIGN(%ebx),%al
  2038.       pushl    %eax            /* lower 8 bits have the sign */
  2039. !     call    _divide_by_zero
  2040.       jmp    LDiv_exit
  2041.   
  2042.   L_arg2_not_zero:
  2043. --- 148,154 ----
  2044.       movb    SIGN(%esi),%al
  2045.       xorb    SIGN(%ebx),%al
  2046.       pushl    %eax            /* lower 8 bits have the sign */
  2047. !     call    SYMBOL_NAME(divide_by_zero)
  2048.       jmp    LDiv_exit
  2049.   
  2050.   L_arg2_not_zero:
  2051. ***************
  2052. *** 165,171 ****
  2053.       cmpl    EXP_UNDER,EXP(%esi)
  2054.       jg    L_return_zero        /* Answer is zero */
  2055.   
  2056. !     call    _denormal_operand
  2057.       orl    %eax,%eax
  2058.       jnz    fpu_Arith_exit
  2059.   #endif DENORM_OPERAND
  2060. --- 162,168 ----
  2061.       cmpl    EXP_UNDER,EXP(%esi)
  2062.       jg    L_return_zero        /* Answer is zero */
  2063.   
  2064. !     call    SYMBOL_NAME(denormal_operand)
  2065.       orl    %eax,%eax
  2066.       jnz    fpu_Arith_exit
  2067.   #endif DENORM_OPERAND
  2068. ***************
  2069. *** 185,191 ****
  2070.       cmpl    EXP_UNDER,EXP(%ebx)
  2071.       jg    L_copy_arg1        /* Answer is zero */
  2072.   
  2073. !     call    _denormal_operand
  2074.       orl    %eax,%eax
  2075.       jnz    fpu_Arith_exit
  2076.   #endif DENORM_OPERAND
  2077. --- 182,188 ----
  2078.       cmpl    EXP_UNDER,EXP(%ebx)
  2079.       jg    L_copy_arg1        /* Answer is zero */
  2080.   
  2081. !     call    SYMBOL_NAME(denormal_operand)
  2082.       orl    %eax,%eax
  2083.       jnz    fpu_Arith_exit
  2084.   #endif DENORM_OPERAND
  2085. ***************
  2086. *** 241,251 ****
  2087.       call    EXCEPTION
  2088.   
  2089.       /* Generate a NaN for unknown tags */
  2090. !     movl    _CONST_QNaN,%eax
  2091.       movl    %eax,(%edi)
  2092. !     movl    _CONST_QNaN+4,%eax
  2093.       movl    %eax,SIGL(%edi)
  2094. !     movl    _CONST_QNaN+8,%eax
  2095.       movl    %eax,SIGH(%edi)
  2096.       jmp    LDiv_exit        /* %eax is nz */
  2097.   #endif PARANOID
  2098. --- 238,248 ----
  2099.       call    EXCEPTION
  2100.   
  2101.       /* Generate a NaN for unknown tags */
  2102. !     movl    SYMBOL_NAME(CONST_QNaN),%eax
  2103.       movl    %eax,(%edi)
  2104. !     movl    SYMBOL_NAME(CONST_QNaN)+4,%eax
  2105.       movl    %eax,SIGL(%edi)
  2106. !     movl    SYMBOL_NAME(CONST_QNaN)+8,%eax
  2107.       movl    %eax,SIGH(%edi)
  2108.       jmp    LDiv_exit        /* %eax is nz */
  2109.   #endif PARANOID
  2110. diff -c linux/linux/arch/i386/math-emu/reg_norm.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_norm.S:1.1.1.2
  2111. *** linux/linux/arch/i386/math-emu/reg_norm.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  2112. --- linux/linux/arch/i386/math-emu/reg_norm.S    Mon Jul  3 21:01:44 1995
  2113. ***************
  2114. *** 18,28 ****
  2115.   
  2116.   
  2117.   .text
  2118. !     .align 2,144
  2119. ! .globl _normalize
  2120. ! _normalize:
  2121.       pushl    %ebp
  2122.       movl    %esp,%ebp
  2123.       pushl    %ebx
  2124. --- 18,24 ----
  2125.   
  2126.   
  2127.   .text
  2128. ! ENTRY(normalize)
  2129.       pushl    %ebp
  2130.       movl    %esp,%ebp
  2131.       pushl    %ebx
  2132. ***************
  2133. *** 34,40 ****
  2134.       je    L_ok
  2135.   
  2136.       pushl    $0x220
  2137. !     call    _exception
  2138.       addl    $4,%esp
  2139.   
  2140.   L_ok:
  2141. --- 30,36 ----
  2142.       je    L_ok
  2143.   
  2144.       pushl    $0x220
  2145. !     call    SYMBOL_NAME(exception)
  2146.       addl    $4,%esp
  2147.   
  2148.   L_ok:
  2149. ***************
  2150. *** 86,108 ****
  2151.   
  2152.   L_underflow:
  2153.       push    %ebx
  2154. !     call    _arith_underflow
  2155.       pop    %ebx
  2156.       jmp    L_exit
  2157.   
  2158.   L_overflow:
  2159.       push    %ebx
  2160. !     call    _arith_overflow
  2161.       pop    %ebx
  2162.       jmp    L_exit
  2163.   
  2164.   
  2165.   
  2166.   /* Normalise without reporting underflow or overflow */
  2167. !     .align 2,144
  2168. ! .globl _normalize_nuo
  2169. ! _normalize_nuo:
  2170.       pushl    %ebp
  2171.       movl    %esp,%ebp
  2172.       pushl    %ebx
  2173. --- 82,101 ----
  2174.   
  2175.   L_underflow:
  2176.       push    %ebx
  2177. !     call    SYMBOL_NAME(arith_underflow)
  2178.       pop    %ebx
  2179.       jmp    L_exit
  2180.   
  2181.   L_overflow:
  2182.       push    %ebx
  2183. !     call    SYMBOL_NAME(arith_overflow)
  2184.       pop    %ebx
  2185.       jmp    L_exit
  2186.   
  2187.   
  2188.   
  2189.   /* Normalise without reporting underflow or overflow */
  2190. ! ENTRY(normalize_nuo)
  2191.       pushl    %ebp
  2192.       movl    %esp,%ebp
  2193.       pushl    %ebx
  2194. ***************
  2195. *** 114,120 ****
  2196.       je    L_ok_nuo
  2197.   
  2198.       pushl    $0x221
  2199. !     call    _exception
  2200.       addl    $4,%esp
  2201.   
  2202.   L_ok_nuo:
  2203. --- 107,113 ----
  2204.       je    L_ok_nuo
  2205.   
  2206.       pushl    $0x221
  2207. !     call    SYMBOL_NAME(exception)
  2208.       addl    $4,%esp
  2209.   
  2210.   L_ok_nuo:
  2211. diff -c linux/linux/arch/i386/math-emu/reg_round.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_round.S:1.1.1.2
  2212. *** linux/linux/arch/i386/math-emu/reg_round.S:1.1.1.1    Mon Jul  3 21:01:44 1995
  2213. --- linux/linux/arch/i386/math-emu/reg_round.S    Mon Jul  3 21:01:44 1995
  2214. ***************
  2215. *** 101,114 ****
  2216.   
  2217.   
  2218.   .text
  2219. -     .align 2,144
  2220.   .globl fpu_reg_round
  2221.   .globl fpu_reg_round_sqrt
  2222.   .globl fpu_Arith_exit
  2223. - .globl _round_reg
  2224.   
  2225.   /* Entry point when called from C */
  2226. ! _round_reg:
  2227.       pushl    %ebp
  2228.       movl    %esp,%ebp
  2229.       pushl    %esi
  2230. --- 101,112 ----
  2231.   
  2232.   
  2233.   .text
  2234.   .globl fpu_reg_round
  2235.   .globl fpu_reg_round_sqrt
  2236.   .globl fpu_Arith_exit
  2237.   
  2238.   /* Entry point when called from C */
  2239. ! ENTRY(round_reg)
  2240.       pushl    %ebp
  2241.       movl    %esp,%ebp
  2242.       pushl    %esi
  2243. ***************
  2244. *** 435,441 ****
  2245.    */
  2246.   xL_precision_lost_up:
  2247.       push    %eax
  2248. !     call    _set_precision_flag_up
  2249.       popl    %eax
  2250.       jmp    xL_no_precision_loss
  2251.   
  2252. --- 433,439 ----
  2253.    */
  2254.   xL_precision_lost_up:
  2255.       push    %eax
  2256. !     call    SYMBOL_NAME(set_precision_flag_up)
  2257.       popl    %eax
  2258.       jmp    xL_no_precision_loss
  2259.   
  2260. ***************
  2261. *** 445,451 ****
  2262.    */
  2263.   xL_precision_lost_down:
  2264.       push    %eax
  2265. !     call    _set_precision_flag_down
  2266.       popl    %eax
  2267.       jmp    xL_no_precision_loss
  2268.   
  2269. --- 443,449 ----
  2270.    */
  2271.   xL_precision_lost_down:
  2272.       push    %eax
  2273. !     call    SYMBOL_NAME(set_precision_flag_down)
  2274.       popl    %eax
  2275.       jmp    xL_no_precision_loss
  2276.   
  2277. ***************
  2278. *** 598,604 ****
  2279.       /* There must be a masked underflow */
  2280.       push    %eax
  2281.       pushl    EX_Underflow
  2282. !     call    _exception
  2283.       popl    %eax
  2284.       popl    %eax
  2285.       jmp    xL_Normalised
  2286. --- 596,602 ----
  2287.       /* There must be a masked underflow */
  2288.       push    %eax
  2289.       pushl    EX_Underflow
  2290. !     call    SYMBOL_NAME(exception)
  2291.       popl    %eax
  2292.       popl    %eax
  2293.       jmp    xL_Normalised
  2294. ***************
  2295. *** 610,621 ****
  2296.    */
  2297.   L_underflow_to_zero:
  2298.       push    %eax
  2299. !     call    _set_precision_flag_down
  2300.       popl    %eax
  2301.   
  2302.       push    %eax
  2303.       pushl    EX_Underflow
  2304. !     call    _exception
  2305.       popl    %eax
  2306.       popl    %eax
  2307.   
  2308. --- 608,619 ----
  2309.    */
  2310.   L_underflow_to_zero:
  2311.       push    %eax
  2312. !     call    SYMBOL_NAME(set_precision_flag_down)
  2313.       popl    %eax
  2314.   
  2315.       push    %eax
  2316.       pushl    EX_Underflow
  2317. !     call    SYMBOL_NAME(exception)
  2318.       popl    %eax
  2319.       popl    %eax
  2320.   
  2321. ***************
  2322. *** 628,634 ****
  2323.   /* The operations resulted in a number too large to represent. */
  2324.   L_overflow:
  2325.       push    %edi
  2326. !     call    _arith_overflow
  2327.       pop    %edi
  2328.       jmp    fpu_reg_round_exit
  2329.   
  2330. --- 626,632 ----
  2331.   /* The operations resulted in a number too large to represent. */
  2332.   L_overflow:
  2333.       push    %edi
  2334. !     call    SYMBOL_NAME(arith_overflow)
  2335.       pop    %edi
  2336.       jmp    fpu_reg_round_exit
  2337.   
  2338. diff -c linux/linux/arch/i386/math-emu/reg_u_add.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_u_add.S:1.1.1.2
  2339. *** linux/linux/arch/i386/math-emu/reg_u_add.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2340. --- linux/linux/arch/i386/math-emu/reg_u_add.S    Mon Jul  3 21:01:45 1995
  2341. ***************
  2342. *** 29,37 ****
  2343.   #include "control_w.h"
  2344.   
  2345.   .text
  2346. !     .align 2,144
  2347. ! .globl _reg_u_add
  2348. ! _reg_u_add:
  2349.       pushl    %ebp
  2350.       movl    %esp,%ebp
  2351.       pushl    %esi
  2352. --- 29,35 ----
  2353.   #include "control_w.h"
  2354.   
  2355.   .text
  2356. ! ENTRY(reg_u_add)
  2357.       pushl    %ebp
  2358.       movl    %esp,%ebp
  2359.       pushl    %esi
  2360. ***************
  2361. *** 45,51 ****
  2362.       cmpl    EXP_UNDER,EXP(%esi)
  2363.       jg    xOp1_not_denorm
  2364.   
  2365. !     call    _denormal_operand
  2366.       orl    %eax,%eax
  2367.       jnz    fpu_Arith_exit
  2368.   
  2369. --- 43,49 ----
  2370.       cmpl    EXP_UNDER,EXP(%esi)
  2371.       jg    xOp1_not_denorm
  2372.   
  2373. !     call    SYMBOL_NAME(denormal_operand)
  2374.       orl    %eax,%eax
  2375.       jnz    fpu_Arith_exit
  2376.   
  2377. ***************
  2378. *** 53,59 ****
  2379.       cmpl    EXP_UNDER,EXP(%edi)
  2380.       jg    xOp2_not_denorm
  2381.   
  2382. !     call    _denormal_operand
  2383.       orl    %eax,%eax
  2384.       jnz    fpu_Arith_exit
  2385.   
  2386. --- 51,57 ----
  2387.       cmpl    EXP_UNDER,EXP(%edi)
  2388.       jg    xOp2_not_denorm
  2389.   
  2390. !     call    SYMBOL_NAME(denormal_operand)
  2391.       orl    %eax,%eax
  2392.       jnz    fpu_Arith_exit
  2393.   
  2394. diff -c linux/linux/arch/i386/math-emu/reg_u_div.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_u_div.S:1.1.1.2
  2395. *** linux/linux/arch/i386/math-emu/reg_u_div.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2396. --- linux/linux/arch/i386/math-emu/reg_u_div.S    Mon Jul  3 21:01:45 1995
  2397. ***************
  2398. *** 69,81 ****
  2399.   
  2400.   
  2401.   .text
  2402. !     .align 2,144
  2403. ! .globl _reg_u_div
  2404. ! .globl _divide_kernel
  2405. ! _reg_u_div:
  2406.       pushl    %ebp
  2407.       movl    %esp,%ebp
  2408.   #ifndef NON_REENTRANT_FPU
  2409. --- 69,75 ----
  2410.   
  2411.   
  2412.   .text
  2413. ! ENTRY(reg_u_div)
  2414.       pushl    %ebp
  2415.       movl    %esp,%ebp
  2416.   #ifndef NON_REENTRANT_FPU
  2417. ***************
  2418. *** 95,101 ****
  2419.       cmpl    EXP_UNDER,%eax
  2420.       jg    xOp1_not_denorm
  2421.   
  2422. !     call    _denormal_operand
  2423.       orl    %eax,%eax
  2424.       jnz    fpu_Arith_exit
  2425.   
  2426. --- 89,95 ----
  2427.       cmpl    EXP_UNDER,%eax
  2428.       jg    xOp1_not_denorm
  2429.   
  2430. !     call    SYMBOL_NAME(denormal_operand)
  2431.       orl    %eax,%eax
  2432.       jnz    fpu_Arith_exit
  2433.   
  2434. ***************
  2435. *** 104,117 ****
  2436.       cmpl    EXP_UNDER,%eax
  2437.       jg    xOp2_not_denorm
  2438.   
  2439. !     call    _denormal_operand
  2440.       orl    %eax,%eax
  2441.       jnz    fpu_Arith_exit
  2442.   
  2443.   xOp2_not_denorm:
  2444.   #endif DENORM_OPERAND
  2445.   
  2446. ! _divide_kernel:
  2447.   #ifdef PARANOID
  2448.   /*    testl    $0x80000000, SIGH(%esi)    // Dividend */
  2449.   /*    je    L_bugged */
  2450. --- 98,111 ----
  2451.       cmpl    EXP_UNDER,%eax
  2452.       jg    xOp2_not_denorm
  2453.   
  2454. !     call    SYMBOL_NAME(denormal_operand)
  2455.       orl    %eax,%eax
  2456.       jnz    fpu_Arith_exit
  2457.   
  2458.   xOp2_not_denorm:
  2459.   #endif DENORM_OPERAND
  2460.   
  2461. ! ENTRY(divide_kernel)
  2462.   #ifdef PARANOID
  2463.   /*    testl    $0x80000000, SIGH(%esi)    // Dividend */
  2464.   /*    je    L_bugged */
  2465. diff -c linux/linux/arch/i386/math-emu/reg_u_mul.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_u_mul.S:1.1.1.2
  2466. *** linux/linux/arch/i386/math-emu/reg_u_mul.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2467. --- linux/linux/arch/i386/math-emu/reg_u_mul.S    Mon Jul  3 21:01:45 1995
  2468. ***************
  2469. *** 44,53 ****
  2470.   
  2471.   
  2472.   .text
  2473. !     .align 2,144
  2474. ! .globl _reg_u_mul
  2475. ! _reg_u_mul:
  2476.       pushl    %ebp
  2477.       movl    %esp,%ebp
  2478.   #ifndef NON_REENTRANT_FPU
  2479. --- 44,50 ----
  2480.   
  2481.   
  2482.   .text
  2483. ! ENTRY(reg_u_mul)
  2484.       pushl    %ebp
  2485.       movl    %esp,%ebp
  2486.   #ifndef NON_REENTRANT_FPU
  2487. ***************
  2488. *** 73,79 ****
  2489.       cmpl    EXP_UNDER,%eax
  2490.       jg    xOp1_not_denorm
  2491.   
  2492. !     call    _denormal_operand
  2493.       orl    %eax,%eax
  2494.       jnz    fpu_Arith_exit
  2495.   
  2496. --- 70,76 ----
  2497.       cmpl    EXP_UNDER,%eax
  2498.       jg    xOp1_not_denorm
  2499.   
  2500. !     call    SYMBOL_NAME(denormal_operand)
  2501.       orl    %eax,%eax
  2502.       jnz    fpu_Arith_exit
  2503.   
  2504. ***************
  2505. *** 82,88 ****
  2506.       cmpl    EXP_UNDER,%eax
  2507.       jg    xOp2_not_denorm
  2508.   
  2509. !     call    _denormal_operand
  2510.       orl    %eax,%eax
  2511.       jnz    fpu_Arith_exit
  2512.   
  2513. --- 79,85 ----
  2514.       cmpl    EXP_UNDER,%eax
  2515.       jg    xOp2_not_denorm
  2516.   
  2517. !     call    SYMBOL_NAME(denormal_operand)
  2518.       orl    %eax,%eax
  2519.       jnz    fpu_Arith_exit
  2520.   
  2521. diff -c linux/linux/arch/i386/math-emu/reg_u_sub.S:1.1.1.1 linux/linux/arch/i386/math-emu/reg_u_sub.S:1.1.1.2
  2522. *** linux/linux/arch/i386/math-emu/reg_u_sub.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2523. --- linux/linux/arch/i386/math-emu/reg_u_sub.S    Mon Jul  3 21:01:45 1995
  2524. ***************
  2525. *** 30,38 ****
  2526.   #include "control_w.h"
  2527.   
  2528.   .text
  2529. !     .align 2,144
  2530. ! .globl _reg_u_sub
  2531. ! _reg_u_sub:
  2532.       pushl    %ebp
  2533.       movl    %esp,%ebp
  2534.       pushl    %esi
  2535. --- 30,36 ----
  2536.   #include "control_w.h"
  2537.   
  2538.   .text
  2539. ! ENTRY(reg_u_sub)
  2540.       pushl    %ebp
  2541.       movl    %esp,%ebp
  2542.       pushl    %esi
  2543. ***************
  2544. *** 46,52 ****
  2545.       cmpl    EXP_UNDER,EXP(%esi)
  2546.       jg    xOp1_not_denorm
  2547.   
  2548. !     call    _denormal_operand
  2549.       orl    %eax,%eax
  2550.       jnz    fpu_Arith_exit
  2551.   
  2552. --- 44,50 ----
  2553.       cmpl    EXP_UNDER,EXP(%esi)
  2554.       jg    xOp1_not_denorm
  2555.   
  2556. !     call    SYMBOL_NAME(denormal_operand)
  2557.       orl    %eax,%eax
  2558.       jnz    fpu_Arith_exit
  2559.   
  2560. ***************
  2561. *** 54,60 ****
  2562.       cmpl    EXP_UNDER,EXP(%edi)
  2563.       jg    xOp2_not_denorm
  2564.   
  2565. !     call    _denormal_operand
  2566.       orl    %eax,%eax
  2567.       jnz    fpu_Arith_exit
  2568.   
  2569. --- 52,58 ----
  2570.       cmpl    EXP_UNDER,EXP(%edi)
  2571.       jg    xOp2_not_denorm
  2572.   
  2573. !     call    SYMBOL_NAME(denormal_operand)
  2574.       orl    %eax,%eax
  2575.       jnz    fpu_Arith_exit
  2576.   
  2577. diff -c linux/linux/arch/i386/math-emu/round_Xsig.S:1.1.1.1 linux/linux/arch/i386/math-emu/round_Xsig.S:1.1.1.2
  2578. *** linux/linux/arch/i386/math-emu/round_Xsig.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2579. --- linux/linux/arch/i386/math-emu/round_Xsig.S    Mon Jul  3 21:01:45 1995
  2580. ***************
  2581. *** 22,32 ****
  2582.   
  2583.   
  2584.   .text
  2585. !     .align 2,144
  2586. ! .globl _round_Xsig
  2587. ! _round_Xsig:
  2588.       pushl    %ebp
  2589.       movl    %esp,%ebp
  2590.       pushl    %ebx        /* Reserve some space */
  2591. --- 22,28 ----
  2592.   
  2593.   
  2594.   .text
  2595. ! ENTRY(round_Xsig)
  2596.       pushl    %ebp
  2597.       movl    %esp,%ebp
  2598.       pushl    %ebx        /* Reserve some space */
  2599. ***************
  2600. *** 86,95 ****
  2601.   
  2602.   
  2603.   
  2604. !     .align 2,144
  2605. ! .globl _norm_Xsig
  2606. ! _norm_Xsig:
  2607.       pushl    %ebp
  2608.       movl    %esp,%ebp
  2609.       pushl    %ebx        /* Reserve some space */
  2610. --- 82,88 ----
  2611.   
  2612.   
  2613.   
  2614. ! ENTRY(norm_Xsig)
  2615.       pushl    %ebp
  2616.       movl    %esp,%ebp
  2617.       pushl    %ebx        /* Reserve some space */
  2618. diff -c linux/linux/arch/i386/math-emu/shr_Xsig.S:1.1.1.1 linux/linux/arch/i386/math-emu/shr_Xsig.S:1.1.1.2
  2619. *** linux/linux/arch/i386/math-emu/shr_Xsig.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2620. --- linux/linux/arch/i386/math-emu/shr_Xsig.S    Mon Jul  3 21:01:45 1995
  2621. ***************
  2622. *** 21,30 ****
  2623.   #include "fpu_asm.h"
  2624.   
  2625.   .text
  2626. !     .align 2,144
  2627. !     .globl    _shr_Xsig
  2628. ! _shr_Xsig:
  2629.       push    %ebp
  2630.       movl    %esp,%ebp
  2631.       pushl    %esi
  2632. --- 21,27 ----
  2633.   #include "fpu_asm.h"
  2634.   
  2635.   .text
  2636. ! ENTRY(shr_Xsig)
  2637.       push    %ebp
  2638.       movl    %esp,%ebp
  2639.       pushl    %esi
  2640. diff -c linux/linux/arch/i386/math-emu/wm_shrx.S:1.1.1.1 linux/linux/arch/i386/math-emu/wm_shrx.S:1.1.1.2
  2641. *** linux/linux/arch/i386/math-emu/wm_shrx.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2642. --- linux/linux/arch/i386/math-emu/wm_shrx.S    Mon Jul  3 21:01:45 1995
  2643. ***************
  2644. *** 17,24 ****
  2645.   #include "fpu_asm.h"
  2646.   
  2647.   .text
  2648. -     .align 2,144
  2649.   /*---------------------------------------------------------------------------+
  2650.    |   unsigned shrx(void *arg1, unsigned arg2)                                |
  2651.    |                                                                           |
  2652. --- 17,22 ----
  2653. ***************
  2654. *** 33,41 ****
  2655.    |   Results returned in the 64 bit arg and eax.                             |
  2656.    +---------------------------------------------------------------------------*/
  2657.   
  2658. !     .globl    _shrx
  2659. ! _shrx:
  2660.       push    %ebp
  2661.       movl    %esp,%ebp
  2662.       pushl    %esi
  2663. --- 31,37 ----
  2664.    |   Results returned in the 64 bit arg and eax.                             |
  2665.    +---------------------------------------------------------------------------*/
  2666.   
  2667. ! ENTRY(shrx)
  2668.       push    %ebp
  2669.       movl    %esp,%ebp
  2670.       pushl    %esi
  2671. ***************
  2672. *** 113,120 ****
  2673.    |   part which has been shifted out of the arg.                             |
  2674.    |   Results returned in the 64 bit arg and eax.                             |
  2675.    +---------------------------------------------------------------------------*/
  2676. !     .globl    _shrxs
  2677. ! _shrxs:
  2678.       push    %ebp
  2679.       movl    %esp,%ebp
  2680.       pushl    %esi
  2681. --- 109,115 ----
  2682.    |   part which has been shifted out of the arg.                             |
  2683.    |   Results returned in the 64 bit arg and eax.                             |
  2684.    +---------------------------------------------------------------------------*/
  2685. ! ENTRY(shrxs)
  2686.       push    %ebp
  2687.       movl    %esp,%ebp
  2688.       pushl    %esi
  2689. diff -c linux/linux/arch/i386/math-emu/wm_sqrt.S:1.1.1.1 linux/linux/arch/i386/math-emu/wm_sqrt.S:1.1.1.2
  2690. *** linux/linux/arch/i386/math-emu/wm_sqrt.S:1.1.1.1    Mon Jul  3 21:01:45 1995
  2691. --- linux/linux/arch/i386/math-emu/wm_sqrt.S    Mon Jul  3 21:01:46 1995
  2692. ***************
  2693. *** 74,83 ****
  2694.   
  2695.   
  2696.   .text
  2697. !     .align 2,144
  2698. ! .globl _wm_sqrt
  2699. ! _wm_sqrt:
  2700.       pushl    %ebp
  2701.       movl    %esp,%ebp
  2702.   #ifndef NON_REENTRANT_FPU
  2703. --- 74,80 ----
  2704.   
  2705.   
  2706.   .text
  2707. ! ENTRY(wm_sqrt)
  2708.       pushl    %ebp
  2709.       movl    %esp,%ebp
  2710.   #ifndef NON_REENTRANT_FPU
  2711. diff -c linux/linux/arch/i386/mm/init.c:1.1.1.4 linux/linux/arch/i386/mm/init.c:1.1.1.5
  2712. *** linux/linux/arch/i386/mm/init.c:1.1.1.4    Mon Jul  3 21:01:46 1995
  2713. --- linux/linux/arch/i386/mm/init.c    Mon Jul  3 21:01:46 1995
  2714. ***************
  2715. *** 161,167 ****
  2716.       int reservedpages = 0;
  2717.       int datapages = 0;
  2718.       unsigned long tmp;
  2719. !     extern int etext;
  2720.   
  2721.       end_mem &= PAGE_MASK;
  2722.       high_memory = end_mem;
  2723. --- 161,167 ----
  2724.       int reservedpages = 0;
  2725.       int datapages = 0;
  2726.       unsigned long tmp;
  2727. !     extern int _etext;
  2728.   
  2729.       end_mem &= PAGE_MASK;
  2730.       high_memory = end_mem;
  2731. ***************
  2732. *** 194,200 ****
  2733.           if (mem_map[MAP_NR(tmp)]) {
  2734.               if (tmp >= 0xA0000 && tmp < 0x100000)
  2735.                   reservedpages++;
  2736. !             else if (tmp < (unsigned long) &etext)
  2737.                   codepages++;
  2738.               else
  2739.                   datapages++;
  2740. --- 194,200 ----
  2741.           if (mem_map[MAP_NR(tmp)]) {
  2742.               if (tmp >= 0xA0000 && tmp < 0x100000)
  2743.                   reservedpages++;
  2744. !             else if (tmp < (unsigned long) &_etext)
  2745.                   codepages++;
  2746.               else
  2747.                   datapages++;
  2748. diff -c linux/linux/drivers/block/aztcd.c:1.1.1.6 linux/linux/drivers/block/aztcd.c:1.1.1.7
  2749. *** linux/linux/drivers/block/aztcd.c:1.1.1.6    Mon Jul  3 21:01:50 1995
  2750. --- linux/linux/drivers/block/aztcd.c    Mon Jul  3 21:01:50 1995
  2751. ***************
  2752. *** 1,5 ****
  2753.   #define AZT_VERSION "V1.0"
  2754. ! /*      aztcd.c,v 1.1.1.2 1995/03/29 23:36:22 hjl Exp
  2755.       linux/drivers/block/aztcd.c - AztechCD268 CDROM driver
  2756.   
  2757.       Copyright (C) 1994,1995 Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
  2758. --- 1,5 ----
  2759.   #define AZT_VERSION "V1.0"
  2760. ! /*      $Id: aztcd.c,v 1.0 1995/03/25 08:27:11 root Exp $
  2761.       linux/drivers/block/aztcd.c - AztechCD268 CDROM driver
  2762.   
  2763.       Copyright (C) 1994,1995 Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
  2764. ***************
  2765. *** 134,143 ****
  2766.   
  2767.   #define MAJOR_NR AZTECH_CDROM_MAJOR 
  2768.   
  2769. ! #ifdef MODULE
  2770. ! # include "/usr/src/linux/drivers/block/blk.h"
  2771. ! #else
  2772. ! # include "blk.h"
  2773.   # define MOD_INC_USE_COUNT
  2774.   # define MOD_DEC_USE_COUNT
  2775.   #endif
  2776. --- 134,142 ----
  2777.   
  2778.   #define MAJOR_NR AZTECH_CDROM_MAJOR 
  2779.   
  2780. ! #include "blk.h"
  2781. ! #ifndef MODULE
  2782.   # define MOD_INC_USE_COUNT
  2783.   # define MOD_DEC_USE_COUNT
  2784.   #endif
  2785. diff -c linux/linux/drivers/char/cyclades.c:1.1.1.9 linux/linux/drivers/char/cyclades.c:1.1.1.10
  2786. *** linux/linux/drivers/char/cyclades.c:1.1.1.9    Mon Jul  3 21:01:51 1995
  2787. --- linux/linux/drivers/char/cyclades.c    Mon Jul  3 21:01:52 1995
  2788. ***************
  2789. *** 1,5 ****
  2790.   static char rcsid[] =
  2791. ! "1.1.1.61995/06/14 03:12:25";
  2792.   /*
  2793.    *  linux/kernel/cyclades.c
  2794.    *
  2795. --- 1,5 ----
  2796.   static char rcsid[] =
  2797. ! "$Revision: 1.36.1.4 $$Date: 1995/03/29 06:14:14 $";
  2798.   /*
  2799.    *  linux/kernel/cyclades.c
  2800.    *
  2801. ***************
  2802. *** 17,23 ****
  2803.    *   long cy_init(long);
  2804.    *   int  cy_open(struct tty_struct *tty, struct file *filp);
  2805.    *
  2806. !  * cyclades.c,v
  2807.    * Revision 1.36.1.4  1995/03/29  06:14:14  bentson
  2808.    * disambiguate between Cyclom-16Y and Cyclom-32Ye;
  2809.    *
  2810. --- 17,23 ----
  2811.    *   long cy_init(long);
  2812.    *   int  cy_open(struct tty_struct *tty, struct file *filp);
  2813.    *
  2814. !  * $Log: cyclades.c,v $
  2815.    * Revision 1.36.1.4  1995/03/29  06:14:14  bentson
  2816.    * disambiguate between Cyclom-16Y and Cyclom-32Ye;
  2817.    *
  2818. diff -c linux/linux/drivers/char/tpqic02.c:1.1.1.4 linux/linux/drivers/char/tpqic02.c:1.1.1.5
  2819. *** linux/linux/drivers/char/tpqic02.c:1.1.1.4    Mon Jul  3 21:01:52 1995
  2820. --- linux/linux/drivers/char/tpqic02.c    Mon Jul  3 21:01:52 1995
  2821. ***************
  2822. *** 1,4 ****
  2823. ! /* tpqic02.c,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp
  2824.    *
  2825.    * Driver for tape drive support for Linux-i386 1.1.58
  2826.    *
  2827. --- 1,4 ----
  2828. ! /* $Id: tpqic02.c,v 0.4.1.5 1994/10/29 02:46:13 root Exp root $
  2829.    *
  2830.    * Driver for tape drive support for Linux-i386 1.1.58
  2831.    *
  2832. ***************
  2833. *** 33,42 ****
  2834.    *
  2835.    * You are not allowed to change this line nor the text above.
  2836.    *
  2837. !  * tpqic02.c,v
  2838. !  * Revision 1.1.1.1  1995/03/11  20:40:31  hjl
  2839. !  * Import the Linux kernel 1.2.0 source.
  2840. !  *
  2841.    * Revision 0.4.1.5  1994/10/29  02:46:13  root
  2842.    * Minor cleanups.
  2843.    *
  2844. --- 33,39 ----
  2845.    *
  2846.    * You are not allowed to change this line nor the text above.
  2847.    *
  2848. !  * $Log: tpqic02.c,v $
  2849.    * Revision 0.4.1.5  1994/10/29  02:46:13  root
  2850.    * Minor cleanups.
  2851.    *
  2852. ***************
  2853. *** 261,268 ****
  2854.   
  2855.   static volatile struct tpstatus tperror;    /* last drive status */
  2856.   
  2857. ! static char rcs_revision[] = "1.1.1.1";
  2858. ! static char rcs_date[] = "1995/03/11 20:40:31";
  2859.   
  2860.   /* Flag bits for status and outstanding requests.
  2861.    * (Could all be put in one bit-field-struct.)
  2862. --- 258,265 ----
  2863.   
  2864.   static volatile struct tpstatus tperror;    /* last drive status */
  2865.   
  2866. ! static char rcs_revision[] = "$Revision: 0.4.1.5 $";
  2867. ! static char rcs_date[] = "$Date: 1994/10/29 02:46:13 $";
  2868.   
  2869.   /* Flag bits for status and outstanding requests.
  2870.    * (Could all be put in one bit-field-struct.)
  2871. diff -c linux/linux/drivers/net/de600.c:1.1.1.4 linux/linux/drivers/net/de600.c:1.1.1.5
  2872. *** linux/linux/drivers/net/de600.c:1.1.1.4    Mon Jul  3 21:01:55 1995
  2873. --- linux/linux/drivers/net/de600.c    Mon Jul  3 21:01:55 1995
  2874. ***************
  2875. *** 1,5 ****
  2876.   static char *version =
  2877. !     "de600.c: 1.1.1.1,  Bjorn Ekwall (bj0rn@blox.se)\n";
  2878.   /*
  2879.    *    de600.c
  2880.    *
  2881. --- 1,5 ----
  2882.   static char *version =
  2883. !     "de600.c: $Revision: 1.40 $,  Bjorn Ekwall (bj0rn@blox.se)\n";
  2884.   /*
  2885.    *    de600.c
  2886.    *
  2887. diff -c linux/linux/drivers/net/de620.c:1.1.1.4 linux/linux/drivers/net/de620.c:1.1.1.5
  2888. *** linux/linux/drivers/net/de620.c:1.1.1.4    Mon Jul  3 21:01:55 1995
  2889. --- linux/linux/drivers/net/de620.c    Mon Jul  3 21:01:55 1995
  2890. ***************
  2891. *** 1,5 ****
  2892.   /*
  2893. !  *    de620.c 1.1.1.1 BETA
  2894.    *
  2895.    *
  2896.    *    Linux driver for the D-Link DE-620 Ethernet pocket adapter.
  2897. --- 1,5 ----
  2898.   /*
  2899. !  *    de620.c $Revision: 1.31 $ BETA
  2900.    *
  2901.    *
  2902.    *    Linux driver for the D-Link DE-620 Ethernet pocket adapter.
  2903. ***************
  2904. *** 39,45 ****
  2905.    *
  2906.    *****************************************************************************/
  2907.   static char *version =
  2908. !     "de620.c: 1.1.1.1,  Bjorn Ekwall <bj0rn@blox.se>\n";
  2909.   
  2910.   /***********************************************************************
  2911.    *
  2912. --- 39,45 ----
  2913.    *
  2914.    *****************************************************************************/
  2915.   static char *version =
  2916. !     "de620.c: $Revision: 1.31 $,  Bjorn Ekwall <bj0rn@blox.se>\n";
  2917.   
  2918.   /***********************************************************************
  2919.    *
  2920. diff -c linux/linux/drivers/net/plip.c:1.1.1.4 linux/linux/drivers/net/plip.c:1.1.1.5
  2921. *** linux/linux/drivers/net/plip.c:1.1.1.4    Mon Jul  3 21:01:55 1995
  2922. --- linux/linux/drivers/net/plip.c    Mon Jul  3 21:01:55 1995
  2923. ***************
  2924. *** 1,4 ****
  2925. ! /* plip.c,v 1.1.1.1 1995/03/11 20:40:28 hjl Exp */
  2926.   /* PLIP: A parallel port "network" driver for Linux. */
  2927.   /* This driver is for parallel port with 5-bit cable (LapLink (R) cable). */
  2928.   /*
  2929. --- 1,4 ----
  2930. ! /* $Id: plip.c,v 1.12 1995/02/11 10:26:05 gniibe Exp $ */
  2931.   /* PLIP: A parallel port "network" driver for Linux. */
  2932.   /* This driver is for parallel port with 5-bit cable (LapLink (R) cable). */
  2933.   /*
  2934. diff -c linux/linux/drivers/net/sk_g16.c:1.1.1.5 linux/linux/drivers/net/sk_g16.c:1.1.1.6
  2935. *** linux/linux/drivers/net/sk_g16.c:1.1.1.5    Mon Jul  3 21:01:55 1995
  2936. --- linux/linux/drivers/net/sk_g16.c    Mon Jul  3 21:01:55 1995
  2937. ***************
  2938. *** 6,17 ****
  2939.    *
  2940.    * Module         : sk_g16.c
  2941.    *
  2942. !  * Version        : 1.1.1.1
  2943.    *
  2944.    * Author         : Patrick J.D. Weichmann
  2945.    *
  2946.    * Date Created   : 94/05/26
  2947. !  * Last Updated   : 1995/03/11 20:40:29
  2948.    *
  2949.    * Description    : Schneider & Koch G16 Ethernet Device Driver for
  2950.    *                  Linux Kernel >= 1.1.22
  2951. --- 6,17 ----
  2952.    *
  2953.    * Module         : sk_g16.c
  2954.    *
  2955. !  * Version        : $Revision: 1.1 $
  2956.    *
  2957.    * Author         : Patrick J.D. Weichmann
  2958.    *
  2959.    * Date Created   : 94/05/26
  2960. !  * Last Updated   : $Date: 1994/06/30 16:25:15 $
  2961.    *
  2962.    * Description    : Schneider & Koch G16 Ethernet Device Driver for
  2963.    *                  Linux Kernel >= 1.1.22
  2964. ***************
  2965. *** 19,25 ****
  2966.    *
  2967.   -*/
  2968.   
  2969. ! static char *rcsid = "sk_g16.c,v 1.1.1.1 1995/03/11 20:40:29 hjl Exp";
  2970.   
  2971.   /*
  2972.    * The Schneider & Koch (SK) G16 Network device driver is based
  2973. --- 19,25 ----
  2974.    *
  2975.   -*/
  2976.   
  2977. ! static char *rcsid = "$Id: sk_g16.c,v 1.1 1994/06/30 16:25:15 root Exp $";
  2978.   
  2979.   /*
  2980.    * The Schneider & Koch (SK) G16 Network device driver is based
  2981. diff -c linux/linux/drivers/net/sk_g16.h:1.1.1.4 linux/linux/drivers/net/sk_g16.h:1.1.1.5
  2982. *** linux/linux/drivers/net/sk_g16.h:1.1.1.4    Mon Jul  3 21:01:55 1995
  2983. --- linux/linux/drivers/net/sk_g16.h    Mon Jul  3 21:01:56 1995
  2984. ***************
  2985. *** 4,10 ****
  2986.    * of the GNU Public License, incorporated herein by reference.
  2987.    *
  2988.    * Module         : sk_g16.h
  2989. !  * Version        : 1.1.1.1  
  2990.    *
  2991.    * Author         : M.Hipp (mhipp@student.uni-tuebingen.de)
  2992.    * changes by     : Patrick J.D. Weichmann
  2993. --- 4,10 ----
  2994.    * of the GNU Public License, incorporated herein by reference.
  2995.    *
  2996.    * Module         : sk_g16.h
  2997. !  * Version        : $Revision$  
  2998.    *
  2999.    * Author         : M.Hipp (mhipp@student.uni-tuebingen.de)
  3000.    * changes by     : Patrick J.D. Weichmann
  3001. ***************
  3002. *** 15,24 ****
  3003.    *                  the am7990 (LANCE) chip used for writing a
  3004.    *                  network device driver which uses this chip 
  3005.    *
  3006. !  * sk_g16.h,v
  3007. !  * Revision 1.1.1.1  1995/03/11  20:40:29  hjl
  3008. !  * Import the Linux kernel 1.2.0 source.
  3009. !  *
  3010.   -*/
  3011.   
  3012.   #ifndef SK_G16_H
  3013. --- 15,21 ----
  3014.    *                  the am7990 (LANCE) chip used for writing a
  3015.    *                  network device driver which uses this chip 
  3016.    *
  3017. !  * $Log$
  3018.   -*/
  3019.   
  3020.   #ifndef SK_G16_H
  3021. diff -c linux/linux/drivers/net/slhc.h:1.1.1.4 linux/linux/drivers/net/slhc.h:1.1.1.5
  3022. *** linux/linux/drivers/net/slhc.h:1.1.1.4    Mon Jul  3 21:01:56 1995
  3023. --- linux/linux/drivers/net/slhc.h    Mon Jul  3 21:01:56 1995
  3024. ***************
  3025. *** 3,9 ****
  3026.   /*
  3027.    * Definitions for tcp compression routines.
  3028.    *
  3029. !  * /home/cvs/linux/linux/drivers/net/slhc.h,v 1.1.1.1 1995/03/11 20:40:28 hjl Exp
  3030.    *
  3031.    * Copyright (c) 1989 Regents of the University of California.
  3032.    * All rights reserved.
  3033. --- 3,9 ----
  3034.   /*
  3035.    * Definitions for tcp compression routines.
  3036.    *
  3037. !  * $Header: slcompress.h,v 1.10 89/12/31 08:53:02 van Exp $
  3038.    *
  3039.    * Copyright (c) 1989 Regents of the University of California.
  3040.    * All rights reserved.
  3041. diff -c linux/linux/drivers/scsi/53c7,8xx.c:1.1.1.7 linux/linux/drivers/scsi/53c7,8xx.c:1.1.1.8
  3042. *** linux/linux/drivers/scsi/53c7,8xx.c:1.1.1.7    Mon Jul  3 21:02:01 1995
  3043. --- linux/linux/drivers/scsi/53c7,8xx.c    Mon Jul  3 21:02:01 1995
  3044. ***************
  3045. *** 2266,2278 ****
  3046.        * and SCSI recommended .5s selection timeout.
  3047.        */
  3048.   
  3049.       NCR53c7x0_write8(STIME0_REG_800, 
  3050.           ((14 << STIME0_800_SEL_SHIFT) & STIME0_800_SEL_MASK) 
  3051.   /* Disable HTH interrupt */
  3052. ! #if 0
  3053. !     | ((15 << STIME0_800_HTH_SHIFT) & STIME0_800_HTH_MASK)
  3054.   #endif
  3055. -     );
  3056.   
  3057.   
  3058.   
  3059. --- 2266,2284 ----
  3060.        * and SCSI recommended .5s selection timeout.
  3061.        */
  3062.   
  3063. +     /*
  3064. +      * The new gcc won't recognize preprocessing directives
  3065. +      * within macro args.
  3066. +      */
  3067. + #if 0
  3068.       NCR53c7x0_write8(STIME0_REG_800, 
  3069.           ((14 << STIME0_800_SEL_SHIFT) & STIME0_800_SEL_MASK) 
  3070.   /* Disable HTH interrupt */
  3071. !     | ((15 << STIME0_800_HTH_SHIFT) & STIME0_800_HTH_MASK));
  3072. ! #else
  3073. !     NCR53c7x0_write8(STIME0_REG_800, 
  3074. !         ((14 << STIME0_800_SEL_SHIFT) & STIME0_800_SEL_MASK));
  3075.   #endif
  3076.   
  3077.   
  3078.   
  3079. diff -c linux/linux/drivers/scsi/NCR5380.c:1.1.1.6 linux/linux/drivers/scsi/NCR5380.c:1.1.1.7
  3080. *** linux/linux/drivers/scsi/NCR5380.c:1.1.1.6    Mon Jul  3 21:02:01 1995
  3081. --- linux/linux/drivers/scsi/NCR5380.c    Mon Jul  3 21:02:01 1995
  3082. ***************
  3083. *** 28,37 ****
  3084.    */
  3085.   
  3086.   /*
  3087. !  * NCR5380.c,v
  3088. !  * Revision 1.1.1.2  1995/03/29  23:36:36  hjl
  3089. !  * Import Linux kernel 1.2.2.
  3090. !  *
  3091.    * Revision 1.5  1994/01/19  09:14:57  drew
  3092.    * Fixed udelay() hack that was being used on DATAOUT phases
  3093.    * instead of a proper wait for the final handshake.
  3094. --- 28,34 ----
  3095.    */
  3096.   
  3097.   /*
  3098. !  * $Log: NCR5380.c,v $
  3099.    * Revision 1.5  1994/01/19  09:14:57  drew
  3100.    * Fixed udelay() hack that was being used on DATAOUT phases
  3101.    * instead of a proper wait for the final handshake.
  3102. diff -c linux/linux/drivers/scsi/NCR5380.h:1.1.1.4 linux/linux/drivers/scsi/NCR5380.h:1.1.1.5
  3103. *** linux/linux/drivers/scsi/NCR5380.h:1.1.1.4    Mon Jul  3 21:02:01 1995
  3104. --- linux/linux/drivers/scsi/NCR5380.h    Mon Jul  3 21:02:01 1995
  3105. ***************
  3106. *** 22,31 ****
  3107.    */
  3108.   
  3109.   /*
  3110. !  * NCR5380.h,v
  3111. !  * Revision 1.1.1.1  1995/03/11  20:40:33  hjl
  3112. !  * Import the Linux kernel 1.2.0 source.
  3113. !  *
  3114.    */
  3115.   
  3116.   #ifndef NCR5380_H
  3117. --- 22,28 ----
  3118.    */
  3119.   
  3120.   /*
  3121. !  * $Log: NCR5380.h,v $
  3122.    */
  3123.   
  3124.   #ifndef NCR5380_H
  3125. diff -c linux/linux/drivers/scsi/aha152x.c:1.1.1.7 linux/linux/drivers/scsi/aha152x.c:1.1.1.8
  3126. *** linux/linux/drivers/scsi/aha152x.c:1.1.1.7    Mon Jul  3 21:02:01 1995
  3127. --- linux/linux/drivers/scsi/aha152x.c    Mon Jul  3 21:02:01 1995
  3128. ***************
  3129. *** 20,32 ****
  3130.    * General Public License for more details.
  3131.    
  3132.    *
  3133. !  * aha152x.c,v 1.1.1.3 1995/04/04 01:36:02 hjl Exp
  3134.    *
  3135.   
  3136. !  * aha152x.c,v
  3137. !  * Revision 1.1.1.3  1995/04/04  01:36:02  hjl
  3138. !  * Import linux 1.2.3.
  3139. !  *
  3140.    * Revision 1.9  1995/03/18  09:20:24  root
  3141.    * - patches for PCMCIA and modules
  3142.    *
  3143. --- 20,29 ----
  3144.    * General Public License for more details.
  3145.    
  3146.    *
  3147. !  * $Id: aha152x.c,v 1.9 1995/03/18 09:20:24 root Exp root $
  3148.    *
  3149.   
  3150. !  * $Log: aha152x.c,v $
  3151.    * Revision 1.9  1995/03/18  09:20:24  root
  3152.    * - patches for PCMCIA and modules
  3153.    *
  3154. diff -c linux/linux/drivers/scsi/aha152x.h:1.1.1.5 linux/linux/drivers/scsi/aha152x.h:1.1.1.6
  3155. *** linux/linux/drivers/scsi/aha152x.h:1.1.1.5    Mon Jul  3 21:02:01 1995
  3156. --- linux/linux/drivers/scsi/aha152x.h    Mon Jul  3 21:02:02 1995
  3157. ***************
  3158. *** 2,8 ****
  3159.   #define _AHA152X_H
  3160.   
  3161.   /*
  3162. !  * aha152x.h,v 1.1.1.2 1995/03/29 23:36:37 hjl Exp
  3163.    */
  3164.   
  3165.   #if defined(__KERNEL__)
  3166. --- 2,8 ----
  3167.   #define _AHA152X_H
  3168.   
  3169.   /*
  3170. !  * $Id: aha152x.h,v 1.9 1995/03/18 09:21:04 root Exp root $
  3171.    */
  3172.   
  3173.   #if defined(__KERNEL__)
  3174. ***************
  3175. *** 22,28 ****
  3176.      (unless we support more than 1 cmd_per_lun this should do) */
  3177.   #define AHA152X_MAXQUEUE    7        
  3178.   
  3179. ! #define AHA152X_REVID "Adaptec 152x SCSI driver; 1.1.1.2"
  3180.   
  3181.   /* Initial value of Scsi_Host entry */
  3182.   #define AHA152X       { /* next */        NULL,                \
  3183. --- 22,28 ----
  3184.      (unless we support more than 1 cmd_per_lun this should do) */
  3185.   #define AHA152X_MAXQUEUE    7        
  3186.   
  3187. ! #define AHA152X_REVID "Adaptec 152x SCSI driver; $Revision: 1.9 $"
  3188.   
  3189.   /* Initial value of Scsi_Host entry */
  3190.   #define AHA152X       { /* next */        NULL,                \
  3191. diff -c linux/linux/drivers/scsi/aha1542.c:1.1.1.5 linux/linux/drivers/scsi/aha1542.c:1.1.1.6
  3192. *** linux/linux/drivers/scsi/aha1542.c:1.1.1.5    Mon Jul  3 21:02:02 1995
  3193. --- linux/linux/drivers/scsi/aha1542.c    Mon Jul  3 21:02:02 1995
  3194. ***************
  3195. *** 1,4 ****
  3196. ! /* aha1542.c,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp
  3197.    *  linux/kernel/aha1542.c
  3198.    *
  3199.    *  Copyright (C) 1992  Tommy Thorn
  3200. --- 1,4 ----
  3201. ! /* $Id: aha1542.c,v 1.1 1992/07/24 06:27:38 root Exp root $
  3202.    *  linux/kernel/aha1542.c
  3203.    *
  3204.    *  Copyright (C) 1992  Tommy Thorn
  3205. ***************
  3206. *** 43,49 ****
  3207.   #define DEB(x)
  3208.   #endif
  3209.   /*
  3210. ! static const char RCSid[] = "/home/cvs/linux/linux/drivers/scsi/aha1542.c,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp";
  3211.   */
  3212.   
  3213.   /* The adaptec can be configured for quite a number of addresses, but
  3214. --- 43,49 ----
  3215.   #define DEB(x)
  3216.   #endif
  3217.   /*
  3218. ! static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/aha1542.c,v 1.1 1992/07/24 06:27:38 root Exp root $";
  3219.   */
  3220.   
  3221.   /* The adaptec can be configured for quite a number of addresses, but
  3222. diff -c linux/linux/drivers/scsi/aha1542.h:1.1.1.4 linux/linux/drivers/scsi/aha1542.h:1.1.1.5
  3223. *** linux/linux/drivers/scsi/aha1542.h:1.1.1.4    Mon Jul  3 21:02:02 1995
  3224. --- linux/linux/drivers/scsi/aha1542.h    Mon Jul  3 21:02:02 1995
  3225. ***************
  3226. *** 1,13 ****
  3227.   #ifndef _AHA1542_H
  3228.   
  3229. ! /* aha1542.h,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp
  3230.    *
  3231.    * Header file for the adaptec 1542 driver for Linux
  3232.    *
  3233. !  * aha1542.h,v
  3234. !  * Revision 1.1.1.1  1995/03/11  20:40:31  hjl
  3235. !  * Import the Linux kernel 1.2.0 source.
  3236. !  *
  3237.    * Revision 1.1  1992/07/24  06:27:38  root
  3238.    * Initial revision
  3239.    *
  3240. --- 1,10 ----
  3241.   #ifndef _AHA1542_H
  3242.   
  3243. ! /* $Id: aha1542.h,v 1.1 1992/07/24 06:27:38 root Exp root $
  3244.    *
  3245.    * Header file for the adaptec 1542 driver for Linux
  3246.    *
  3247. !  * $Log: aha1542.h,v $
  3248.    * Revision 1.1  1992/07/24  06:27:38  root
  3249.    * Initial revision
  3250.    *
  3251. diff -c linux/linux/drivers/scsi/aha1740.c:1.1.1.4 linux/linux/drivers/scsi/aha1740.c:1.1.1.5
  3252. *** linux/linux/drivers/scsi/aha1740.c:1.1.1.4    Mon Jul  3 21:02:02 1995
  3253. --- linux/linux/drivers/scsi/aha1740.c    Mon Jul  3 21:02:02 1995
  3254. ***************
  3255. *** 1,4 ****
  3256. ! /*  aha1740.c,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp
  3257.    *  1993/03/31
  3258.    *  linux/kernel/aha1740.c
  3259.    *
  3260. --- 1,4 ----
  3261. ! /*  $Id$
  3262.    *  1993/03/31
  3263.    *  linux/kernel/aha1740.c
  3264.    *
  3265. ***************
  3266. *** 46,52 ****
  3267.   #endif
  3268.   
  3269.   /*
  3270. ! static const char RCSid[] = "/home/cvs/linux/linux/drivers/scsi/aha1740.c,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp";
  3271.   */
  3272.   
  3273.   static unsigned int slot, base;
  3274. --- 46,52 ----
  3275.   #endif
  3276.   
  3277.   /*
  3278. ! static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/aha1740.c,v 1.1 1992/07/24 06:27:38 root Exp root $";
  3279.   */
  3280.   
  3281.   static unsigned int slot, base;
  3282. diff -c linux/linux/drivers/scsi/aha1740.h:1.1.1.4 linux/linux/drivers/scsi/aha1740.h:1.1.1.5
  3283. *** linux/linux/drivers/scsi/aha1740.h:1.1.1.4    Mon Jul  3 21:02:02 1995
  3284. --- linux/linux/drivers/scsi/aha1740.h    Mon Jul  3 21:02:02 1995
  3285. ***************
  3286. *** 1,6 ****
  3287.   #ifndef _AHA1740_H
  3288.   
  3289. ! /* aha1740.h,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp
  3290.    *
  3291.    * Header file for the adaptec 1740 driver for Linux
  3292.    *
  3293. --- 1,6 ----
  3294.   #ifndef _AHA1740_H
  3295.   
  3296. ! /* $Id$
  3297.    *
  3298.    * Header file for the adaptec 1740 driver for Linux
  3299.    *
  3300. diff -c linux/linux/drivers/scsi/fdomain.c:1.1.1.6 linux/linux/drivers/scsi/fdomain.c:1.1.1.7
  3301. *** linux/linux/drivers/scsi/fdomain.c:1.1.1.6    Mon Jul  3 21:02:02 1995
  3302. --- linux/linux/drivers/scsi/fdomain.c    Mon Jul  3 21:02:02 1995
  3303. ***************
  3304. *** 1,10 ****
  3305.   /* fdomain.c -- Future Domain TMC-16x0 SCSI driver
  3306.    * Created: Sun May  3 18:53:19 1992 by faith@cs.unc.edu
  3307. !  * Revised: Sat Jan 14 21:39:15 1995 by faith@cs.unc.edu
  3308.    * Author: Rickard E. Faith, faith@cs.unc.edu
  3309.    * Copyright 1992, 1993, 1994, 1995 Rickard E. Faith
  3310.    *
  3311. !  * fdomain.c,v 1.1.1.3 1995/06/14 03:13:08 hjl Exp
  3312.   
  3313.    * This program is free software; you can redistribute it and/or modify it
  3314.    * under the terms of the GNU General Public License as published by the
  3315. --- 1,10 ----
  3316.   /* fdomain.c -- Future Domain TMC-16x0 SCSI driver
  3317.    * Created: Sun May  3 18:53:19 1992 by faith@cs.unc.edu
  3318. !  * Revised: Mon Jun  5 09:21:54 1995 by faith@cs.unc.edu
  3319.    * Author: Rickard E. Faith, faith@cs.unc.edu
  3320.    * Copyright 1992, 1993, 1994, 1995 Rickard E. Faith
  3321.    *
  3322. !  * $Id: fdomain.c,v 5.28 1995/06/05 13:21:57 faith Exp $
  3323.   
  3324.    * This program is free software; you can redistribute it and/or modify it
  3325.    * under the terms of the GNU General Public License as published by the
  3326. ***************
  3327. *** 194,200 ****
  3328.   #include <linux/string.h>
  3329.   #include <linux/ioport.h>
  3330.   
  3331. ! #define VERSION          "1.1.1.3"
  3332.   
  3333.   /* START OF USER DEFINABLE OPTIONS */
  3334.   
  3335. --- 194,200 ----
  3336.   #include <linux/string.h>
  3337.   #include <linux/ioport.h>
  3338.   
  3339. ! #define VERSION          "$Revision: 5.28 $"
  3340.   
  3341.   /* START OF USER DEFINABLE OPTIONS */
  3342.   
  3343. diff -c linux/linux/drivers/scsi/fdomain.h:1.1.1.4 linux/linux/drivers/scsi/fdomain.h:1.1.1.5
  3344. *** linux/linux/drivers/scsi/fdomain.h:1.1.1.4    Mon Jul  3 21:02:02 1995
  3345. --- linux/linux/drivers/scsi/fdomain.h    Mon Jul  3 21:02:02 1995
  3346. ***************
  3347. *** 4,10 ****
  3348.    * Author: Rickard E. Faith, faith@cs.unc.edu
  3349.    * Copyright 1992, 1993, 1994, 1995 Rickard E. Faith
  3350.    *
  3351. !  * fdomain.h,v 1.1.1.1 1995/03/11 20:40:33 hjl Exp
  3352.   
  3353.    * This program is free software; you can redistribute it and/or modify it
  3354.    * under the terms of the GNU General Public License as published by the
  3355. --- 4,10 ----
  3356.    * Author: Rickard E. Faith, faith@cs.unc.edu
  3357.    * Copyright 1992, 1993, 1994, 1995 Rickard E. Faith
  3358.    *
  3359. !  * $Id: fdomain.h,v 5.10 1995/01/15 01:56:56 root Exp $
  3360.   
  3361.    * This program is free software; you can redistribute it and/or modify it
  3362.    * under the terms of the GNU General Public License as published by the
  3363. diff -c linux/linux/drivers/scsi/g_NCR5380.c:1.1.1.4 linux/linux/drivers/scsi/g_NCR5380.c:1.1.1.5
  3364. *** linux/linux/drivers/scsi/g_NCR5380.c:1.1.1.4    Mon Jul  3 21:02:03 1995
  3365. --- linux/linux/drivers/scsi/g_NCR5380.c    Mon Jul  3 21:02:03 1995
  3366. ***************
  3367. *** 52,61 ****
  3368.    */
  3369.    
  3370.   /*
  3371. !  * g_NCR5380.c,v
  3372. !  * Revision 1.1.1.1  1995/03/11  20:40:33  hjl
  3373. !  * Import the Linux kernel 1.2.0 source.
  3374. !  *
  3375.    */
  3376.   
  3377.   #define AUTOPROBE_IRQ
  3378. --- 52,58 ----
  3379.    */
  3380.    
  3381.   /*
  3382. !  * $Log: generic_NCR5380.c,v $
  3383.    */
  3384.   
  3385.   #define AUTOPROBE_IRQ
  3386. diff -c linux/linux/drivers/scsi/g_NCR5380.h:1.1.1.4 linux/linux/drivers/scsi/g_NCR5380.h:1.1.1.5
  3387. *** linux/linux/drivers/scsi/g_NCR5380.h:1.1.1.4    Mon Jul  3 21:02:03 1995
  3388. --- linux/linux/drivers/scsi/g_NCR5380.h    Mon Jul  3 21:02:03 1995
  3389. ***************
  3390. *** 23,32 ****
  3391.    */
  3392.   
  3393.   /*
  3394. !  * g_NCR5380.h,v
  3395. !  * Revision 1.1.1.1  1995/03/11  20:40:33  hjl
  3396. !  * Import the Linux kernel 1.2.0 source.
  3397. !  *
  3398.    */
  3399.   
  3400.   #ifndef GENERIC_NCR5380_H
  3401. --- 23,29 ----
  3402.    */
  3403.   
  3404.   /*
  3405. !  * $Log: generic_NCR5380.h,v $
  3406.    */
  3407.   
  3408.   #ifndef GENERIC_NCR5380_H
  3409. diff -c linux/linux/drivers/scsi/hosts.c:1.1.1.5 linux/linux/drivers/scsi/hosts.c:1.1.1.6
  3410. *** linux/linux/drivers/scsi/hosts.c:1.1.1.5    Mon Jul  3 21:02:03 1995
  3411. --- linux/linux/drivers/scsi/hosts.c    Mon Jul  3 21:02:03 1995
  3412. ***************
  3413. *** 109,115 ****
  3414.   #endif
  3415.   
  3416.   /*
  3417. ! static const char RCSid[] = "/home/cvs/linux/linux/drivers/scsi/hosts.c,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp";
  3418.   */
  3419.   
  3420.   /*
  3421. --- 109,115 ----
  3422.   #endif
  3423.   
  3424.   /*
  3425. ! static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/hosts.c,v 1.3 1993/09/24 12:21:00 drew Exp drew $";
  3426.   */
  3427.   
  3428.   /*
  3429. diff -c linux/linux/drivers/scsi/hosts.h:1.1.1.4 linux/linux/drivers/scsi/hosts.h:1.1.1.5
  3430. *** linux/linux/drivers/scsi/hosts.h:1.1.1.4    Mon Jul  3 21:02:03 1995
  3431. --- linux/linux/drivers/scsi/hosts.h    Mon Jul  3 21:02:03 1995
  3432. ***************
  3433. *** 17,23 ****
  3434.   #define _HOSTS_H
  3435.   
  3436.   /*
  3437. !     /home/cvs/linux/linux/drivers/scsi/hosts.h,v 1.1.1.1 1995/03/11 20:40:31 hjl Exp
  3438.   */
  3439.   
  3440.   
  3441. --- 17,23 ----
  3442.   #define _HOSTS_H
  3443.   
  3444.   /*
  3445. !     $Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/hosts.h,v 1.3 1993/09/24 12:21:00 drew Exp drew $
  3446.   */
  3447.   
  3448.   
  3449. diff -c linux/linux/drivers/scsi/in2000.h:1.1.1.4 linux/linux/drivers/scsi/in2000.h:1.1.1.5
  3450. *** linux/linux/drivers/scsi/in2000.h:1.1.1.4    Mon Jul  3 21:02:03 1995
  3451. --- linux/linux/drivers/scsi/in2000.h    Mon Jul  3 21:02:03 1995
  3452. ***************
  3453. *** 1,6 ****
  3454.   #ifndef _IN2000_H
  3455.   
  3456. ! /* in2000.h,v 1.1.1.1 1995/03/11 20:40:34 hjl Exp
  3457.    *
  3458.    * Header file for the Always IN 2000 driver for Linux
  3459.    *
  3460. --- 1,6 ----
  3461.   #ifndef _IN2000_H
  3462.   
  3463. ! /* $Id: in2000.h,v 1.2 1994/08/25 06:27:38 root Exp root $
  3464.    *
  3465.    * Header file for the Always IN 2000 driver for Linux
  3466.    *
  3467. diff -c linux/linux/drivers/scsi/scsi.c:1.1.1.8 linux/linux/drivers/scsi/scsi.c:1.1.1.9
  3468. *** linux/linux/drivers/scsi/scsi.c:1.1.1.8    Mon Jul  3 21:02:03 1995
  3469. --- linux/linux/drivers/scsi/scsi.c    Mon Jul  3 21:02:04 1995
  3470. ***************
  3471. *** 35,41 ****
  3472.   #undef USE_STATIC_SCSI_MEMORY
  3473.   
  3474.   /*
  3475. ! static const char RCSid[] = "/home/cvs/linux/linux/drivers/scsi/scsi.c,v 1.1.1.2 1995/03/29 23:36:31 hjl Exp";
  3476.   */
  3477.   
  3478.   /* Command groups 3 and 4 are reserved and should never be used.  */
  3479. --- 35,41 ----
  3480.   #undef USE_STATIC_SCSI_MEMORY
  3481.   
  3482.   /*
  3483. ! static const char RCSid[] = "$Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/scsi.c,v 1.5 1993/09/24 12:45:18 drew Exp drew $";
  3484.   */
  3485.   
  3486.   /* Command groups 3 and 4 are reserved and should never be used.  */
  3487. diff -c linux/linux/drivers/scsi/scsi.h:1.1.1.6 linux/linux/drivers/scsi/scsi.h:1.1.1.7
  3488. *** linux/linux/drivers/scsi/scsi.h:1.1.1.6    Mon Jul  3 21:02:04 1995
  3489. --- linux/linux/drivers/scsi/scsi.h    Mon Jul  3 21:02:04 1995
  3490. ***************
  3491. *** 14,20 ****
  3492.   #define _SCSI_H
  3493.   
  3494.   /*
  3495. !     /home/cvs/linux/linux/drivers/scsi/scsi.h,v 1.1.1.2 1995/03/29 23:36:32 hjl Exp
  3496.   
  3497.       For documentation on the OPCODES, MESSAGES, and SENSE values,
  3498.       please consult the SCSI standard.
  3499. --- 14,20 ----
  3500.   #define _SCSI_H
  3501.   
  3502.   /*
  3503. !     $Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/scsi.h,v 1.3 1993/09/24 12:20:33 drew Exp $
  3504.   
  3505.       For documentation on the OPCODES, MESSAGES, and SENSE values,
  3506.       please consult the SCSI standard.
  3507. diff -c linux/linux/drivers/scsi/scsi_debug.c:1.1.1.4 linux/linux/drivers/scsi/scsi_debug.c:1.1.1.5
  3508. *** linux/linux/drivers/scsi/scsi_debug.c:1.1.1.4    Mon Jul  3 21:02:04 1995
  3509. --- linux/linux/drivers/scsi/scsi_debug.c    Mon Jul  3 21:02:04 1995
  3510. ***************
  3511. *** 1,4 ****
  3512. ! /* scsi_debug.c,v 1.1.1.1 1995/03/11 20:40:32 hjl Exp
  3513.    *  linux/kernel/scsi_debug.c
  3514.    *
  3515.    *  Copyright (C) 1992  Eric Youngdale
  3516. --- 1,4 ----
  3517. ! /* $Id: scsi_debug.c,v 1.1 1992/07/24 06:27:38 root Exp root $
  3518.    *  linux/kernel/scsi_debug.c
  3519.    *
  3520.    *  Copyright (C) 1992  Eric Youngdale
  3521. diff -c linux/linux/drivers/scsi/sd.h:1.1.1.4 linux/linux/drivers/scsi/sd.h:1.1.1.5
  3522. *** linux/linux/drivers/scsi/sd.h:1.1.1.4    Mon Jul  3 21:02:04 1995
  3523. --- linux/linux/drivers/scsi/sd.h    Mon Jul  3 21:02:04 1995
  3524. ***************
  3525. *** 12,18 ****
  3526.   #ifndef _SD_H
  3527.       #define _SD_H
  3528.   /*
  3529. !     /home/cvs/linux/linux/drivers/scsi/sd.h,v 1.1.1.1 1995/03/11 20:40:32 hjl Exp
  3530.   */
  3531.   
  3532.   #ifndef _SCSI_H
  3533. --- 12,18 ----
  3534.   #ifndef _SD_H
  3535.       #define _SD_H
  3536.   /*
  3537. !     $Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/sd.h,v 1.1 1992/07/24 06:27:38 root Exp root $
  3538.   */
  3539.   
  3540.   #ifndef _SCSI_H
  3541. diff -c linux/linux/drivers/scsi/seagate.c:1.1.1.4 linux/linux/drivers/scsi/seagate.c:1.1.1.5
  3542. *** linux/linux/drivers/scsi/seagate.c:1.1.1.4    Mon Jul  3 21:02:04 1995
  3543. --- linux/linux/drivers/scsi/seagate.c    Mon Jul  3 21:02:04 1995
  3544. ***************
  3545. *** 1105,1112 ****
  3546.   
  3547.       cld
  3548.   
  3549. !     movl _st0x_cr_sr, %%ebx
  3550. !     movl _st0x_dr, %%edi
  3551.       
  3552.   1:    movb (%%ebx), %%al\n"
  3553.   /*
  3554. --- 1105,1112 ----
  3555.   
  3556.       cld
  3557.   
  3558. !     movl " SYMBOL_NAME_STR(st0x_cr_sr) ", %%ebx
  3559. !     movl " SYMBOL_NAME_STR(st0x_dr) ", %%edi
  3560.       
  3561.   1:    movb (%%ebx), %%al\n"
  3562.   /*
  3563. ***************
  3564. *** 1241,1248 ****
  3565.       jz 2f
  3566.   
  3567.       cld
  3568. !     movl _st0x_cr_sr, %%esi
  3569. !     movl _st0x_dr, %%ebx
  3570.   
  3571.   1:    movb (%%esi), %%al\n"
  3572.   /*
  3573. --- 1241,1248 ----
  3574.       jz 2f
  3575.   
  3576.       cld
  3577. !     movl " SYMBOL_NAME_STR(st0x_cr_sr) ", %%esi
  3578. !     movl " SYMBOL_NAME_STR(st0x_dr) ", %%ebx
  3579.   
  3580.   1:    movb (%%esi), %%al\n"
  3581.   /*
  3582. diff -c linux/linux/drivers/scsi/st.h:1.1.1.4 linux/linux/drivers/scsi/st.h:1.1.1.5
  3583. *** linux/linux/drivers/scsi/st.h:1.1.1.4    Mon Jul  3 21:02:04 1995
  3584. --- linux/linux/drivers/scsi/st.h    Mon Jul  3 21:02:04 1995
  3585. ***************
  3586. *** 2,8 ****
  3587.   #ifndef _ST_H
  3588.       #define _ST_H
  3589.   /*
  3590. !     /home/cvs/linux/linux/drivers/scsi/st.h,v 1.1.1.1 1995/03/11 20:40:33 hjl Exp
  3591.   */
  3592.   
  3593.   #ifndef _SCSI_H
  3594. --- 2,8 ----
  3595.   #ifndef _ST_H
  3596.       #define _ST_H
  3597.   /*
  3598. !     $Header: /usr/src/linux/kernel/blk_drv/scsi/RCS/st.h,v 1.1 1992/04/24 18:01:50 root Exp root $
  3599.   */
  3600.   
  3601.   #ifndef _SCSI_H
  3602. diff -c linux/linux/drivers/scsi/t128.c:1.1.1.5 linux/linux/drivers/scsi/t128.c:1.1.1.6
  3603. *** linux/linux/drivers/scsi/t128.c:1.1.1.5    Mon Jul  3 21:02:04 1995
  3604. --- linux/linux/drivers/scsi/t128.c    Mon Jul  3 21:02:04 1995
  3605. ***************
  3606. *** 103,112 ****
  3607.    */
  3608.    
  3609.   /*
  3610. !  * t128.c,v
  3611. !  * Revision 1.1.1.1  1995/03/11  20:40:33  hjl
  3612. !  * Import the Linux kernel 1.2.0 source.
  3613. !  *
  3614.    */
  3615.   
  3616.   #include <asm/system.h>
  3617. --- 103,109 ----
  3618.    */
  3619.    
  3620.   /*
  3621. !  * $Log: t128.c,v $
  3622.    */
  3623.   
  3624.   #include <asm/system.h>
  3625. diff -c linux/linux/drivers/scsi/t128.h:1.1.1.4 linux/linux/drivers/scsi/t128.h:1.1.1.5
  3626. *** linux/linux/drivers/scsi/t128.h:1.1.1.4    Mon Jul  3 21:02:04 1995
  3627. --- linux/linux/drivers/scsi/t128.h    Mon Jul  3 21:02:04 1995
  3628. ***************
  3629. *** 35,44 ****
  3630.    */
  3631.   
  3632.   /*
  3633. !  * t128.h,v
  3634. !  * Revision 1.1.1.1  1995/03/11  20:40:33  hjl
  3635. !  * Import the Linux kernel 1.2.0 source.
  3636. !  *
  3637.    */
  3638.   
  3639.   #ifndef T128_H
  3640. --- 35,41 ----
  3641.    */
  3642.   
  3643.   /*
  3644. !  * $Log: t128.h,v $
  3645.    */
  3646.   
  3647.   #ifndef T128_H
  3648. diff -c linux/linux/drivers/scsi/wd7000.c:1.1.1.5 linux/linux/drivers/scsi/wd7000.c:1.1.1.6
  3649. *** linux/linux/drivers/scsi/wd7000.c:1.1.1.5    Mon Jul  3 21:02:05 1995
  3650. --- linux/linux/drivers/scsi/wd7000.c    Mon Jul  3 21:02:05 1995
  3651. ***************
  3652. *** 1,4 ****
  3653. ! /* wd7000.c,v 1.1.1.1 1995/03/11 20:40:33 hjl Exp
  3654.    *  linux/drivers/scsi/wd7000.c
  3655.    *
  3656.    *  Copyright (C) 1992  Thomas Wuensche
  3657. --- 1,4 ----
  3658. ! /* $Id: $
  3659.    *  linux/drivers/scsi/wd7000.c
  3660.    *
  3661.    *  Copyright (C) 1992  Thomas Wuensche
  3662. diff -c linux/linux/drivers/scsi/wd7000.h:1.1.1.4 linux/linux/drivers/scsi/wd7000.h:1.1.1.5
  3663. *** linux/linux/drivers/scsi/wd7000.h:1.1.1.4    Mon Jul  3 21:02:05 1995
  3664. --- linux/linux/drivers/scsi/wd7000.h    Mon Jul  3 21:02:05 1995
  3665. ***************
  3666. *** 1,6 ****
  3667.   #ifndef _WD7000_H
  3668.   
  3669. ! /* wd7000.h,v 1.1.1.1 1995/03/11 20:40:33 hjl Exp
  3670.    *
  3671.    * Header file for the WD-7000 driver for Linux
  3672.    *
  3673. --- 1,6 ----
  3674.   #ifndef _WD7000_H
  3675.   
  3676. ! /* $Id: $
  3677.    *
  3678.    * Header file for the WD-7000 driver for Linux
  3679.    *
  3680. diff -c linux/linux/fs/binfmt_elf.c:1.1.1.5 linux/linux/fs/binfmt_elf.c:1.1.1.6
  3681. *** linux/linux/fs/binfmt_elf.c:1.1.1.5    Mon Jul  3 21:02:06 1995
  3682. --- linux/linux/fs/binfmt_elf.c    Mon Jul  3 21:02:07 1995
  3683. ***************
  3684. *** 18,23 ****
  3685. --- 18,24 ----
  3686.   #endif
  3687.   
  3688.   #include <linux/fs.h>
  3689. + #include <linux/stat.h>
  3690.   #include <linux/sched.h>
  3691.   #include <linux/mm.h>
  3692.   #include <linux/mman.h>
  3693. ***************
  3694. *** 31,36 ****
  3695. --- 32,38 ----
  3696.   #include <linux/malloc.h>
  3697.   #include <linux/shm.h>
  3698.   #include <linux/personality.h>
  3699. + #include <linux/elfcore.h>
  3700.   
  3701.   #include <asm/segment.h>
  3702.   #include <asm/pgtable.h>
  3703. ***************
  3704. *** 48,59 ****
  3705.   
  3706.   static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs);
  3707.   static int load_elf_library(int fd);
  3708.   
  3709.   struct linux_binfmt elf_format = {
  3710.   #ifndef MODULE
  3711. !     NULL, NULL, load_elf_binary, load_elf_library, NULL
  3712.   #else
  3713. !     NULL, &mod_use_count_, load_elf_binary, load_elf_library, NULL
  3714.   #endif
  3715.   };
  3716.   
  3717. --- 50,63 ----
  3718.   
  3719.   static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs);
  3720.   static int load_elf_library(int fd);
  3721. + static int elf_core_dump(long signr, struct pt_regs * regs);
  3722. + extern int dump_fpu (elf_fpregset_t *);
  3723.   
  3724.   struct linux_binfmt elf_format = {
  3725.   #ifndef MODULE
  3726. !     NULL, NULL, load_elf_binary, load_elf_library, elf_core_dump
  3727.   #else
  3728. !     NULL, &mod_use_count_, load_elf_binary, load_elf_library, elf_core_dump
  3729.   #endif
  3730.   };
  3731.   
  3732. ***************
  3733. *** 741,746 ****
  3734. --- 745,1155 ----
  3735.       return 0;
  3736.   }
  3737.   
  3738. + /*
  3739. +  * ELF core dumper
  3740. +  *
  3741. +  * Modelled on fs/exec.c:aout_core_dump()
  3742. +  * Jeremy Fitzhardinge <jeremy@sw.oz.au>
  3743. +  */
  3744. + /*
  3745. +  * These are the only things you should do on a core-file: use only these
  3746. +  * functions to write out all the necessary info.
  3747. +  */
  3748. + static int dump_write(struct file *file, void *addr, int nr)
  3749. + {
  3750. +     return file->f_op->write(file->f_inode, file, addr, nr) == nr;
  3751. + }
  3752. + static int dump_seek(struct file *file, off_t off)
  3753. + {
  3754. +     if (file->f_op->lseek) {
  3755. +         if (file->f_op->lseek(file->f_inode, file, off, 0) != off)
  3756. +             return 0;
  3757. +     } else
  3758. +         file->f_pos = off;
  3759. +     return 1;
  3760. + }
  3761. + /*
  3762. +  * Decide whether a segment is worth dumping; default is yes to be
  3763. +  * sure (missing info is worse than too much; etc).
  3764. +  * Personally I'd include everything, and use the coredump limit...
  3765. +  *
  3766. +  * I think we should skip something. But I am not sure how. H.J.
  3767. +  */
  3768. + static inline int maydump(struct vm_area_struct *vma)
  3769. + {
  3770. + #if 1
  3771. +     if (vma->vm_flags & (VM_WRITE|VM_GROWSUP|VM_GROWSDOWN))
  3772. +         return 1;
  3773. +     if (vma->vm_flags & (VM_READ|VM_EXEC|VM_EXECUTABLE|VM_SHARED))
  3774. +         return 0;
  3775. + #endif
  3776. +     return 1;
  3777. + }
  3778. + #define roundup(x, y)  ((((x)+((y)-1))/(y))*(y))
  3779. + /* An ELF note in memory */
  3780. + struct memelfnote
  3781. + {
  3782. +     char *name;
  3783. +     int type;
  3784. +     unsigned int datasz;
  3785. +     void *data;
  3786. + };
  3787. + static int notesize(struct memelfnote *en)
  3788. + {
  3789. +     int sz;
  3790. +     
  3791. +     sz = sizeof(struct elf_note);
  3792. +     sz += roundup(strlen(en->name), 4);
  3793. +     sz += roundup(en->datasz, 4);
  3794. +     
  3795. +     return sz;
  3796. + }
  3797. + /* #define DEBUG */
  3798. + #ifdef DEBUG
  3799. + static void dump_regs(const char *str, elf_greg_t *r)
  3800. + {
  3801. +     int i;
  3802. +     static const char *regs[] = { "ebx", "ecx", "edx", "esi", "edi", "ebp",
  3803. +                           "eax", "ds", "es", "fs", "gs",
  3804. +                           "orig_eax", "eip", "cs",
  3805. +                           "efl", "uesp", "ss"};
  3806. +     printk("Registers: %s\n", str);
  3807. +     for(i = 0; i < ELF_NGREG; i++)
  3808. +     {
  3809. +         unsigned long val = r[i];
  3810. +         printk("   %-2d %-5s=%08lx %lu\n", i, regs[i], val, val);
  3811. +     }
  3812. + }
  3813. + #endif
  3814. + #define DUMP_WRITE(addr, nr)    \
  3815. +     do { if (!dump_write(file, (addr), (nr))) return 0; } while(0)
  3816. + #define DUMP_SEEK(off)    \
  3817. +     do { if (!dump_seek(file, (off))) return 0; } while(0)
  3818. + static int writenote(struct memelfnote *men, struct file *file)
  3819. + {
  3820. +     struct elf_note en;
  3821. +     en.n_namesz = strlen(men->name);
  3822. +     en.n_descsz = men->datasz;
  3823. +     en.n_type = men->type;
  3824. +     DUMP_WRITE(&en, sizeof(en));
  3825. +     DUMP_WRITE(men->name, en.n_namesz);
  3826. +     /* XXX - cast from long long to long to avoid need for libgcc.a */
  3827. +     DUMP_SEEK(roundup((unsigned long)file->f_pos, 4));    /* XXX */
  3828. +     DUMP_WRITE(men->data, men->datasz);
  3829. +     DUMP_SEEK(roundup((unsigned long)file->f_pos, 4));    /* XXX */
  3830. +     
  3831. +     return 1;
  3832. + }
  3833. + #undef DUMP_WRITE
  3834. + #undef DUMP_SEEK
  3835. + #define DUMP_WRITE(addr, nr)    \
  3836. +     if (!dump_write(&file, (addr), (nr))) \
  3837. +         goto close_coredump;
  3838. + #define DUMP_SEEK(off)    \
  3839. +     if (!dump_seek(&file, (off))) \
  3840. +         goto close_coredump;
  3841. + /*
  3842. +  * Actual dumper
  3843. +  *
  3844. +  * This is a two-pass process; first we find the offsets of the bits,
  3845. +  * and then they are actually written out.  If we run out of core limit
  3846. +  * we just truncate.
  3847. +  */
  3848. + static int elf_core_dump(long signr, struct pt_regs * regs)
  3849. + {
  3850. +     int has_dumped = 0;
  3851. +     struct file file;
  3852. +     struct inode *inode;
  3853. +     unsigned short fs;
  3854. +     char corefile[6+sizeof(current->comm)];
  3855. +     int segs;
  3856. +     int i;
  3857. +     size_t size;
  3858. +     struct vm_area_struct *vma;
  3859. +     struct elfhdr elf;
  3860. +     off_t offset = 0, dataoff;
  3861. +     int limit = current->rlim[RLIMIT_CORE].rlim_cur;
  3862. +     int numnote = 4;
  3863. +     struct memelfnote notes[4];
  3864. +     struct elf_prstatus prstatus;    /* NT_PRSTATUS */
  3865. +     elf_fpregset_t fpu;        /* NT_PRFPREG */
  3866. +     struct elf_prpsinfo psinfo;    /* NT_PRPSINFO */
  3867. +     
  3868. +     if (!current->dumpable || limit < PAGE_SIZE)
  3869. +         return 0;
  3870. +     current->dumpable = 0;
  3871. + #ifndef CONFIG_BINFMT_ELF
  3872. +     MOD_INC_USE_COUNT;
  3873. + #endif
  3874. +     /* Count what's needed to dump, up to the limit of coredump size */
  3875. +     segs = 0;
  3876. +     size = 0;
  3877. +     for(vma = current->mm->mmap; vma != NULL; vma = vma->vm_next) {
  3878. +         int sz = vma->vm_end-vma->vm_start;
  3879. +         
  3880. +         if (!maydump(vma))
  3881. +             continue;
  3882. +         if (size+sz > limit)
  3883. +             break;
  3884. +         
  3885. +         segs++;
  3886. +         size += sz;
  3887. +     }
  3888. + #ifdef DEBUG
  3889. +     printk("elf_core_dump: %d segs taking %d bytes\n", segs, size);
  3890. + #endif
  3891. +     /* Set up header */
  3892. +     memcpy(elf.e_ident, ELFMAG, SELFMAG);
  3893. +     elf.e_ident[EI_CLASS] = ELFCLASS32;
  3894. +     elf.e_ident[EI_DATA] = ELFDATA2LSB;
  3895. +     elf.e_ident[EI_VERSION] = EV_CURRENT;
  3896. +     memset(elf.e_ident+EI_PAD, 0, EI_NIDENT-EI_PAD);
  3897. +     
  3898. +     elf.e_type = ET_CORE;
  3899. +     elf.e_machine = EM_386;
  3900. +     elf.e_version = EV_CURRENT;
  3901. +     elf.e_entry = 0;
  3902. +     elf.e_phoff = sizeof(elf);
  3903. +     elf.e_shoff = 0;
  3904. +     elf.e_flags = 0;
  3905. +     elf.e_ehsize = sizeof(elf);
  3906. +     elf.e_phentsize = sizeof(struct elf_phdr);
  3907. +     elf.e_phnum = segs+1;        /* Include notes */
  3908. +     elf.e_shentsize = 0;
  3909. +     elf.e_shnum = 0;
  3910. +     elf.e_shstrndx = 0;
  3911. +     
  3912. +     fs = get_fs();
  3913. +     set_fs(KERNEL_DS);
  3914. +     memcpy(corefile,"core.",5);
  3915. + #if 0
  3916. +     memcpy(corefile+5,current->comm,sizeof(current->comm));
  3917. + #else
  3918. +     corefile[4] = '\0';
  3919. + #endif
  3920. +     if (open_namei(corefile,O_CREAT | 2 | O_TRUNC,0600,&inode,NULL)) {
  3921. +         inode = NULL;
  3922. +         goto end_coredump;
  3923. +     }
  3924. +     if (!S_ISREG(inode->i_mode))
  3925. +         goto end_coredump;
  3926. +     if (!inode->i_op || !inode->i_op->default_file_ops)
  3927. +         goto end_coredump;
  3928. +     file.f_mode = 3;
  3929. +     file.f_flags = 0;
  3930. +     file.f_count = 1;
  3931. +     file.f_inode = inode;
  3932. +     file.f_pos = 0;
  3933. +     file.f_reada = 0;
  3934. +     file.f_op = inode->i_op->default_file_ops;
  3935. +     if (file.f_op->open)
  3936. +         if (file.f_op->open(inode,&file))
  3937. +             goto end_coredump;
  3938. +     if (!file.f_op->write)
  3939. +         goto close_coredump;
  3940. +     has_dumped = 1;
  3941. +     DUMP_WRITE(&elf, sizeof(elf));
  3942. +     offset += sizeof(elf);                /* Elf header */
  3943. +     offset += (segs+1) * sizeof(struct elf_phdr);    /* Program headers */
  3944. +     /*
  3945. +      * Set up the notes in similar form to SVR4 core dumps made
  3946. +      * with info from their /proc.
  3947. +      */
  3948. +     memset(&psinfo, 0, sizeof(psinfo));
  3949. +     memset(&prstatus, 0, sizeof(prstatus));
  3950. +     notes[0].name = "CORE";
  3951. +     notes[0].type = NT_PRSTATUS;
  3952. +     notes[0].datasz = sizeof(prstatus);
  3953. +     notes[0].data = &prstatus;
  3954. +     prstatus.pr_info.si_signo = prstatus.pr_cursig = signr;
  3955. +     prstatus.pr_sigpend = current->signal;
  3956. +     prstatus.pr_sighold = current->blocked;
  3957. +     psinfo.pr_pid = prstatus.pr_pid = current->pid;
  3958. +     psinfo.pr_ppid = prstatus.pr_ppid = current->p_pptr->pid;
  3959. +     psinfo.pr_pgrp = prstatus.pr_pgrp = current->pgrp;
  3960. +     psinfo.pr_sid = prstatus.pr_sid = current->session;
  3961. +     prstatus.pr_utime.tv_sec = CT_TO_SECS(current->utime);
  3962. +     prstatus.pr_utime.tv_usec = CT_TO_USECS(current->utime);
  3963. +     prstatus.pr_stime.tv_sec = CT_TO_SECS(current->stime);
  3964. +     prstatus.pr_stime.tv_usec = CT_TO_USECS(current->stime);
  3965. +     prstatus.pr_cutime.tv_sec = CT_TO_SECS(current->cutime);
  3966. +     prstatus.pr_cutime.tv_usec = CT_TO_USECS(current->cutime);
  3967. +     prstatus.pr_cstime.tv_sec = CT_TO_SECS(current->cstime);
  3968. +     prstatus.pr_cstime.tv_usec = CT_TO_USECS(current->cstime);
  3969. +     if (sizeof(elf_gregset_t) != sizeof(struct pt_regs))
  3970. +     {
  3971. +         printk("sizeof(elf_gregset_t) (%d) != sizeof(struct pt_regs) (%d)\n",
  3972. +             sizeof(elf_gregset_t), sizeof(struct pt_regs));
  3973. +     }
  3974. +     else
  3975. +         *(struct pt_regs *)&prstatus.pr_reg = *regs;
  3976. +     
  3977. + #ifdef DEBUG
  3978. +     dump_regs("Passed in regs", (elf_greg_t *)regs);
  3979. +     dump_regs("prstatus regs", (elf_greg_t *)&prstatus.pr_reg);
  3980. + #endif
  3981. +     notes[1].name = "CORE";
  3982. +     notes[1].type = NT_PRPSINFO;
  3983. +     notes[1].datasz = sizeof(psinfo);
  3984. +     notes[1].data = &psinfo;
  3985. +     psinfo.pr_state = current->state;
  3986. +     psinfo.pr_sname = (current->state < 0 || current->state > 5) ? '.' : "RSDZTD"[current->state];
  3987. +     psinfo.pr_zomb = psinfo.pr_sname == 'Z';
  3988. +     psinfo.pr_nice = current->priority-15;
  3989. +     psinfo.pr_flag = current->flags;
  3990. +     psinfo.pr_uid = current->uid;
  3991. +     psinfo.pr_gid = current->gid;
  3992. +     {
  3993. +         int i, len;
  3994. +         set_fs(fs);
  3995. +         
  3996. +         len = current->mm->arg_end - current->mm->arg_start;
  3997. +         len = len >= ELF_PRARGSZ ? ELF_PRARGSZ : len;
  3998. +         memcpy_fromfs(&psinfo.pr_psargs,
  3999. +                   (const char *)current->mm->arg_start, len);
  4000. +         for(i = 0; i < len; i++)
  4001. +             if (psinfo.pr_psargs[i] == 0)
  4002. +                 psinfo.pr_psargs[i] = ' ';
  4003. +         psinfo.pr_psargs[len] = 0;
  4004. +         set_fs(KERNEL_DS);
  4005. +     }
  4006. +     strncpy(psinfo.pr_fname, current->comm, sizeof(psinfo.pr_fname));
  4007. +     notes[2].name = "CORE";
  4008. +     notes[2].type = NT_TASKSTRUCT;
  4009. +     notes[2].datasz = sizeof(*current);
  4010. +     notes[2].data = current;
  4011. +     
  4012. +     /* Try to dump the fpu. */
  4013. +     prstatus.pr_fpvalid = dump_fpu (&fpu);
  4014. +     if (!prstatus.pr_fpvalid)
  4015. +     {
  4016. +         numnote--;
  4017. +     }
  4018. +     else
  4019. +     {
  4020. +         notes[3].name = "CORE";
  4021. +         notes[3].type = NT_PRFPREG;
  4022. +         notes[3].datasz = sizeof(fpu);
  4023. +         notes[3].data = &fpu;
  4024. +     }
  4025. +     
  4026. +     /* Write notes phdr entry */
  4027. +     {
  4028. +         struct elf_phdr phdr;
  4029. +         int sz = 0;
  4030. +         for(i = 0; i < numnote; i++)
  4031. +             sz += notesize(¬es[i]);
  4032. +         
  4033. +         phdr.p_type = PT_NOTE;
  4034. +         phdr.p_offset = offset;
  4035. +         phdr.p_vaddr = 0;
  4036. +         phdr.p_paddr = 0;
  4037. +         phdr.p_filesz = sz;
  4038. +         phdr.p_memsz = 0;
  4039. +         phdr.p_flags = 0;
  4040. +         phdr.p_align = 0;
  4041. +         offset += phdr.p_filesz;
  4042. +         DUMP_WRITE(&phdr, sizeof(phdr));
  4043. +     }
  4044. +     /* Page-align dumped data */
  4045. +     dataoff = offset = roundup(offset, PAGE_SIZE);
  4046. +     
  4047. +     /* Write program headers for segments dump */
  4048. +     for(vma = current->mm->mmap, i = 0;
  4049. +         i < segs && vma != NULL; vma = vma->vm_next) {
  4050. +         struct elf_phdr phdr;
  4051. +         size_t sz;
  4052. +         if (!maydump(vma))
  4053. +             continue;
  4054. +         i++;
  4055. +         sz = vma->vm_end - vma->vm_start;
  4056. +         
  4057. +         phdr.p_type = PT_LOAD;
  4058. +         phdr.p_offset = offset;
  4059. +         phdr.p_vaddr = vma->vm_start;
  4060. +         phdr.p_paddr = 0;
  4061. +         phdr.p_filesz = sz;
  4062. +         phdr.p_memsz = sz;
  4063. +         offset += sz;
  4064. +         phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
  4065. +         if (vma->vm_flags & VM_WRITE) phdr.p_flags |= PF_W;
  4066. +         if (vma->vm_flags & VM_EXEC) phdr.p_flags |= PF_X;
  4067. +         phdr.p_align = PAGE_SIZE;
  4068. +         DUMP_WRITE(&phdr, sizeof(phdr));
  4069. +     }
  4070. +     for(i = 0; i < numnote; i++)
  4071. +         if (!writenote(¬es[i], &file))
  4072. +             goto close_coredump;
  4073. +     
  4074. +     set_fs(fs);
  4075. +     DUMP_SEEK(dataoff);
  4076. +     
  4077. +     for(i = 0, vma = current->mm->mmap;
  4078. +         i < segs && vma != NULL;
  4079. +         vma = vma->vm_next) {
  4080. +         unsigned long addr = vma->vm_start;
  4081. +         unsigned long len = vma->vm_end - vma->vm_start;
  4082. +         
  4083. +         if (!maydump(vma))
  4084. +             continue;
  4085. +         i++;
  4086. + #ifdef DEBUG
  4087. +         printk("elf_core_dump: writing %08lx %lx\n", addr, len);
  4088. + #endif
  4089. +         DUMP_WRITE((void *)addr, len);
  4090. +     }
  4091. +     if (file.f_pos != offset) {
  4092. +         /* Sanity check */
  4093. +         printk("elf_core_dump: file.f_pos (%ld) != offset (%ld)\n",
  4094. +                file.f_pos, offset);
  4095. +     }
  4096. +  close_coredump:
  4097. +     if (file.f_op->release)
  4098. +         file.f_op->release(inode,&file);
  4099. +  end_coredump:
  4100. +     set_fs(fs);
  4101. +     iput(inode);
  4102. + #ifndef CONFIG_BINFMT_ELF
  4103. +     MOD_DEC_USE_COUNT;
  4104. + #endif
  4105. +     return has_dumped;
  4106. + }
  4107.   #ifdef MODULE
  4108.   char kernel_version[] = UTS_RELEASE;
  4109.   
  4110. ***************
  4111. *** 752,757 ****
  4112. --- 1161,1167 ----
  4113.       register_binfmt(&elf_format);
  4114.       return 0;
  4115.   }
  4116.   
  4117.   void cleanup_module( void) {
  4118.       
  4119. diff -c linux/linux/include/asm-alpha/dma.h:1.1.1.5 linux/linux/include/asm-alpha/dma.h:1.1.1.6
  4120. *** linux/linux/include/asm-alpha/dma.h:1.1.1.5    Mon Jul  3 21:02:10 1995
  4121. --- linux/linux/include/asm-alpha/dma.h    Mon Jul  3 21:02:10 1995
  4122. ***************
  4123. *** 8,14 ****
  4124.    * These DMA-functions don't know about EISA DMA yet..
  4125.    */
  4126.   
  4127. ! /* dma.h,v 1.1.1.1 1995/03/11 20:40:25 hjl Exp
  4128.    * linux/include/asm/dma.h: Defines for using and allocating dma channels.
  4129.    * Written by Hennus Bergman, 1992.
  4130.    * High DMA channel support & info by Hannu Savolainen
  4131. --- 8,14 ----
  4132.    * These DMA-functions don't know about EISA DMA yet..
  4133.    */
  4134.   
  4135. ! /* $Id: dma.h,v 1.7 1992/12/14 00:29:34 root Exp root $
  4136.    * linux/include/asm/dma.h: Defines for using and allocating dma channels.
  4137.    * Written by Hennus Bergman, 1992.
  4138.    * High DMA channel support & info by Hannu Savolainen
  4139. diff -c linux/linux/include/asm-i386/dma.h:1.1.1.4 linux/linux/include/asm-i386/dma.h:1.1.1.5
  4140. *** linux/linux/include/asm-i386/dma.h:1.1.1.4    Mon Jul  3 21:02:11 1995
  4141. --- linux/linux/include/asm-i386/dma.h    Mon Jul  3 21:02:11 1995
  4142. ***************
  4143. *** 1,4 ****
  4144. ! /* dma.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4145.    * linux/include/asm/dma.h: Defines for using and allocating dma channels.
  4146.    * Written by Hennus Bergman, 1992.
  4147.    * High DMA channel support & info by Hannu Savolainen
  4148. --- 1,4 ----
  4149. ! /* $Id: dma.h,v 1.7 1992/12/14 00:29:34 root Exp root $
  4150.    * linux/include/asm/dma.h: Defines for using and allocating dma channels.
  4151.    * Written by Hennus Bergman, 1992.
  4152.    * High DMA channel support & info by Hannu Savolainen
  4153. diff -c linux/linux/include/asm-i386/irq.h:1.1.1.1 linux/linux/include/asm-i386/irq.h:1.1.1.2
  4154. *** linux/linux/include/asm-i386/irq.h:1.1.1.1    Mon Jul  3 21:02:12 1995
  4155. --- linux/linux/include/asm-i386/irq.h    Mon Jul  3 21:02:12 1995
  4156. ***************
  4157. *** 79,86 ****
  4158.       "inb $0x21,%al\n\t" \
  4159.       "jmp 1f\n" \
  4160.       "1:\tjmp 1f\n" \
  4161. !     "1:\torb $" #mask ",_cache_21\n\t" \
  4162. !     "movb _cache_21,%al\n\t" \
  4163.       "outb %al,$0x21\n\t" \
  4164.       "jmp 1f\n" \
  4165.       "1:\tjmp 1f\n" \
  4166. --- 79,86 ----
  4167.       "inb $0x21,%al\n\t" \
  4168.       "jmp 1f\n" \
  4169.       "1:\tjmp 1f\n" \
  4170. !     "1:\torb $" #mask ","SYMBOL_NAME_STR(cache_21)"\n\t" \
  4171. !     "movb "SYMBOL_NAME_STR(cache_21)",%al\n\t" \
  4172.       "outb %al,$0x21\n\t" \
  4173.       "jmp 1f\n" \
  4174.       "1:\tjmp 1f\n" \
  4175. ***************
  4176. *** 91,98 ****
  4177.       "inb $0xA1,%al\n\t" \
  4178.       "jmp 1f\n" \
  4179.       "1:\tjmp 1f\n" \
  4180. !     "1:\torb $" #mask ",_cache_A1\n\t" \
  4181. !     "movb _cache_A1,%al\n\t" \
  4182.       "outb %al,$0xA1\n\t" \
  4183.       "jmp 1f\n" \
  4184.       "1:\tjmp 1f\n" \
  4185. --- 91,98 ----
  4186.       "inb $0xA1,%al\n\t" \
  4187.       "jmp 1f\n" \
  4188.       "1:\tjmp 1f\n" \
  4189. !     "1:\torb $" #mask ","SYMBOL_NAME_STR(cache_A1)"\n\t" \
  4190. !     "movb "SYMBOL_NAME_STR(cache_A1)",%al\n\t" \
  4191.       "outb %al,$0xA1\n\t" \
  4192.       "jmp 1f\n" \
  4193.       "1:\tjmp 1f\n" \
  4194. ***************
  4195. *** 106,121 ****
  4196.       "inb $0x21,%al\n\t" \
  4197.       "jmp 1f\n" \
  4198.       "1:\tjmp 1f\n" \
  4199. !     "1:\tandb $~(" #mask "),_cache_21\n\t" \
  4200. !     "movb _cache_21,%al\n\t" \
  4201.       "outb %al,$0x21\n\t"
  4202.   
  4203.   #define UNBLK_SECOND(mask) \
  4204.       "inb $0xA1,%al\n\t" \
  4205.       "jmp 1f\n" \
  4206.       "1:\tjmp 1f\n" \
  4207. !     "1:\tandb $~(" #mask "),_cache_A1\n\t" \
  4208. !     "movb _cache_A1,%al\n\t" \
  4209.       "outb %al,$0xA1\n\t"
  4210.   
  4211.   #define IRQ_NAME2(nr) nr##_interrupt(void)
  4212. --- 106,121 ----
  4213.       "inb $0x21,%al\n\t" \
  4214.       "jmp 1f\n" \
  4215.       "1:\tjmp 1f\n" \
  4216. !     "1:\tandb $~(" #mask "),"SYMBOL_NAME_STR(cache_21)"\n\t" \
  4217. !     "movb "SYMBOL_NAME_STR(cache_21)",%al\n\t" \
  4218.       "outb %al,$0x21\n\t"
  4219.   
  4220.   #define UNBLK_SECOND(mask) \
  4221.       "inb $0xA1,%al\n\t" \
  4222.       "jmp 1f\n" \
  4223.       "1:\tjmp 1f\n" \
  4224. !     "1:\tandb $~(" #mask "),"SYMBOL_NAME_STR(cache_A1)"\n\t" \
  4225. !     "movb "SYMBOL_NAME_STR(cache_A1)",%al\n\t" \
  4226.       "outb %al,$0xA1\n\t"
  4227.   
  4228.   #define IRQ_NAME2(nr) nr##_interrupt(void)
  4229. ***************
  4230. *** 128,163 ****
  4231.   asmlinkage void FAST_IRQ_NAME(nr); \
  4232.   asmlinkage void BAD_IRQ_NAME(nr); \
  4233.   __asm__( \
  4234. ! "\n.align 4\n" \
  4235. ! "_IRQ" #nr "_interrupt:\n\t" \
  4236.       "pushl $-"#nr"-2\n\t" \
  4237.       SAVE_ALL \
  4238.       ACK_##chip(mask) \
  4239. !     "incl _intr_count\n\t"\
  4240.       "sti\n\t" \
  4241.       "movl %esp,%ebx\n\t" \
  4242.       "pushl %ebx\n\t" \
  4243.       "pushl $" #nr "\n\t" \
  4244. !     "call _do_IRQ\n\t" \
  4245.       "addl $8,%esp\n\t" \
  4246.       "cli\n\t" \
  4247.       UNBLK_##chip(mask) \
  4248. !     "decl _intr_count\n\t" \
  4249.       "jmp ret_from_sys_call\n" \
  4250. ! "\n.align 4\n" \
  4251. ! "_fast_IRQ" #nr "_interrupt:\n\t" \
  4252.       SAVE_MOST \
  4253.       ACK_##chip(mask) \
  4254. !     "incl _intr_count\n\t" \
  4255.       "pushl $" #nr "\n\t" \
  4256. !     "call _do_fast_IRQ\n\t" \
  4257.       "addl $4,%esp\n\t" \
  4258.       "cli\n\t" \
  4259.       UNBLK_##chip(mask) \
  4260. !     "decl _intr_count\n\t" \
  4261.       RESTORE_MOST \
  4262. ! "\n\n.align 4\n" \
  4263. ! "_bad_IRQ" #nr "_interrupt:\n\t" \
  4264.       SAVE_MOST \
  4265.       ACK_##chip(mask) \
  4266.       RESTORE_MOST);
  4267. --- 128,163 ----
  4268.   asmlinkage void FAST_IRQ_NAME(nr); \
  4269.   asmlinkage void BAD_IRQ_NAME(nr); \
  4270.   __asm__( \
  4271. ! "\n"ALIGN_STR"\n" \
  4272. ! SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \
  4273.       "pushl $-"#nr"-2\n\t" \
  4274.       SAVE_ALL \
  4275.       ACK_##chip(mask) \
  4276. !     "incl "SYMBOL_NAME_STR(intr_count)"\n\t"\
  4277.       "sti\n\t" \
  4278.       "movl %esp,%ebx\n\t" \
  4279.       "pushl %ebx\n\t" \
  4280.       "pushl $" #nr "\n\t" \
  4281. !     "call "SYMBOL_NAME_STR(do_IRQ)"\n\t" \
  4282.       "addl $8,%esp\n\t" \
  4283.       "cli\n\t" \
  4284.       UNBLK_##chip(mask) \
  4285. !     "decl "SYMBOL_NAME_STR(intr_count)"\n\t" \
  4286.       "jmp ret_from_sys_call\n" \
  4287. ! "\n"ALIGN_STR"\n" \
  4288. ! SYMBOL_NAME_STR(fast_IRQ) #nr "_interrupt:\n\t" \
  4289.       SAVE_MOST \
  4290.       ACK_##chip(mask) \
  4291. !     "incl "SYMBOL_NAME_STR(intr_count)"\n\t" \
  4292.       "pushl $" #nr "\n\t" \
  4293. !     "call "SYMBOL_NAME_STR(do_fast_IRQ)"\n\t" \
  4294.       "addl $4,%esp\n\t" \
  4295.       "cli\n\t" \
  4296.       UNBLK_##chip(mask) \
  4297. !     "decl "SYMBOL_NAME_STR(intr_count)"\n\t" \
  4298.       RESTORE_MOST \
  4299. ! "\n"ALIGN_STR"\n" \
  4300. ! SYMBOL_NAME_STR(bad_IRQ) #nr "_interrupt:\n\t" \
  4301.       SAVE_MOST \
  4302.       ACK_##chip(mask) \
  4303.       RESTORE_MOST);
  4304. diff -c linux/linux/include/asm-i386/system.h:1.1.1.3 linux/linux/include/asm-i386/system.h:1.1.1.4
  4305. *** linux/linux/include/asm-i386/system.h:1.1.1.3    Mon Jul  3 21:02:12 1995
  4306. --- linux/linux/include/asm-i386/system.h    Mon Jul  3 21:02:12 1995
  4307. ***************
  4308. *** 49,58 ****
  4309.    */
  4310.   #define switch_to(tsk) do { \
  4311.   __asm__("cli\n\t" \
  4312. !     "xchgl %%ecx,_current\n\t" \
  4313.       "ljmp %0\n\t" \
  4314.       "sti\n\t" \
  4315. !     "cmpl %%ecx,_last_task_used_math\n\t" \
  4316.       "jne 1f\n\t" \
  4317.       "clts\n" \
  4318.       "1:" \
  4319. --- 49,58 ----
  4320.    */
  4321.   #define switch_to(tsk) do { \
  4322.   __asm__("cli\n\t" \
  4323. !     "xchgl %%ecx,"SYMBOL_NAME_STR(current)"\n\t" \
  4324.       "ljmp %0\n\t" \
  4325.       "sti\n\t" \
  4326. !     "cmpl %%ecx,"SYMBOL_NAME_STR(last_task_used_math)"\n\t" \
  4327.       "jne 1f\n\t" \
  4328.       "clts\n" \
  4329.       "1:" \
  4330. diff -c linux/linux/include/asm-mips/dma.h:1.1.1.4 linux/linux/include/asm-mips/dma.h:1.1.1.5
  4331. *** linux/linux/include/asm-mips/dma.h:1.1.1.4    Mon Jul  3 21:02:12 1995
  4332. --- linux/linux/include/asm-mips/dma.h    Mon Jul  3 21:02:12 1995
  4333. ***************
  4334. *** 1,4 ****
  4335. ! /* dma.h,v 1.1.1.1 1995/03/11 20:40:25 hjl Exp
  4336.    * linux/include/asm/dma.h: Defines for using and allocating dma channels.
  4337.    * Written by Hennus Bergman, 1992.
  4338.    * High DMA channel support & info by Hannu Savolainen
  4339. --- 1,4 ----
  4340. ! /* $Id: dma.h,v 1.7 1992/12/14 00:29:34 root Exp root $
  4341.    * linux/include/asm/dma.h: Defines for using and allocating dma channels.
  4342.    * Written by Hennus Bergman, 1992.
  4343.    * High DMA channel support & info by Hannu Savolainen
  4344. diff -c linux/linux/include/linux/aztcd.h:1.1.1.5 linux/linux/include/linux/aztcd.h:1.1.1.6
  4345. *** linux/linux/include/linux/aztcd.h:1.1.1.5    Mon Jul  3 21:02:16 1995
  4346. --- linux/linux/include/linux/aztcd.h    Mon Jul  3 21:02:16 1995
  4347. ***************
  4348. *** 1,4 ****
  4349. ! /* aztcd.h,v 1.1.1.2 1995/03/29 23:35:36 hjl Exp
  4350.    * Definitions for a AztechCD268 CD-ROM interface
  4351.    *    Copyright (C) 1994, 1995  Werner Zimmermann
  4352.    *
  4353. --- 1,4 ----
  4354. ! /* $Id: aztcd.h,v 1.0 1995/03/25 08:27:19 root Exp $
  4355.    * Definitions for a AztechCD268 CD-ROM interface
  4356.    *    Copyright (C) 1994, 1995  Werner Zimmermann
  4357.    *
  4358. diff -c /dev/null linux/linux/include/linux/elfcore.h:1.1
  4359. *** /dev/null    Mon Jul  3 21:02:16 1995
  4360. --- linux/linux/include/linux/elfcore.h    Mon Jul  3 21:02:16 1995
  4361. ***************
  4362. *** 0 ****
  4363. --- 1,97 ----
  4364. + #ifndef _LINUX_ELFCORE_H
  4365. + #define _LINUX_ELFCORE_H
  4366. + #include <linux/types.h>
  4367. + #include <linux/signal.h>
  4368. + #include <linux/time.h>
  4369. + #include <linux/ptrace.h>
  4370. + #include <linux/user.h>
  4371. + struct elf_siginfo
  4372. + {
  4373. +     int    si_signo;            /* signal number */
  4374. +     int    si_code;            /* extra code */
  4375. +     int    si_errno;            /* errno */
  4376. + };
  4377. + typedef unsigned long elf_greg_t;
  4378. + #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
  4379. + typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  4380. + typedef struct
  4381. + #ifdef __i386__
  4382. +     user_i387_struct
  4383. + #else
  4384. + #error    "The FPU in this arch is not supported by ELF core dump.".
  4385. + #endif
  4386. + elf_fpregset_t;
  4387. + #ifndef __KERNEL__
  4388. + typedef elf_greg_t greg_t;
  4389. + typedef elf_gregset_t gregset_t;
  4390. + typedef elf_fpregset_t fpregset_t;
  4391. + #define NGREG ELF_NGREG
  4392. + #endif
  4393. + /*
  4394. +  * Definitons to generate Intel SVR4-like core files.
  4395. +  * These mostly have the same names as the SVR4 types with "elf_"
  4396. +  * tacked on the front to prevent clashes with linux definitions,
  4397. +  * and the typedef forms have been avoided.  This is mostly like
  4398. +  * the SVR4 structure, but more Linuxy, with things that Linux does
  4399. +  * not support and which gdb doesn't really use excluded.
  4400. +  * Fields present but not used are marked with "XXX".
  4401. +  */
  4402. + struct elf_prstatus
  4403. + {
  4404. + #if 0
  4405. +     long    pr_flags;    /* XXX Process flags */
  4406. +     short    pr_why;        /* XXX Reason for process halt */
  4407. +     short    pr_what;    /* XXX More detailed reason */
  4408. + #endif
  4409. +     struct elf_siginfo pr_info;    /* Info associated with signal */
  4410. +     short    pr_cursig;    /* Current signal */
  4411. +     sigset_t pr_sigpend;    /* Set of pending signals */
  4412. +     sigset_t pr_sighold;    /* Set of held signals */
  4413. + #if 0
  4414. +     struct sigaltstack pr_altstack;    /* Alternate stack info */
  4415. +     struct sigaction pr_action;    /* Signal action for current sig */
  4416. + #endif
  4417. +     pid_t    pr_pid;
  4418. +     pid_t    pr_ppid;
  4419. +     pid_t    pr_pgrp;
  4420. +     pid_t    pr_sid;
  4421. +     struct timeval pr_utime;    /* User time */
  4422. +     struct timeval pr_stime;    /* System time */
  4423. +     struct timeval pr_cutime;    /* Cumulative user time */
  4424. +     struct timeval pr_cstime;    /* Cumulative system time */
  4425. + #if 0
  4426. +     long    pr_instr;        /* Current instruction */
  4427. + #endif
  4428. +     elf_gregset_t pr_reg;    /* GP registers */
  4429. +     int pr_fpvalid;        /* True if math co-processor being used.  */
  4430. + };
  4431. + #define ELF_PRARGSZ    (80)    /* Number of chars for args */
  4432. + struct elf_prpsinfo
  4433. + {
  4434. +     char    pr_state;    /* numeric process state */
  4435. +     char    pr_sname;    /* char for pr_state */
  4436. +     char    pr_zomb;    /* zombie */
  4437. +     char    pr_nice;    /* nice val */
  4438. +     unsigned long pr_flag;    /* flags */
  4439. +     uid_t    pr_uid;
  4440. +     gid_t    pr_gid;
  4441. +     pid_t    pr_pid, pr_ppid, pr_pgrp, pr_sid;
  4442. +     /* Lots missing */
  4443. +     char    pr_fname[16];    /* filename of executable */
  4444. +     char    pr_psargs[ELF_PRARGSZ];    /* initial part of arg list */
  4445. + };
  4446. + #ifndef __KERNEL__
  4447. + typedef struct elf_prstatus prstatus_t;
  4448. + typedef struct elf_prpsinfo prpsinfo_t;
  4449. + #define PRARGSZ ELF_PRARGSZ 
  4450. + #endif
  4451. + #endif /* _LINUX_ELFCORE_H */
  4452. diff -c linux/linux/include/linux/inet.h:1.1.1.4 linux/linux/include/linux/inet.h:1.1.1.5
  4453. *** linux/linux/include/linux/inet.h:1.1.1.4    Mon Jul  3 21:02:17 1995
  4454. --- linux/linux/include/linux/inet.h    Mon Jul  3 21:02:17 1995
  4455. ***************
  4456. *** 8,38 ****
  4457.    *        This work was derived from Ross Biro's inspirational work
  4458.    *        for the LINUX operating system.  His version numbers were:
  4459.    *
  4460. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4461. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4462. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4463. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4464. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4465. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4466. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4467. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4468. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4469. !  *         inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4470. !  *         inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4471. !  *         inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4472. !  *         inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4473. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4474. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4475. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4476. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4477. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4478. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4479. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4480. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4481. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4482. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4483. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4484. !  *        inet.h,v 1.1.1.1 1995/03/11 20:40:24 hjl Exp
  4485.    *
  4486.    *        This program is free software; you can redistribute it and/or
  4487.    *        modify it under the terms of the GNU General Public License
  4488. --- 8,38 ----
  4489.    *        This work was derived from Ross Biro's inspirational work
  4490.    *        for the LINUX operating system.  His version numbers were:
  4491.    *
  4492. !  *        $Id: Space.c,v     0.8.4.5  1992/12/12 19:25:04 bir7 Exp $
  4493. !  *        $Id: arp.c,v       0.8.4.6  1993/01/28 22:30:00 bir7 Exp $
  4494. !  *        $Id: arp.h,v       0.8.4.6  1993/01/28 22:30:00 bir7 Exp $
  4495. !  *        $Id: dev.c,v       0.8.4.13 1993/01/23 18:00:11 bir7 Exp $
  4496. !  *        $Id: dev.h,v       0.8.4.7  1993/01/23 18:00:11 bir7 Exp $
  4497. !  *        $Id: eth.c,v       0.8.4.4  1993/01/22 23:21:38 bir7 Exp $
  4498. !  *        $Id: eth.h,v       0.8.4.1  1992/11/10 00:17:18 bir7 Exp $
  4499. !  *        $Id: icmp.c,v      0.8.4.9  1993/01/23 18:00:11 bir7 Exp $
  4500. !  *        $Id: icmp.h,v      0.8.4.2  1992/11/15 14:55:30 bir7 Exp $
  4501. !  *         $Id: ip.c,v        0.8.4.8  1992/12/12 19:25:04 bir7 Exp $
  4502. !  *         $Id: ip.h,v        0.8.4.2  1993/01/23 18:00:11 bir7 Exp $
  4503. !  *         $Id: loopback.c,v  0.8.4.8  1993/01/23 18:00:11 bir7 Exp $
  4504. !  *         $Id: packet.c,v    0.8.4.7  1993/01/26 22:04:00 bir7 Exp $
  4505. !  *        $Id: protocols.c,v 0.8.4.3  1992/11/15 14:55:30 bir7 Exp $
  4506. !  *        $Id: raw.c,v       0.8.4.12 1993/01/26 22:04:00 bir7 Exp $
  4507. !  *        $Id: sock.c,v      0.8.4.6  1993/01/28 22:30:00 bir7 Exp $
  4508. !  *        $Id: sock.h,v      0.8.4.7  1993/01/26 22:04:00 bir7 Exp $
  4509. !  *        $Id: tcp.c,v       0.8.4.16 1993/01/26 22:04:00 bir7 Exp $
  4510. !  *        $Id: tcp.h,v       0.8.4.7  1993/01/22 22:58:08 bir7 Exp $
  4511. !  *        $Id: timer.c,v     0.8.4.8  1993/01/23 18:00:11 bir7 Exp $
  4512. !  *        $Id: timer.h,v     0.8.4.2  1993/01/23 18:00:11 bir7 Exp $
  4513. !  *        $Id: udp.c,v       0.8.4.12 1993/01/26 22:04:00 bir7 Exp $
  4514. !  *        $Id: udp.h,v       0.8.4.1  1992/11/10 00:17:18 bir7 Exp $
  4515. !  *        $Id: we.c,v        0.8.4.10 1993/01/23 18:00:11 bir7 Exp $
  4516. !  *        $Id: wereg.h,v     0.8.4.1  1992/11/10 00:17:18 bir7 Exp $
  4517.    *
  4518.    *        This program is free software; you can redistribute it and/or
  4519.    *        modify it under the terms of the GNU General Public License
  4520. diff -c linux/linux/include/linux/ioctl.h:1.1.1.5 linux/linux/include/linux/ioctl.h:1.1.1.6
  4521. *** linux/linux/include/linux/ioctl.h:1.1.1.5    Mon Jul  3 21:02:17 1995
  4522. --- linux/linux/include/linux/ioctl.h    Mon Jul  3 21:02:17 1995
  4523. ***************
  4524. *** 1,4 ****
  4525. ! /* ioctl.h,v 1.1.1.1 1995/03/11 20:40:23 hjl Exp
  4526.    *
  4527.    * linux/ioctl.h for Linux by H.H. Bergman.
  4528.    */
  4529. --- 1,4 ----
  4530. ! /* $Id: ioctl.h,v 1.5 1993/07/19 21:53:50 root Exp root $
  4531.    *
  4532.    * linux/ioctl.h for Linux by H.H. Bergman.
  4533.    */
  4534. diff -c linux/linux/include/linux/linkage.h:1.1.1.1 linux/linux/include/linux/linkage.h:1.1.1.2
  4535. *** linux/linux/include/linux/linkage.h:1.1.1.1    Mon Jul  3 21:02:17 1995
  4536. --- linux/linux/include/linux/linkage.h    Mon Jul  3 21:02:17 1995
  4537. ***************
  4538. *** 7,10 ****
  4539. --- 7,52 ----
  4540.   #define asmlinkage
  4541.   #endif
  4542.   
  4543. + #if !defined(__i486__) && !defined(__i586__)
  4544. + #ifdef __ELF__
  4545. + #define ALIGN .align 4,0x90
  4546. + #define ALIGN_STR ".align 4,0x90"
  4547. + #else  /* __ELF__ */
  4548. + #define ALIGN .align 2,0x90
  4549. + #define ALIGN_STR ".align 2,0x90"
  4550. + #endif /* __ELF__ */
  4551. + #else  /* __i486__/__i586__ */
  4552. + #ifdef __ELF__
  4553. + #define ALIGN .align 16,0x90
  4554. + #define ALIGN_STR ".align 16,0x90"
  4555. + #else  /* __ELF__ */
  4556. + #define ALIGN .align 4,0x90
  4557. + #define ALIGN_STR ".align 4,0x90"
  4558. + #endif /* __ELF__ */
  4559. + #endif /* __i486__/__i586__ */
  4560. + #ifdef __ELF__
  4561. + #define SYMBOL_NAME_STR(X) #X
  4562. + #define SYMBOL_NAME(X) X
  4563. + #ifdef __STDC__
  4564. + #define SYMBOL_NAME_LABEL(X) X##:
  4565. + #else
  4566. + #define SYMBOL_NAME_LABEL(X) X/**/:
  4567. + #endif
  4568. + #else
  4569. + #define SYMBOL_NAME_STR(X) "_"#X
  4570. + #ifdef __STDC__
  4571. + #define SYMBOL_NAME(X) _##X
  4572. + #define SYMBOL_NAME_LABEL(X) _##X##:
  4573. + #else
  4574. + #define SYMBOL_NAME(X) _/**/X
  4575. + #define SYMBOL_NAME_LABEL(X) _/**/X/**/:
  4576. + #endif
  4577. + #endif
  4578. + #define ENTRY(name) \
  4579. +   .globl SYMBOL_NAME(name); \
  4580. +   ALIGN; \
  4581. +   SYMBOL_NAME_LABEL(name)
  4582.   #endif
  4583. diff -c linux/linux/include/linux/mtio.h:1.1.1.5 linux/linux/include/linux/mtio.h:1.1.1.6
  4584. *** linux/linux/include/linux/mtio.h:1.1.1.5    Mon Jul  3 21:02:17 1995
  4585. --- linux/linux/include/linux/mtio.h    Mon Jul  3 21:02:17 1995
  4586. ***************
  4587. *** 1,4 ****
  4588. ! /* mtio.h,v 1.1.1.1 1995/03/11 20:40:23 hjl Exp
  4589.    *
  4590.    * linux/mtio.h header file for Linux. Written by H. Bergman
  4591.    */
  4592. --- 1,4 ----
  4593. ! /* $Id: /usr/src/linux-1.1.64/include/linux/mtio.h at Tue Jan 10 21:02:51 1995 by root@kai.home$
  4594.    *
  4595.    * linux/mtio.h header file for Linux. Written by H. Bergman
  4596.    */
  4597. diff -c linux/linux/include/linux/symtab_begin.h:1.1.1.1 linux/linux/include/linux/symtab_begin.h:1.1.1.2
  4598. *** linux/linux/include/linux/symtab_begin.h:1.1.1.1    Mon Jul  3 21:02:17 1995
  4599. --- linux/linux/include/linux/symtab_begin.h    Mon Jul  3 21:02:17 1995
  4600. ***************
  4601. *** 1,16 ****
  4602.   #ifdef CONFIG_MODVERSIONS /* CONFIG_MODVERSIONS */
  4603.   #undef _set_ver
  4604.   #undef X
  4605.   #ifndef __GENKSYMS__
  4606.   #ifdef MODULE
  4607. ! #define _set_ver(sym,ver) { (void *) & sym ## _R ## ver, "_" #sym "_R" #ver }
  4608.   #else /* MODULE */
  4609. ! #define _set_ver(sym,ver) { (void *) & sym, "_" #sym "_R" #ver }
  4610.   #endif /* MODULE */
  4611.   #define X(a) a
  4612.   #endif /* __GENKSYMS__ */
  4613.   #else /* CONFIG_MODVERSIONS */
  4614. ! #define X(sym) { (void *) & sym, "_" #sym }
  4615.   #endif /* CONFIG_MODVERSIONS */
  4616.   #define EMPTY {0,0}
  4617.       0, 0, 0, {
  4618. --- 1,19 ----
  4619. + #include <linux/linkage.h>
  4620.   #ifdef CONFIG_MODVERSIONS /* CONFIG_MODVERSIONS */
  4621.   #undef _set_ver
  4622.   #undef X
  4623.   #ifndef __GENKSYMS__
  4624.   #ifdef MODULE
  4625. ! #define _set_ver(sym,ver) \
  4626. !     { (void *) & sym ## _R ## ver, SYMBOL_NAME_STR(sym) "_R" #ver }
  4627.   #else /* MODULE */
  4628. ! #define _set_ver(sym,ver) \
  4629. !     { (void *) & sym, SYMBOL_NAME_STR(sym) "_R" #ver }
  4630.   #endif /* MODULE */
  4631.   #define X(a) a
  4632.   #endif /* __GENKSYMS__ */
  4633.   #else /* CONFIG_MODVERSIONS */
  4634. ! #define X(sym) { (void *) & sym, SYMBOL_NAME_STR(sym)}
  4635.   #endif /* CONFIG_MODVERSIONS */
  4636.   #define EMPTY {0,0}
  4637.       0, 0, 0, {
  4638. diff -c linux/linux/include/linux/sys.h:1.1.1.1 linux/linux/include/linux/sys.h:1.1.1.2
  4639. *** linux/linux/include/linux/sys.h:1.1.1.1    Mon Jul  3 21:02:17 1995
  4640. --- linux/linux/include/linux/sys.h    Mon Jul  3 21:02:17 1995
  4641. ***************
  4642. *** 27,32 ****
  4643. --- 27,36 ----
  4644.    * These are system calls that haven't been implemented yet
  4645.    * but have an entry in the table for future expansion..
  4646.    */
  4647. + #ifdef __ELF__
  4648. + #define sys_quotactl    sys_ni_syscall
  4649. + #else
  4650.   #define _sys_quotactl    _sys_ni_syscall
  4651. + #endif
  4652.   
  4653.   #endif
  4654. diff -c linux/linux/include/linux/timex.h:1.1.1.1 linux/linux/include/linux/timex.h:1.1.1.2
  4655. *** linux/linux/include/linux/timex.h:1.1.1.1    Mon Jul  3 21:02:17 1995
  4656. --- linux/linux/include/linux/timex.h    Mon Jul  3 21:02:17 1995
  4657. ***************
  4658. *** 88,93 ****
  4659. --- 88,106 ----
  4660.                    */
  4661.       struct timeval time;    /* (read only) */
  4662.       long tick;        /* (modified) usecs between clock ticks */
  4663. +         long ppsfreq;           /* pps frequency (scaled ppm) (ro) */
  4664. +         long jitter;            /* pps jitter (us) (ro) */
  4665. +         int shift;              /* interval duration (s) (shift) (ro) */
  4666. +         long stabil;            /* pps stability (scaled ppm) (ro) */
  4667. +         long jitcnt;            /* jitter limit exceeded (ro) */
  4668. +         long calcnt;            /* calibration intervals (ro) */
  4669. +         long errcnt;            /* calibration errors (ro) */
  4670. +         long stbcnt;            /* stability limit exceeded (ro) */
  4671. +     int  :32; int  :32; int  :32; int  :32;
  4672. +     int  :32; int  :32; int  :32; int  :32;
  4673. +     int  :32; int  :32; int  :32; int  :32;
  4674.   };
  4675.   
  4676.   /*
  4677. diff -c linux/linux/include/linux/tpqic02.h:1.1.1.4 linux/linux/include/linux/tpqic02.h:1.1.1.5
  4678. *** linux/linux/include/linux/tpqic02.h:1.1.1.4    Mon Jul  3 21:02:17 1995
  4679. --- linux/linux/include/linux/tpqic02.h    Mon Jul  3 21:02:17 1995
  4680. ***************
  4681. *** 1,4 ****
  4682. ! /* tpqic02.h,v 1.1.1.1 1995/03/11 20:40:23 hjl Exp
  4683.    *
  4684.    * Include file for QIC-02 driver for Linux.
  4685.    *
  4686. --- 1,4 ----
  4687. ! /* $Id: tpqic02.h,v 0.25 1994/07/21 02:16:30 root Exp root $
  4688.    *
  4689.    * Include file for QIC-02 driver for Linux.
  4690.    *
  4691. diff -c /dev/null linux/linux/include/linux/modules/ksyms.ver:1.2
  4692. *** /dev/null    Mon Jul  3 21:02:18 1995
  4693. --- linux/linux/include/linux/modules/ksyms.ver    Mon Jul  3 21:02:18 1995
  4694. ***************
  4695. *** 0 ****
  4696. --- 1,199 ----
  4697. + /**** This file is generated by genksyms  DO NOT EDIT! ****/
  4698. + #if defined(CONFIG_MODVERSIONS) && !defined(__GENKSYMS__)
  4699. + #ifndef _KSYMS_VER_
  4700. + #define _KSYMS_VER_
  4701. + #define rename_module_symbol    _set_ver(rename_module_symbol, b81c73c1)
  4702. + #define register_symtab    _set_ver(register_symtab, e910ea66)
  4703. + #define EISA_bus    _set_ver(EISA_bus, 7e37737c)
  4704. + #define wp_works_ok    _set_ver(wp_works_ok, f37f99e9)
  4705. + #define pcibios_present    _set_ver(pcibios_present, a67d0654)
  4706. + #define pcibios_find_class    _set_ver(pcibios_find_class, 124ec117)
  4707. + #define pcibios_find_device    _set_ver(pcibios_find_device, 3797daed)
  4708. + #define pcibios_read_config_byte    _set_ver(pcibios_read_config_byte, e0437e05)
  4709. + #define pcibios_read_config_word    _set_ver(pcibios_read_config_word, c63f677a)
  4710. + #define pcibios_read_config_dword    _set_ver(pcibios_read_config_dword, fa4d9b83)
  4711. + #define pcibios_strerror    _set_ver(pcibios_strerror, df123029)
  4712. + #define pcibios_write_config_byte    _set_ver(pcibios_write_config_byte, d86a2e59)
  4713. + #define pcibios_write_config_word    _set_ver(pcibios_write_config_word, fd8433c2)
  4714. + #define pcibios_write_config_dword    _set_ver(pcibios_write_config_dword, 8a42e2c8)
  4715. + #define verify_area    _set_ver(verify_area, 4cfda560)
  4716. + #define do_mmap    _set_ver(do_mmap, 677e7ee1)
  4717. + #define do_munmap    _set_ver(do_munmap, 6221f117)
  4718. + #define zeromap_page_range    _set_ver(zeromap_page_range, 7c395a26)
  4719. + #define unmap_page_range    _set_ver(unmap_page_range, 0110085f)
  4720. + #define insert_vm_struct    _set_ver(insert_vm_struct, 1f4e4882)
  4721. + #define merge_segments    _set_ver(merge_segments, 6854be5a)
  4722. + #define __get_free_pages    _set_ver(__get_free_pages, 5243d78b)
  4723. + #define free_pages    _set_ver(free_pages, 96448859)
  4724. + #define kmalloc    _set_ver(kmalloc, d31fb2cb)
  4725. + #define kfree_s    _set_ver(kfree_s, 1e72eb79)
  4726. + #define vmalloc    _set_ver(vmalloc, 667f3e25)
  4727. + #define vfree    _set_ver(vfree, 6df52add)
  4728. + #define getname    _set_ver(getname, 81487159)
  4729. + #define putname    _set_ver(putname, b19e8126)
  4730. + #define __iget    _set_ver(__iget, ee2b6320)
  4731. + #define iput    _set_ver(iput, 59241ced)
  4732. + #define namei    _set_ver(namei, 00478bcd)
  4733. + #define lnamei    _set_ver(lnamei, fcfddbb1)
  4734. + #define open_namei    _set_ver(open_namei, 414b2b0f)
  4735. + #define close_fp    _set_ver(close_fp, 1d4c15d8)
  4736. + #define check_disk_change    _set_ver(check_disk_change, b66ed457)
  4737. + #define invalidate_buffers    _set_ver(invalidate_buffers, c65255f1)
  4738. + #define fsync_dev    _set_ver(fsync_dev, a221190d)
  4739. + #define permission    _set_ver(permission, 0ebf7474)
  4740. + #define inode_setattr    _set_ver(inode_setattr, 0c80a3c1)
  4741. + #define inode_change_ok    _set_ver(inode_change_ok, 5d1cb326)
  4742. + #define generic_mmap    _set_ver(generic_mmap, d4ff59f3)
  4743. + #define set_blocksize    _set_ver(set_blocksize, f45fda38)
  4744. + #define getblk    _set_ver(getblk, d40228ac)
  4745. + #define bread    _set_ver(bread, c73bf0f0)
  4746. + #define breada    _set_ver(breada, eb8e858c)
  4747. + #define brelse    _set_ver(brelse, 4c27ac3d)
  4748. + #define ll_rw_block    _set_ver(ll_rw_block, f3aa4dd3)
  4749. + #define __wait_on_buffer    _set_ver(__wait_on_buffer, e8fcc968)
  4750. + #define dcache_lookup    _set_ver(dcache_lookup, 83336566)
  4751. + #define dcache_add    _set_ver(dcache_add, fe71f11e)
  4752. + #define register_chrdev    _set_ver(register_chrdev, da99513f)
  4753. + #define unregister_chrdev    _set_ver(unregister_chrdev, 61ea5ee8)
  4754. + #define register_blkdev    _set_ver(register_blkdev, 4699a621)
  4755. + #define unregister_blkdev    _set_ver(unregister_blkdev, d39bbca9)
  4756. + #define tty_register_driver    _set_ver(tty_register_driver, fcc8591c)
  4757. + #define tty_unregister_driver    _set_ver(tty_unregister_driver, c78132a8)
  4758. + #define tty_std_termios    _set_ver(tty_std_termios, cf350678)
  4759. + #define block_read    _set_ver(block_read, a7fe4f51)
  4760. + #define block_write    _set_ver(block_write, 902674c9)
  4761. + #define block_fsync    _set_ver(block_fsync, 182888d8)
  4762. + #define wait_for_request    _set_ver(wait_for_request, 9ca2932e)
  4763. + #define blksize_size    _set_ver(blksize_size, dea1eb55)
  4764. + #define hardsect_size    _set_ver(hardsect_size, ed1ee14f)
  4765. + #define blk_size    _set_ver(blk_size, f60b5398)
  4766. + #define blk_dev    _set_ver(blk_dev, dbf5fdd4)
  4767. + #define is_read_only    _set_ver(is_read_only, b0c5f83e)
  4768. + #define set_device_ro    _set_ver(set_device_ro, 8fb69e13)
  4769. + #define bmap    _set_ver(bmap, 73bb8bdd)
  4770. + #define sync_dev    _set_ver(sync_dev, 9bca536d)
  4771. + #define get_blkfops    _set_ver(get_blkfops, 83827791)
  4772. + #define register_serial    _set_ver(register_serial, 3425f38c)
  4773. + #define unregister_serial    _set_ver(unregister_serial, c013d717)
  4774. + #define tty_hangup    _set_ver(tty_hangup, e3487df0)
  4775. + #define tty_wait_until_sent    _set_ver(tty_wait_until_sent, da85d428)
  4776. + #define tty_check_change    _set_ver(tty_check_change, 705eaab0)
  4777. + #define tty_hung_up_p    _set_ver(tty_hung_up_p, f99ac1e4)
  4778. + #define register_filesystem    _set_ver(register_filesystem, 1c7110ef)
  4779. + #define unregister_filesystem    _set_ver(unregister_filesystem, 5e353af7)
  4780. + #define register_binfmt    _set_ver(register_binfmt, 66ece706)
  4781. + #define unregister_binfmt    _set_ver(unregister_binfmt, 41822618)
  4782. + #define lookup_exec_domain    _set_ver(lookup_exec_domain, 32f10d48)
  4783. + #define register_exec_domain    _set_ver(register_exec_domain, eda4711f)
  4784. + #define unregister_exec_domain    _set_ver(unregister_exec_domain, 78ea447c)
  4785. + #define request_irq    _set_ver(request_irq, 9e81629c)
  4786. + #define free_irq    _set_ver(free_irq, f487dc0c)
  4787. + #define enable_irq    _set_ver(enable_irq, 54e09f5f)
  4788. + #define disable_irq    _set_ver(disable_irq, b4449c1f)
  4789. + #define bh_active    _set_ver(bh_active, 98fb5ca1)
  4790. + #define bh_mask    _set_ver(bh_mask, 1abf3d3f)
  4791. + #define add_timer    _set_ver(add_timer, f13cb728)
  4792. + #define del_timer    _set_ver(del_timer, c7aff713)
  4793. + #define tq_timer    _set_ver(tq_timer, 46cf583e)
  4794. + #define tq_immediate    _set_ver(tq_immediate, 46cf583e)
  4795. + #define tq_scheduler    _set_ver(tq_scheduler, 46cf583e)
  4796. + #define tq_last    _set_ver(tq_last, 457cf547)
  4797. + #define timer_active    _set_ver(timer_active, 5a6747ee)
  4798. + #define timer_table    _set_ver(timer_table, 9e03b650)
  4799. + #define request_dma    _set_ver(request_dma, 2a687646)
  4800. + #define free_dma    _set_ver(free_dma, 5d4b914c)
  4801. + #define disable_hlt    _set_ver(disable_hlt, 794487ee)
  4802. + #define enable_hlt    _set_ver(enable_hlt, 9c7077bd)
  4803. + #define check_region    _set_ver(check_region, b91154fb)
  4804. + #define request_region    _set_ver(request_region, 138b0a1e)
  4805. + #define release_region    _set_ver(release_region, f41d6d31)
  4806. + #define wake_up    _set_ver(wake_up, e8d71419)
  4807. + #define wake_up_interruptible    _set_ver(wake_up_interruptible, 64c8cb92)
  4808. + #define sleep_on    _set_ver(sleep_on, 67a00cee)
  4809. + #define interruptible_sleep_on    _set_ver(interruptible_sleep_on, 6a5fc80d)
  4810. + #define schedule    _set_ver(schedule, 01000e51)
  4811. + #define current    _set_ver(current, fc1cb29b)
  4812. + #define jiffies    _set_ver(jiffies, 2f7c7437)
  4813. + #define xtime    _set_ver(xtime, e70c0be0)
  4814. + #define loops_per_sec    _set_ver(loops_per_sec, 40a14192)
  4815. + #define need_resched    _set_ver(need_resched, dfc016ea)
  4816. + #define kill_proc    _set_ver(kill_proc, 911f760a)
  4817. + #define kill_pg    _set_ver(kill_pg, 0a758a45)
  4818. + #define kill_sl    _set_ver(kill_sl, 49625e94)
  4819. + #define panic    _set_ver(panic, 400c0de3)
  4820. + #define printk    _set_ver(printk, ad1148ba)
  4821. + #define sprintf    _set_ver(sprintf, f9003107)
  4822. + #define vsprintf    _set_ver(vsprintf, e605cb6b)
  4823. + #define simple_strtoul    _set_ver(simple_strtoul, bdb8c1e3)
  4824. + #define system_utsname    _set_ver(system_utsname, 066845bc)
  4825. + #define sys_call_table    _set_ver(sys_call_table, 79fa4011)
  4826. + #define do_signal    _set_ver(do_signal, 86f9bc59)
  4827. + #define send_sig    _set_ver(send_sig, 5cddd8d9)
  4828. + #define setup_arg_pages    _set_ver(setup_arg_pages, fe68d94a)
  4829. + #define copy_strings    _set_ver(copy_strings, 232aee96)
  4830. + #define create_tables    _set_ver(create_tables, ba788fa2)
  4831. + #define do_execve    _set_ver(do_execve, 8c99dc0a)
  4832. + #define flush_old_exec    _set_ver(flush_old_exec, c737e178)
  4833. + #define open_inode    _set_ver(open_inode, 27302cb6)
  4834. + #define read_exec    _set_ver(read_exec, a80a2dd0)
  4835. + #define si_meminfo    _set_ver(si_meminfo, bb05fc9a)
  4836. + #define sock_register    _set_ver(sock_register, d68e1649)
  4837. + #define sock_unregister    _set_ver(sock_unregister, 72c332bd)
  4838. + #define inet_add_protocol    _set_ver(inet_add_protocol, ff15a03c)
  4839. + #define inet_del_protocol    _set_ver(inet_del_protocol, a9c5e9c0)
  4840. + #define register_netdevice_notifier    _set_ver(register_netdevice_notifier, e7aace7c)
  4841. + #define unregister_netdevice_notifier    _set_ver(unregister_netdevice_notifier, be114416)
  4842. + #define floppy_track_buffer    _set_ver(floppy_track_buffer, c6e3f7c2)
  4843. + #define register_netdev    _set_ver(register_netdev, 298819f5)
  4844. + #define unregister_netdev    _set_ver(unregister_netdev, f1aa84e4)
  4845. + #define ether_setup    _set_ver(ether_setup, 580a0211)
  4846. + #define alloc_skb    _set_ver(alloc_skb, 2bad9df4)
  4847. + #define kfree_skb    _set_ver(kfree_skb, 75c31065)
  4848. + #define dev_kfree_skb    _set_ver(dev_kfree_skb, e7dae270)
  4849. + #define netif_rx    _set_ver(netif_rx, 67a4d7e8)
  4850. + #define dev_rint    _set_ver(dev_rint, f09d59b2)
  4851. + #define dev_tint    _set_ver(dev_tint, 71e683aa)
  4852. + #define irq2dev_map    _set_ver(irq2dev_map, 10bdcd8a)
  4853. + #define dev_add_pack    _set_ver(dev_add_pack, 672cd2ba)
  4854. + #define dev_remove_pack    _set_ver(dev_remove_pack, 08d1ec09)
  4855. + #define dev_get    _set_ver(dev_get, 53977feb)
  4856. + #define dev_ioctl    _set_ver(dev_ioctl, 08760203)
  4857. + #define dev_queue_xmit    _set_ver(dev_queue_xmit, 9927ca95)
  4858. + #define dev_base    _set_ver(dev_base, 1d36a3cf)
  4859. + #define dev_close    _set_ver(dev_close, 98484140)
  4860. + #define arp_find    _set_ver(arp_find, d909c1c9)
  4861. + #define n_tty_ioctl    _set_ver(n_tty_ioctl, 538e5fa6)
  4862. + #define tty_register_ldisc    _set_ver(tty_register_ldisc, 8fdde939)
  4863. + #define kill_fasync    _set_ver(kill_fasync, 890501b6)
  4864. + #define in_scan_scsis    _set_ver(in_scan_scsis, 21874a88)
  4865. + #define scsi_register_module    _set_ver(scsi_register_module, 8eff1010)
  4866. + #define scsi_unregister_module    _set_ver(scsi_unregister_module, d913b8f0)
  4867. + #define scsi_free    _set_ver(scsi_free, 475dddfa)
  4868. + #define scsi_malloc    _set_ver(scsi_malloc, 1cce3f92)
  4869. + #define scsi_register    _set_ver(scsi_register, d6e77069)
  4870. + #define scsi_unregister    _set_ver(scsi_unregister, 3b0b616b)
  4871. + #define scsicam_bios_param    _set_ver(scsicam_bios_param, 3d965248)
  4872. + #define scsi_init_malloc    _set_ver(scsi_init_malloc, e5167cbc)
  4873. + #define scsi_init_free    _set_ver(scsi_init_free, 8b2721f8)
  4874. + #define print_command    _set_ver(print_command, 6f14cd75)
  4875. + #define print_msg    _set_ver(print_msg, 0465f877)
  4876. + #define print_status    _set_ver(print_status, 32f84646)
  4877. + #define set_writetime    _set_ver(set_writetime, 52131916)
  4878. + #define sys_tz    _set_ver(sys_tz, aa3c9782)
  4879. + #define __wait_on_super    _set_ver(__wait_on_super, 61a5c00a)
  4880. + #define file_fsync    _set_ver(file_fsync, d30a190f)
  4881. + #define clear_inode    _set_ver(clear_inode, da2b0e9f)
  4882. + #define refile_buffer    _set_ver(refile_buffer, 8c69e123)
  4883. + #define ___strtok    _set_ver(___strtok, 8b55d69c)
  4884. + #define init_fifo    _set_ver(init_fifo, 082629c7)
  4885. + #define super_blocks    _set_ver(super_blocks, e1f1ee99)
  4886. + #define chrdev_inode_operations    _set_ver(chrdev_inode_operations, 6ba1faa3)
  4887. + #define blkdev_inode_operations    _set_ver(blkdev_inode_operations, ed443696)
  4888. + #define read_ahead    _set_ver(read_ahead, bbcd3768)
  4889. + #define get_hash_table    _set_ver(get_hash_table, 3b5f3c55)
  4890. + #define get_empty_inode    _set_ver(get_empty_inode, 554bdc75)
  4891. + #define insert_inode_hash    _set_ver(insert_inode_hash, 59b8c371)
  4892. + #define event    _set_ver(event, a6aac9c1)
  4893. + #define __down    _set_ver(__down, 75aa9e96)
  4894. + #endif /* _KSYMS_VER_ */
  4895. + #endif /* CONFIG_MODVERSIONS !__GENKSYMS__ */
  4896. diff -c linux/linux/kernel/dma.c:1.1.1.4 linux/linux/kernel/dma.c:1.1.1.5
  4897. *** linux/linux/kernel/dma.c:1.1.1.4    Mon Jul  3 21:02:20 1995
  4898. --- linux/linux/kernel/dma.c    Mon Jul  3 21:02:20 1995
  4899. ***************
  4900. *** 1,4 ****
  4901. ! /* dma.c,v 1.1.1.1 1995/03/11 20:40:22 hjl Exp
  4902.    * linux/kernel/dma.c: A DMA channel allocator. Inspired by linux/kernel/irq.c.
  4903.    *
  4904.    * Written by Hennus Bergman, 1992.
  4905. --- 1,4 ----
  4906. ! /* $Id: dma.c,v 1.7 1994/12/28 03:35:33 root Exp root $
  4907.    * linux/kernel/dma.c: A DMA channel allocator. Inspired by linux/kernel/irq.c.
  4908.    *
  4909.    * Written by Hennus Bergman, 1992.
  4910. diff -c linux/linux/kernel/ksyms.c:1.1.1.8 linux/linux/kernel/ksyms.c:1.1.1.9
  4911. *** linux/linux/kernel/ksyms.c:1.1.1.8    Mon Jul  3 21:02:20 1995
  4912. --- linux/linux/kernel/ksyms.c    Mon Jul  3 21:02:20 1995
  4913. ***************
  4914. *** 81,87 ****
  4915.   struct symbol_table symbol_table = {
  4916.   #include <linux/symtab_begin.h>
  4917.   #ifdef CONFIG_MODVERSIONS
  4918. !     { (void *)1 /* Version version :-) */, "_Using_Versions" },
  4919.   #endif
  4920.       /* stackable module support */
  4921.       X(rename_module_symbol),
  4922. --- 81,88 ----
  4923.   struct symbol_table symbol_table = {
  4924.   #include <linux/symtab_begin.h>
  4925.   #ifdef CONFIG_MODVERSIONS
  4926. !     { (void *)1 /* Version version :-) */,
  4927. !         SYMBOL_NAME_STR (Using_Versions) },
  4928.   #endif
  4929.       /* stackable module support */
  4930.       X(rename_module_symbol),
  4931.