# granularity of the profiling (5 = 32-byte granularity)
#
-#PROFILING = -DPROFILE_SHIFT=2
+PROFILING = -DPROFILE_SHIFT=2
#
# uncomment the correct keyboard:
# KEYBOARD = -DKBD_SG_LATIN1 -DKBDFLAGS=0x9F
# KEYBOARD = -DKDB_NO
-#
-# comment this line to turn off keyboard NUM LOCK
-#
-
-NUM_LOCK = -DKBD_NUMERIC_LOCK
-
#
# comment this line if you don't want the emulation-code
#
# Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode.
# The number is the same as you would ordinarily press at bootup.
#
-#SVGA_MODE= -DSVGA_MODE=1
+SVGA_MODE= -DSVGA_MODE=1
AS =as
LD =ld
Version:
@./makever.sh
- @echo \#define UTS_RELEASE \"0.97.pl5-`cat .version`\" > tools/version.h
+ @echo \#define UTS_RELEASE \"0.97.pl6-`cat .version`\" > tools/version.h
@echo \#define UTS_VERSION \"`date +%D`\" >> tools/version.h
@echo \#define LINUX_COMPILE_TIME \"`date +%T`\" >> tools/version.h
@echo \#define LINUX_COMPILE_BY \"`whoami`\" >> tools/version.h
dummy:
### Dependencies:
-init/main.o : init/main.c /usr/src/linux/include/stdarg.h /usr/src/linux/include/time.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h /usr/src/linux/include/linux/unistd.h
+init/main.o : init/main.c /usr/lib/gcc-lib/i386-linux/2.2.2d/include/stdarg.h /usr/include/asm/system.h \
+ /usr/include/asm/io.h /usr/include/linux/mktime.h /usr/include/linux/types.h \
+ /usr/include/linux/fcntl.h /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/linux/unistd.h
mov ax,#0x5019
cmp bl,#0x10
je novga
+ mov ax,#0x1a00 ! Added check for EGA/VGA discrimination
+ int 0x10
+ mov bx,ax
+ mov ax,#0x5019
+ cmp bl,#0x1a ! 1a means VGA, anything else EGA or lower
+ jne novga
call chsvga
novga: mov [14],ax
mov ah,#0x03 ! read cursor pos
dummy:
### Dependencies:
-block_dev.o : block_dev.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h
-buffer.o : buffer.c /usr/src/linux/include/stdarg.h /usr/src/linux/include/linux/config.h \
- /usr/src/linux/include/linux/config_rel.h /usr/src/linux/include/linux/config_ver.h \
- /usr/src/linux/include/linux/config.dist.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h
-exec.o : exec.c /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/a.out.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/ptrace.h \
- /usr/src/linux/include/linux/user.h /usr/src/linux/include/asm/segment.h
-fcntl.o : fcntl.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/string.h
-fifo.o : fifo.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/fcntl.h
-file_table.o : file_table.c /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/string.h
-inode.o : inode.c /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/asm/system.h
-ioctl.o : ioctl.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/stat.h
-namei.o : namei.c /usr/src/linux/include/const.h /usr/src/linux/include/asm/segment.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/stat.h
-open.o : open.c /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/utime.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/asm/segment.h
-pipe.o : pipe.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/termios.h
-read_write.o : read_write.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h /usr/src/linux/include/linux/minix_fs.h \
- /usr/src/linux/include/asm/segment.h
-select.o : select.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/segment.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/const.h
-stat.o : stat.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/stat.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h /usr/src/linux/include/asm/segment.h
-super.o : super.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/ext_fs.h \
- /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/stat.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/segment.h
+block_dev.o : block_dev.c /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/asm/segment.h /usr/include/asm/system.h
+buffer.o : buffer.c /usr/lib/gcc-lib/i386-linux/2.2.2d/include/stdarg.h /usr/include/linux/config.h \
+ /usr/include/linux/config.dist.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/string.h \
+ /usr/include/asm/system.h /usr/include/asm/io.h
+exec.o : exec.c /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/a.out.h /usr/include/linux/errno.h \
+ /usr/include/linux/string.h /usr/include/linux/stat.h /usr/include/linux/fcntl.h \
+ /usr/include/linux/ptrace.h /usr/include/linux/user.h /usr/include/asm/segment.h
+fcntl.o : fcntl.c /usr/include/asm/segment.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h /usr/include/linux/string.h
+fifo.o : fifo.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/errno.h /usr/include/linux/fcntl.h
+file_table.o : file_table.c /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/string.h
+inode.o : inode.c /usr/include/linux/stat.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/string.h \
+ /usr/include/asm/system.h
+ioctl.o : ioctl.c /usr/include/asm/segment.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/string.h /usr/include/linux/stat.h /usr/include/linux/termios.h
+locks.o : locks.c /usr/include/asm/segment.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h
+namei.o : namei.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/string.h /usr/include/linux/fcntl.h /usr/include/linux/stat.h
+open.o : open.c /usr/include/linux/vfs.h /usr/include/linux/types.h /usr/include/linux/utime.h \
+ /usr/include/linux/errno.h /usr/include/linux/fcntl.h /usr/include/linux/stat.h \
+ /usr/include/linux/string.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/dirent.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/asm/segment.h
+pipe.o : pipe.c /usr/include/asm/segment.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/fcntl.h /usr/include/linux/termios.h
+read_write.o : read_write.c /usr/include/linux/types.h /usr/include/linux/errno.h \
+ /usr/include/linux/stat.h /usr/include/linux/kernel.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h /usr/include/asm/segment.h
+select.o : select.c /usr/include/linux/types.h /usr/include/linux/time.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/kernel.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/mm.h \
+ /usr/include/linux/signal.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/string.h /usr/include/linux/stat.h \
+ /usr/include/linux/errno.h /usr/include/asm/segment.h /usr/include/asm/system.h
+stat.o : stat.c /usr/include/linux/errno.h /usr/include/linux/stat.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/asm/segment.h
+super.o : super.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h /usr/include/linux/proc_fs.h \
+ /usr/include/linux/ext_fs.h /usr/include/linux/msdos_fs.h /usr/include/linux/stat.h \
+ /usr/include/linux/errno.h /usr/include/asm/system.h /usr/include/asm/segment.h
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-bitmap.o : bitmap.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/string.h
-blkdev.o : blkdev.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/errno.h
-chrdev.o : chrdev.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/errno.h
-dir.o : dir.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/ext_fs.h \
- /usr/src/linux/include/linux/stat.h
-fifo.o : fifo.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h
-file.o : file.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/stat.h
-freelists.o : freelists.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/string.h
-inode.o : inode.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/segment.h
-namei.o : namei.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/const.h
-symlink.o : symlink.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/stat.h
-truncate.o : truncate.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ext_fs.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/errno.h
+blkdev.o : blkdev.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/stat.h \
+ /usr/include/linux/fcntl.h /usr/include/linux/errno.h
+chrdev.o : chrdev.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/stat.h \
+ /usr/include/linux/fcntl.h /usr/include/linux/errno.h
+dir.o : dir.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/ext_fs.h /usr/include/linux/stat.h
+fifo.o : fifo.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h
+file.o : file.c /usr/include/asm/segment.h /usr/include/asm/system.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/ext_fs.h /usr/include/linux/errno.h /usr/include/linux/fcntl.h \
+ /usr/include/linux/stat.h
+freelists.o : freelists.c /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h \
+ /usr/include/linux/string.h
+inode.o : inode.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/asm/system.h /usr/include/asm/segment.h
+namei.o : namei.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h /usr/include/linux/errno.h \
+ /usr/include/asm/segment.h
+symlink.o : symlink.c /usr/include/asm/segment.h /usr/include/linux/errno.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h /usr/include/linux/stat.h
+truncate.o : truncate.c /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/ext_fs.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h /usr/include/linux/errno.h
+++ /dev/null
-/*
- * linux/fs/ext/bitmap.c
- *
- * Copyright (C) 1992 Remy Card (card@masi.ibp.fr)
- *
- * from
- *
- * linux/fs/minix/bitmap.c
- *
- * Copyright (C) 1991, 1992 Linus Torvalds
- */
-
-/* bitmap.c contains the code that handles the inode and block bitmaps */
-
-
-#include <linux/sched.h>
-#include <linux/ext_fs.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-
-#ifdef EXTFS_BITMAP
-
-#define clear_block(addr) \
-__asm__("cld\n\t" \
- "rep\n\t" \
- "stosl" \
- ::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr)):"cx","di")
-
-#define set_bit(nr,addr) ({\
-char res; \
-__asm__ __volatile__("btsl %1,%2\n\tsetb %0": \
-"=q" (res):"r" (nr),"m" (*(addr))); \
-res;})
-
-#define clear_bit(nr,addr) ({\
-char res; \
-__asm__ __volatile__("btrl %1,%2\n\tsetnb %0": \
-"=q" (res):"r" (nr),"m" (*(addr))); \
-res;})
-
-#define find_first_zero(addr) ({ \
-int __res; \
-__asm__("cld\n" \
- "1:\tlodsl\n\t" \
- "notl %%eax\n\t" \
- "bsfl %%eax,%%edx\n\t" \
- "jne 2f\n\t" \
- "addl $32,%%ecx\n\t" \
- "cmpl $8192,%%ecx\n\t" \
- "jl 1b\n\t" \
- "xorl %%edx,%%edx\n" \
- "2:\taddl %%edx,%%ecx" \
- :"=c" (__res):"0" (0),"S" (addr):"ax","dx","si"); \
-__res;})
-
-static int nibblemap[] = { 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4 };
-
-static unsigned long count_used(struct buffer_head *map[], unsigned numblocks,
- unsigned numbits)
-{
- unsigned i, j, end, sum = 0;
- struct buffer_head *bh;
-
- for (i=0; (i<numblocks) && numbits; i++) {
- if (!(bh=map[i]))
- return(0);
- if (numbits >= (8*BLOCK_SIZE)) {
- end = BLOCK_SIZE;
- numbits -= 8*BLOCK_SIZE;
- } else {
- int tmp;
- end = numbits >> 3;
- numbits &= 0x7;
- tmp = bh->b_data[end] & ((1<<numbits)-1);
- sum += nibblemap[tmp&0xf] + nibblemap[(tmp>>4)&0xf];
- numbits = 0;
- }
- for (j=0; j<end; j++)
- sum += nibblemap[bh->b_data[j] & 0xf]
- + nibblemap[(bh->b_data[j]>>4)&0xf];
- }
- return(sum);
-}
-
-int ext_free_block(int dev, int block)
-{
- struct super_block * sb;
- struct buffer_head * bh;
- unsigned int bit,zone;
-
- if (!(sb = get_super(dev)))
- panic("trying to free block on nonexistent device");
- if (block < sb->s_firstdatazone || block >= sb->s_nzones)
- panic("trying to free block not in datazone");
- bh = get_hash_table(dev,block);
- if (bh) {
- if (bh->b_count > 1) {
- brelse(bh);
- return 0;
- }
- bh->b_dirt=0;
- bh->b_uptodate=0;
- if (bh->b_count)
- brelse(bh);
- }
- zone = block - sb->s_firstdatazone + 1;
- bit = zone & 8191;
- zone >>= 13;
- bh = sb->s_zmap[zone];
- if (clear_bit(bit,bh->b_data))
- printk("free_block (%04x:%d): bit already cleared\n",dev,block);
- bh->b_dirt = 1;
- return 1;
-}
-
-int ext_new_block(int dev)
-{
- struct buffer_head * bh;
- struct super_block * sb;
- int i,j;
-
- if (!(sb = get_super(dev)))
- panic("trying to get new block from nonexistant device");
- j = 8192;
- for (i=0 ; i<8 ; i++)
- if (bh=sb->s_zmap[i])
- if ((j=find_first_zero(bh->b_data))<8192)
- break;
- if (i>=8 || !bh || j>=8192)
- return 0;
- if (set_bit(j,bh->b_data))
- panic("new_block: bit already set");
- bh->b_dirt = 1;
- j += i*8192 + sb->s_firstdatazone-1;
- if (j >= sb->s_nzones)
- return 0;
- if (!(bh=getblk(dev,j)))
- panic("new_block: cannot get block");
- if (bh->b_count != 1)
- panic("new block: count is != 1");
- clear_block(bh->b_data);
- bh->b_uptodate = 1;
- bh->b_dirt = 1;
- brelse(bh);
-#ifdef EXTFS_DEBUG
-printk("ext_new_block: allocating block %d\n", j);
-#endif
- return j;
-}
-
-unsigned long ext_count_free_blocks(struct super_block *sb)
-{
- return (sb->s_nzones - count_used(sb->s_zmap,sb->s_zmap_blocks,sb->s_nzones))
- << sb->s_log_zone_size;
-}
-
-void ext_free_inode(struct inode * inode)
-{
- struct buffer_head * bh;
-
- if (!inode)
- return;
- if (!inode->i_dev) {
- memset(inode,0,sizeof(*inode));
- return;
- }
- if (inode->i_count>1) {
- printk("free_inode: inode has count=%d\n",inode->i_count);
- return;
- }
- if (inode->i_nlink) {
- printk("free_inode: inode has nlink=%d\n",inode->i_nlink);
- return;
- }
- if (!inode->i_sb) {
- printk("free_inode: inode on nonexistent device\n");
- return;
- }
- if (inode->i_ino < 1 || inode->i_ino > inode->i_sb->s_ninodes) {
- printk("free_inode: inode 0 or nonexistent inode\n");
- return;
- }
- if (!(bh=inode->i_sb->s_imap[inode->i_ino>>13])) {
- printk("free_inode: nonexistent imap in superblock\n");
- return;
- }
- if (clear_bit(inode->i_ino&8191,bh->b_data))
- printk("free_inode: bit already cleared.\n\r");
- bh->b_dirt = 1;
- memset(inode,0,sizeof(*inode));
-}
-
-struct inode * ext_new_inode(int dev)
-{
- struct inode * inode;
- struct buffer_head * bh;
- int i,j;
-
- if (!(inode=get_empty_inode()))
- return NULL;
- if (!(inode->i_sb = get_super(dev))) {
- printk("new_inode: unknown device\n");
- iput(inode);
- return NULL;
- }
- inode->i_flags = inode->i_sb->s_flags;
- j = 8192;
- for (i=0 ; i<8 ; i++)
- if (bh=inode->i_sb->s_imap[i])
- if ((j=find_first_zero(bh->b_data))<8192)
- break;
- if (!bh || j >= 8192 || j+i*8192 > inode->i_sb->s_ninodes) {
- iput(inode);
- return NULL;
- }
- if (set_bit(j,bh->b_data)) { /* shouldn't happen */
- printk("new_inode: bit already set");
- iput(inode);
- return NULL;
- }
- bh->b_dirt = 1;
- inode->i_count = 1;
- inode->i_nlink = 1;
- inode->i_dev = dev;
- inode->i_uid = current->euid;
- inode->i_gid = current->egid;
- inode->i_dirt = 1;
- inode->i_ino = j + i*8192;
- inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
- inode->i_op = NULL;
-#ifdef EXTFS_DEBUG
- printk("ext_new_inode : allocating inode %d\n", inode->i_ino);
-#endif
- return inode;
-}
-
-unsigned long ext_count_free_inodes(struct super_block *sb)
-{
- return sb->s_ninodes - count_used(sb->s_imap,sb->s_imap_blocks,sb->s_ninodes);
-}
-
-#endif
inode->i_pipe = 1;
PIPE_BASE(*inode) = NULL;
PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0;
+ PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL;
PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 0;
}
}
inode->i_pipe = 1;
PIPE_BASE(*inode) = NULL;
PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0;
+ PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL;
PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 0;
}
if (S_ISBLK(mode) || S_ISCHR(mode))
return NULL;
}
inode->i_count = 2; /* sum of readers/writers */
+ PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL;
PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0;
PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 1;
inode->i_pipe = 1;
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-bitmap.o : bitmap.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/string.h
-blkdev.o : blkdev.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h
-chrdev.o : chrdev.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h
-dir.o : dir.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/minix_fs.h \
- /usr/src/linux/include/linux/stat.h
-fifo.o : fifo.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h
-file.o : file.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/stat.h
-inode.o : inode.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/segment.h
-namei.o : namei.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/const.h
-symlink.o : symlink.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/stat.h
-truncate.o : truncate.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/minix_fs.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/fcntl.h
+bitmap.o : bitmap.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h /usr/include/linux/string.h
+blkdev.o : blkdev.c /usr/include/linux/errno.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h
+chrdev.o : chrdev.c /usr/include/linux/errno.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h
+dir.o : dir.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/minix_fs.h /usr/include/linux/stat.h
+fifo.o : fifo.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h
+file.o : file.c /usr/include/asm/segment.h /usr/include/asm/system.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/minix_fs.h /usr/include/linux/errno.h /usr/include/linux/fcntl.h \
+ /usr/include/linux/stat.h
+inode.o : inode.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/asm/system.h /usr/include/asm/segment.h
+namei.o : namei.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/linux/fcntl.h /usr/include/linux/errno.h \
+ /usr/include/asm/segment.h
+symlink.o : symlink.c /usr/include/asm/segment.h /usr/include/linux/errno.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/minix_fs.h /usr/include/linux/stat.h
+truncate.o : truncate.c /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/minix_fs.h /usr/include/linux/tty.h /usr/include/linux/termios.h \
+ /usr/include/asm/system.h /usr/include/linux/stat.h /usr/include/linux/fcntl.h
inode->i_pipe = 1;
PIPE_BASE(*inode) = NULL;
PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0;
+ PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL;
PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 0;
}
}
inode->i_pipe = 1;
PIPE_BASE(*inode) = NULL;
PIPE_HEAD(*inode) = PIPE_TAIL(*inode) = 0;
+ PIPE_READ_WAIT(*inode) = PIPE_WRITE_WAIT(*inode) = NULL;
PIPE_READERS(*inode) = PIPE_WRITERS(*inode) = 0;
}
if (S_ISBLK(mode) || S_ISCHR(mode))
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-dir.o : dir.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/stat.h
-fat.o : fat.c /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/stat.h
-file.o : file.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/stat.h
-inode.o : inode.c /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/stat.h \
- /usr/src/linux/include/asm/segment.h
-misc.o : misc.c /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/stat.h
-namei.o : namei.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/msdos_fs.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/stat.h
+dir.o : dir.c /usr/include/asm/segment.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/msdos_fs.h \
+ /usr/include/linux/errno.h /usr/include/linux/stat.h
+fat.o : fat.c /usr/include/linux/msdos_fs.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/kernel.h \
+ /usr/include/linux/errno.h /usr/include/linux/stat.h
+file.o : file.c /usr/include/asm/segment.h /usr/include/asm/system.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/msdos_fs.h /usr/include/linux/errno.h /usr/include/linux/fcntl.h \
+ /usr/include/linux/stat.h
+inode.o : inode.c /usr/include/linux/msdos_fs.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/kernel.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/mm.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/string.h /usr/include/linux/stat.h /usr/include/asm/segment.h
+misc.o : misc.c /usr/include/linux/msdos_fs.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/string.h /usr/include/linux/stat.h
+namei.o : namei.c /usr/include/asm/segment.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/msdos_fs.h \
+ /usr/include/linux/errno.h /usr/include/linux/string.h /usr/include/linux/stat.h
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-base.o : base.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_i.h \
- /usr/src/linux/include/linux/ext_fs_i.h /usr/src/linux/include/linux/msdos_fs_i.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/vm86.h /usr/src/linux/include/linux/proc_fs.h /usr/src/linux/include/linux/stat.h
-fd.o : fd.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_i.h \
- /usr/src/linux/include/linux/ext_fs_i.h /usr/src/linux/include/linux/msdos_fs_i.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/vm86.h /usr/src/linux/include/linux/proc_fs.h /usr/src/linux/include/linux/stat.h
-inode.o : inode.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_i.h /usr/src/linux/include/linux/ext_fs_i.h \
- /usr/src/linux/include/linux/msdos_fs_i.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/vm86.h /usr/src/linux/include/linux/proc_fs.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/segment.h
-link.o : link.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_i.h \
- /usr/src/linux/include/linux/ext_fs_i.h /usr/src/linux/include/linux/msdos_fs_i.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/vm86.h /usr/src/linux/include/linux/minix_fs.h \
- /usr/src/linux/include/linux/stat.h
-mem.o : mem.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_i.h \
- /usr/src/linux/include/linux/ext_fs_i.h /usr/src/linux/include/linux/msdos_fs_i.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/vm86.h /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/io.h
-root.o : root.c /usr/src/linux/include/asm/segment.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_i.h \
- /usr/src/linux/include/linux/ext_fs_i.h /usr/src/linux/include/linux/msdos_fs_i.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/vm86.h /usr/src/linux/include/linux/proc_fs.h /usr/src/linux/include/linux/stat.h
+base.o : base.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/proc_fs.h /usr/include/linux/stat.h
+fd.o : fd.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/proc_fs.h /usr/include/linux/stat.h
+inode.o : inode.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/proc_fs.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/asm/system.h /usr/include/asm/segment.h
+link.o : link.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/minix_fs.h /usr/include/linux/stat.h
+mem.o : mem.c /usr/include/linux/types.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/asm/segment.h \
+ /usr/include/asm/io.h
+root.o : root.c /usr/include/asm/segment.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/proc_fs.h /usr/include/linux/stat.h
check_disk_change(dev);
if (s = get_super(dev))
return s;
- if (!(type=get_fs_type(name))) {
+ if (!(type = get_fs_type(name))) {
printk("get fs type failed %s\n",name);
return NULL;
}
}
s->s_dev = dev;
s->s_flags = flags;
- if (!type->read_super(s,data))
- return(NULL);
+ if (!type->read_super(s,data)) {
+ s->s_dev = 0;
+ return NULL;
+ }
s->s_dev = dev;
s->s_covered = NULL;
s->s_rd_only = 0;
s->s_dirt = 0;
- return(s);
+ return s;
}
static int do_umount(int dev)
#ifdef SLOW_IO_BY_JUMPING
#define __SLOW_DOWN_IO __asm__ __volatile__("jmp 1f\n1:\tjmp 1f\n1:")
#else
-#define __SLOW_DOWN_IO __asm__ __volatile__("inb $0x80,%%al":::"ax")
+#define __SLOW_DOWN_IO __asm__ __volatile__("inb $0x61,%%al":::"ax")
#endif
#ifdef REALLY_SLOW_IO
+++ /dev/null
-#ifndef _CONST_H
-#define _CONST_H
-
-#define BUFFER_END 0x200000
-
-#define I_TYPE 0170000
-#define I_DIRECTORY 0040000
-#define I_REGULAR 0100000
-#define I_BLOCK_SPECIAL 0060000
-#define I_CHAR_SPECIAL 0020000
-#define I_NAMED_PIPE 0010000
-#define I_SET_UID_BIT 0004000
-#define I_SET_GID_BIT 0002000
-
-#endif
-#define UTS_RELEASE "0.97-11"
+#define UTS_RELEASE "0.97.pl2-44"
-#define UTS_VERSION "08/01/92"
+#define UTS_VERSION "08/23/92"
--- /dev/null
+/*
+ * include/linux/serial.h
+ *
+ * Copyright (C) 1992 by Theodore Ts'o.
+ *
+ * Redistribution of this file is permitted under the terms of the GNU
+ * Public License (GPL)
+ */
+
+/*
+ * This our internal structure for keeping track of interrupt service
+ * routines.
+ */
+typedef struct struct_ISR *async_ISR;
+struct struct_ISR {
+ int irq; /* The IRQ assigned for this device */
+ int port; /* The base port for this device */
+ /* (use is ISR specific) */
+ void (*ISR_proc)(async_ISR, int);
+ int line; /* The serial line (or base */
+ /* serial line) */
+ int refcnt; /* How many devices are depending on */
+ /* this interrupt (multiport boards) */
+ async_ISR next_ISR; /* For the linked list */
+ async_ISR prev_ISR;
+};
+
+/*
+ * This is our internal structure for each serial port's state.
+ *
+ * Many fields are paralleled by the structure used by the serial_struct
+ * structure.
+ *
+ * For definitions of the flags field, see tty.h
+ */
+
+struct async_struct {
+ int baud_base;
+ int port;
+ async_ISR ISR;
+ int flags;
+ int type;
+ struct tty_struct *tty;
+ unsigned long timer;
+ int timeout;
+ int xmit_fifo_size;
+ int custom_divisor;
+ int line;
+};
+
+/*
+ * These are the UART port assignments, expressed as offsets from the base
+ * register. These assignments should hold for any serial port based on
+ * a 8250, 16450, or 16550(A).
+ */
+#define UART_RX 0 /* In: Receive buffer (DLAB=0) */
+#define UART_TX 0 /* Out: Transmit buffer (DLAB=0) */
+#define UART_DLL 0 /* Out: Devisor Latch Low (DLAB=1) */
+#define UART_DLM 1 /* Out: Devisor Latch High (DLAB=1) */
+#define UART_IER 1 /* Out: Interrupt Enable Register */
+#define UART_IIR 2 /* In: Interrupt ID Register */
+#define UART_FCR 2 /* Out: FIFO Control Register */
+#define UART_LCR 3 /* Out: Line Control Register */
+#define UART_MCR 4 /* Out: Modem Control Register */
+#define UART_LSR 5 /* In: Line Status Register */
+#define UART_MSR 6 /* In: Modem Status Register */
+#define UART_SCR 7 /* I/O: Scratch Register */
+
+/*
+ * These are the definitions for the FIFO Control Register
+ */
+#define UART_FCR_ENABLE_FIFO 0x01 /* Enable the FIFO */
+#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */
+#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */
+#define UART_FCR_DMA_SELECT 0x08 /* For DMA applications */
+#define UART_FCR_TRIGGER_MASK 0xC0 /* Mask for the FIFO trigger range */
+#define UART_FCR_TRIGGER_1 0x00 /* Mask for trigger set at 1 */
+#define UART_FCR_TRIGGER_4 0x40 /* Mask for trigger set at 4 */
+#define UART_FCR_TRIGGER_8 0x80 /* Mask for trigger set at 8 */
+#define UART_FCR_TRIGGER_14 0xC0 /* Mask for trigger set at 14 */
+
+#define UART_FCR_CLEAR_CMD (UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT)
+#define UART_FCR_SETUP_CMD (UART_FCR_ENABLE_FIFO | UART_FCR_TRIGGER_14)
+
+/*
+ * These are the definitions for the Line Control Register
+ *
+ * Note: if the word length is 5 bits (UART_LCR_WLEN5), then setting
+ * UART_LCR_STOP will select 1.5 stop bits, not 2 stop bits.
+ */
+#define UART_LCR_DLAB 0x80 /* Devisor latch access bit */
+#define UART_LCR_SBC 0x40 /* Set break control */
+#define UART_LCR_SPAR 0x20 /* Stick parity (?) */
+#define UART_LCR_EPAR 0x10 /* Even paraity select */
+#define UART_LCR_PARITY 0x08 /* Parity Enable */
+#define UART_LCR_STOP 0x04 /* Stop bits: 0=1 stop bit, 1= 2 stop bits */
+#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */
+#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */
+#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */
+#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */
+
+/*
+ * These are the definitions for the Line Status Register
+ */
+#define UART_LSR_TEMT 0x40 /* Transmitter empty */
+#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
+#define UART_LSR_BI 0x10 /* Break interrupt indicator */
+#define UART_LSR_FE 0x08 /* Frame error indicator */
+#define UART_LSR_PE 0x04 /* Parity error indicator */
+#define UART_LSR_OE 0x02 /* Overrun error indicator */
+#define UART_LSR_DR 0x01 /* Receiver data ready */
+
+/*
+ * These are the definitions for the Interrupt Indentification Register
+ */
+#define UART_IIR_PEND 0x01 /* Interrupt pending */
+#define UART_IIR_ID 0x06 /* Mask for the interrupt ID */
+
+#define UART_IIR_MSI 0x00 /* Modem status interrupt */
+#define UART_IIR_THRI 0x02 /* Transmitter holding register empty */
+#define UART_IIR_RDI 0x04 /* Receiver data interrupt */
+#define UART_IIR_RLSI 0x06 /* Receiver line status interrupt */
+
+/*
+ * These are the definitions for the Interrupt Enable Register
+ */
+#define UART_IER_MSI 0x08 /* Enable Modem status interrupt */
+#define UART_IER_RLSI 0x04 /* Enable receiver line status interrupt */
+#define UART_IER_THRI 0x02 /* Enable Transmitter holding register int. */
+#define UART_IER_RDI 0x01 /* Enable receiver data interrupt */
+
+/*
+ * These are the definitions for the Modem Control Register
+ */
+#define UART_MCR_LOOP 0x10 /* Enable loopback test mode */
+#define UART_MCR_OUT2 0x08 /* Out2 complement */
+#define UART_MCR_OUT1 0x04 /* Out1 complement */
+#define UART_MCR_RTS 0x02 /* RTS complement */
+#define UART_MCR_DTR 0x01 /* DTR complement */
+
+/*
+ * These are the definitions for the Modem Status Register
+ */
+#define UART_MSR_DCD 0x80 /* Data Carrier Detect */
+#define UART_MSR_RI 0x40 /* Ring Indicator */
+#define UART_MSR_DSR 0x20 /* Data Set Ready */
+#define UART_MSR_CTS 0x10 /* Clear to Send */
+#define UART_MSR_DDCD 0x08 /* Delta DCD */
+#define UART_MSR_TERI 0x04 /* Trailing edge ring indicator */
+#define UART_MSR_DDSR 0x02 /* Delta DSR */
+#define UART_MSR_DCTS 0x01 /* Delta CTS */
*
* BEEP_TIMER console beep timer
*
- * SERx_TIMER serial incoming characters timer
- *
- * SERx_TIMEOUT timeout for serial writes
- *
+ * RS_TIMER timer for the RS-232 ports
+ *
* HD_TIMER harddisk timer
*
* FLOPPY_TIMER floppy disk timer (not used right now)
#define BLANK_TIMER 0
#define BEEP_TIMER 1
-
-#define SER1_TIMER 2
-#define SER2_TIMER 3
-#define SER3_TIMER 4
-#define SER4_TIMER 5
-
-#define SER1_TIMEOUT 8
-#define SER2_TIMEOUT 9
-#define SER3_TIMEOUT 10
-#define SER4_TIMEOUT 11
+#define RS_TIMER 2
#define HD_TIMER 16
#define FLOPPY_TIMER 17
/*
* 'tty.h' defines some structures used by tty_io.c and some defines.
- *
- * NOTE! Don't touch this without checking that nothing in rs_io.s or
- * con_io.s breaks. Some constants are hardwired into the system (mainly
- * offsets into 'tty_queue'
*/
#include <linux/termios.h>
#include <asm/system.h>
#define NR_CONSOLES 8
-#define NR_SERIALS 4
-#define NR_PTYS 4
/*
* These are set up by the setup-routine at boot-time:
*/
#define __DISABLED_CHAR '\0'
-#define TTY_BUF_SIZE 2048
+/*
+ * See comment for the tty_struct structure before changing
+ * TTY_BUF_SIZE. Actually, there should be different sized tty_queue
+ * structures for different purposes. 1024 bytes for the transmit
+ * queue is way overkill. TYT, 9/14/92
+ */
+#define TTY_BUF_SIZE 1024 /* Must be a power of 2 */
struct tty_queue {
unsigned long data;
};
struct serial_struct {
- unsigned short type;
- unsigned short line;
- unsigned short port;
- unsigned short irq;
- struct tty_struct * tty;
+ int type;
+ int line;
+ int port;
+ int irq;
+ int flags;
+ int xmit_fifo_size;
+ int custom_divisor;
+ int reserved[8];
};
/*
#define PORT_16550 3
#define PORT_16550A 4
+/*
+ * Definitions for async_struct (and serial_struct) flags field
+ */
+#define ASYNC_NOSCRATCH 0x0001 /* 16XXX UART with no scratch register */
+#define ASYNC_FOURPORT 0x0002 /* Set OU1, OUT2 per AST Fourport settings */
+
+#define ASYNC_SPD_MASK 0x0030
+#define ASYNC_SPD_HI 0x0010 /* Use 56000 instead of 38400 bps */
+#define ASYNC_SPD_VHI 0x0020 /* Use 115200 instead of 38400 bps */
+#define ASYNC_SPD_CUST 0x0030 /* Use user-specified divisor */
+
#define IS_A_CONSOLE(min) (((min) & 0xC0) == 0x00)
#define IS_A_SERIAL(min) (((min) & 0xC0) == 0x40)
#define IS_A_PTY(min) ((min) & 0x80)
#define IS_A_PTY_SLAVE(min) (((min) & 0xC0) == 0xC0)
#define PTY_OTHER(min) ((min) ^ 0x40)
+#define SL_TO_DEV(line) ((line) | 0x40)
+#define DEV_TO_SL(min) ((min) & 0x3F)
+
#define INC(a) ((a) = ((a)+1) & (TTY_BUF_SIZE-1))
#define DEC(a) ((a) = ((a)-1) & (TTY_BUF_SIZE-1))
#define EMPTY(a) ((a)->head == (a)->tail)
extern void put_tty_queue(char c, struct tty_queue * queue);
extern int get_tty_queue(struct tty_queue * queue);
-#define INTR_CHAR(tty) ((tty)->termios.c_cc[VINTR])
-#define QUIT_CHAR(tty) ((tty)->termios.c_cc[VQUIT])
-#define ERASE_CHAR(tty) ((tty)->termios.c_cc[VERASE])
-#define KILL_CHAR(tty) ((tty)->termios.c_cc[VKILL])
-#define EOF_CHAR(tty) ((tty)->termios.c_cc[VEOF])
-#define START_CHAR(tty) ((tty)->termios.c_cc[VSTART])
-#define STOP_CHAR(tty) ((tty)->termios.c_cc[VSTOP])
-#define SUSPEND_CHAR(tty) ((tty)->termios.c_cc[VSUSP])
+#define INTR_CHAR(tty) ((tty)->termios->c_cc[VINTR])
+#define QUIT_CHAR(tty) ((tty)->termios->c_cc[VQUIT])
+#define ERASE_CHAR(tty) ((tty)->termios->c_cc[VERASE])
+#define KILL_CHAR(tty) ((tty)->termios->c_cc[VKILL])
+#define EOF_CHAR(tty) ((tty)->termios->c_cc[VEOF])
+#define START_CHAR(tty) ((tty)->termios->c_cc[VSTART])
+#define STOP_CHAR(tty) ((tty)->termios->c_cc[VSTOP])
+#define SUSPEND_CHAR(tty) ((tty)->termios->c_cc[VSUSP])
-#define _L_FLAG(tty,f) ((tty)->termios.c_lflag & f)
-#define _I_FLAG(tty,f) ((tty)->termios.c_iflag & f)
-#define _O_FLAG(tty,f) ((tty)->termios.c_oflag & f)
+#define _L_FLAG(tty,f) ((tty)->termios->c_lflag & f)
+#define _I_FLAG(tty,f) ((tty)->termios->c_iflag & f)
+#define _O_FLAG(tty,f) ((tty)->termios->c_oflag & f)
#define L_CANON(tty) _L_FLAG((tty),ICANON)
#define L_ISIG(tty) _L_FLAG((tty),ISIG)
#define O_NLRET(tty) _O_FLAG((tty),ONLRET)
#define O_LCUC(tty) _O_FLAG((tty),OLCUC)
-#define C_SPEED(tty) ((tty)->termios.c_cflag & CBAUD)
+#define C_SPEED(tty) ((tty)->termios->c_cflag & CBAUD)
#define C_HUP(tty) (C_SPEED((tty)) == B0)
+/*
+ * Where all of the state associated with a tty is kept while the tty
+ * is open. Since the termios state should be kept even if the tty
+ * has been closed --- for things like the baud rate, etc --- it is
+ * not stored here, but rather a pointer to the real state is stored
+ * here. Possible the winsize structure should have the same
+ * treatment, but (1) the default 80x24 is usually right and (2) it's
+ * most often used by a windowing system, which will set the correct
+ * size each time the window is created or resized anyway.
+ * IMPORTANT: since this structure is dynamically allocated, it must
+ * be no larger than 4096 bytes. Changing TTY_BUF_SIZE will change
+ * the size of this structure, and it needs to be done with care.
+ * - TYT, 9/14/92
+ */
struct tty_struct {
- struct termios termios;
+ struct termios *termios;
int pgrp;
int session;
unsigned char stopped:1, status_changed:1, packet:1;
unsigned char ctrl_status;
- short unused; /* make everything a multiple of 4. */
+ short line;
int flags;
int count;
struct winsize winsize;
+ int (*open)(struct tty_struct * tty, struct file * filp);
+ void (*close)(struct tty_struct * tty, struct file * filp);
void (*write)(struct tty_struct * tty);
+ int (*ioctl)(struct tty_struct *tty, struct file * file,
+ unsigned int cmd, unsigned int arg);
+ void (*throttle)(struct tty_struct * tty, int status);
struct tty_struct *link;
- struct tty_queue *read_q;
- struct tty_queue *write_q;
- struct tty_queue *secondary;
+ struct tty_queue read_q;
+ struct tty_queue write_q;
+ struct tty_queue secondary;
};
+/*
+ * These are the different types of thottle status which can be sent
+ * to the low-level tty driver. The tty_io.c layer is responsible for
+ * notifying the low-level tty driver of the following conditions:
+ * secondary queue full, secondary queue available, and read queue
+ * available. The low-level driver must send the read queue full
+ * command to itself, if it is interested in that condition.
+ *
+ * Note that the low-level tty driver may elect to ignore one or both
+ * of these conditions; normally, however, it will use ^S/^Q or some
+ * sort of hardware flow control to regulate the input to try to avoid
+ * overflow. While the low-level driver is responsible for all
+ * receiving flow control, note that the ^S/^Q handling (but not
+ * hardware flow control) is handled by the upper layer, in
+ * copy_to_cooked.
+ */
+#define TTY_THROTTLE_SQ_FULL 1
+#define TTY_THROTTLE_SQ_AVAIL 2
+#define TTY_THROTTLE_RQ_FULL 3
+#define TTY_THROTTLE_RQ_AVAIL 4
+
+/*
+ * This defines the low- and high-watermarks for the various conditions.
+ * Again, the low-level driver is free to ignore any of these, and has
+ * to implement RQ_THREHOLD_LW for itself if it wants it.
+ */
+#define SQ_THRESHOLD_LW 0
+#define SQ_THRESHOLD_HW 768
+#define RQ_THRESHOLD_LW 64
+#define RQ_THRESHOLD_HW 768
+
/*
* so that interrupts won't be able to mess up the
* queues, copy_to_cooked must be atomic with repect
* to itself, as must tty->write. These are the flag
* bit-numbers. Use the set_bit() and clear_bit()
* macros to make it all atomic.
+ *
+ * These bits are used in the flags field of the tty structure.
*/
#define TTY_WRITE_BUSY 0
#define TTY_READ_BUSY 1
#define TTY_CR_PENDING 2
+#define TTY_SQ_THROTTLED 3
+#define TTY_RQ_THROTTLED 4
/*
* These have to be done with inline assembly: that way the bit-setting
extern void tty_write_flush(struct tty_struct *);
extern void tty_read_flush(struct tty_struct *);
-extern struct tty_struct tty_table[];
-extern struct serial_struct serial_table[];
+extern struct tty_struct *tty_table[];
extern struct tty_struct * redirect;
extern int fg_console;
extern unsigned long video_num_columns;
extern unsigned long video_num_lines;
+extern struct wait_queue * keypress_wait;
-
-#define TTY_TABLE(nr) \
-(tty_table + ((nr) ? (((nr) < 64)? (nr)-1:(nr)) : fg_console))
+#define TTY_TABLE_IDX(nr) ((nr) ? (nr) : (fg_console+1))
+#define TTY_TABLE(nr) (tty_table[TTY_TABLE_IDX(nr)])
/* intr=^C quit=^| erase=del kill=^U
eof=^D vtime=\0 vmin=\1 sxtc=\0
/* serial.c */
-extern int serial_open(unsigned int line, struct file * filp);
-extern void serial_close(unsigned int line, struct file * filp);
+extern int rs_open(struct tty_struct * tty, struct file * filp);
extern void change_speed(unsigned int line);
-extern void send_break(unsigned int line);
-extern int get_serial_info(unsigned int, struct serial_struct *);
-extern int set_serial_info(unsigned int, struct serial_struct *);
-extern int get_modem_info(unsigned int, unsigned int *);
-extern int set_modem_info(unsigned int, unsigned int, unsigned int *);
/* pty.c */
-extern int pty_open(unsigned int dev, struct file * filp);
-extern void pty_close(unsigned int dev, struct file * filp);
+extern int pty_open(struct tty_struct * tty, struct file * filp);
/* console.c */
-void update_screen(int new_console);
-void blank_screen(void);
-void unblank_screen(void);
+extern int con_open(struct tty_struct * tty, struct file * filp);
+extern void update_screen(int new_console);
+extern void blank_screen(void);
+extern void unblank_screen(void);
+
+/* vt.c */
+
+extern int vt_ioctl(struct tty_struct *tty, struct file * file,
+ unsigned int cmd, unsigned int arg);
#endif
+++ /dev/null
-#ifndef _STDARG_H
-#define _STDARG_H
-
-typedef char *va_list;
-
-/* Amount of space required in an argument list for an arg of type TYPE.
- TYPE may alternatively be an expression whose type is used. */
-
-#define __va_rounded_size(TYPE) \
- (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
-
-#ifndef __sparc__
-#define va_start(AP, LASTARG) \
- (AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
-#else
-#define va_start(AP, LASTARG) \
- (__builtin_saveregs (), \
- AP = ((char *) &(LASTARG) + __va_rounded_size (LASTARG)))
-#endif
-
-void va_end (va_list); /* Defined in gnulib */
-#define va_end(AP)
-
-#define va_arg(AP, TYPE) \
- (AP += __va_rounded_size (TYPE), \
- *((TYPE *) (AP - __va_rounded_size (TYPE))))
-
-#endif /* _STDARG_H */
+++ /dev/null
-#ifndef _KD_H
-#define _KD_H
-
-/* 0x4B is 'K', to avoid collision with termios and vt */
-
-#define SWAPMONO 0x4B00 /* use mca as output device */
-#define SWAPCGA 0x4B01 /* use cga as output device */
-#define SWAPEGA 0x4B02 /* use ega as output device */
-#define SWAPVGA 0x4B03 /* use vga as output device */
-#define CONS_CURRENT 0x4B04 /* return current output device */
-#define MONO 0x01
-#define CGA 0x02
-#define EGA 0x03
-
-#define SW_B40x25 0x4B05 /* 40x25 mono text (cga/ega) */
-#define SW_C40x25 0x4B06 /* 40x24 color text (cga/ega) */
-#define SW_B80x25 0x4B07 /* 80x25 mono text (cga/ega) */
-#define SW_C80x25 0x4B08 /* 80x25 color text (cga/ega) */
-#define SW_BG320 0x4B09 /* 320x200 mono graphics (cga/ega) */
-#define SW_CG320 0x4B0A /* 320x200 color graphics (cga/ega) */
-#define SW_BG640 0x4B0B /* 640x200 mono graphics (cga/ega) */
-#define SW_CG320_D 0x4B0C /* 320x200 graphics (ega mode d) */
-#define SW_CG640_E 0x4B0D /* 640x200 graphics (ega mode e) */
-#define SW_EGAMONOAPA 0x4B0E /* 640x350 graphics (ega mode f) */
-#define SW_ENH_MONOAPA2 0x4B0F /* 640x350 graphics extd mem (ega mode f*) */
-#define SW_CG640x350 0x4B10 /* 640x350 graphics (ega mode 10) */
-#define SW_ENH_CG640 0x4B11 /* 640x350 graphics extd mem (ega mode 10*) */
-#define SW_EGAMONO80x25 0x4B12 /* 80x25 mono text (ega mode 7) */
-#define SW_ENHB40x25 0x4B13 /* enhanced 40x25 mono text (ega) */
-#define SW_ENHC40x25 0x4B14 /* enhanced 40x25 color text (ega) */
-#define SW_ENHB80x25 0x4B15 /* enhanced 80x25 mono text (ega) */
-#define SW_ENHC80x25 0x4B16 /* enhanced 80x25 color text (ega) */
-#define SW_ENHB80x43 0x4B17 /* enhanced 80x43 mono text (ega) */
-#define SW_ENHC80x43 0x4B18 /* enhanced 80x43 color text (ega) */
-#define SW_MCAMODE 0x4B19 /* reinit mca */
-#define SW_ATT640 0x4B1A /* 640x400 16color */
-/* should add more vga modes, etc */
-
-#define CONS_GET 0x4B1B /* get current display mode */
-#define M_B40x25 0 /* 40x25 mono (cga/ega) */
-#define M_C40x25 1 /* 40x25 color (cga/ega) */
-#define M_B80x25 2 /* 80x25 mono (cga/ega) */
-#define M_C80x25 3 /* 80x25 color (cga/ega) */
-#define M_BG320 4 /* 320x200 mono (cga/ega) */
-#define M_CG320 5 /* 320x200 color (cga/ega) */
-#define M_BG640 6 /* 640x200 mono (cga/ega) */
-#define M_EGAMONO80x25 7 /* 80x25 mono (ega) */
-#define M_CG320_D 13 /* ega mode d */
-#define M_CG640_E 14 /* ega mode e */
-#define M_EFAMONOAPA 15 /* ega mode f */
-#define M_CG640x350 16 /* ega mode 10 */
-#define M_ENHMONOAPA2 17 /* ega mode f with ext mem */
-#define M_ENH_CG640 18 /* ega mode 10* */
-#define M_ENH_B40x25 19 /* ega enh 40x25 mono */
-#define M_ENH_C40x25 20 /* ega enh 40x25 color */
-#define M_ENH_B80x25 21 /* ega enh 80x25 mono */
-#define M_ENH_C80x25 22 /* ega enh 80x25 color */
-#define M_ENH_B80x43 0x70 /* ega enh 80x43 mono */
-#define M_ENH_C80x43 0x71 /* ega enh 80x43 color */
-#define M_MCA_MODE 0xff /* monochrome adapter mode */
-#define MCA_GET 0x4B1C /* get mca display mode */
-#define CGA_GET 0x4B1D /* get cga display mode */
-#define EGA_GET 0x4B1E /* get ega display mode */
-
-#define MAPCONS 0x4B1F /* map current video mem into address space */
-#define MAPMONO 0x4B20 /* map mca video mem into address space */
-#define MAPCGA 0x4B21 /* map cga video mem into address space */
-#define MAPEGA 0x4B22 /* map ega video mem into address space */
-#define MAPVGA 0x4B23 /* map vga video mem into address space */
-
-struct port_io_struc {
- char dir; /* direction in vs out */
- unsigned short port;
- char data;
-};
-#define IN_ON_PORT 0x00
-#define OUT_ON_PORT 0x01
-struct port_io_arg {
- struct port_io_struc args[4];
-};
-#define MCAIO 0x4B24 /* i/o to mca video board */
-#define CGAIO 0x4B25 /* i/o to cga video board */
-#define EGAIO 0x4B26 /* i/o to ega video board */
-#define VGAIO 0x4B27 /* i/o to vga video board */
-
-#define GIO_FONT8x8 0x4B28 /* gets current 8x8 font used */
-#define PIO_FONT8x8 0x4B29 /* use supplied 8x8 font */
-#define GIO_FONT8x14 0x4B2A /* gets current 8x14 font used */
-#define PIO_FONT8x14 0x4B2B /* use supplied 8x14 font */
-#define GIO_FONT8x16 0x4B2C /* gets current 8x16 font used */
-#define PIO_FONT8x16 0x4B2D /* use supplied 8x16 font */
-
-#define MKDIOADDR 32 /* io bitmap size from <linux/sched.h> */
-struct kd_disparam {
- long type; /* type of display */
- char *addr; /* display mem address */
- ushort ioaddr[MKDIOADDR]; /* valid i/o addresses */
-};
-#define KDDISPTYPE 0x4B2E /* gets display info */
-#define KD_MONO 0x01
-#define KD_HERCULES 0x02
-#define KD_CGA 0x03
-#define KD_EGA 0x04
-
-#define KIOCSOUND 0x4B2F /* start sound generation (0 for off) */
-#define KDMKTONE 0x4B30 /* generate tone */
-
-#define KDGETLED 0x4B31 /* return current led flags */
-#define KDSETLED 0x4B32 /* set current led flags */
-#define LED_SCR 0x01 /* scroll lock */
-#define LED_CAP 0x04 /* caps lock */
-#define LED_NUM 0x02 /* num lock */
-
-#define KDGKBTYPE 0x4B33 /* get keyboard type */
-#define KB_84 0x01
-#define KB_101 0x02
-#define KB_OTHER 0x03
-
-#define KDADDIO 0x4B34 /* add i/o port as valid */
-#define KDDELIO 0x4B35 /* del i/o port as valid */
-#define KDENABIO 0x4B36 /* enable i/o to video board */
-#define KDDISABIO 0x4B37 /* disable i/o to video board */
-
-struct kd_quemode {
- int qsize; /* desired # elem in queue */
- int signo; /* signal to send when queue not empty */
- char *qaddr; /* user virt addr of queue */
-};
-#define KDQUEMODE 0x4B38 /* enable/disable special queue mode */
-
-#define KDSBORDER 0x4B39 /* set screen boarder in ega text mode */
-
-#define KDSETMODE 0x4B3A /* set text/grahics mode */
-#define KD_TEXT 0x00
-#define KD_GRAPHICS 0x01
-#define KD_TEXT0 0x02 /* ? */
-#define KD_TEXT1 0x03 /* ? */
-#define KDGETMODE 0x4B3B /* get current mode */
-
-struct kd_memloc {
- char *vaddr; /* virt addr to map to */
- char *physaddr; /* phys addr to map from */
- long length; /* number of bytes */
- long ioflg; /* enable i/o if set */
-};
-#define KDMAPDISP 0x4B3C /* map display into address space */
-#define KDUNMAPDISP 0x4B3D /* unmap display from address space */
-
-#define KDVDCTYPE 0x4B3E /* return vdc controller/display info */
-
-#define KIOCINFO 0x4B3F /* tell what the device is */
-
-typedef char scrnmap_t;
-#define E_TABSZ 256
-#define GIO_SCRNMAP 0x4B40 /* get screen mapping from kernel */
-#define PIO_SCRNMAP 0x4B41 /* put screen mapping table in kernel */
-
-#define GIO_ATTR 0x4B42 /* get screen attributes */
-#define GIO_COLOR 0x4B43 /* return nonzero if display is color */
-
-#define K_RAW 0x00
-#define K_XLATE 0x01
-#define KDGKBMODE 0x4B44 /* gets current keyboard mode */
-#define KDSKBMODE 0x4B45 /* sets current keyboard mode */
-
-struct kbentry {
- u_char kb_table;
- u_char kb_index;
- u_char kb_value;
-};
-#define K_NORMTAB 0x00
-#define K_SHIFTTAB 0x01
-#define K_ALTTAB 0x02
-#define K_ALTSHIFTTAB 0x03
-#define K_SRQTAB 0x04
-#define KDGKBENT 0x4B46 /* gets one entry in translation table */
-#define KDSKBENT 0x4B47 /* sets one entry in translation table */
-
-#endif /* _KD_H */
+++ /dev/null
-#ifndef _MMAN_H
-#define _MMAN_H
-
-#define PROT_READ 0x1 /* page can be read */
-#define PROT_WRITE 0x2 /* page can be written */
-#define PROT_EXEC 0x4 /* page can be executed */
-#define PROT_NONE 0x0 /* page can not be accessed */
-
-#define MAP_SHARED 1 /* Share changes */
-#define MAP_PRIVATE 2 /* Changes are private */
-#define MAP_TYPE 0xf /* Mask for type of mapping */
-#define MAP_FIXED 0x10 /* Interpret addr exactly */
-
-extern caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd,
- off_t off);
-extern int munmap(caddr_t addr, size_t len);
-
-#endif /* _MMAN_H */
+++ /dev/null
-#ifndef _VT_H
-#define _VT_H
-
-/* 0x56 is 'V', to avoid collision with termios and kd */
-
-#define VT_OPENQRY 0x5600 /* find available vt */
-
-struct vt_mode {
- char mode; /* vt mode */
- char waitv; /* if set, hang on writes if not active */
- short relsig; /* signal to raise on release req */
- short acqsig; /* signal to raise on acquisition */
- short frsig; /* unused (set to 0) */
-};
-#define VT_GETMODE 0x5601 /* get mode of active vt */
-#define VT_SETMODE 0x5602 /* set mode of active vt */
-#define VT_AUTO 0x00 /* auto vt switching */
-#define VT_PROCESS 0x01 /* process controls switching */
-
-struct vt_stat {
- ushort v_active; /* active vt */
- ushort v_signal; /* signal to send */
- ushort v_state; /* vt bitmask */
-};
-#define VT_GETSTATE 0x5603 /* get global vt state info */
-#define VT_SENDSIG 0x5604 /* signal to send to bitmask of vts */
-
-#define VT_RELDISP 0x5605 /* release display */
-
-#define VT_ACTIVATE 0x5606 /* make vt active */
-
-#endif /* _VT_H */
+++ /dev/null
-#ifndef _TIME_H
-#define _TIME_H
-
-#ifndef _TIME_T
-#define _TIME_T
-typedef long time_t;
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#ifndef NULL
-#define NULL ((void *) 0)
-#endif
-
-#define CLOCKS_PER_SEC 100
-
-#ifndef _CLOCK_T
-#define _CLOCK_T
-typedef long clock_t;
-#endif
-
-struct tm {
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-};
-
-#define __isleap(year) \
- ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-clock_t clock(void);
-time_t time(time_t * tp);
-double difftime(time_t time2, time_t time1);
-time_t mktime(struct tm * tp);
-
-char * asctime(const struct tm * tp);
-char * ctime(const time_t * tp);
-struct tm * gmtime(const time_t *tp);
-struct tm *localtime(const time_t * tp);
-size_t strftime(char * s, size_t smax, const char * fmt, const struct tm * tp);
-void tzset(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
dummy:
### Dependencies:
-exit.o : exit.c /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/asm/segment.h
-fork.o : fork.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/stddef.h /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h
-ioport.o : ioport.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h
-irq.o : irq.c /usr/src/linux/include/linux/ptrace.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/irq.h
-itimer.o : itimer.c /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/segment.h
-mktime.o : mktime.c /usr/src/linux/include/time.h
-panic.o : panic.c /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-printk.o : printk.c /usr/src/linux/include/stdarg.h /usr/src/linux/include/asm/segment.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-ptrace.o : ptrace.c /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/kernel.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/ptrace.h /usr/src/linux/include/asm/segment.h \
- /usr/src/linux/include/asm/system.h
-sched.o : sched.c /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/linux/sys.h /usr/src/linux/include/linux/fdreg.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/ptrace.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/segment.h
-signal.o : signal.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/ptrace.h /usr/src/linux/include/asm/segment.h
-sys.o : sys.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/times.h /usr/src/linux/include/linux/utsname.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/asm/segment.h
-traps.o : traps.c /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/io.h
-vsprintf.o : vsprintf.c /usr/src/linux/include/stdarg.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/string.h
+exit.o : exit.c /usr/include/linux/wait.h /usr/include/linux/limits.h /usr/include/linux/errno.h \
+ /usr/include/linux/signal.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/asm/segment.h
+fork.o : fork.c /usr/include/linux/errno.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/stddef.h \
+ /usr/include/asm/segment.h /usr/include/asm/system.h
+ioport.o : ioport.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/errno.h
+irq.o : irq.c /usr/include/linux/ptrace.h /usr/include/linux/errno.h /usr/include/linux/signal.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/asm/system.h /usr/include/asm/io.h /usr/include/asm/irq.h
+itimer.o : itimer.c /usr/include/linux/signal.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/string.h /usr/include/linux/errno.h \
+ /usr/include/asm/segment.h
+mktime.o : mktime.c /usr/include/linux/mktime.h
+panic.o : panic.c /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h
+printk.o : printk.c /usr/lib/gcc-lib/i386-linux/2.2.2d/include/stdarg.h /usr/include/asm/segment.h \
+ /usr/include/asm/system.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h
+ptrace.o : ptrace.c /usr/include/linux/head.h /usr/include/linux/kernel.h /usr/include/linux/sched.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/errno.h /usr/include/linux/ptrace.h \
+ /usr/include/asm/segment.h /usr/include/asm/system.h
+sched.o : sched.c /usr/include/linux/signal.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/timer.h /usr/include/linux/sys.h \
+ /usr/include/linux/fdreg.h /usr/include/linux/errno.h /usr/include/linux/ptrace.h \
+ /usr/include/asm/system.h /usr/include/asm/io.h /usr/include/asm/segment.h
+signal.o : signal.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/errno.h /usr/include/linux/ptrace.h \
+ /usr/include/asm/segment.h
+sys.o : sys.c /usr/include/linux/errno.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/config.h \
+ /usr/include/linux/config.dist.h /usr/include/linux/times.h /usr/include/linux/utsname.h \
+ /usr/include/linux/string.h /usr/include/linux/ptrace.h /usr/include/asm/segment.h
+traps.o : traps.c /usr/include/linux/head.h /usr/include/linux/sched.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/string.h /usr/include/linux/errno.h \
+ /usr/include/asm/system.h /usr/include/asm/segment.h /usr/include/asm/io.h
+vsprintf.o : vsprintf.c /usr/lib/gcc-lib/i386-linux/2.2.2d/include/stdarg.h \
+ /usr/include/linux/types.h /usr/include/linux/string.h
dummy:
### Dependencies:
-floppy.o : floppy.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/linux/fdreg.h /usr/src/linux/include/linux/fd.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h \
- /usr/src/linux/include/asm/segment.h blk.h
-genhd.o : genhd.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/genhd.h \
- /usr/src/linux/include/linux/kernel.h
-hd.o : hd.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/linux/hdreg.h /usr/src/linux/include/linux/genhd.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/segment.h \
+floppy.o : floppy.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/timer.h /usr/include/linux/fdreg.h \
+ /usr/include/linux/fd.h /usr/include/linux/errno.h /usr/include/asm/system.h \
+ /usr/include/asm/io.h /usr/include/asm/segment.h blk.h
+genhd.o : genhd.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/genhd.h /usr/include/linux/kernel.h
+hd.o : hd.c /usr/include/linux/config.h /usr/include/linux/config.dist.h /usr/include/linux/errno.h \
+ /usr/include/linux/signal.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/timer.h /usr/include/linux/hdreg.h \
+ /usr/include/linux/genhd.h /usr/include/asm/system.h /usr/include/asm/io.h /usr/include/asm/segment.h \
blk.h
-ll_rw_blk.o : ll_rw_blk.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/asm/system.h \
- blk.h
-ramdisk.o : ramdisk.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h
+ll_rw_blk.o : ll_rw_blk.c /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/string.h /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/asm/system.h blk.h
+ramdisk.o : ramdisk.c /usr/include/linux/config.h /usr/include/linux/config.dist.h
*/
static void hd_times_out(void)
{
- sti();
DEVICE_INTR = NULL;
+ sti();
reset = 1;
if (!CURRENT)
return;
unsigned int sec,head,cyl,track;
unsigned int nsect;
+ if (DEVICE_INTR)
+ return;
repeat:
- DEVICE_INTR = NULL;
timer_active &= ~(1<<HD_TIMER);
sti();
INIT_REQUEST;
echo "#define MAX_SCSI_HOSTS `./figure`";\
echo "#endif") > tmp_max
cp tmp_max max_hosts.h
-
+
scsi.a: $(OBJS)
$(AR) rcs scsi.a $(OBJS)
sync
dep:
touch max_hosts.h
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
rm max_hosts.h
cp tmp_make Makefile
### Dependencies:
-7000fasst.o : 7000fasst.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h \
+7000fasst.o : 7000fasst.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/kernel.h /usr/include/linux/head.h /usr/include/linux/types.h \
+ /usr/include/linux/string.h /usr/include/asm/system.h /usr/include/asm/io.h \
scsi.h hosts.h max_hosts.h 7000fasst.h
-aha1542.o : aha1542.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h \
+aha1542.o : aha1542.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/kernel.h /usr/include/linux/head.h /usr/include/linux/types.h \
+ /usr/include/linux/string.h /usr/include/asm/system.h /usr/include/asm/io.h \
scsi.h hosts.h max_hosts.h aha1542.h
-fdomain.o : fdomain.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/asm/io.h fdomain.h scsi.h hosts.h max_hosts.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/errno.h
-hosts.o : hosts.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/kernel.h scsi.h hosts.h max_hosts.h aha1542.h /usr/src/linux/include/linux/types.h \
+fdomain.o : fdomain.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/asm/io.h fdomain.h scsi.h hosts.h max_hosts.h \
+ /usr/include/asm/system.h /usr/include/linux/errno.h
+hosts.o : hosts.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/kernel.h scsi.h hosts.h max_hosts.h aha1542.h /usr/include/linux/types.h \
fdomain.h seagate.h ultrastor.h 7000fasst.h
-scsi.o : scsi.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/linux/string.h scsi.h \
- hosts.h max_hosts.h sd.h /usr/src/linux/include/linux/genhd.h st.h
-scsi_ioctl.o : scsi_ioctl.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h scsi.h hosts.h max_hosts.h scsi_ioctl.h
-sd.o : sd.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/kernel.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h /usr/src/linux/include/linux/string.h \
- scsi.h sd.h /usr/src/linux/include/linux/genhd.h ../blk.h
-sd_ioctl.o : sd_ioctl.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h scsi.h sd.h /usr/src/linux/include/linux/genhd.h
-seagate.o : seagate.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- seagate.h scsi.h hosts.h max_hosts.h
-st.o : st.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- scsi.h st.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- ../blk.h
-st_ioctl.o : st_ioctl.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h st.h scsi.h
-ultrastor.o : ultrastor.c /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/stddef.h /usr/src/linux/include/linux/string.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/system.h ultrastor.h \
- scsi.h hosts.h max_hosts.h
+scsi.o : scsi.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/asm/system.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/timer.h \
+ /usr/include/linux/string.h scsi.h hosts.h max_hosts.h sd.h /usr/include/linux/genhd.h \
+ st.h sr.h
+scsi_ioctl.o : scsi_ioctl.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/asm/io.h /usr/include/asm/segment.h /usr/include/asm/system.h /usr/include/linux/errno.h \
+ /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/string.h scsi.h hosts.h max_hosts.h \
+ scsi_ioctl.h
+sd.o : sd.c /usr/include/linux/config.h /usr/include/linux/config.dist.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/mm.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/string.h scsi.h sd.h /usr/include/linux/genhd.h ../blk.h
+sd_ioctl.o : sd_ioctl.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h scsi.h sd.h /usr/include/linux/genhd.h
+seagate.o : seagate.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/asm/io.h /usr/include/asm/system.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h seagate.h scsi.h hosts.h \
+ max_hosts.h
+sr.o : sr.c /usr/include/linux/config.h /usr/include/linux/config.dist.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/mm.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/string.h scsi.h sr.h ../blk.h
+sr_ioctl.o : sr_ioctl.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/asm/segment.h /usr/include/linux/errno.h \
+ ../blk.h scsi.h sr.h /usr/include/linux/cdrom.h
+st.o : st.c /usr/include/linux/config.h /usr/include/linux/config.dist.h scsi.h \
+ st.h /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/kernel.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h ../blk.h
+st_ioctl.o : st_ioctl.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/kernel.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h st.h scsi.h
+ultrastor.o : ultrastor.c /usr/include/linux/config.h /usr/include/linux/config.dist.h \
+ /usr/include/linux/stddef.h /usr/include/linux/string.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/asm/io.h /usr/include/asm/system.h ultrastor.h scsi.h hosts.h max_hosts.h
return 1;
}
+static int aha1542_in(unchar *cmdp, int len)
+{
+ while (len--)
+ {
+ WAIT(STATUS, DF, DF, 0);
+ *cmdp++ = inb(DATA);
+ }
+ return 0;
+ fail:
+ printk("aha1542_in failed(%d): ", len+1); aha1542_stat();
+ return 1;
+}
int makecode(unsigned hosterr, unsigned scsierr)
{
switch (hosterr) {
int aha1542_queuecommand(unchar target, const void *cmnd, void *buff, int bufflen, void (*done)(int, int))
{
unchar ahacmd = CMD_START_SCSI;
+ unchar direction;
unchar *cmd = (unchar *) cmnd;
DEB(int i);
return 0; /* we are still testing, so *don't* write */
#endif
memset(&ccb, 0, sizeof ccb);
-
+
ccb.cdblen = (*cmd<=0x1f)?6:10; /* SCSI Command Descriptor Block Length */
-
+
+ direction = 0;
+ if (*cmd == READ_10 || *cmd == READ_6)
+ direction = 8;
+ else if (*cmd == WRITE_10 || *cmd == WRITE_6)
+ direction = 16;
+
memcpy(ccb.cdb, cmd, ccb.cdblen);
ccb.op = 0; /* SCSI Initiator Command */
- ccb.idlun = (target&7)<<5; /* SCSI Target Id */
+ ccb.idlun = (target&7)<<5 | direction; /* SCSI Target Id */
ccb.rsalen = 12;
any2scsi(ccb.datalen, bufflen);
any2scsi(ccb.dataptr, buff);
set_intr_gate(0x2b,&aha1542_interrupt);
}
+/* Query the board to find out if it is a 1542 or a 1740, or whatever. */
+static void aha1542_query()
+{
+ static unchar inquiry_cmd[] = {CMD_INQUIRY };
+ static unchar inquiry_result[4];
+ int i;
+ i = inb(STATUS);
+ if (i & DF) {
+ i = inb(DATA);
+ printk("Stale data:%x ");
+ };
+ aha1542_out(inquiry_cmd, 1);
+ aha1542_in(inquiry_result, 4);
+ WAIT(INTRFLAGS, INTRMASK, HACC, 0);
+ while (0) {
+ fail:
+ printk("aha1542_detect: query card type\n");
+ }
+ aha1542_intr_reset();
+ printk("Inquiry:");
+ for(i=0;i<4;i++) printk("%x ",inquiry_result[i]);
+}
/* return non-zero on detection */
int aha1542_detect(int hostnum)
{
}
aha1542_intr_reset();
}
+ aha1542_query();
DEB(aha1542_stat());
setup_mailboxes();
return SUGGEST_RETRY;
}
+/* This function is the mid-level interrupt routine, which decides how
+ * to handle error conditions. Each invocation of this function must
+ * do one and *only* one of the following:
+ *
+ * (1) Call last_cmnd[host].done. This is done for fatal errors and
+ * normal completion, and indicates that the handling for this
+ * request is complete.
+ * (2) Call internal_cmnd to requeue the command. This will result in
+ * scsi_done being called again when the retry is complete.
+ * (3) Call scsi_request_sense. This asks the host adapter/drive for
+ * more information about the error condition. When the information
+ * is available, scsi_done will be called again.
+ * (4) Call reset(). This is sort of a last resort, and the idea is that
+ * this may kick things loose and get the drive working again. reset()
+ * automatically calls scsi_request_sense, and thus scsi_done will be
+ * called again once the reset is complete.
+ *
+ * If none of the above actions are taken, the drive in question
+ * will hang. If more than one of the above actions are taken by
+ * scsi_done, then unpredictable behavior will result.
+ */
static void scsi_done (int host, int result)
{
int status=0;
internal_timeout[host] &= ~SENSE_TIMEOUT;
sti();
- if (!(last_cmnd[host].flags & WAS_RESET))
+ if (!(last_cmnd[host].flags & WAS_RESET))
+ {
reset(host);
+ return;
+ }
else
{
exit = (DRIVER_HARD | SUGGEST_ABORT);
case RESERVATION_CONFLICT:
reset(host);
+ return;
+#if 0
exit = DRIVER_SOFT | SUGGEST_ABORT;
status = MAYREDO;
break;
+#endif
default:
printk ("Internal error %s %s \n"
"status byte = %d \n", __FILE__,
if ((++last_cmnd[host].retries) < last_cmnd[host].allowed)
{
- if ((last_cmnd[host].retries >= (last_cmnd[host].allowed >> 1))
+ if ((last_cmnd[host].retries >= (last_cmnd[host].allowed >> 1))
&& !(last_cmnd[host].flags & WAS_RESET))
- reset(host);
- break;
-
+ {
+ reset(host);
+ break;
+ }
+
}
else
{
--- /dev/null
+*** aha1542.c.~1~ Sat Sep 12 15:29:26 1992
+--- aha1542.c Thu Sep 17 22:11:55 1992
+***************
+*** 72,77 ****
+--- 72,90 ----
+ return 1;
+ }
+
++ static int aha1542_in(unchar *cmdp, int len)
++ {
++ while (len--)
++ {
++ WAIT(STATUS, DF, DF, 0);
++ *cmdp++ = inb(DATA);
++ }
++ return 0;
++ fail:
++ printk("aha1542_in failed(%d): ", len+1); aha1542_stat();
++ return 1;
++ }
++
+ int makecode(unsigned hosterr, unsigned scsierr)
+ {
+ switch (hosterr) {
+***************
+*** 259,264 ****
+--- 272,278 ----
+ int aha1542_queuecommand(unchar target, const void *cmnd, void *buff, int bufflen, void (*done)(int, int))
+ {
+ unchar ahacmd = CMD_START_SCSI;
++ unchar direction;
+ unchar *cmd = (unchar *) cmnd;
+ DEB(int i);
+
+***************
+*** 292,300 ****
+
+ ccb.cdblen = (*cmd<=0x1f)?6:10; /* SCSI Command Descriptor Block Length */
+
+ memcpy(ccb.cdb, cmd, ccb.cdblen);
+ ccb.op = 0; /* SCSI Initiator Command */
+! ccb.idlun = (target&7)<<5; /* SCSI Target Id */
+ ccb.rsalen = 12;
+ any2scsi(ccb.datalen, bufflen);
+ any2scsi(ccb.dataptr, buff);
+--- 306,318 ----
+
+ ccb.cdblen = (*cmd<=0x1f)?6:10; /* SCSI Command Descriptor Block Length */
+
+ direction = 0;
+ if (*cmd == READ_10 || *cmd == READ_6) direction = 8;
+ else if (*cmd == WRITE_10 || *cmd == WRITE_6) direction = 16;
+
+ memcpy(ccb.cdb, cmd, ccb.cdblen);
+ ccb.op = 0; /* SCSI Initiator Command */
+! ccb.idlun = (target&7)<<5 | direction; /* SCSI Target Id */
+ ccb.rsalen = 12;
+ any2scsi(ccb.datalen, bufflen);
+ any2scsi(ccb.dataptr, buff);
+***************
+*** 369,374 ****
+--- 387,416 ----
+ set_intr_gate(0x2b,&aha1542_interrupt);
+ }
+
++
++ /* Query the board to find out if it is a 1542 or a 1740, or whatever. */
++ static void aha1542_query()
++ {
++ static unchar inquiry_cmd[] = {CMD_INQUIRY };
++ static unchar inquiry_result[4];
++ int i;
++ i = inb(STATUS);
++ if (i & DF) {
++ i = inb(DATA);
++ printk("Stale data:%x ");
++ };
++ aha1542_out(inquiry_cmd, 1);
++ aha1542_in(inquiry_result, 4);
++ WAIT(INTRFLAGS, INTRMASK, HACC, 0);
++ while (0) {
++ fail:
++ printk("aha1542_detect: query card type\n");
++ }
++ aha1542_intr_reset();
++ printk("Inquiry:");
++ for(i=0;i<4;i++) printk("%x ",inquiry_result[i]);
++ }
++
+ /* return non-zero on detection */
+ int aha1542_detect(int hostnum)
+ {
+***************
+*** 397,402 ****
+--- 439,446 ----
+ }
+ aha1542_intr_reset();
+ }
++
++ aha1542_query();
+
+ DEB(aha1542_stat());
+ setup_mailboxes();
+*** scsi.c.~1~ Sat Sep 12 15:29:26 1992
+--- scsi.c Wed Sep 16 01:00:44 1992
+***************
+*** 671,677 ****
+--- 671,680 ----
+ sti();
+
+ if (!(last_cmnd[host].flags & WAS_RESET))
++ {
+ reset(host);
++ return;
++ }
+ else
+ {
+ exit = (DRIVER_HARD | SUGGEST_ABORT);
+***************
+*** 768,773 ****
+--- 771,777 ----
+
+ case RESERVATION_CONFLICT:
+ reset(host);
++ return;
+ exit = DRIVER_SOFT | SUGGEST_ABORT;
+ status = MAYREDO;
+ break;
+***************
+*** 841,848 ****
+--- 845,854 ----
+ {
+ if ((last_cmnd[host].retries >= (last_cmnd[host].allowed >> 1))
+ && !(last_cmnd[host].flags & WAS_RESET))
++ {
+ reset(host);
+ break;
++ };
+
+ }
+ else
+*** sd.c.~1~ Sat Sep 12 15:29:26 1992
+--- sd.c Thu Sep 17 23:04:40 1992
+***************
+*** 39,45 ****
+ int NR_SD=0;
+ Scsi_Disk rscsi_disks[MAX_SD];
+ static int sd_sizes[MAX_SD << 4] = {0, };
+! static int this_count;
+ static int the_result;
+
+ static char sense_buffer[255];
+--- 39,45 ----
+ int NR_SD=0;
+ Scsi_Disk rscsi_disks[MAX_SD];
+ static int sd_sizes[MAX_SD << 4] = {0, };
+! static int this_count, total_count = 0;
+ static int the_result;
+
+ static char sense_buffer[255];
+***************
+*** 108,113 ****
+--- 108,120 ----
+
+ if (!result) {
+ CURRENT->nr_sectors -= this_count;
++ total_count -= this_count;
++ if(total_count){
++ CURRENT->sector += this_count;
++ CURRENT->buffer += (this_count << 9);
++ do_sd_request();
++ return;
++ };
+
+ #ifdef DEBUG
+ printk("sd%d : %d sectors remain.\n", MINOR(CURRENT->dev), CURRENT->nr_sectors);
+***************
+*** 248,253 ****
+--- 255,266 ----
+ this_count = CURRENT->nr_sectors;
+ else
+ this_count = (BLOCK_SIZE / 512);
++
++
++ /* This is a temporary hack for the AHA1742. */
++ if(total_count == 0)
++ total_count = this_count;
++ this_count = 1; /* Take only 512 bytes at a time */
+
+ #ifdef DEBUG
+ printk("sd%d : %s %d/%d 512 byte blocks.\n", MINOR(CURRENT->dev),
int NR_SD=0;
Scsi_Disk rscsi_disks[MAX_SD];
static int sd_sizes[MAX_SD << 4] = {0, };
-static int this_count;
+static int this_count, total_count = 0;
static int the_result;
static char sense_buffer[255];
if (!result) {
CURRENT->nr_sectors -= this_count;
+ total_count -= this_count;
+ if(total_count){
+ CURRENT->sector += this_count;
+ CURRENT->buffer += (this_count << 9);
+ do_sd_request();
+ return;
+ };
#ifdef DEBUG
printk("sd%d : %d sectors remain.\n", MINOR(CURRENT->dev), CURRENT->nr_sectors);
this_count = CURRENT->nr_sectors;
else
this_count = (BLOCK_SIZE / 512);
+/* This is a temporary hack for the AHA1742. */
+ if(total_count == 0)
+ total_count = this_count;
+ this_count = 1; /* Take only 512 bytes at a time */
#ifdef DEBUG
printk("sd%d : %s %d/%d 512 byte blocks.\n", MINOR(CURRENT->dev),
sync
console.o: console.c
- $(CC) $(CFLAGS) $(NUM_LOCK) -c -o console.o console.c
+ $(CC) $(CFLAGS) -c -o console.o console.c
keyboard.o: keyboard.c
- $(CC) $(CFLAGS) $(KEYBOARD) $(NUM_LOCK) -c -o keyboard.o keyboard.c
+ $(CC) $(CFLAGS) $(KEYBOARD) -c -o keyboard.o keyboard.c
clean:
rm -f core *.o *.a tmp_make keyboard.s
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M -DKBD_FINNISH $$i;done >> tmp_make
+ $(CPP) -M $(KEYBOARD) *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-console.o : console.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/config.h /usr/src/linux/include/linux/config_rel.h \
- /usr/src/linux/include/linux/config_ver.h /usr/src/linux/include/linux/config.dist.h \
- /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/io.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/sys/kd.h vt_kern.h
-keyboard.o : keyboard.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/ctype.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/ptrace.h /usr/src/linux/include/asm/io.h
-lp.o : lp.c /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/lp.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/io.h \
- /usr/src/linux/include/asm/segment.h
-mem.o : mem.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/mouse.h /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/io.h
-mouse.o : mouse.c /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/mouse.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/io.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/irq.h
-pty.o : pty.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/asm/io.h
-serial.o : serial.c /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/segment.h
-tty_io.o : tty_io.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/fcntl.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h \
- /usr/src/linux/include/linux/resource.h /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/ctype.h /usr/src/linux/include/asm/io.h \
- /usr/src/linux/include/asm/segment.h /usr/src/linux/include/sys/kd.h vt_kern.h
-tty_ioctl.o : tty_ioctl.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/termios.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/segment.h
-vt.o : vt.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/tty.h /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/linux/timer.h /usr/src/linux/include/asm/io.h /usr/src/linux/include/asm/segment.h \
- vt_kern.h /usr/src/linux/include/sys/kd.h /usr/src/linux/include/sys/vt.h
+busmouse.o : busmouse.c /usr/include/linux/kernel.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/busmouse.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/errno.h /usr/include/asm/io.h /usr/include/asm/segment.h \
+ /usr/include/asm/irq.h
+console.o : console.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/timer.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/config.h \
+ /usr/include/linux/config.dist.h /usr/include/linux/string.h /usr/include/linux/errno.h \
+ /usr/include/linux/kd.h /usr/include/asm/io.h /usr/include/asm/segment.h vt_kern.h
+keyboard.o : keyboard.c /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/ctype.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/ptrace.h /usr/include/asm/io.h
+lp.o : lp.c /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/lp.h /usr/include/linux/errno.h \
+ /usr/include/asm/io.h /usr/include/asm/segment.h
+mem.o : mem.c /usr/include/linux/types.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/mouse.h \
+ /usr/include/asm/segment.h /usr/include/asm/io.h
+mouse.o : mouse.c /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/errno.h /usr/include/linux/mouse.h
+psaux.o : psaux.c /usr/include/linux/timer.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/fcntl.h \
+ /usr/include/linux/errno.h /usr/include/asm/io.h /usr/include/asm/segment.h \
+ /usr/include/asm/system.h
+pty.o : pty.c /usr/include/linux/errno.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/fcntl.h \
+ /usr/include/asm/io.h
+serial.o : serial.c /usr/include/linux/errno.h /usr/include/linux/signal.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/timer.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/serial.h /usr/include/asm/io.h /usr/include/asm/segment.h
+tty_io.o : tty_io.c /usr/include/linux/types.h /usr/include/linux/errno.h /usr/include/linux/signal.h \
+ /usr/include/linux/fcntl.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/linux/tty.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/linux/ctype.h /usr/include/linux/kd.h /usr/include/linux/string.h \
+ /usr/include/asm/io.h /usr/include/asm/segment.h vt_kern.h
+tty_ioctl.o : tty_ioctl.c /usr/include/linux/types.h /usr/include/linux/termios.h \
+ /usr/include/linux/errno.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/tty.h /usr/include/asm/system.h \
+ /usr/include/linux/fcntl.h /usr/include/asm/io.h /usr/include/asm/segment.h
+vt.o : vt.c /usr/include/linux/types.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/tty.h \
+ /usr/include/linux/termios.h /usr/include/asm/system.h /usr/include/linux/timer.h \
+ /usr/include/linux/kd.h /usr/include/linux/vt.h /usr/include/asm/io.h /usr/include/asm/segment.h \
+ vt_kern.h
/*
* console.c
*
- * This module implements the console io functions
+ * This module exports the console io functions:
+ *
* 'long con_init(long)'
- * 'void con_write(struct tty_queue * queue)'
+ * 'void con_open(struct tty_queue * queue, struct )'
+ * 'void update_screen(int new_console)'
+ * 'void blank_screen(void)'
+ * 'void unblank_screen(void)'
+ *
* Hopefully this will be a rather complete VT102 implementation.
*
* Beeping thanks to John T Kohl.
extern unsigned char kapplic;
extern unsigned char ckmode;
extern unsigned char krepeat;
+extern unsigned char default_kleds;
extern unsigned char kleds;
extern unsigned char kmode;
extern unsigned char kraw;
#define kbdleds (vt_cons[currcons].vc_kbdleds)
#define vtmode (vt_cons[currcons].vt_mode)
-#if defined KBD_NUMERIC_LOCK
-#define NUMLED_DEFAULT 0x02
-
-#else
-#define NUMLED_DEFAULT 0
-#endif
-
#define SET(mode,fg,v) \
(mode) = (v); \
if (currcons == fg_console) \
static void respond_string(char * p, int currcons, struct tty_struct * tty)
{
while (*p) {
- put_tty_queue(*p,tty->read_q);
+ put_tty_queue(*p, &tty->read_q);
p++;
}
TTY_READ_FLUSH(tty);
n /= 10;
} while(n && i < 3); /* We'll take no chances */
while (i--) {
- put_tty_queue(buff[i],tty->read_q);
+ put_tty_queue(buff[i], &tty->read_q);
}
/* caller must flush */
}
static void cursor_report(int currcons, struct tty_struct * tty)
{
- put_tty_queue('\033', tty->read_q);
- put_tty_queue('[', tty->read_q);
+ put_tty_queue('\033', &tty->read_q);
+ put_tty_queue('[', &tty->read_q);
respond_num(y + (decom ? top+1 : 1), currcons, tty);
- put_tty_queue(';', tty->read_q);
+ put_tty_queue(';', &tty->read_q);
respond_num(x+1, currcons, tty);
- put_tty_queue('R', tty->read_q);
+ put_tty_queue('R', &tty->read_q);
TTY_READ_FLUSH(tty);
}
ckmode = 0;
kapplic = 0;
lfnlmode = 0;
- kleds = NUMLED_DEFAULT;
+ kleds = default_kleds;
kmode = 0;
set_leds();
} else {
decckm = 0;
kbdapplic = 0;
lnm = 0;
- kbdleds = NUMLED_DEFAULT;
+ kbdleds = default_kleds;
kbdmode = 0;
}
int c;
unsigned int currcons;
- wake_up(&tty->write_q->proc_list);
- currcons = tty - tty_table;
+ wake_up(&tty->write_q.proc_list);
+ currcons = tty->line - 1;
if (currcons >= NR_CONSOLES) {
- printk("con_write: illegal tty\n\r");
+ printk("con_write: illegal tty (%d)\n", currcons);
return;
}
- while (!tty->stopped && (c = get_tty_queue(tty->write_q)) >= 0) {
+ while (!tty->stopped && (c = get_tty_queue(&tty->write_q)) >= 0) {
if (state == ESnormal && translate[c]) {
if (need_wrap) {
cr(currcons);
timer_active |= 1<<BLANK_TIMER;
}
}
+
+/*
+ * All we do is set the write and ioctl subroutines; later on maybe we'll
+ * dynamically allocate the console screen memory.
+ */
+int con_open(struct tty_struct *tty, struct file * filp)
+{
+ tty->write = con_write;
+ tty->ioctl = vt_ioctl;
+ return 0;
+}
#include <linux/mm.h>
#include <linux/ptrace.h>
+/*
+ * The default IO slowdown is doing 'inb()'s from 0x61, which should be
+ * safe. But as that is the keyboard controller chip address, we do our
+ * slowdowns here by doing short jumps: the keyboard controller should
+ * be able to keep up
+ */
+#define REALLY_SLOW_IO
+#define SLOW_IO_BY_JUMPING
#include <asm/io.h>
#include <asm/system.h>
-#define LSHIFT 0x01
-#define RSHIFT 0x02
-#define LCTRL 0x04
-#define RCTRL 0x08
-#define ALT 0x10
-#define ALTGR 0x20
-#define CAPS 0x40
-#define CAPSDOWN 0x80
+#define LSHIFT 0x01
+#define RSHIFT 0x02
+#define LCTRL 0x04
+#define RCTRL 0x08
+#define ALT 0x10
+#define ALTGR 0x20
+#define CAPS 0x40
+#define CAPSDOWN 0x80
-#define SCRLED 0x01
-#define NUMLED 0x02
-#define CAPSLED 0x04
+#define SCRLED 0x01
+#define NUMLED 0x02
+#define CAPSLED 0x04
-#if defined KBD_NUMERIC_LOCK
-#define NUMLED_DEFAULT NUMLED
+#define NO_META_BIT 0x80
-#else
-#define NUMLED_DEFAULT 0
+#ifndef KBD_DEFLOCK
+#define KBD_DEFLOCK NUMLED
#endif
-#define NO_META_BIT 0x80
-
unsigned char kapplic = 0;
unsigned char ckmode = 0;
unsigned char krepeat = 1;
unsigned char kmode = 0;
-unsigned char kleds = NUMLED_DEFAULT;
+unsigned char default_kleds = KBD_DEFLOCK;
+unsigned char kleds = KBD_DEFLOCK;
unsigned char ke0 = 0;
unsigned char kraw = 0;
unsigned char kbd_flags = KBDFLAGS;
} else if (ke0 == repke0 && (scancode & 0x7f) == rep)
if (scancode & 0x80)
rep = 0xff;
- else if (!(krepeat && (L_ECHO(tty) || (EMPTY(tty->secondary) &&
- EMPTY(tty->read_q))))) {
+ else if (!(krepeat && tty && (L_ECHO(tty) ||
+ (EMPTY(&tty->secondary) &&
+ EMPTY(&tty->read_q))))) {
ke0 = 0;
return;
}
static void put_queue(int ch)
{
- register struct tty_queue *qp = table_list[0];
+ struct tty_queue *qp;
+ struct tty_struct *tty = TTY_TABLE(0);
unsigned long new_head;
+ wake_up(&keypress_wait);
+ if (!tty)
+ return;
+ qp = &tty->read_q;
+
qp->buf[qp->head]=ch;
if ((new_head=(qp->head+1)&(TTY_BUF_SIZE-1)) != qp->tail)
qp->head=new_head;
static void puts_queue(char *cp)
{
- register struct tty_queue *qp = table_list[0];
+ struct tty_queue *qp;
+ struct tty_struct *tty = TTY_TABLE(0);
unsigned long new_head;
char ch;
+
+ wake_up(&keypress_wait);
+ if (!tty)
+ return;
+ qp = &tty->read_q;
while (ch=*cp++) {
qp->buf[qp->head]=ch;
puts_queue(buf);
}
-
#if defined KBD_FINNISH
static unsigned char key_map[] = {
'b', 'n', 'm', ',', '.', '-', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '\"', '#', '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
+ '/', '(', ')', '=', '?', '`', 127, 9,
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', ']', '^', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', '\\',
'[', 0, 0, '*', 'Z', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '@', 163, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_FINNISH_LATIN1
0, 27, '1', '2', '3', '4', '5', '6',
'7', '8', '9', '0', '+', 180, 127, 9,
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
- 'o', 'p', 229, 168, 13, 0, 'a', 's',
- 'd', 'f', 'g', 'h', 'j', 'k', 'l', 246,
+ 'o', 'p', 229, 168, 13, 0, 'a', 's',
+ 'd', 'f', 'g', 'h', 'j', 'k', 'l', 246,
228, 167, 0, '\'', 'z', 'x', 'c', 'v',
- 'b', 'n', 'm', ',', '.', '-', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
-
+ 'b', 'n', 'm', ',', '.', '-', 0, '*',
+ 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
+
static unsigned char shift_map[] = {
0, 27, '!', '"', '#', '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
- 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
+ '/', '(', ')', '=', '?', '`', 127, 9,
+ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', 197, '^', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', 214,
196, 189, 0, '*', 'Z', 'X', 'C', 'V',
static unsigned char alt_map[] = {
0, 0, 0, '@', 163, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 };
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
'o', 'p', '[', ']', 13, 0, 'a', 's',
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
- '\'', '`', 0, '\\', 'z', 'x', 'c', 'v',
+ '\'', '`', 0, '\\', 'z', 'x', 'c', 'v',
'b', 'n', 'm', ',', '.', '/', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 };
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', '{', '}', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',
- '"', '~', '0', '|', 'Z', 'X', 'C', 'V',
+ '"', '~', '0', '|', 'Z', 'X', 'C', 'V',
'B', 'N', 'M', '<', '>', '?', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '>', 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '>', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 };
static unsigned char alt_map[] = {
0, 0, 0, '@', 0, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_UK
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
'o', 'p', '[', ']', 13, 0, 'a', 's',
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
- '\'', '`', 0, '#', 'z', 'x', 'c', 'v',
+ '\'', '`', 0, '#', 'z', 'x', 'c', 'v',
'b', 'n', 'm', ',', '.', '/', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '\\', 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '\\', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 };
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', '{', '}', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', ':',
- '@', '~', '0', '~', 'Z', 'X', 'C', 'V',
+ '@', '~', '0', '~', 'Z', 'X', 'C', 'V',
'B', 'N', 'M', '<', '>', '?', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
0, 0, 0, 0, 0, 0, 0, 0,
0 };
static unsigned char alt_map[] = {
0, 0, 0, '@', 0, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_GR
'b', 'n', 'm', ',', '.', '-', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '"', '#', '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
+ '/', '(', ')', '=', '?', '`', 127, 9,
'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I',
'O', 'P', '\\', '*', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', '{',
'}', '~', 0, '\'', 'Y', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '@', 0, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- '@', 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ '@', 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_GR_LATIN1
'b', 'n', 'm', ',', '.', '-', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '"', 167, '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
+ '/', '(', ')', '=', '?', '`', 127, 9,
'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I',
'O', 'P', 220, '*', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', 214,
- 196, 176, 0, '\'', 'Y', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 196, 176, 0, '\'', 'Y', 'X', 'C', 'V',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, 178, 179, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- '@', 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 181, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ '@', 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 181, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_FR
'b', 'n', ',', ';', ':', '!', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '1', '2', '3', '4', '5', '6',
- '7', '8', '9', '0', ']', '+', 127, 9,
+ '7', '8', '9', '0', ']', '+', 127, 9,
'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', '<', '>', 13, 0, 'Q', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M',
'%', '~', 0, '#', 'W', 'X', 'C', 'V',
- 'B', 'N', '?', '.', '/', '\\', 0, '*',
+ 'B', 'N', '?', '.', '/', '\\', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '~', '#', '{', '[', '|',
- '`', '\\', '^', '@', ']', '}', 0, 0,
- '@', 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '`', '\\', '^', '@', ']', '}', 0, 0,
+ '@', 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_FR_LATIN1
static unsigned char key_map[] = {
0, 27, '&', 233, '"', '\'', '(', '-',
- 232, '_', 231, 224, ')', '=', 127, 9,
+ 232, '_', 231, 224, ')', '=', 127, 9,
'a', 'z', 'e', 'r', 't', 'y', 'u', 'i',
'o', 'p', '^', '$', 13, 0, 'q', 's',
'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm',
'b', 'n', ',', ';', ':', '!', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '1', '2', '3', '4', '5', '6',
- '7', '8', '9', '0', 176, '+', 127, 9,
+ '7', '8', '9', '0', 176, '+', 127, 9,
'A', 'Z', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', 168, 163, 13, 0, 'Q', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M',
'%', 0, 0, 181, 'W', 'X', 'C', 'V',
- 'B', 'N', '?', '.', '/', 167, 0, '*',
+ 'B', 'N', '?', '.', '/', 167, 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '~', '#', '{', '[', '|',
- '`', '\\', '^', '@', ']', '}', 0, 0,
- '@', 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 164, 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '`', '\\', '^', '@', ']', '}', 0, 0,
+ '@', 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 164, 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_DK
'b', 'n', 'm', ',', '.', '-', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '\"', '#', '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
+ '/', '(', ')', '=', '?', '`', 127, 9,
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', 197, '^', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', 198,
165, 0, 0, '*', 'Z', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '@', 163, '$', 0, 0,
- '{', '[', ']', '}', 0, '|', 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '\\', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', 0, '|', 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '\\', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_DK_LATIN1
'b', 'n', 'm', ',', '.', '-', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '\"', '#', '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
+ '/', '(', ')', '=', '?', '`', 127, 9,
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', 197, '^', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', 198,
165, 167, 0, '*', 'Z', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '@', 163, '$', 0, 0,
- '{', '[', ']', '}', 0, '|', 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '\\', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', 0, '|', 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '\\', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_DVORAK
static unsigned char key_map[] = {
0, 27, '1', '2', '3', '4', '5', '6',
'7', '8', '9', '0', '\\', '=', 127, 9,
- '\'', ',', '.', 'p', 'y', 'f', 'g', 'c',
- 'r', 'l', '/', ']', 13, 0, 'a', 'o',
+ '\'', ',', '.', 'p', 'y', 'f', 'g', 'c',
+ 'r', 'l', '/', ']', 13, 0, 'a', 'o',
'e', 'u', 'i', 'd', 'h', 't', 'n', 's',
- '-', '`', 0, '[', ';', 'q', 'j', 'k',
+ '-', '`', 0, '[', ';', 'q', 'j', 'k',
'x', 'b', 'm', 'w', 'v', 'z', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
0, 0, 0, 0, 0, 0, '<', 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '@', '#', '$', '%', '^',
'&', '*', '(', ')', '|', '+', 127, 9,
- '"', '<', '>', 'P', 'Y', 'F', 'G', 'C',
+ '"', '<', '>', 'P', 'Y', 'F', 'G', 'C',
'R', 'L', '?', '}', 13, 0, 'A', 'O',
'E', 'U', 'I', 'D', 'H', 'T', 'N', 'S',
'_', '~', 0, '{', ':', 'Q', 'J', 'K',
'X', 'B', 'M', 'W', 'V', 'Z', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
0, 0, 0, 0, 0, 0, '<', 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0 };
static unsigned char alt_map[] = {
0, 0, 0, '@', 0, '$', 0, 0,
- '{', '[', ']', '}', '\\', 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', '\\', 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '|', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_SG
static unsigned char key_map[] = {
- 0, 27, '1', '2', '3', '4', '5', '6',
- '7', '8', '9', '0', '\'', '^', 127, 9,
- 'q', 'w', 'e', 'r', 't', 'z', 'u', 'i',
- 'o', 'p', 0, 0, 13, 0, 'a', 's',
- 'd', 'f', 'g', 'h', 'j', 'k', 'l', 0,
- 0, 0, 0, '$', 'y', 'x', 'c', 'v',
- 'b', 'n', 'm', ',', '.', '-', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 27, '1', '2', '3', '4', '5', '6',
+ '7', '8', '9', '0', '\'', '^', 127, 9,
+ 'q', 'w', 'e', 'r', 't', 'z', 'u', 'i',
+ 'o', 'p', 0, 0, 13, 0, 'a', 's',
+ 'd', 'f', 'g', 'h', 'j', 'k', 'l', 0,
+ 0, 0, 0, '$', 'y', 'x', 'c', 'v',
+ 'b', 'n', 'm', ',', '.', '-', 0, '*',
+ 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
- 0, 27, '+', '"', '*', 0, '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
- 'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I',
- 'O', 'P', 0, '!', 13, 0, 'A', 'S',
- 'D', 'F', 'G', 'H', 'J', 'K', 'L', 0,
- 0, 0, 0, 0, 'Y', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '>', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 27, '+', '"', '*', 0, '%', '&',
+ '/', '(', ')', '=', '?', '`', 127, 9,
+ 'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I',
+ 'O', 'P', 0, '!', 13, 0, 'A', 'S',
+ 'D', 'F', 'G', 'H', 'J', 'K', 'L', 0,
+ 0, 0, 0, 0, 'Y', 'X', 'C', 'V',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '>', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char alt_map[] = {
- 0, 0, 0, '@', '#', 0, 0, 0,
- '|', 0, 0, 0, '\'', '~', 0, 0,
- '@', 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '[', ']', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- '{', 0, 0, '}', 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '\\', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, 0, '@', '#', 0, 0, 0,
+ '|', 0, 0, 0, '\'', '~', 0, 0,
+ '@', 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '[', ']', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ '{', 0, 0, '}', 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '\\', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_SG_LATIN1
static unsigned char key_map[] = {
- 0, 27, '1', '2', '3', '4', '5', '6',
- '7', '8', '9', '0', '\'', '^', 127, 9,
- 'q', 'w', 'e', 'r', 't', 'z', 'u', 'i',
- 'o', 'p', 252, 0, 13, 0, 'a', 's',
- 'd', 'f', 'g', 'h', 'j', 'k', 'l', 246,
- 228, 167, 0, '$', 'y', 'x', 'c', 'v',
- 'b', 'n', 'm', ',', '.', '-', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 27, '1', '2', '3', '4', '5', '6',
+ '7', '8', '9', '0', '\'', '^', 127, 9,
+ 'q', 'w', 'e', 'r', 't', 'z', 'u', 'i',
+ 'o', 'p', 252, 0, 13, 0, 'a', 's',
+ 'd', 'f', 'g', 'h', 'j', 'k', 'l', 246,
+ 228, 167, 0, '$', 'y', 'x', 'c', 'v',
+ 'b', 'n', 'm', ',', '.', '-', 0, '*',
+ 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
- 0, 27, '+', '"', '*', 231, '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
- 'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I',
- 'O', 'P', 220, '!', 13, 0, 'A', 'S',
- 'D', 'F', 'G', 'H', 'J', 'K', 'L', 214,
- 196, 176, 0, 163, 'Y', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
- 0, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '>', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 27, '+', '"', '*', 231, '%', '&',
+ '/', '(', ')', '=', '?', '`', 127, 9,
+ 'Q', 'W', 'E', 'R', 'T', 'Z', 'U', 'I',
+ 'O', 'P', 220, '!', 13, 0, 'A', 'S',
+ 'D', 'F', 'G', 'H', 'J', 'K', 'L', 214,
+ 196, 176, 0, 163, 'Y', 'X', 'C', 'V',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '>', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char alt_map[] = {
- 0, 0, 0, '@', '#', 0, 0, 172,
- '|', 162, 0, 0, '\'', '~', 0, 0,
- '@', 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '[', ']', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 233,
- '{', 0, 0, '}', 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, '\\', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, 0, '@', '#', 0, 0, 172,
+ '|', 162, 0, 0, '\'', '~', 0, 0,
+ '@', 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, '[', ']', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 233,
+ '{', 0, 0, '}', 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, '\\', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#elif defined KBD_NO
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
'o', 'p', '}', '~', 13, 0, 'a', 's',
'd', 'f', 'g', 'h', 'j', 'k', 'l', '|',
- '{', '|', 0, '\'', 'z', 'x', 'c', 'v',
+ '{', '|', 0, '\'', 'z', 'x', 'c', 'v',
'b', 'n', 'm', ',', '.', '-', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, '-', 0, 0, 0, '+', 0,
- 0, 0, 0, 0, 0, 0, '<', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ 0, 0, '-', 0, 0, 0, '+', 0,
+ 0, 0, 0, 0, 0, 0, '<', 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
static unsigned char shift_map[] = {
0, 27, '!', '\"', '#', '$', '%', '&',
- '/', '(', ')', '=', '?', '`', 127, 9,
+ '/', '(', ')', '=', '?', '`', 127, 9,
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',
'O', 'P', ']', '^', 13, 0, 'A', 'S',
'D', 'F', 'G', 'H', 'J', 'K', 'L', '\\',
'[', 0, 0, '*', 'Z', 'X', 'C', 'V',
- 'B', 'N', 'M', ';', ':', '_', 0, '*',
+ 'B', 'N', 'M', ';', ':', '_', 0, '*',
0, 32, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, '-', 0, 0, 0, '+', 0,
static unsigned char alt_map[] = {
0, 0, 0, '@', 0, '$', 0, 0,
- '{', '[', ']', '}', 0, '\'', 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, '~', 13, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0 };
+ '{', '[', ']', '}', 0, '\'', 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, '~', 13, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0 };
#else
#error "KBD-type not defined"
"`\344bcd\353fgh\357jklmn\366pqrst\374vwx\377z{|}~" /* dieresis */
};
-
/*
* Check if dead key pressed. If so, check if same key pressed twice;
* in that case return the char, otherwise store char and return 0.
unsigned int handle_diacr(unsigned int ch)
{
static unsigned char diacr_table[] =
- {'`', 180, '^', '~', 168, 0}; /* Must end with 0 */
+ {'`', 180, '^', '~', 168, 0}; /* Must end with 0 */
int i;
for(i=0; diacr_table[i]; i++)
return ch;
}
}
-
#if defined KBD_FR || defined KBD_US || defined KBD_UK
static unsigned char num_table[] = "789-456+1230.";
static unsigned char num_table[] = "789-456+1230,";
#endif
-static unsigned char cur_table[] = "HA5-DGC+YB623";
+static unsigned char cur_table[] = "1A5-DGC+4B623";
static unsigned int pad_table[] = { 7,8,9,0,4,5,6,0,1,2,3,0,0 };
-/*
- Keypad / 35 B7 Q
+/*
+ Keypad / 35 B7 Q
Keypad * (PrtSc) 37 B7 R
- Keypad NumLock 45 ?? P
+ Keypad NumLock 45 ?? P
Keypad 7 (Home) 47 C7 w
Keypad 8 (Up arrow) 48 C8 x
Keypad 9 (PgUp) 49 C9 y
Keypad 5 4C CC u
Keypad 6 (Right arrow) 4D CD v
Keypad + 4E CE l
- Keypad 1 (End) 4F CF q
+ Keypad 1 (End) 4F CF q
Keypad 2 (Down arrow) 50 D0 r
Keypad 3 (PgDn) 51 D1 s
Keypad 0 (Ins) 52 D2 p
- Keypad . (Del) 53 D3 n
-*/
+ Keypad . (Del) 53 D3 n
+*/
static unsigned char appl_table[] = "wxyStuvlqrspn";
-static char *func_table[] = {
- "\033[[A", "\033[[B", "\033[[C", "\033[[D",
- "\033[[E", "\033[[F", "\033[[G", "\033[[H",
- "\033[[I", "\033[[J", "\033[[K", "\033[[L"
-};
-
+/*
+ Set up keyboard to generate DEC VT200 F-keys.
+ DEC F1 - F5 not implemented (DEC HOLD, LOCAL PRINT, SETUP, SW SESS, BREAK)
+ DEC F6 - F10 are mapped to F6 - F10
+ DEC F11 - F20 are mapped to Shift-F1 - Shift-F10
+ DEC HELP and DEC DO are mapped to F11, F12 or Shift- F11, F12.
+ Regular (?) Linux F1-F5 remain the same.
+*/
+
+static char *func_table[2][12] = { /* DEC F1 - F10 */ {
+ "\033[[A", "\033[[B", "\033[[C", "\033[[D",
+ "\033[[E", "\033[17~", "\033[18~", "\033[19~",
+ "\033[20~", "\033[21~", "\033[28~", "\033[29~"
+}, /* DEC F11 - F20 */ {
+ "\033[23~", "\033[24~", "\033[25~", "\033[26~",
+ "\033[28~", "\033[29~", "\033[31~", "\033[32~",
+ "\033[33~", "\033[34~", "\033[28~", "\033[29~"
+}};
static void cursor(int sc)
{
return;
}
- if ((kmode&ALT) && sc!=12) { /* Alt-numpad */
+ if ((kmode&ALT) && sc!=12) { /* Alt-numpad */
npadch=npadch*10+pad_table[sc];
return;
}
- if (kapplic && !(kmode&(LSHIFT|RSHIFT))) { /* shift forces cursor */
+ if (kapplic && !(kmode&(LSHIFT|RSHIFT))) { /* shift forces cursor */
applkey(appl_table[sc]);
return;
}
static void cur(int sc)
{
- char buf[] = { 0x1b, '[', 0, 0, 0 }; /* must not be static */
+ char buf[] = { 0x1b, '[', 0, 0, 0 }; /* must not be static */
buf[2]=cur_table[sc];
if (buf[2] < '9')
buf[3]='~';
- if ((buf[2] >= 'A' && buf[2] <= 'D') ? ckmode : kapplic)
- buf[1]='O';
+ else
+ if ((buf[2] >= 'A' && buf[2] <= 'D') ? ckmode : kapplic)
+ buf[1]='O';
puts_queue(buf);
}
if (kmode&ALT)
change_console(sc);
else
- puts_queue(func_table[sc]);
-}
-
+ if (kmode & ( LSHIFT | RSHIFT)) /* DEC F11 - F20 */
+ puts_queue(func_table[1][sc]);
+ else /* DEC F1 - F10 */
+ puts_queue(func_table[0][sc]);
+}
static void slash(int sc)
{
do_self(sc);
}
-
static void none(int sc)
{
}
-
/*
* kb_wait waits for the keyboard controller buffer to empty.
*/
__asm__("\tlidt _no_idt"::);
}
}
-
static fptr key_table[] = {
none,do_self,do_self,do_self, /* 00-03 s0 esc 1 2 */
/*
* pty.c
*
- * This module implements the pty functions
- * void mpty_write(struct tty_struct * queue);
- * void spty_write(struct tty_struct * queue);
+ * This module exports the following pty function:
+ *
+ * int pty_open(struct tty_struct * tty, struct file * filp);
*/
#include <linux/errno.h>
#include <asm/system.h>
#include <asm/io.h>
-int pty_open(unsigned int dev, struct file * filp)
-{
- struct tty_struct * tty;
+static void pty_close(struct tty_struct * tty, struct file * filp);
- tty = tty_table + dev;
- if (!tty->link)
+int pty_open(struct tty_struct *tty, struct file * filp)
+{
+ if (!tty || !tty->link)
return -ENODEV;
- wake_up(&tty->read_q->proc_list);
+ if (IS_A_PTY_MASTER(tty->line))
+ tty->write = mpty_write;
+ else
+ tty->write = spty_write;
+ tty->close = pty_close;
+ wake_up(&tty->read_q.proc_list);
if (filp->f_flags & O_NDELAY)
return 0;
while (!tty->link->count && !(current->signal & ~current->blocked))
- interruptible_sleep_on(&tty->link->read_q->proc_list);
+ interruptible_sleep_on(&tty->link->read_q.proc_list);
if (!tty->link->count)
return -ERESTARTSYS;
return 0;
}
-void pty_close(unsigned int dev, struct file * filp)
+static void pty_close(struct tty_struct * tty, struct file * filp)
{
- struct tty_struct * tty;
-
- tty = tty_table + dev;
- wake_up(&tty->read_q->proc_list);
- wake_up(&tty->link->write_q->proc_list);
- if (IS_A_PTY_MASTER(dev)) {
+ wake_up(&tty->read_q.proc_list);
+ wake_up(&tty->link->write_q.proc_list);
+ if (IS_A_PTY_MASTER(tty->line)) {
if (tty->link->pgrp > 0)
kill_pg(tty->link->pgrp,SIGHUP,1);
}
{
int c;
- while (!from->stopped && !EMPTY(from->write_q)) {
- if (FULL(to->read_q)) {
- if (FULL(to->secondary))
+ while (!from->stopped && !EMPTY(&from->write_q)) {
+ if (FULL(&to->read_q)) {
+ if (FULL(&to->secondary))
break;
TTY_READ_FLUSH(to);
continue;
}
- c = get_tty_queue(from->write_q);
- put_tty_queue(c,to->read_q);
+ c = get_tty_queue(&from->write_q);
+ put_tty_queue(c, &to->read_q);
if (current->signal & ~current->blocked)
break;
}
TTY_READ_FLUSH(to);
- wake_up(&from->write_q->proc_list);
+ wake_up(&from->write_q.proc_list);
}
/*
* linux/kernel/serial.c
*
* Copyright (C) 1991, 1992 Linus Torvalds
- */
-
-/*
- * serial.c
*
- * This module implements the rs232 io functions
- * void rs_write(struct tty_struct * queue);
+ * Extensively rewritten by Theodore Ts'o, 8/16/92 -- 9/14/92. Now
+ * much more extensible to support other serial cards based on the
+ * 16450/16550A UART's. Added support for the AST FourPort and the
+ * Accent Async board. We use the async_ISR structure to allow
+ * multiple ports (or boards, if the hardware permits) to share a
+ * single IRQ channel.
+ *
+ * This module exports the following rs232 io functions:
+ *
* long rs_init(long);
- * and all interrupts pertaining to serial IO.
+ * int rs_open(struct tty_struct * tty, struct file * filp)
+ * void change_speed(unsigned int line)
*/
#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/timer.h>
#include <linux/tty.h>
+#include <linux/serial.h>
#include <asm/system.h>
#include <asm/io.h>
#define WAKEUP_CHARS (3*TTY_BUF_SIZE/4)
-struct serial_struct serial_table[NR_SERIALS] = {
- { PORT_UNKNOWN, 0, 0x3F8, 4, NULL},
- { PORT_UNKNOWN, 1, 0x2F8, 3, NULL},
- { PORT_UNKNOWN, 2, 0x3E8, 4, NULL},
- { PORT_UNKNOWN, 3, 0x2E8, 3, NULL},
+/*
+ * rs_read_process - Bitfield of serial lines that have I/O processing
+ * to be done at the next clock tick.
+ * rs_write_timeout - Bitfield of serial lines that have a possible
+ * write timeout pending. (In case the THRE
+ * interrupt gets lost.)
+ */
+static unsigned long rs_read_process = 0;
+static unsigned long rs_write_timeout = 0;
+
+static void UART_ISR_proc(async_ISR ISR, int line);
+static void FourPort_ISR_proc(async_ISR ISR, int line);
+
+struct struct_ISR COM1_ISR = { 4, 0x3f8, UART_ISR_proc, 0, };
+struct struct_ISR COM2_ISR = { 3, 0x2f8, UART_ISR_proc, 0, };
+struct struct_ISR COM3_ISR = { 4, 0x3e8, UART_ISR_proc, 0, };
+struct struct_ISR COM4_ISR = { 3, 0x2e8, UART_ISR_proc, 0, };
+
+struct struct_ISR FourPort1_ISR = { 2, 0x1bf, FourPort_ISR_proc, 0, };
+struct struct_ISR FourPort2_ISR = { 5, 0x2bf, FourPort_ISR_proc, 0, };
+
+struct struct_ISR Accent3_ISR = { 4, 0x330, UART_ISR_proc, 0, };
+struct struct_ISR Accent4_ISR = { 4, 0x338, UART_ISR_proc, 0, };
+
+/*
+ * This assumes you have a 1.8432 MHz clock for your UART.
+ *
+ * It'd be nice if someone built a serial card with a 24.576 MHz
+ * clock, since the 16550A is capable of handling a top speed of 1.5
+ * megabits/second; but this requires the faster clock.
+ */
+#define BASE_BAUD ( 1843200 / 16 )
+
+struct async_struct rs_table[] = {
+ { BASE_BAUD, 0x3F8, &COM1_ISR, 0, },
+ { BASE_BAUD, 0x2F8, &COM2_ISR, 0, },
+ { BASE_BAUD, 0x3E8, &COM3_ISR, 0, },
+ { BASE_BAUD, 0x2E8, &COM4_ISR, 0, },
+
+ { BASE_BAUD, 0x1A0, &FourPort1_ISR, ASYNC_FOURPORT },
+ { BASE_BAUD, 0x1A8, &FourPort1_ISR, ASYNC_FOURPORT },
+ { BASE_BAUD, 0x1B0, &FourPort1_ISR, ASYNC_FOURPORT },
+ { BASE_BAUD, 0x1B8, &FourPort1_ISR, ASYNC_FOURPORT | ASYNC_NOSCRATCH },
+
+ { BASE_BAUD, 0x2A0, &FourPort2_ISR, ASYNC_FOURPORT },
+ { BASE_BAUD, 0x2A8, &FourPort2_ISR, ASYNC_FOURPORT },
+ { BASE_BAUD, 0x2B0, &FourPort2_ISR, ASYNC_FOURPORT },
+ { BASE_BAUD, 0x2B8, &FourPort2_ISR, ASYNC_FOURPORT | ASYNC_NOSCRATCH },
+
+ { BASE_BAUD, 0x330, &Accent3_ISR, 0 },
+ { BASE_BAUD, 0x338, &Accent4_ISR, 0 },
};
-void send_break(unsigned int line)
+#define NR_PORTS (sizeof(rs_table)/sizeof(struct async_struct))
+
+static async_ISR IRQ_ISR[16]; /* Used to store the head of the */
+ /* ISR linked list chain for each IRQ */
+
+/*
+ * This is used to figure out the divsor speeds and the timeouts
+ */
+static int baud_table[] = {
+ 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
+ 9600, 19200, 38400, 56000, 115200, 0 };
+
+static void send_break( struct async_struct * info)
{
unsigned short port;
- struct serial_struct * info;
- if (line >= NR_SERIALS)
- return;
- info = serial_table + line;
if (!(port = info->port))
return;
- port += 3;
+ port += UART_LCR;
current->state = TASK_INTERRUPTIBLE;
current->timeout = jiffies + 25;
- outb_p(inb_p(port) | 0x40,port);
+ outb_p(inb_p(port) | UART_LCR_SBC, port);
schedule();
- outb_p(inb_p(port) & 0xbf,port);
+ outb_p(inb_p(port) & ~UART_LCR_SBC, port);
}
/*
- * There are several races here: we avoid most of them by disabling timer_active
- * for the crucial part of the process.. That's a good idea anyway.
+ * There are several races here: we avoid most of them by disabling
+ * timer_active for the crucial part of the process.. That's a good
+ * idea anyway.
*
* The problem is that we have to output characters /both/ from interrupts
* and from the normal write: the latter to be sure the interrupts start up
* again. With serial lines, the interrupts can happen so often that the
* races actually are noticeable.
*/
-static void send_intr(struct serial_struct * info)
+static void send_intr(struct async_struct * info)
{
unsigned short port = info->port;
- unsigned int timer = SER1_TIMEOUT + info->line;
- struct tty_queue * queue = info->tty->write_q;
- int c, i = 0;
-
- if (info->tty->stopped) return;
-
- timer_active &= ~(1 << timer);
- while (inb_p(info->port+5) & 0x20) {
- if (queue->tail == queue->head)
- goto end_send;
- c = queue->buf[queue->tail];
- queue->tail++;
- queue->tail &= TTY_BUF_SIZE-1;
- outb(c,port);
- if ((info->type != PORT_16550A) || (++i >= 14) || info->tty->stopped)
- break;
+ int line = info->line;
+ struct tty_queue * queue = &info->tty->write_q;
+ int c, count = 0;
+
+ if (info->tty->stopped)
+ return;
+
+ if (info->type == PORT_16550A)
+ count = 16;
+ else
+ count = 1;
+
+ rs_write_timeout &= ~(1 << line);
+
+ if (inb_p(UART_LSR + info->port) & UART_LSR_THRE) {
+ while (count-- && !info->tty->stopped) {
+ if (queue->tail == queue->head)
+ goto end_send;
+ c = queue->buf[queue->tail];
+ queue->tail++;
+ queue->tail &= TTY_BUF_SIZE-1;
+ outb(c, UART_TX + port);
+ }
}
- timer_table[timer].expires = jiffies + 10;
- timer_active |= 1 << timer;
+ info->timer = jiffies + info->timeout;
+ if (info->timer < timer_table[RS_TIMER].expires)
+ timer_table[RS_TIMER].expires = info->timer;
+ rs_write_timeout |= 1 << line;
+ timer_active |= 1 << RS_TIMER;
end_send:
if (LEFT(queue) > WAKEUP_CHARS)
wake_up(&queue->proc_list);
}
-static void receive_intr(struct serial_struct * info)
+static void receive_intr(struct async_struct * info)
{
unsigned short port = info->port;
- struct tty_queue * queue = info->tty->read_q;
+ struct tty_queue * queue = &info->tty->read_q;
int head = queue->head;
int maxhead = (queue->tail-1) & (TTY_BUF_SIZE-1);
+ int count = 0;
- timer_active &= ~((1<<SER1_TIMER)<<info->line);
+ rs_read_process &= ~(1 << info->line);
do {
- queue->buf[head] = inb(port);
+ count++;
+ queue->buf[head] = inb(UART_TX + port);
if (head != maxhead) {
head++;
head &= TTY_BUF_SIZE-1;
}
- } while (inb(port+5) & 1);
+ } while (inb(UART_LSR + port) & UART_LSR_DR);
queue->head = head;
- timer_active |= (1<<SER1_TIMER)<<info->line;
+ rs_read_process |= 1 << info->line;
+ timer_table[RS_TIMER].expires = 0;
+ timer_active |= 1<<RS_TIMER;
}
-static void line_status_intr(struct serial_struct * info)
+static void line_status_intr(struct async_struct * info)
{
- unsigned char status = inb(info->port+5);
+ unsigned char status = inb(UART_LSR + info->port);
-/* printk("line status: %02x\n",status); */
+/* printk("line status: %02x\n",status); */
}
-static void modem_status_intr(struct serial_struct * info)
+static void modem_status_intr(struct async_struct * info)
{
- unsigned char status = inb(info->port+6);
+ unsigned char status = inb(UART_MSR + info->port);
- if (!(info->tty->termios.c_cflag & CLOCAL)) {
- if ((status & 0x88) == 0x08 && info->tty->pgrp > 0)
+ if (!(info->tty->termios->c_cflag & CLOCAL)) {
+ if (((status & (UART_MSR_DCD|UART_MSR_DDCD)) == UART_MSR_DDCD)
+ && info->tty->pgrp > 0)
kill_pg(info->tty->pgrp,SIGHUP,1);
- if (info->tty->termios.c_cflag & CRTSCTS)
- info->tty->stopped = !(status & 0x10);
+ if (info->tty->termios->c_cflag & CRTSCTS)
+ info->tty->stopped = !(status & UART_MSR_CTS);
if (!info->tty->stopped)
send_intr(info);
}
}
-static void (*jmp_table[4])(struct serial_struct *) = {
+static void (*jmp_table[4])(struct async_struct *) = {
modem_status_intr,
send_intr,
receive_intr,
line_status_intr
};
-static void check_tty(struct serial_struct * info)
+/*
+ * This ISR handles the COM1-4 8250, 16450, and 16550A UART's. It is
+ * also called by the FourPort ISR, since the FourPort also uses the
+ * same National Semiconduct UART's, with some interrupt multiplexing
+ * thrown in.
+ */
+static void UART_ISR_proc(async_ISR ISR, int line)
{
unsigned char ident;
+ struct async_struct * info = rs_table + line;
if (!info || !info->tty || !info->port)
- return;
+ return;
while (1) {
- ident = inb(info->port+2) & 7;
+ ident = inb(UART_IIR + info->port) & 7;
if (ident & 1)
return;
- ident >>= 1;
- if (ident > 3)
- return;
+ ident = ident >> 1;
jmp_table[ident](info);
}
}
* Again, we disable interrupts to be sure there aren't any races:
* see send_intr for details.
*/
-static inline void do_rs_write(struct serial_struct * info)
+static inline void do_rs_write(struct async_struct * info)
{
if (!info->tty || !info->port)
return;
- if (!info->tty->write_q || EMPTY(info->tty->write_q))
+ if (EMPTY(&info->tty->write_q))
return;
cli();
send_intr(info);
}
/*
- * IRQ routines: one per line
+ * Here is the fourport ISR
*/
-static void com1_IRQ(int unused)
-{
- check_tty(serial_table+0);
-}
-
-static void com2_IRQ(int unused)
-{
- check_tty(serial_table+1);
-}
-
-static void com3_IRQ(int unused)
+static void FourPort_ISR_proc(async_ISR ISR, int line)
{
- check_tty(serial_table+2);
-}
-
-static void com4_IRQ(int unused)
-{
- check_tty(serial_table+3);
+ int i;
+ unsigned char ivec;
+
+ ivec = ~inb(ISR->port) & 0x0F;
+ for (i = line; ivec; i++) {
+ if (ivec & 1)
+ UART_ISR_proc(ISR, i);
+ ivec = ivec >> 1;
+ }
}
/*
- * Receive timer routines: one per line
+ * This is the serial driver's generic interrupt routine
*/
-static void com1_timer(void)
-{
- TTY_READ_FLUSH(tty_table+64);
-}
-
-static void com2_timer(void)
+static void rs_interrupt(int irq)
{
- TTY_READ_FLUSH(tty_table+65);
-}
+ async_ISR p = IRQ_ISR[irq];
-static void com3_timer(void)
-{
- TTY_READ_FLUSH(tty_table+66);
-}
-
-static void com4_timer(void)
-{
- TTY_READ_FLUSH(tty_table+67);
+ while (p) {
+ (p->ISR_proc)(p, p->line);
+ p = p->next_ISR;
+ }
}
/*
- * Send timeout routines: one per line
+ * This subroutine handles all of the timer functionality required for
+ * the serial ports.
*/
-static void com1_timeout(void)
-{
- do_rs_write(serial_table);
-}
-
-static void com2_timeout(void)
-{
- do_rs_write(serial_table + 1);
-}
-
-static void com3_timeout(void)
-{
- do_rs_write(serial_table + 2);
-}
-static void com4_timeout(void)
+#define END_OF_TIME 0xffffffff
+static void rs_timer(void)
{
- do_rs_write(serial_table + 3);
+ unsigned long mask;
+ struct async_struct *info;
+ unsigned long next_timeout;
+
+ info = rs_table;
+ next_timeout = END_OF_TIME;
+ for (mask = 1 ; mask ; info++, mask <<= 1) {
+ if ((mask > rs_read_process) &&
+ (mask > rs_write_timeout))
+ break;
+ if (mask & rs_read_process) {
+ TTY_READ_FLUSH(info->tty);
+ rs_read_process &= ~mask;
+ }
+ if (mask & rs_write_timeout) {
+ if (info->timer > jiffies) {
+ rs_write_timeout &= ~mask;
+ do_rs_write(info);
+ }
+ if ((mask & rs_write_timeout) &&
+ (info->timer < next_timeout))
+ next_timeout = info->timer;
+ }
+ }
+ if (next_timeout != END_OF_TIME) {
+ timer_table[RS_TIMER].expires = next_timeout;
+ timer_active |= 1 << RS_TIMER;
+ }
}
-static void init(struct serial_struct * info)
+static void init(struct async_struct * info)
{
- unsigned char status1, status2, scratch;
+ unsigned char status1, status2, scratch, scratch2;
unsigned short port = info->port;
- if (inb(port+5) == 0xff) {
+ /*
+ * Check to see if a UART is really there.
+ */
+ scratch = inb_p(UART_MCR + port);
+ outb_p(UART_MCR_LOOP | scratch, UART_MCR + port);
+ scratch2 = inb_p(UART_MSR + port);
+ outb_p(UART_MCR_LOOP | 0x0A, UART_MCR + port);
+ status1 = inb_p(UART_MSR + port) & 0xF0;
+ outb_p(scratch, UART_MCR + port);
+ outb_p(scratch, UART_MSR + port);
+ if (status1 != 0x90) {
info->type = PORT_UNKNOWN;
return;
}
- scratch = inb(port+7);
- outb_p(0xa5, port+7);
- status1 = inb(port+7);
- outb_p(0x5a, port+7);
- status2 = inb(port+7);
+ if (!(info->flags & ASYNC_NOSCRATCH)) {
+ scratch = inb(UART_SCR + port);
+ outb_p(0xa5, UART_SCR + port);
+ status1 = inb(UART_SCR + port);
+ outb_p(0x5a, UART_SCR + port);
+ status2 = inb(UART_SCR + port);
+ outb_p(scratch, UART_SCR + port);
+ } else {
+ status1 = 0xa5;
+ status2 = 0x5a;
+ }
if (status1 == 0xa5 && status2 == 0x5a) {
- outb_p(scratch, port+7);
- outb_p(0x01, port+2);
- scratch = inb(port+2) >> 6;
+ outb_p(UART_FCR_ENABLE_FIFO, UART_FCR + port);
+ scratch = inb(UART_IIR + port) >> 6;
+ info->xmit_fifo_size = 1;
switch (scratch) {
case 0:
info->type = PORT_16450;
break;
case 2:
info->type = PORT_16550;
- outb_p(0x00, port+2);
break;
case 3:
info->type = PORT_16550A;
- outb_p(0xc7, port+2);
+ info->xmit_fifo_size = 16;
break;
}
} else
info->type = PORT_8250;
- outb_p(0x80,port+3); /* set DLAB of line control reg */
- outb_p(0x30,port); /* LS of divisor (48 -> 2400 bps) */
- outb_p(0x00,port+1); /* MS of divisor */
- outb_p(0x03,port+3); /* reset DLAB */
- outb_p(0x00,port+4); /* reset DTR,RTS, OUT_2 */
- outb_p(0x00,port+1); /* disable all intrs */
- (void)inb(port); /* read data port to reset things (?) */
+ change_speed(info->line);
+ outb_p(0x00, UART_IER + port); /* disable all intrs */
+ outb_p(0x00, UART_MCR + port); /* reset DTR,RTS,OUT_2 */
+ (void)inb(UART_RX + port); /* read data port to reset things (?) */
}
-void serial_close(unsigned line, struct file * filp)
+/*
+ * This routine gets called when tty_write has put something into
+ * the write_queue. It must check wheter the queue is empty, and
+ * set the interrupt register accordingly
+ */
+void rs_write(struct tty_struct * tty)
{
- struct serial_struct * info;
- int irq;
+ int line = tty->line - 64;
- if (line >= NR_SERIALS)
+ do_rs_write(rs_table+line);
+}
+
+/*
+ * This routine is called when the serial port gets closed. First, we
+ * wait for the last remaining data to be sent. Then, we unlink its
+ * ISR from the interrupt chain if necessary, and we free that IRQ if
+ * nothing is left in the chain.
+ */
+static void rs_close(struct tty_struct *tty, struct file * filp)
+{
+ struct async_struct * info;
+ async_ISR ISR;
+ int irq, line;
+
+ line = DEV_TO_SL(tty->line);
+ if ((line < 0) || (line >= NR_PORTS))
return;
- info = serial_table + line;
+ wait_until_sent(tty);
+ info = rs_table + line;
if (!info->port)
return;
- outb(0x00,info->port+4); /* reset DTR, RTS, */
- irq = info->irq;
+ info->tty = 0;
+ outb_p(0x00, UART_IER + info->port); /* disable all intrs */
+ outb_p(0x00, UART_MCR + info->port); /* reset DTR, RTS, */
+ outb(UART_FCR_CLEAR_CMD, UART_FCR + info->port); /* disable FIFO's */
+ ISR = info->ISR;
+ irq = ISR->irq;
if (irq == 2)
irq = 9;
- free_irq(irq);
+ if (--ISR->refcnt == 0) {
+ if (ISR->next_ISR)
+ ISR->next_ISR->prev_ISR = ISR->prev_ISR;
+ if (ISR->prev_ISR)
+ ISR->prev_ISR->next_ISR = ISR->next_ISR;
+ else
+ IRQ_ISR[irq] = ISR->next_ISR;
+ if (!IRQ_ISR[irq])
+ free_irq(irq);
+ }
}
-static void startup(unsigned short port)
+static void startup(struct async_struct * info)
{
- int i;
+ unsigned short port = info->port;
+ unsigned short ICP;
+
+ /*
+ * First, clear the FIFO buffers and disable them
+ */
+ if (info->type == PORT_16550A)
+ outb_p(UART_FCR_CLEAR_CMD, UART_FCR + port);
+
+ /*
+ * Next, clear the interrupt registers.
+ */
+ (void)inb_p(UART_LSR + port);
+ (void)inb_p(UART_RX + port);
+ (void)inb_p(UART_IIR + port);
+ (void)inb_p(UART_MSR + port);
+
+ /*
+ * Now, initialize the UART
+ */
+ outb_p(UART_LCR_WLEN8, UART_LCR + port); /* reset DLAB */
+ if (info->flags & ASYNC_FOURPORT)
+ outb_p(UART_MCR_DTR | UART_MCR_RTS,
+ UART_MCR + port);
+ else
+ outb_p(UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2,
+ UART_MCR + port);
+
+ /*
+ * Enable FIFO's if necessary
+ */
+ if (info->type == PORT_16550A) {
+ outb_p(UART_FCR_SETUP_CMD, UART_FCR + port);
+ info->xmit_fifo_size = 16;
+ } else {
+ info->xmit_fifo_size = 1;
+ }
- outb_p(0x03,port+3); /* reset DLAB */
- outb_p(0x0b,port+4); /* set DTR,RTS, OUT_2 */
- outb_p(0x0f,port+1); /* enable all intrs */
- inb_p(port+2);
- inb_p(port+6);
- inb_p(port+2);
- inb_p(port+5);
- for (i = 0; i < 16 ; i++) {
- inb_p(port+0);
- if (!(inb_p(port+5) & 1))
- break;
+ /*
+ * Finally, enable interrupts
+ */
+ outb_p(0x0f,UART_IER + port); /* enable all intrs */
+ if (info->flags & ASYNC_FOURPORT) {
+ /* Enable interrupts on the AST Fourport board */
+ ICP = (port & 0xFE0) | 0x01F;
+ outb_p(0x80, ICP);
+ (void) inb(ICP);
}
- inb_p(port+2);
- inb_p(port+5);
}
void change_speed(unsigned int line)
{
- struct serial_struct * info;
- unsigned short port,quot;
+ struct async_struct * info;
+ unsigned short port;
+ int quot = 0;
unsigned cflag,cval;
- static unsigned short quotient[] = {
- 0, 2304, 1536, 1047, 857,
- 768, 576, 384, 192, 96,
- 64, 48, 24, 12, 6, 3
- };
+ int i;
- if (line >= NR_SERIALS)
+ if (line >= NR_PORTS)
return;
- info = serial_table + line;
- cflag = info->tty->termios.c_cflag;
+ info = rs_table + line;
+ cflag = info->tty->termios->c_cflag;
if (!(port = info->port))
return;
- quot = quotient[cflag & CBAUD];
+ i = cflag & CBAUD;
+ if (i == 15) {
+ if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_HI)
+ i += 1;
+ if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_VHI)
+ i += 2;
+ if ((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST)
+ quot = info->custom_divisor;
+ }
+ if (quot) {
+ info->timeout = ((info->xmit_fifo_size*HZ*15*quot) /
+ info->baud_base) + 2;
+ } else if (baud_table[i] == 134) {
+ quot = (2*info->baud_base / 269);
+ info->timeout = (info->xmit_fifo_size*HZ*30/269) + 2;
+ } else if (baud_table[i]) {
+ quot = info->baud_base / baud_table[i];
+ info->timeout = (info->xmit_fifo_size*HZ*15/baud_table[i]) + 2;
+ } else {
+ quot = 0;
+ info->timeout = 0;
+ }
if (!quot)
- outb(0x00,port+4);
- else if (!inb(port+4))
- startup(port);
+ outb(0x00,UART_MCR + port);
+ else if (!inb(UART_MCR + port))
+ startup(info);
/* byte size and parity */
cval = cflag & (CSIZE | CSTOPB);
cval >>= 4;
if (!(cflag & PARODD))
cval |= 16;
cli();
- outb_p(cval | 0x80,port+3); /* set DLAB */
- outb_p(quot & 0xff,port); /* LS of divisor */
- outb_p(quot >> 8,port+1); /* MS of divisor */
- outb(cval,port+3); /* reset DLAB */
+ outb_p(cval | UART_LCR_DLAB, UART_LCR + port); /* set DLAB */
+ outb_p(quot & 0xff, UART_DLL + port); /* LS of divisor */
+ outb_p(quot >> 8, UART_DLM + port); /* MS of divisor */
+ outb(cval, UART_LCR + port); /* reset DLAB */
sti();
}
-static void (*serial_handler[NR_SERIALS])(int) = {
- com1_IRQ,com2_IRQ,com3_IRQ,com4_IRQ
-};
-
-/*
- * this routine enables interrupts on 'line', and disables them for any
- * other serial line that shared the same IRQ. Braindamaged AT hardware.
- */
-int serial_open(unsigned line, struct file * filp)
-{
- struct serial_struct * info;
- int irq,retval;
- unsigned short port;
- struct sigaction sa;
-
- sa.sa_handler = serial_handler[line];
- sa.sa_flags = SA_INTERRUPT;
- sa.sa_mask = 0;
- sa.sa_restorer = NULL;
- if (line >= NR_SERIALS)
- return -ENODEV;
- info = serial_table + line;
- if (!(port = info->port))
- return -ENODEV;
- irq = info->irq;
- if (irq == 2)
- irq = 9;
- if (retval = irqaction(irq,&sa))
- return retval;
- startup(port);
- return 0;
-}
-
-int get_serial_info(unsigned int line, struct serial_struct * info)
+static int get_serial_info(struct async_struct * info,
+ struct serial_struct * retinfo)
{
- if (line >= NR_SERIALS)
- return -ENODEV;
- if (!info)
+ struct serial_struct tmp;
+
+ if (!retinfo)
return -EFAULT;
- memcpy_tofs(info,serial_table+line,sizeof(*info));
+ tmp.type = info->type;
+ tmp.line = info->line;
+ tmp.port = info->port;
+ tmp.irq = info->ISR->irq;
+/* tmp.flags = info->flags; */
+ memcpy_tofs(retinfo,&tmp,sizeof(*retinfo));
return 0;
}
-int set_serial_info(unsigned int line, struct serial_struct * info)
+static int set_serial_info(struct async_struct * info,
+ struct serial_struct * new_info)
{
struct serial_struct tmp;
- unsigned new_port;
- unsigned irq,new_irq;
- int retval;
- void (*handler)(int) = serial_handler[line];
+ async_ISR ISR;
+ unsigned int new_port;
+ unsigned int irq,new_irq;
+ int retval;
+ struct sigaction sa;
if (!suser())
return -EPERM;
- if (line >= NR_SERIALS)
- return -ENODEV;
- if (!info)
+ if (!new_info)
return -EFAULT;
- memcpy_fromfs(&tmp,info,sizeof(tmp));
- info = serial_table + line;
- if (!(new_port = tmp.port))
- new_port = info->port;
- if (!(new_irq = tmp.irq))
- new_irq = info->irq;
+ memcpy_fromfs(&tmp,new_info,sizeof(tmp));
+ new_port = tmp.port;
+ new_irq = tmp.irq;
if (new_irq > 15 || new_port > 0xffff)
return -EINVAL;
if (new_irq == 2)
new_irq = 9;
- irq = info->irq;
+ ISR = info->ISR;
+ irq = ISR->irq;
if (irq == 2)
irq = 9;
if (irq != new_irq) {
- retval = request_irq(new_irq,handler);
- if (retval)
- return retval;
- info->irq = new_irq;
- free_irq(irq);
+ /*
+ * We need to change the IRQ for this board. OK, if
+ * necessary, first we try to grab the new IRQ for
+ * serial interrupts.
+ */
+ if (!IRQ_ISR[new_irq]) {
+ sa.sa_handler = rs_interrupt;
+ sa.sa_flags = (SA_INTERRUPT);
+ sa.sa_mask = 0;
+ sa.sa_restorer = NULL;
+ retval = irqaction(irq,&sa);
+ if (retval)
+ return retval;
+ }
+
+ /*
+ * If the new IRQ is OK, now we unlink the ISR from
+ * the existing interrupt chain.
+ */
+ if (ISR->next_ISR)
+ ISR->next_ISR->prev_ISR = ISR->prev_ISR;
+ if (ISR->prev_ISR)
+ ISR->prev_ISR->next_ISR = ISR->next_ISR;
+ else
+ IRQ_ISR[irq] = ISR->next_ISR;
+ if (!IRQ_ISR[irq])
+ free_irq(irq);
+
+ /*
+ * Now link in the interrupt to the new interrupt chain.
+ */
+ ISR->prev_ISR = 0;
+ ISR->next_ISR = IRQ_ISR[new_irq];
+ if (ISR->next_ISR)
+ ISR->next_ISR->prev_ISR = ISR;
+ IRQ_ISR[new_irq] = ISR;
}
cli();
if (new_port != info->port) {
- outb(0x00,info->port+4); /* reset DTR, RTS, */
+ outb_p(0x00, UART_IER + info->port); /* disable all intrs */
+ outb(0x00, UART_MCR + info->port); /* reset DTR, RTS, */
info->port = new_port;
init(info);
- startup(new_port);
+ startup(info);
}
sti();
return 0;
}
-int get_modem_info(unsigned int line, unsigned int *value)
+static int get_modem_info(struct async_struct * info, unsigned int *value)
{
- unsigned port = (serial_table + line)->port;
- unsigned char control = inb(port+4);
- unsigned char status = inb(port+6);
+ unsigned port;
+ unsigned char control, status;
unsigned int result;
- result = ((control & 0x02) ? TIOCM_RTS : 0)
- | ((control & 0x01) ? TIOCM_DTR : 0)
- | ((status & 0x80) ? TIOCM_CAR : 0)
- | ((status & 0x40) ? TIOCM_RNG : 0)
- | ((status & 0x20) ? TIOCM_DSR : 0)
- | ((status & 0x10) ? TIOCM_CTS : 0);
+ port = info->port;
+ control = inb(UART_MCR + port);
+ status = inb(UART_MSR + port);
+ result = ((control & UART_MCR_RTS) ? TIOCM_RTS : 0)
+ | ((control & UART_MCR_DTR) ? TIOCM_DTR : 0)
+ | ((status & UART_MSR_DCD) ? TIOCM_CAR : 0)
+ | ((status & UART_MSR_RI) ? TIOCM_RNG : 0)
+ | ((status & UART_MSR_DSR) ? TIOCM_DSR : 0)
+ | ((status & UART_MSR_CTS) ? TIOCM_CTS : 0);
put_fs_long(result,(unsigned long *) value);
return 0;
}
-int set_modem_info(unsigned int line, unsigned int cmd, unsigned int *value)
+static int set_modem_info(struct async_struct * info, unsigned int cmd,
+ unsigned int *value)
{
- unsigned port = (serial_table + line)->port;
- unsigned char control = inb(port+4);
+ unsigned port;
+ unsigned char control;
unsigned int arg = get_fs_long((unsigned long *) value);
+ port = info->port;
+ control = inb(UART_MCR + port);
+
switch (cmd) {
case TIOCMBIS:
if (arg & TIOCM_RTS)
- control |= 0x02;
+ control |= UART_MCR_RTS;
if (arg & TIOCM_DTR)
- control |= 0x01;
+ control |= UART_MCR_DTR;
break;
case TIOCMBIC:
if (arg & TIOCM_RTS)
- control &= ~0x02;
+ control &= ~UART_MCR_RTS;
if (arg & TIOCM_DTR)
- control &= ~0x01;
+ control &= ~UART_MCR_DTR;
break;
case TIOCMSET:
control = (control & ~0x03)
- | ((arg & TIOCM_RTS) ? 0x02 : 0)
- | ((arg & TIOCM_DTR) ? 0x01 : 0);
+ | ((arg & TIOCM_RTS) ? UART_MCR_RTS : 0)
+ | ((arg & TIOCM_DTR) ? UART_MCR_DTR : 0);
break;
default:
return -EINVAL;
}
- outb(port,control);
+ outb(UART_MCR + port,control);
+ return 0;
+}
+
+static int rs_ioctl(struct tty_struct *tty, struct file * file,
+ unsigned int cmd, unsigned int arg)
+{
+ int line;
+ struct async_struct * info;
+
+ line = DEV_TO_SL(tty->line);
+ if (line < 0 || line >= NR_PORTS)
+ return -ENODEV;
+ info = rs_table + line;
+
+ switch (cmd) {
+ case TCSBRK:
+ wait_until_sent(tty);
+ if (!arg)
+ send_break(info);
+ return 0;
+ case TIOCMGET:
+ verify_area((void *) arg,sizeof(unsigned int *));
+ return get_modem_info(info, (unsigned int *) arg);
+ case TIOCMBIS:
+ case TIOCMBIC:
+ case TIOCMSET:
+ return set_modem_info(info, cmd, (unsigned int *) arg);
+ case TIOCGSERIAL:
+ verify_area((void *) arg,sizeof(struct serial_struct));
+ return get_serial_info(info,
+ (struct serial_struct *) arg);
+ case TIOCSSERIAL:
+ return set_serial_info(info,
+ (struct serial_struct *) arg);
+
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
+/*
+ * This routine is called whenever a serial port is opened. It
+ * enables interrupts for a serial port, linking in its interrupt into
+ * the ISR chain. It also performs the serial-speicific
+ * initalization for the tty structure.
+ */
+int rs_open(struct tty_struct *tty, struct file * filp)
+{
+ struct async_struct *info;
+ async_ISR ISR;
+ int irq, retval, line;
+ struct sigaction sa;
+
+ if (!tty)
+ return -ENODEV;
+ if (tty->count > 1)
+ return 0; /* We've already been initialized */
+ line = DEV_TO_SL(tty->line);
+ if ((line < 0) || (line >= NR_PORTS))
+ return -ENODEV;
+ info = rs_table + line;
+ if (!info->port)
+ return -ENODEV;
+ info->tty = tty;
+ tty->write = rs_write;
+ tty->close = rs_close;
+ tty->ioctl = rs_ioctl;
+ ISR = info->ISR;
+ irq = ISR->irq;
+ if (irq == 2)
+ irq = 9;
+ if (!IRQ_ISR[irq]) {
+ sa.sa_handler = rs_interrupt;
+ sa.sa_flags = (SA_INTERRUPT);
+ sa.sa_mask = 0;
+ sa.sa_restorer = NULL;
+ retval = irqaction(irq,&sa);
+ if (retval)
+ return retval;
+ }
+ if (!ISR->refcnt++) {
+ /*
+ * If this is the first time we're using this ISR,
+ * link it in.
+ */
+ ISR->prev_ISR = 0;
+ ISR->next_ISR = IRQ_ISR[irq];
+ if (ISR->next_ISR)
+ ISR->next_ISR->prev_ISR = ISR;
+ IRQ_ISR[irq] = ISR;
+ }
+ startup(info);
return 0;
}
long rs_init(long kmem_start)
{
int i;
- struct serial_struct * info;
-
-/* SERx_TIMER timers are used for receiving: timeout is always 0 (immediate) */
- timer_table[SER1_TIMER].fn = com1_timer;
- timer_table[SER1_TIMER].expires = 0;
- timer_table[SER2_TIMER].fn = com2_timer;
- timer_table[SER2_TIMER].expires = 0;
- timer_table[SER3_TIMER].fn = com3_timer;
- timer_table[SER3_TIMER].expires = 0;
- timer_table[SER4_TIMER].fn = com4_timer;
- timer_table[SER4_TIMER].expires = 0;
-/* SERx_TIMEOUT timers are used for writing: prevent serial lockups */
- timer_table[SER1_TIMEOUT].fn = com1_timeout;
- timer_table[SER1_TIMEOUT].expires = 0;
- timer_table[SER2_TIMEOUT].fn = com2_timeout;
- timer_table[SER2_TIMEOUT].expires = 0;
- timer_table[SER3_TIMEOUT].fn = com3_timeout;
- timer_table[SER3_TIMEOUT].expires = 0;
- timer_table[SER4_TIMEOUT].fn = com4_timeout;
- timer_table[SER4_TIMEOUT].expires = 0;
- for (i = 0, info = serial_table; i < NR_SERIALS; i++,info++) {
- info->tty = (tty_table+64) + i;
+ struct async_struct * info;
+
+ timer_table[RS_TIMER].fn = rs_timer;
+ timer_table[RS_TIMER].expires = 0;
+ for (i = 0; i < 16; i++) {
+ IRQ_ISR[i] = 0;
+ }
+ for (i = 0, info = rs_table; i < NR_PORTS; i++,info++) {
+ info->line = i;
+ info->tty = 0;
+ info->type = PORT_UNKNOWN;
+ info->timer = 0;
+ info->custom_divisor = 0;
+ if (!info->ISR->line) {
+ info->ISR->line = i;
+ info->ISR->refcnt = 0;
+ info->ISR->next_ISR = 0;
+ info->ISR->prev_ISR = 0;
+ }
init(info);
if (info->type == PORT_UNKNOWN)
continue;
- printk("serial port at 0x%04x (irq = %d)",info->port,info->irq);
+ printk("ttys%d%s at 0x%04x (irq = %d)", info->line,
+ (info->flags & ASYNC_FOURPORT) ? " FourPort" : "",
+ info->port, info->ISR->irq);
switch (info->type) {
case PORT_8250:
printk(" is a 8250\n");
return kmem_start;
}
-/*
- * This routine gets called when tty_write has put something into
- * the write_queue. It must check wheter the queue is empty, and
- * set the interrupt register accordingly
- *
- * void _rs_write(struct tty_struct * tty);
- */
-void rs_write(struct tty_struct * tty)
-{
- int line = tty - tty_table - 64;
-
- do_rs_write(serial_table+line);
-}
* or rs-channels. It also implements echoing, cooked mode etc.
*
* Kill-line thanks to John T Kohl, who also corrected VMIN = VTIME = 0.
+ *
+ * Modified by Theodore Ts'o, 9/14/92, to dynamically allocate the
+ * tty_struct and tty_queue structures. Previously there was a array
+ * of 256 tty_struct's which was statically allocated, and the
+ * tty_queue structures were allocated at boot time. Both are now
+ * dynamically allocated only when the tty is open.
+ *
+ * Also restructured routines so that there is more of a separation
+ * between the high-level tty routines (tty_io.c and tty_ioctl.c) and
+ * the low-level tty routines (serial.c, pty.c, console.c). This
+ * makes for cleaner and more compact code. -TYT, 9/17/92
*/
#include <linux/types.h>
#include <linux/tty.h>
#include <linux/ctype.h>
#include <linux/kd.h>
+#include <linux/mm.h>
+#include <linux/string.h>
#include <asm/io.h>
#include <asm/segment.h>
#include "vt_kern.h"
-#define QUEUES (3*(NR_CONSOLES+NR_SERIALS+2*NR_PTYS))
-static struct tty_queue * tty_queues;
-struct tty_struct tty_table[256];
-
-#define con_queues tty_queues
-#define rs_queues ((3*NR_CONSOLES) + tty_queues)
-#define mpty_queues ((3*(NR_CONSOLES+NR_SERIALS)) + tty_queues)
-#define spty_queues ((3*(NR_CONSOLES+NR_SERIALS+NR_PTYS)) + tty_queues)
-
-#define con_table tty_table
-#define rs_table (64+tty_table)
-#define mpty_table (128+tty_table)
-#define spty_table (192+tty_table)
+struct tty_struct *tty_table[256];
+struct termios *tty_termios[256]; /* We need to keep the termios state */
+ /* around, even when a tty is closed */
/*
* fg_console is the current virtual console,
*/
int fg_console = 0;
struct tty_struct * redirect = NULL;
+struct wait_queue * keypress_wait;
-/*
- * these are the tables used by the machine code handlers.
- * you can implement virtual consoles.
- */
-struct tty_queue * table_list[] = { NULL, NULL };
+int initialize_tty_struct(struct tty_struct *tty, int line);
void inline put_tty_queue(char c, struct tty_queue * queue)
{
void inline tty_write_flush(struct tty_struct * tty)
{
- if (EMPTY(tty->write_q))
+ if (!tty->write || EMPTY(&tty->write_q))
return;
if (set_bit(TTY_WRITE_BUSY,&tty->flags))
return;
void tty_read_flush(struct tty_struct * tty)
{
- if (EMPTY(tty->read_q))
+ if (EMPTY(&tty->read_q))
return;
if (set_bit(TTY_READ_BUSY, &tty->flags))
return;
return;
if (new_console == fg_console || new_console >= NR_CONSOLES)
return;
- table_list[0] = con_queues + 0 + new_console*3;
- table_list[1] = con_queues + 1 + new_console*3;
update_screen(new_console);
}
-static void sleep_if_empty(struct tty_queue * queue)
-{
- cli();
- while (!(current->signal & ~current->blocked) && EMPTY(queue))
- interruptible_sleep_on(&queue->proc_list);
- sti();
-}
-
void wait_for_keypress(void)
{
- sleep_if_empty(tty_table[fg_console].secondary);
- flush_input(&tty_table[fg_console]);
+ interruptible_sleep_on(&keypress_wait);
}
void copy_to_cooked(struct tty_struct * tty)
{
int c;
- if (!(tty && tty->write && tty->read_q &&
- tty->write_q && tty->secondary)) {
- printk("copy_to_cooked: missing queues\n\r");
+ if (!tty) {
+ printk("copy_to_cooked: called with NULL tty\n");
return;
}
+ if (!tty->write) {
+ printk("copy_to_cooked: tty %d has null write routine\n",
+ tty->line);
+ }
while (1) {
- if (FULL(tty->secondary))
+ /*
+ * Check to see how much room we have left in the
+ * secondary queue. Send a throttle command or abort
+ * if necessary.
+ */
+ c = LEFT(&tty->secondary);
+ if (tty->throttle && (c < SQ_THRESHOLD_LW)
+ && !set_bit(TTY_SQ_THROTTLED, &tty->flags))
+ tty->throttle(tty, TTY_THROTTLE_SQ_FULL);
+ if (c == 0)
break;
- c = get_tty_queue(tty->read_q);
+ c = get_tty_queue(&tty->read_q);
if (c < 0)
break;
if (I_STRP(tty))
if ((KILL_CHAR(tty) != __DISABLED_CHAR) &&
(c==KILL_CHAR(tty))) {
/* deal with killing the input line */
- while(!(EMPTY(tty->secondary) ||
- (c=LAST(tty->secondary))==10 ||
+ while(!(EMPTY(&tty->secondary) ||
+ (c=LAST(&tty->secondary))==10 ||
((EOF_CHAR(tty) != __DISABLED_CHAR) &&
(c==EOF_CHAR(tty))))) {
if (L_ECHO(tty)) {
if (c<32) {
- put_tty_queue(8,tty->write_q);
- put_tty_queue(' ',tty->write_q);
- put_tty_queue(8,tty->write_q);
+ put_tty_queue(8, &tty->write_q);
+ put_tty_queue(' ', &tty->write_q);
+ put_tty_queue(8,&tty->write_q);
}
- put_tty_queue(8,tty->write_q);
- put_tty_queue(' ',tty->write_q);
- put_tty_queue(8,tty->write_q);
+ put_tty_queue(8,&tty->write_q);
+ put_tty_queue(' ',&tty->write_q);
+ put_tty_queue(8,&tty->write_q);
}
- DEC(tty->secondary->head);
+ DEC(tty->secondary.head);
}
continue;
}
if ((ERASE_CHAR(tty) != __DISABLED_CHAR) &&
(c==ERASE_CHAR(tty))) {
- if (EMPTY(tty->secondary) ||
- (c=LAST(tty->secondary))==10 ||
+ if (EMPTY(&tty->secondary) ||
+ (c=LAST(&tty->secondary))==10 ||
((EOF_CHAR(tty) != __DISABLED_CHAR) &&
(c==EOF_CHAR(tty))))
continue;
if (L_ECHO(tty)) {
if (c<32) {
- put_tty_queue(8,tty->write_q);
- put_tty_queue(' ',tty->write_q);
- put_tty_queue(8,tty->write_q);
+ put_tty_queue(8,&tty->write_q);
+ put_tty_queue(' ',&tty->write_q);
+ put_tty_queue(8,&tty->write_q);
}
- put_tty_queue(8,tty->write_q);
- put_tty_queue(32,tty->write_q);
- put_tty_queue(8,tty->write_q);
+ put_tty_queue(8,&tty->write_q);
+ put_tty_queue(32,&tty->write_q);
+ put_tty_queue(8,&tty->write_q);
}
- DEC(tty->secondary->head);
+ DEC(tty->secondary.head);
continue;
}
}
}
if (c==10 || (EOF_CHAR(tty) != __DISABLED_CHAR &&
c==EOF_CHAR(tty)))
- tty->secondary->data++;
+ tty->secondary.data++;
if ((c==10) && (L_ECHO(tty) || (L_CANON(tty) && L_ECHONL(tty)))) {
- put_tty_queue(10,tty->write_q);
- put_tty_queue(13,tty->write_q);
+ put_tty_queue(10,&tty->write_q);
+ put_tty_queue(13,&tty->write_q);
} else if (L_ECHO(tty)) {
if (c<32 && L_ECHOCTL(tty)) {
- put_tty_queue('^',tty->write_q);
- put_tty_queue(c+64,tty->write_q);
+ put_tty_queue('^',&tty->write_q);
+ put_tty_queue(c+64, &tty->write_q);
} else
- put_tty_queue(c,tty->write_q);
+ put_tty_queue(c, &tty->write_q);
}
- put_tty_queue(c,tty->secondary);
+ put_tty_queue(c, &tty->secondary);
}
TTY_WRITE_FLUSH(tty);
- if (!EMPTY(tty->secondary))
- wake_up(&tty->secondary->proc_list);
- if (tty->write_q->proc_list && LEFT(tty->write_q) > TTY_BUF_SIZE/2)
- wake_up(&tty->write_q->proc_list);
+ if (!EMPTY(&tty->secondary))
+ wake_up(&tty->secondary.proc_list);
+ if (tty->write_q.proc_list && LEFT(&tty->write_q) > TTY_BUF_SIZE/2)
+ wake_up(&tty->write_q.proc_list);
+ if (tty->throttle && (LEFT(&tty->read_q) >= RQ_THRESHOLD_HW)
+ && !clear_bit(TTY_RQ_THROTTLED, &tty->flags))
+ tty->throttle(tty, TTY_THROTTLE_RQ_AVAIL);
+
}
int is_ignored(int sig)
(current->sigaction[sig-1].sa_handler == SIG_IGN));
}
-/*
- * Called when we need to send a SIGTTIN or SIGTTOU to our process
- * group
- *
- * We only request that a system call be restarted if there was if the
- * default signal handler is being used. The reason for this is that if
- * a job is catching SIGTTIN or SIGTTOU, the signal handler may not want
- * the system call to be restarted blindly. If there is no way to reset the
- * terminal pgrp back to the current pgrp (perhaps because the controlling
- * tty has been released on logout), we don't want to be in an infinite loop
- * while restarting the system call, and have it always generate a SIGTTIN
- * or SIGTTOU. The default signal handler will cause the process to stop
- * thus avoiding the infinite loop problem. Presumably the job-control
- * cognizant parent will fix things up before continuging its child process.
- */
-int tty_signal(int sig, struct tty_struct *tty)
-{
- (void) kill_pg(current->pgrp,sig,1);
- return -ERESTARTSYS;
-}
-
static void wait_for_canon_input(struct tty_struct * tty)
{
while (1) {
return;
if (current->signal & ~current->blocked)
return;
- if (FULL(tty->read_q))
+ if (FULL(&tty->read_q))
return;
- if (tty->secondary->data)
+ if (tty->secondary.data)
return;
cli();
- if (!tty->secondary->data)
- interruptible_sleep_on(&tty->secondary->proc_list);
+ if (!tty->secondary.data)
+ interruptible_sleep_on(&tty->secondary.proc_list);
sti();
}
}
if (channel > 255)
return -EIO;
tty = TTY_TABLE(channel);
- if (!(tty->read_q && tty->secondary))
+ if (!tty)
return -EIO;
if ((tty->pgrp > 0) &&
(current->tty == channel) &&
(tty->pgrp != current->pgrp))
if (is_ignored(SIGTTIN) || is_orphaned_pgrp(current->pgrp))
return -EIO;
- else
- return(tty_signal(SIGTTIN, tty));
+ else {
+ (void) kill_pg(current->pgrp, SIGTTIN, 1);
+ return -ERESTARTSYS;
+ }
if (L_CANON(tty))
minimum = time = current->timeout = 0;
else {
- time = 10L*tty->termios.c_cc[VTIME];
- minimum = tty->termios.c_cc[VMIN];
+ time = 10L*tty->termios->c_cc[VTIME];
+ minimum = tty->termios->c_cc[VMIN];
if (minimum)
current->timeout = 0xffffffff;
else {
TTY_READ_FLUSH(tty);
if (tty->link)
TTY_WRITE_FLUSH(tty->link);
- while (nr > 0 && ((c = get_tty_queue(tty->secondary)) >= 0)) {
+ while (nr > 0 && ((c = get_tty_queue(&tty->secondary)) >= 0)) {
if ((EOF_CHAR(tty) != __DISABLED_CHAR &&
c==EOF_CHAR(tty)) || c==10)
- tty->secondary->data--;
+ tty->secondary.data--;
if ((EOF_CHAR(tty) != __DISABLED_CHAR &&
c==EOF_CHAR(tty)) && L_CANON(tty))
break;
if (c==10 && L_CANON(tty))
break;
};
- wake_up(&tty->read_q->proc_list);
+ wake_up(&tty->read_q.proc_list);
if (b-buf >= minimum || !current->timeout)
break;
if (current->signal & ~current->blocked)
TTY_READ_FLUSH(tty);
if (tty->link)
TTY_WRITE_FLUSH(tty->link);
+ /*
+ * If there is enough space in the secondary queue
+ * now, let the low-level driver know.
+ */
+ if (tty->throttle && (LEFT(&tty->secondary) >= SQ_THRESHOLD_HW)
+ && !clear_bit(TTY_SQ_THROTTLED, &tty->flags))
+ tty->throttle(tty, TTY_THROTTLE_SQ_AVAIL);
cli();
- if (EMPTY(tty->secondary))
- interruptible_sleep_on(&tty->secondary->proc_list);
+ if (EMPTY(&tty->secondary))
+ interruptible_sleep_on(&tty->secondary.proc_list);
sti();
}
TTY_READ_FLUSH(tty);
if (channel > 255)
return -EIO;
- tty = TTY_TABLE(channel);
+ if (redirect && ((channel == 0) || (channel+1 == fg_console)))
+ tty = redirect;
+ else
+ tty = TTY_TABLE(channel);
+ if (!tty || !tty->write)
+ return -EIO;
if (L_TOSTOP(tty) && (tty->pgrp > 0) &&
(current->tty == channel) && (tty->pgrp != current->pgrp)) {
if (is_orphaned_pgrp(tty->pgrp))
return -EIO;
- if (!is_ignored(SIGTTOU))
- return tty_signal(SIGTTOU, tty);
+ if (!is_ignored(SIGTTOU)) {
+ (void) kill_pg(current->pgrp, SIGTTOU, 1);
+ return -ERESTARTSYS;
+ }
}
if (nr < 0)
return -EINVAL;
if (!nr)
return 0;
- if (redirect && tty == TTY_TABLE(0))
- tty = redirect;
- if (!(tty->write_q && tty->write))
- return -EIO;
while (nr>0) {
if (current->signal & ~current->blocked)
break;
send_sig(SIGPIPE,current,0);
break;
}
- if (FULL(tty->write_q)) {
+ if (FULL(&tty->write_q)) {
TTY_WRITE_FLUSH(tty);
cli();
- if (FULL(tty->write_q))
- interruptible_sleep_on(&tty->write_q->proc_list);
+ if (FULL(&tty->write_q))
+ interruptible_sleep_on(&tty->write_q.proc_list);
sti();
continue;
}
- while (nr>0 && !FULL(tty->write_q)) {
+ while (nr>0 && !FULL(&tty->write_q)) {
c=get_fs_byte(b);
if (O_POST(tty)) {
if (c=='\r' && O_CRNL(tty))
c='\r';
if (c=='\n' && O_NLCR(tty) &&
!set_bit(TTY_CR_PENDING,&tty->flags)) {
- put_tty_queue(13,tty->write_q);
+ put_tty_queue(13,&tty->write_q);
continue;
}
if (O_LCUC(tty))
}
b++; nr--;
clear_bit(TTY_CR_PENDING,&tty->flags);
- put_tty_queue(c,tty->write_q);
+ put_tty_queue(c,&tty->write_q);
}
if (nr>0)
schedule();
*/
static int tty_open(struct inode * inode, struct file * filp)
{
- struct tty_struct *tty;
+ struct tty_struct *tty, *o_tty;
int dev, retval;
dev = inode->i_rdev;
return -ENODEV;
filp->f_rdev = 0x0400 | dev;
tty = TTY_TABLE(dev);
- if (!tty->count && !(tty->link && tty->link->count)) {
- flush_input(tty);
- flush_output(tty);
- tty->stopped = 0;
+ if (!tty) {
+ tty = TTY_TABLE(dev) = (struct tty_struct *)
+ get_free_page(GFP_KERNEL);
+ if (!tty)
+ return -ENOMEM;
+ retval = initialize_tty_struct(tty, TTY_TABLE_IDX(dev));
+ if (retval) {
+ free_page((unsigned long)tty);
+ return retval;
+ }
+ if (IS_A_PTY(dev) && !tty_table[PTY_OTHER(dev)]) {
+ o_tty = tty_table[PTY_OTHER(dev)] =
+ (struct tty_struct *) get_free_page(GFP_USER);
+ if (!o_tty) {
+ free_page((unsigned long)tty);
+ return -ENOMEM;
+ }
+ retval = initialize_tty_struct(o_tty, PTY_OTHER(dev));
+ if (retval) {
+ free_page((unsigned long) tty);
+ free_page((unsigned long) o_tty);
+ return retval;
+ }
+ tty->link = o_tty;
+ o_tty->link = tty;
+ }
}
if (IS_A_PTY_MASTER(dev)) {
if (tty->count)
/* perhaps user applications that don't take care of
this deserve what the get, but I think my system
has hung do to this, esp. in X. -RAB */
- tty->termios.c_lflag &= ~ECHO;
+ tty->termios->c_lflag &= ~ECHO;
}
tty->count++;
retval = 0;
tty->session = current->session;
tty->pgrp = current->pgrp;
}
- if (IS_A_SERIAL(dev) && tty->count < 2)
- retval = serial_open(dev-64,filp);
- else if (IS_A_PTY(dev))
- retval = pty_open(dev,filp);
+ if (tty->open)
+ retval = tty->open(tty, filp);
+ else
+ retval = -ENODEV;
if (retval) {
tty->count--;
if (IS_A_PTY_MASTER(dev) && tty->link)
dev = filp->f_rdev;
if (MAJOR(dev) != 4) {
- printk("tty_close: tty pseudo-major != 4\n");
+ printk("tty_release: tty pseudo-major != 4\n");
return;
}
dev = MINOR(filp->f_rdev);
tty = TTY_TABLE(dev);
- if (IS_A_PTY_MASTER(dev) && tty->link)
- tty->link->count--;
- tty->count--;
+ if (!tty) {
+ printk("tty_release: TTY_TABLE(%d) was NULL\n", dev);
+ return;
+ }
+ if (IS_A_PTY_MASTER(dev) && tty->link) {
+ if (--tty->link->count < 0) {
+ printk("tty_release: bad tty slave count (dev = %d): %d\n",
+ dev, tty->count);
+ tty->link->count = 0;
+ }
+ }
+ if (--tty->count < 0) {
+ printk("tty_release: bad TTY_TABLE(%d)->count: %d\n",
+ dev, tty->count);
+ tty->count = 0;
+ }
if (tty->count)
return;
- if (IS_A_SERIAL(dev)) {
- wait_until_sent(tty);
- serial_close(dev-64,filp);
- } else if (IS_A_PTY(dev))
- pty_close(dev,filp);
+ if (tty->close)
+ tty->close(tty, filp);
if (!tty->count && (tty == redirect))
redirect = NULL;
if (tty = tty->link)
if (!tty->count && (tty == redirect))
redirect = NULL;
+ if (!tty->count && !(tty->link && tty->link->count)) {
+ if (tty->link) {
+ free_page((unsigned long) TTY_TABLE(PTY_OTHER(dev)));
+ TTY_TABLE(PTY_OTHER(dev)) = 0;
+ }
+ free_page((unsigned long) TTY_TABLE(dev));
+ TTY_TABLE(dev) = 0;
+ }
}
static int tty_select(struct inode * inode, struct file * filp, int sel_type, select_table * wait)
}
dev = MINOR(filp->f_rdev);
tty = TTY_TABLE(dev);
+ if (!tty) {
+ printk("tty_select: tty struct for dev %d was NULL\n", dev);
+ return 0;
+ }
switch (sel_type) {
case SEL_IN:
- if (!EMPTY(tty->secondary))
+ if (!EMPTY(&tty->secondary))
return 1;
if (tty->link && !tty->link->count)
return 1;
tty->link->status_changed)
return 1;
- select_wait(&tty->secondary->proc_list, wait);
+ select_wait(&tty->secondary.proc_list, wait);
return 0;
case SEL_OUT:
- if (!FULL(tty->write_q))
+ if (!FULL(&tty->write_q))
return 1;
- select_wait(&tty->write_q->proc_list, wait);
+ select_wait(&tty->write_q.proc_list, wait);
return 0;
case SEL_EX:
if (tty->link && !tty->link->count)
tty_release
};
+/*
+ * This subroutine initializes a tty structure. We have to set up
+ * things correctly for each different type of tty.
+ */
+int initialize_tty_struct(struct tty_struct *tty, int line)
+{
+ struct termios *tp;
+
+ memset(tty, 0, sizeof(struct tty_struct));
+ tty->line = line;
+ tty->pgrp = -1;
+ tty->winsize.ws_row = 24;
+ tty->winsize.ws_col = 80;
+ if (!tty_termios[line]) {
+ tp = tty_termios[line] = malloc(sizeof(struct termios));
+ if (!tp)
+ return -ENOMEM;
+ memset(tp, 0, sizeof(struct termios));
+ memcpy(tp->c_cc, INIT_C_CC, NCCS);
+ if (IS_A_CONSOLE(line)) {
+ tp->c_iflag = ICRNL;
+ tp->c_oflag = OPOST | ONLCR;
+ tp->c_cflag = B38400 | CS8;
+ tp->c_lflag = IXON | ISIG | ICANON | ECHO |
+ ECHOCTL | ECHOKE;
+ } else if IS_A_SERIAL(line) {
+ tp->c_cflag = B2400 | CS8;
+ } else if IS_A_PTY_MASTER(line) {
+ tp->c_cflag = B9600 | CS8;
+ } else if IS_A_PTY_SLAVE(line) {
+ tp->c_cflag = B9600 | CS8;
+ tp->c_lflag = IXON | ISIG | ICANON;
+ }
+ }
+ tty->termios = tty_termios[line];
+
+ if (IS_A_CONSOLE(line)) {
+ tty->open = con_open;
+ tty->winsize.ws_row = video_num_lines;
+ tty->winsize.ws_col = video_num_columns;
+ } else if IS_A_SERIAL(line) {
+ tty->open = rs_open;
+ } else if IS_A_PTY(line) {
+ tty->open = pty_open;
+ }
+ return 0;
+}
+
long tty_init(long kmem_start)
{
int i;
- tty_queues = (struct tty_queue *) kmem_start;
- kmem_start += QUEUES * (sizeof (struct tty_queue));
- table_list[0] = con_queues + 0;
- table_list[1] = con_queues + 1;
chrdev_fops[4] = &tty_fops;
chrdev_fops[5] = &tty_fops;
- for (i=0 ; i < QUEUES ; i++)
- tty_queues[i] = (struct tty_queue) {0,0,0,0,""};
+ keypress_wait = 0;
for (i=0 ; i<256 ; i++) {
- tty_table[i] = (struct tty_struct) {
- {0, 0, 0, 0, 0, INIT_C_CC},
- -1, 0, 0, 0, 0, 0, 0, 0, 0, {0,0,0,0},
- NULL, NULL, NULL, NULL, NULL
- };
+ tty_table[i] = 0;
+ tty_termios[i] = 0;
}
kmem_start = con_init(kmem_start);
- for (i = 0 ; i<NR_CONSOLES ; i++) {
- con_table[i] = (struct tty_struct) {
- {ICRNL, /* change incoming CR to NL */
- OPOST|ONLCR, /* change outgoing NL to CRNL */
- B38400 | CS8,
- IXON | ISIG | ICANON | ECHO | ECHOCTL | ECHOKE,
- 0, /* console termio */
- INIT_C_CC},
- -1, /* initial pgrp */
- 0, /* initial session */
- 0, /* initial stopped */
- 0, /* initial status_changed */
- 0, /* initial packet */
- 0, /* initial ctrl_status */
- 0, /* initial unused */
- 0, /* initial flags */
- 0, /* initial count */
- {video_num_lines,video_num_columns,0,0},
- con_write,
- NULL, /* other-tty */
- con_queues+0+i*3,con_queues+1+i*3,con_queues+2+i*3
- };
- }
- for (i = 0 ; i<NR_SERIALS ; i++) {
- rs_table[i] = (struct tty_struct) {
- {0, /* no translation */
- 0, /* no translation */
- B2400 | CS8,
- 0,
- 0,
- INIT_C_CC},
- -1,
- 0,
- 0, 0, 0, 0, 0,
- 0,
- 0,
- {24,80,0,0},
- rs_write,
- NULL, /* other-tty */
- rs_queues+0+i*3,rs_queues+1+i*3,rs_queues+2+i*3
- };
- }
- for (i = 0 ; i<NR_PTYS ; i++) {
- mpty_table[i] = (struct tty_struct) {
- {0, /* no translation */
- 0, /* no translation */
- B9600 | CS8,
- 0,
- 0,
- INIT_C_CC},
- -1,
- 0,
- 0, 0, 0, 0, 0,
- 0,
- 0,
- {24,80,0,0},
- mpty_write,
- spty_table+i,
- mpty_queues+0+i*3,mpty_queues+1+i*3,mpty_queues+2+i*3
- };
- spty_table[i] = (struct tty_struct) {
- {0, /* no translation */
- 0, /* no translation */
- B9600 | CS8,
- IXON | ISIG | ICANON,
- 0,
- INIT_C_CC},
- -1,
- 0,
- 0, 0, 0, 0, 0,
- 0,
- 0,
- {24,80,0,0},
- spty_write,
- mpty_table+i,
- spty_queues+0+i*3,spty_queues+1+i*3,spty_queues+2+i*3
- };
- }
kmem_start = rs_init(kmem_start);
printk("%d virtual consoles\n\r",NR_CONSOLES);
- printk("%d pty's\n\r",NR_PTYS);
return kmem_start;
}
extern int session_of_pgrp(int pgrp);
extern int do_screendump(int arg);
extern int kill_pg(int pgrp, int sig, int priv);
-extern int vt_ioctl(struct tty_struct *tty, int dev, int cmd, int arg);
static void flush(struct tty_queue * queue)
{
{
tty->status_changed = 1;
tty->ctrl_status |= TIOCPKT_FLUSHREAD;
- if (tty->read_q) {
- flush(tty->read_q);
- wake_up(&tty->read_q->proc_list);
- }
- if (tty->secondary) {
- flush(tty->secondary);
- tty->secondary->data = 0;
- }
- if ((tty = tty->link) && tty->write_q) {
- flush(tty->write_q);
- wake_up(&tty->write_q->proc_list);
+ flush(&tty->read_q);
+ wake_up(&tty->read_q.proc_list);
+ flush(&tty->secondary);
+ tty->secondary.data = 0;
+
+ if (tty = tty->link) {
+ flush(&tty->write_q);
+ wake_up(&tty->write_q.proc_list);
}
}
{
tty->status_changed = 1;
tty->ctrl_status |= TIOCPKT_FLUSHWRITE;
- if (tty->write_q) {
- flush(tty->write_q);
- wake_up(&tty->write_q->proc_list);
- }
+ flush(&tty->write_q);
+ wake_up(&tty->write_q.proc_list);
if (tty = tty->link) {
- if (tty->read_q) {
- flush(tty->read_q);
- wake_up(&tty->read_q->proc_list);
- }
- if (tty->secondary) {
- flush(tty->secondary);
- tty->secondary->data = 0;
- }
+ flush(&tty->read_q);
+ wake_up(&tty->read_q.proc_list);
+ flush(&tty->secondary);
+ tty->secondary.data = 0;
}
}
void wait_until_sent(struct tty_struct * tty)
{
- while (!(current->signal & ~current->blocked) && !EMPTY(tty->write_q)) {
+ while (!(current->signal & ~current->blocked) &&
+ !EMPTY(&tty->write_q)) {
TTY_WRITE_FLUSH(tty);
current->counter = 0;
cli();
- if (EMPTY(tty->write_q))
+ if (EMPTY(&tty->write_q))
break;
else
- interruptible_sleep_on(&tty->write_q->proc_list);
+ interruptible_sleep_on(&tty->write_q.proc_list);
sti();
}
sti();
verify_area(termios, sizeof (*termios));
for (i=0 ; i< (sizeof (*termios)) ; i++)
- put_fs_byte( ((char *)&tty->termios)[i] , i+(char *)termios );
+ put_fs_byte( ((char *)tty->termios)[i] , i+(char *)termios );
return 0;
}
int channel)
{
int i;
- unsigned short old_cflag = tty->termios.c_cflag;
+ unsigned short old_cflag = tty->termios->c_cflag;
/* If we try to set the state of terminal and we're not in the
foreground, send a SIGTTOU. If the signal is blocked or
(tty->pgrp != current->pgrp)) {
if (is_orphaned_pgrp(current->pgrp))
return -EIO;
- if (!is_ignored(SIGTTOU))
- return tty_signal(SIGTTOU, tty);
+ if (!is_ignored(SIGTTOU)) {
+ (void) kill_pg(current->pgrp,SIGTTOU,1);
+ return -ERESTARTSYS;
+ }
}
for (i=0 ; i< (sizeof (*termios)) ; i++)
- ((char *)&tty->termios)[i]=get_fs_byte(i+(char *)termios);
- if (IS_A_SERIAL(channel) && tty->termios.c_cflag != old_cflag)
+ ((char *)tty->termios)[i]=get_fs_byte(i+(char *)termios);
+ if (IS_A_SERIAL(channel) && tty->termios->c_cflag != old_cflag)
change_speed(channel-64);
/* puting mpty's into echo mode is very bad, and I think under
some situations can cause the kernel to do nothing but
copy characters back and forth. -RAB */
- if (IS_A_PTY_MASTER(channel)) tty->termios.c_lflag &= ~ECHO;
+ if (IS_A_PTY_MASTER(channel)) tty->termios->c_lflag &= ~ECHO;
return 0;
}
struct termio tmp_termio;
verify_area(termio, sizeof (*termio));
- tmp_termio.c_iflag = tty->termios.c_iflag;
- tmp_termio.c_oflag = tty->termios.c_oflag;
- tmp_termio.c_cflag = tty->termios.c_cflag;
- tmp_termio.c_lflag = tty->termios.c_lflag;
- tmp_termio.c_line = tty->termios.c_line;
+ tmp_termio.c_iflag = tty->termios->c_iflag;
+ tmp_termio.c_oflag = tty->termios->c_oflag;
+ tmp_termio.c_cflag = tty->termios->c_cflag;
+ tmp_termio.c_lflag = tty->termios->c_lflag;
+ tmp_termio.c_line = tty->termios->c_line;
for(i=0 ; i < NCC ; i++)
- tmp_termio.c_cc[i] = tty->termios.c_cc[i];
+ tmp_termio.c_cc[i] = tty->termios->c_cc[i];
for (i=0 ; i< (sizeof (*termio)) ; i++)
put_fs_byte( ((char *)&tmp_termio)[i] , i+(char *)termio );
return 0;
{
int i;
struct termio tmp_termio;
- unsigned short old_cflag = tty->termios.c_cflag;
+ unsigned short old_cflag = tty->termios->c_cflag;
if ((current->tty == channel) &&
(tty->pgrp > 0) &&
(tty->pgrp != current->pgrp)) {
if (is_orphaned_pgrp(current->pgrp))
return -EIO;
- if (!is_ignored(SIGTTOU))
- return tty_signal(SIGTTOU, tty);
+ if (!is_ignored(SIGTTOU)) {
+ (void) kill_pg(current->pgrp,SIGTTOU,1);
+ return -ERESTARTSYS;
+ }
}
for (i=0 ; i< (sizeof (*termio)) ; i++)
((char *)&tmp_termio)[i]=get_fs_byte(i+(char *)termio);
/* take care of the packet stuff. */
if ((tmp_termio.c_iflag & IXON) &&
- ~(tty->termios.c_iflag & IXON))
+ ~(tty->termios->c_iflag & IXON))
{
tty->status_changed = 1;
tty->ctrl_status |= TIOCPKT_DOSTOP;
}
if (~(tmp_termio.c_iflag & IXON) &&
- (tty->termios.c_iflag & IXON))
+ (tty->termios->c_iflag & IXON))
{
tty->status_changed = 1;
tty->ctrl_status |= TIOCPKT_NOSTOP;
}
- *(unsigned short *)&tty->termios.c_iflag = tmp_termio.c_iflag;
- *(unsigned short *)&tty->termios.c_oflag = tmp_termio.c_oflag;
- *(unsigned short *)&tty->termios.c_cflag = tmp_termio.c_cflag;
- *(unsigned short *)&tty->termios.c_lflag = tmp_termio.c_lflag;
- tty->termios.c_line = tmp_termio.c_line;
+ *(unsigned short *)&tty->termios->c_iflag = tmp_termio.c_iflag;
+ *(unsigned short *)&tty->termios->c_oflag = tmp_termio.c_oflag;
+ *(unsigned short *)&tty->termios->c_cflag = tmp_termio.c_cflag;
+ *(unsigned short *)&tty->termios->c_lflag = tmp_termio.c_lflag;
+ tty->termios->c_line = tmp_termio.c_line;
for(i=0 ; i < NCC ; i++)
- tty->termios.c_cc[i] = tmp_termio.c_cc[i];
- if (IS_A_SERIAL(channel) && tty->termios.c_cflag != old_cflag)
+ tty->termios->c_cc[i] = tmp_termio.c_cc[i];
+ if (IS_A_SERIAL(channel) && tty->termios->c_cflag != old_cflag)
change_speed(channel-64);
return 0;
}
return -EINVAL;
}
dev = MINOR(file->f_rdev);
- tty = tty_table + (dev ? ((dev < 64)? dev-1:dev) : fg_console);
+ tty = TTY_TABLE(dev);
+ if (!tty)
+ return -EINVAL;
if (IS_A_PTY(dev))
- other_tty = tty_table + PTY_OTHER(dev);
+ other_tty = tty_table[PTY_OTHER(dev)];
else
other_tty = NULL;
- if (!(tty->write_q && tty->read_q && tty->secondary && tty->write))
- return -EINVAL;
switch (cmd) {
case TCGETS:
return get_termios(tty,(struct termios *) arg);
wait_until_sent(tty); /* fallthrough */
case TCSETA:
return set_termio(tty,(struct termio *) arg, dev);
- case TCSBRK:
- if (!IS_A_SERIAL(dev))
- return -EINVAL;
- wait_until_sent(tty);
- if (!arg)
- send_break(dev-64);
- return 0;
case TCXONC:
switch (arg) {
case TCOOFF:
return 0;
case TCIOFF:
if (STOP_CHAR(tty))
- put_tty_queue(STOP_CHAR(tty),tty->write_q);
+ put_tty_queue(STOP_CHAR(tty),
+ &tty->write_q);
return 0;
case TCION:
if (START_CHAR(tty))
- put_tty_queue(START_CHAR(tty),tty->write_q);
+ put_tty_queue(START_CHAR(tty),
+ &tty->write_q);
return 0;
}
return -EINVAL; /* not implemented */
return 0;
case TIOCOUTQ:
verify_area((void *) arg,4);
- put_fs_long(CHARS(tty->write_q),(unsigned long *) arg);
+ put_fs_long(CHARS(&tty->write_q),
+ (unsigned long *) arg);
return 0;
case TIOCINQ:
verify_area((void *) arg,4);
- if (L_CANON(tty) && !tty->secondary->data)
+ if (L_CANON(tty) && !tty->secondary.data)
put_fs_long(0, (unsigned long *) arg);
else
- put_fs_long(CHARS(tty->secondary),
+ put_fs_long(CHARS(&tty->secondary),
(unsigned long *) arg);
return 0;
case TIOCSTI:
if (IS_A_PTY_MASTER(dev))
set_window_size(other_tty,(struct winsize *) arg);
return set_window_size(tty,(struct winsize *) arg);
- case TIOCMGET:
- if (!IS_A_SERIAL(dev))
- return -EINVAL;
- verify_area((void *) arg,sizeof(unsigned int *));
- return get_modem_info(dev-64,(unsigned int *) arg);
- case TIOCMBIS:
- case TIOCMBIC:
- case TIOCMSET:
- if (!IS_A_SERIAL(dev))
- return -EINVAL;
- return set_modem_info(dev-64,cmd,(unsigned int *) arg);
case TIOCGSOFTCAR:
return -EINVAL; /* not implemented */
case TIOCSSOFTCAR:
else
redirect = tty;
return 0;
- case TIOCGSERIAL:
- if (!IS_A_SERIAL(dev))
- return -EINVAL;
- verify_area((void *) arg,sizeof(struct serial_struct));
- return get_serial_info(dev-64,(struct serial_struct *) arg);
- case TIOCSSERIAL:
- if (!IS_A_SERIAL(dev))
- return -EINVAL;
- return set_serial_info(dev-64,(struct serial_struct *) arg);
case FIONBIO:
if (arg)
file->f_flags |= O_NONBLOCK;
}
default:
- return vt_ioctl(tty, dev, cmd, arg);
+ if (tty->ioctl)
+ return (tty->ioctl)(tty, file, cmd, arg);
+ else
+ return -EINVAL;
}
}
}
/*
- * all the vt ioctls affect only consoles, so we reject all other ttys.
- * we also have the capability to modify any console, not just the fg_console.
+ * We handle the console-specific ioctl's here. We allow the
+ * capability to modify any console, not just the fg_console.
*/
-int
-vt_ioctl(struct tty_struct *tty, int dev, int cmd, int arg)
+int vt_ioctl(struct tty_struct *tty, struct file * file,
+ unsigned int cmd, unsigned int arg)
{
- int console = dev ? dev - 1 : fg_console;
+ int console;
unsigned char ucval;
- if (!IS_A_CONSOLE(dev) || console < 0 || console >= NR_CONSOLES)
+ console = tty->line - 1;
+
+ if (console < 0 || console >= NR_CONSOLES)
return -EINVAL;
switch (cmd) {
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-add.o : add.c /usr/src/linux/include/linux/math_emu.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-compare.o : compare.c /usr/src/linux/include/linux/math_emu.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-convert.o : convert.c /usr/src/linux/include/linux/math_emu.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-div.o : div.c /usr/src/linux/include/linux/math_emu.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-ea.o : ea.c /usr/src/linux/include/linux/stddef.h /usr/src/linux/include/linux/math_emu.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/asm/segment.h
-emulate.o : emulate.c /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-get_put.o : get_put.c /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/math_emu.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/asm/segment.h
-mul.o : mul.c /usr/src/linux/include/linux/math_emu.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
-sqrt.o : sqrt.c /usr/src/linux/include/linux/math_emu.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h
+add.o : add.c /usr/include/linux/math_emu.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h
+compare.o : compare.c /usr/include/linux/math_emu.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h
+convert.o : convert.c /usr/include/linux/math_emu.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h
+div.o : div.c /usr/include/linux/math_emu.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h
+ea.o : ea.c /usr/include/linux/stddef.h /usr/include/linux/math_emu.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/signal.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/asm/segment.h
+emulate.o : emulate.c /usr/include/linux/signal.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h
+get_put.o : get_put.c /usr/include/linux/signal.h /usr/include/linux/math_emu.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/linux/mm.h /usr/include/linux/kernel.h /usr/include/linux/time.h \
+ /usr/include/linux/param.h /usr/include/linux/resource.h /usr/include/linux/vm86.h \
+ /usr/include/asm/segment.h
+mul.o : mul.c /usr/include/linux/math_emu.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h
+sqrt.o : sqrt.c /usr/include/linux/math_emu.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-_exit.o : _exit.c /usr/src/linux/include/linux/unistd.h
-close.o : close.c /usr/src/linux/include/linux/unistd.h
-ctype.o : ctype.c /usr/src/linux/include/linux/ctype.h
-dup.o : dup.c /usr/src/linux/include/linux/unistd.h
+_exit.o : _exit.c /usr/include/linux/unistd.h
+close.o : close.c /usr/include/linux/unistd.h
+ctype.o : ctype.c /usr/include/linux/ctype.h
+dup.o : dup.c /usr/include/linux/unistd.h
errno.o : errno.c
-execve.o : execve.c /usr/src/linux/include/linux/unistd.h
-malloc.o : malloc.c /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/mm.h \
- /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h \
- /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h \
- /usr/src/linux/include/linux/minix_fs_sb.h /usr/src/linux/include/linux/ext_fs_sb.h \
- /usr/src/linux/include/linux/msdos_fs_sb.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/asm/system.h
-open.o : open.c /usr/src/linux/include/linux/unistd.h /usr/src/linux/include/stdarg.h
-setsid.o : setsid.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/unistd.h
-string.o : string.c /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/string.h
-wait.o : wait.c /usr/src/linux/include/linux/unistd.h /usr/src/linux/include/linux/types.h
-write.o : write.c /usr/src/linux/include/linux/unistd.h /usr/src/linux/include/linux/types.h
+execve.o : execve.c /usr/include/linux/unistd.h
+malloc.o : malloc.c /usr/include/linux/kernel.h /usr/include/linux/mm.h /usr/include/linux/fs.h \
+ /usr/include/linux/limits.h /usr/include/linux/wait.h /usr/include/linux/types.h \
+ /usr/include/linux/dirent.h /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h \
+ /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h \
+ /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h \
+ /usr/include/asm/system.h
+open.o : open.c /usr/include/linux/unistd.h /usr/lib/gcc-lib/i386-linux/2.2.2d/include/stdarg.h
+setsid.o : setsid.c /usr/include/linux/types.h /usr/include/linux/unistd.h
+string.o : string.c /usr/include/linux/types.h /usr/include/linux/string.h
+wait.o : wait.c /usr/include/linux/unistd.h /usr/include/linux/types.h
+write.o : write.c /usr/include/linux/unistd.h /usr/include/linux/types.h
/*
* malloc.c --- a general purpose kernel memory allocator for Linux.
- *
+ *
* Written by Theodore Ts'o (tytso@mit.edu), 11/29/91
*
* This routine is written to be as fast as possible, so that it
* called, it looks for the smallest bucket size which will fulfill its
* request, and allocate a piece of memory from that bucket pool.
*
- * Each bucket has as its control block a bucket descriptor which keeps
+ * Each bucket has as its control block a bucket descriptor which keeps
* track of how many objects are in use on that page, and the free list
* for that page. Like the buckets themselves, bucket descriptors are
* stored on pages requested from get_free_page(). However, unlike buckets,
* pages devoted to bucket descriptor pages are never released back to the
* system. Fortunately, a system should probably only need 1 or 2 bucket
* descriptor pages, since a page can hold 256 bucket descriptors (which
- * corresponds to 1 megabyte worth of bucket pages.) If the kernel is using
+ * corresponds to 1 megabyte worth of bucket pages.) If the kernel is using
* that much allocated memory, it's probably doing something wrong. :-)
*
* Note: malloc() and free() both call get_free_page() and free_page()
* "pre-allocated" so that it can safely draw upon those pages if
* it is called from an interrupt routine.
*
- * Another concern is that get_free_page() should not sleep; if it
- * does, the code is carefully ordered so as to avoid any race
- * conditions. The catch is that if malloc() is called re-entrantly,
- * there is a chance that unecessary pages will be grabbed from the
- * system. Except for the pages for the bucket descriptor page, the
+ * Another concern is that get_free_page() should not sleep; if it
+ * does, the code is carefully ordered so as to avoid any race
+ * conditions. The catch is that if malloc() is called re-entrantly,
+ * there is a chance that unecessary pages will be grabbed from the
+ * system. Except for the pages for the bucket descriptor page, the
* extra pages will eventually get released back to the system, though,
* so it isn't all that bad.
*/
/*
* The following is the where we store a pointer to the first bucket
- * descriptor for a given size.
+ * descriptor for a given size.
*
* If it turns out that the Linux kernel allocates a lot of objects of a
* specific size, then we may want to add that specific size to this list,
dep:
sed '/\#\#\# Dependencies/q' < Makefile > tmp_make
- for i in *.c;do $(CPP) -M $$i;done >> tmp_make
+ $(CPP) -M *.c >> tmp_make
cp tmp_make Makefile
### Dependencies:
-memory.o : memory.c /usr/src/linux/include/asm/system.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/string.h
-mmap.o : mmap.c /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/time.h /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/segment.h /usr/src/linux/include/asm/system.h \
- /usr/src/linux/include/sys/mman.h
-swap.o : swap.c /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/signal.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/stat.h
+memory.o : memory.c /usr/include/asm/system.h /usr/include/linux/signal.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/string.h
+mmap.o : mmap.c /usr/include/linux/stat.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/signal.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/errno.h \
+ /usr/include/linux/mman.h /usr/include/asm/segment.h /usr/include/asm/system.h
+swap.o : swap.c /usr/include/linux/mm.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/kernel.h \
+ /usr/include/linux/sched.h /usr/include/linux/head.h /usr/include/linux/signal.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/errno.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/asm/system.h
dummy:
### Dependencies:
-socket.o : socket.c /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/errno.h \
- /usr/src/linux/include/linux/sched.h /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h \
- /usr/src/linux/include/linux/limits.h /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h \
- /usr/src/linux/include/linux/dirent.h /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/stat.h /usr/src/linux/include/linux/socket.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/segment.h \
- kern_sock.h socketcall.h
-unix.o : unix.c /usr/src/linux/include/linux/signal.h /usr/src/linux/include/linux/sched.h \
- /usr/src/linux/include/linux/head.h /usr/src/linux/include/linux/fs.h /usr/src/linux/include/linux/limits.h \
- /usr/src/linux/include/linux/wait.h /usr/src/linux/include/linux/types.h /usr/src/linux/include/linux/dirent.h \
- /usr/src/linux/include/linux/vfs.h /usr/src/linux/include/linux/minix_fs_sb.h \
- /usr/src/linux/include/linux/ext_fs_sb.h /usr/src/linux/include/linux/msdos_fs_sb.h \
- /usr/src/linux/include/linux/mm.h /usr/src/linux/include/linux/kernel.h /usr/src/linux/include/linux/time.h \
- /usr/src/linux/include/linux/param.h /usr/src/linux/include/linux/resource.h \
- /usr/src/linux/include/linux/errno.h /usr/src/linux/include/linux/string.h /usr/src/linux/include/linux/stat.h \
- /usr/src/linux/include/linux/socket.h /usr/src/linux/include/linux/un.h /usr/src/linux/include/linux/fcntl.h \
- /usr/src/linux/include/linux/termios.h /usr/src/linux/include/asm/system.h /usr/src/linux/include/asm/segment.h \
- kern_sock.h
+socket.o : socket.c /usr/include/linux/signal.h /usr/include/linux/errno.h /usr/include/linux/sched.h \
+ /usr/include/linux/head.h /usr/include/linux/fs.h /usr/include/linux/limits.h \
+ /usr/include/linux/wait.h /usr/include/linux/types.h /usr/include/linux/dirent.h \
+ /usr/include/linux/vfs.h /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h \
+ /usr/include/linux/ext_fs_i.h /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h \
+ /usr/include/linux/ext_fs_sb.h /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h \
+ /usr/include/linux/kernel.h /usr/include/linux/time.h /usr/include/linux/param.h \
+ /usr/include/linux/resource.h /usr/include/linux/vm86.h /usr/include/linux/stat.h \
+ /usr/include/linux/socket.h /usr/include/linux/fcntl.h /usr/include/linux/termios.h \
+ /usr/include/asm/system.h /usr/include/asm/segment.h kern_sock.h socketcall.h
+unix.o : unix.c /usr/include/linux/signal.h /usr/include/linux/sched.h /usr/include/linux/head.h \
+ /usr/include/linux/fs.h /usr/include/linux/limits.h /usr/include/linux/wait.h \
+ /usr/include/linux/types.h /usr/include/linux/dirent.h /usr/include/linux/vfs.h \
+ /usr/include/linux/pipe_fs_i.h /usr/include/linux/minix_fs_i.h /usr/include/linux/ext_fs_i.h \
+ /usr/include/linux/msdos_fs_i.h /usr/include/linux/minix_fs_sb.h /usr/include/linux/ext_fs_sb.h \
+ /usr/include/linux/msdos_fs_sb.h /usr/include/linux/mm.h /usr/include/linux/kernel.h \
+ /usr/include/linux/time.h /usr/include/linux/param.h /usr/include/linux/resource.h \
+ /usr/include/linux/vm86.h /usr/include/linux/errno.h /usr/include/linux/string.h \
+ /usr/include/linux/stat.h /usr/include/linux/socket.h /usr/include/linux/un.h \
+ /usr/include/linux/fcntl.h /usr/include/linux/termios.h /usr/include/asm/system.h \
+ /usr/include/asm/segment.h kern_sock.h
-#define UTS_RELEASE "0.97.pl3-34"
-#define UTS_VERSION "09/05/92"
-#define LINUX_COMPILE_TIME "17:58:09"
+#define UTS_RELEASE "0.97.pl5-15"
+#define UTS_VERSION "09/19/92"
+#define LINUX_COMPILE_TIME "13:29:53"
#define LINUX_COMPILE_BY "root"
#define LINUX_COMPILE_HOST "home"