This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: c/2788


The following reply was made to PR c/2788; it has been noted by GNATS.

From: =?iso-8859-1?Q?Martin_Br=FClisauer?= <martin@bruli.net>
To: <neil@gcc.gnu.org>
Cc: <gcc-gnats@gcc.gnu.org>
Subject: Re: c/2788
Date: Thu, 10 May 2001 14:39:56 +0200

 This is a multi-part message in MIME format.
 
 ------=_NextPart_000_0004_01C0D95F.14D46C00
 Content-Type: text/plain;
 	charset="iso-8859-1"
 Content-Transfer-Encoding: 8bit
 
 
 
 > -----Ursprüngliche Nachricht-----
 > Von: neil@gcc.gnu.org [mailto:neil@gcc.gnu.org]
 > Gesendet: Mittwoch, 9. Mai 2001 13:44
 > An: gcc-gnats@gcc.gnu.org; martin@bruli.net; nobody@gcc.gnu.org
 > Betreff: Re: c/2788
 >
 >
 > Synopsis: Can't compile linux-2.4.2 kernel on alpha ev5
 >
 > State-Changed-From-To: open->feedback
 > State-Changed-By: neil
 > State-Changed-When: Wed May  9 04:44:00 2001
 > State-Changed-Why:
 >     Please provide preprocessed source if you want someone to
 > look at it.  See http://gcc.gnu.org/bugs.html
 >     [Don't send it to me: reply so that the subject
 >     remains unchanged, and cc gcc-gnats@gcc.gnu.org]
 >
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2788&database=gcc
 >
 
 ------=_NextPart_000_0004_01C0D95F.14D46C00
 Content-Type: application/octet-stream;
 	name="core_cia.i"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment;
 	filename="core_cia.i"
 
 # 1 "core_cia.c"
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/kernel.h" 1
 
 
 
 =20
 
 
 
 
 
 # 1 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" =
 1 3
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 =
 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/va-alpha.h" 1 =
 3
 =20
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 typedef struct {
   char *__base;			=20
   int __offset;			=20
 } __gnuc_va_list;
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 typedef __gnuc_va_list va_list;
 
 # 49 =
 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/va-alpha.h" 3
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 enum {
   __no_type_class =3D -1,
   __void_type_class,
   __integer_type_class,
   __char_type_class,
   __enumeral_type_class,
   __boolean_type_class,
   __pointer_type_class,
   __reference_type_class,
   __offset_type_class,
   __real_type_class,
   __complex_type_class,
   __function_type_class,
   __method_type_class,
   __record_type_class,
   __union_type_class,
   __array_type_class,
   __string_type_class,
   __set_type_class,
   __file_type_class,
   __lang_type_class
 };
 
 =20
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 # 36 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" =
 2 3
 
 # 133 =
 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 3
 
 
 
 
 
 
 
 
 
 
 =20
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 175 =
 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 3
 
 
 =20
 
 
 
 # 205 =
 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 3
 
 
 
 
 
 
 
 
 # 10 "/usr/src/linux-2.4.2/include/linux/kernel.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/linkage.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/config.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/autoconf.h" 1
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/config.h" 2
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/linkage.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 61 "/usr/src/linux-2.4.2/include/linux/linkage.h"
 
 
 
 # 11 "/usr/src/linux-2.4.2/include/linux/kernel.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/stddef.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 12 "/usr/src/linux-2.4.2/include/linux/kernel.h" 2
 
 
 =20
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct semaphore;
 
 extern struct notifier_block *panic_notifier_list;
   void panic(const char * fmt, ...)
 	__attribute__ ((noreturn,  format (printf, 1, 2)));
   void do_exit(long error_code)
 	__attribute__((noreturn)) ;
   void up_and_exit(struct semaphore *, long)
 	__attribute__((noreturn)) ;
 extern unsigned long simple_strtoul(const char *,char **,unsigned int);
 extern long simple_strtol(const char *,char **,unsigned int);
 extern unsigned long long simple_strtoull(const char *,char **,unsigned =
 int);
 extern long long simple_strtoll(const char *,char **,unsigned int);
 extern int sprintf(char * buf, const char * fmt, ...);
 extern int vsprintf(char *buf, const char *, va_list);
 extern int get_option(char **str, int *pint);
 extern char *get_options(char *str, int nints, int *ints);
 extern unsigned long memparse(char *ptr, char **retptr);
 extern void dev_probe_lock(void);
 extern void dev_probe_unlock(void);
 
 extern int session_of_pgrp(int pgrp);
 
    int printk(const char * fmt, ...)
 	__attribute__ ((format (printf, 1, 2)));
 
 extern int console_loglevel;
 
 static inline void console_silent(void)
 {
 	console_loglevel =3D 0;
 }
 
 static inline void console_verbose(void)
 {
 	if (console_loglevel)
 		console_loglevel =3D 15;
 }
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct sysinfo {
 	long uptime;			=20
 	unsigned long loads[3];		=20
 	unsigned long totalram;		=20
 	unsigned long freeram;		=20
 	unsigned long sharedram;	=20
 	unsigned long bufferram;	=20
 	unsigned long totalswap;	=20
 	unsigned long freeswap;		=20
 	unsigned short procs;		=20
 	unsigned long totalhigh;	=20
 	unsigned long freehigh;		=20
 	unsigned int mem_unit;		=20
 	char _f[20-2*sizeof(long)-sizeof(int)];	=20
 };
 
 
 # 14 "core_cia.c" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/types.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/posix_types.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 typedef struct {
 	unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)) ) ];
 } __kernel_fd_set;
 
 =20
 typedef void (*__kernel_sighandler_t)(int);
 
 =20
 typedef int __kernel_key_t;
 
 # 1 "/usr/src/linux-2.4.2/include/asm/posix_types.h" 1
 
 
 
 =20
 
 
 
 
 
 typedef unsigned int	__kernel_dev_t;
 typedef unsigned int	__kernel_ino_t;
 typedef unsigned int	__kernel_mode_t;
 typedef unsigned int	__kernel_nlink_t;
 typedef long		__kernel_off_t;
 typedef long		__kernel_loff_t;
 typedef int		__kernel_pid_t;
 typedef int		__kernel_ipc_pid_t;
 typedef unsigned int	__kernel_uid_t;
 typedef unsigned int	__kernel_gid_t;
 typedef unsigned long	__kernel_size_t;
 typedef long		__kernel_ssize_t;
 typedef long		__kernel_ptrdiff_t;
 typedef long		__kernel_time_t;
 typedef long		__kernel_suseconds_t;
 typedef long		__kernel_clock_t;
 typedef int		__kernel_daddr_t;
 typedef char *		__kernel_caddr_t;
 typedef unsigned long	__kernel_sigset_t;	=20
 typedef unsigned short	__kernel_uid16_t;
 typedef unsigned short	__kernel_gid16_t;
 
 typedef struct {
 	int	val[2];
 } __kernel_fsid_t;
 
 typedef __kernel_uid_t __kernel_old_uid_t;
 typedef __kernel_gid_t __kernel_old_gid_t;
 typedef __kernel_uid_t __kernel_uid32_t;
 typedef __kernel_gid_t __kernel_gid32_t;
 
 
 
 # 51 "/usr/src/linux-2.4.2/include/asm/posix_types.h"
 
 
 =20
 
 
 static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set =
 *fdsetp)
 {
 	unsigned long _tmp =3D fd / (8 * sizeof(unsigned long)) ;
 	unsigned long _rem =3D fd % (8 * sizeof(unsigned long)) ;
 	fdsetp->fds_bits[_tmp] |=3D (1UL<<_rem);
 }
 
 
 static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set =
 *fdsetp)
 {
 	unsigned long _tmp =3D fd / (8 * sizeof(unsigned long)) ;
 	unsigned long _rem =3D fd % (8 * sizeof(unsigned long)) ;
 	fdsetp->fds_bits[_tmp] &=3D ~(1UL<<_rem);
 }
 
 
 static __inline__ int __FD_ISSET(unsigned long fd, const __kernel_fd_set =
 *p)
 {=20
 	unsigned long _tmp =3D fd / (8 * sizeof(unsigned long)) ;
 	unsigned long _rem =3D fd % (8 * sizeof(unsigned long)) ;
 	return (p->fds_bits[_tmp] & (1UL<<_rem)) !=3D 0;
 }
 
 =20
 
 
 
 
 static __inline__ void __FD_ZERO(__kernel_fd_set *p)
 {
 	unsigned long *tmp =3D p->fds_bits;
 	int i;
 
 	if (__builtin_constant_p((1024 / (8 * sizeof(unsigned long)) ) )) {
 		switch ((1024 / (8 * sizeof(unsigned long)) ) ) {
 		      case 16:
 			tmp[ 0] =3D 0; tmp[ 1] =3D 0; tmp[ 2] =3D 0; tmp[ 3] =3D 0;
 			tmp[ 4] =3D 0; tmp[ 5] =3D 0; tmp[ 6] =3D 0; tmp[ 7] =3D 0;
 			tmp[ 8] =3D 0; tmp[ 9] =3D 0; tmp[10] =3D 0; tmp[11] =3D 0;
 			tmp[12] =3D 0; tmp[13] =3D 0; tmp[14] =3D 0; tmp[15] =3D 0;
 			return;
 
 		      case 8:
 			tmp[ 0] =3D 0; tmp[ 1] =3D 0; tmp[ 2] =3D 0; tmp[ 3] =3D 0;
 			tmp[ 4] =3D 0; tmp[ 5] =3D 0; tmp[ 6] =3D 0; tmp[ 7] =3D 0;
 			return;
 
 		      case 4:
 			tmp[ 0] =3D 0; tmp[ 1] =3D 0; tmp[ 2] =3D 0; tmp[ 3] =3D 0;
 			return;
 		}
 	}
 	i =3D (1024 / (8 * sizeof(unsigned long)) ) ;
 	while (i) {
 		i--;
 		*tmp =3D 0;
 		tmp++;
 	}
 }
 
 
 
 
 
 
 # 46 "/usr/src/linux-2.4.2/include/linux/posix_types.h" 2
 
 
 
 # 8 "/usr/src/linux-2.4.2/include/linux/types.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/types.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 typedef unsigned int umode_t;
 
 =20
 
 
 
 
 typedef __signed__ char __s8;
 typedef unsigned char __u8;
 
 typedef __signed__ short __s16;
 typedef unsigned short __u16;
 
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
 typedef __signed__ long __s64;
 typedef unsigned long __u64;
 
 =20
 
 
 
 
 typedef signed char s8;
 typedef unsigned char u8;
 
 typedef signed short s16;
 typedef unsigned short u16;
 
 typedef signed int s32;
 typedef unsigned int u32;
 
 typedef signed long s64;
 typedef unsigned long u64;
 
 
 
 =20
 
 
 typedef u32 dma_addr_t;
 
 
 
 # 9 "/usr/src/linux-2.4.2/include/linux/types.h" 2
 
 
 
 
 typedef __kernel_fd_set		fd_set;
 typedef __kernel_dev_t		dev_t;
 typedef __kernel_ino_t		ino_t;
 typedef __kernel_mode_t		mode_t;
 typedef __kernel_nlink_t	nlink_t;
 typedef __kernel_off_t		off_t;
 typedef __kernel_pid_t		pid_t;
 typedef __kernel_daddr_t	daddr_t;
 typedef __kernel_key_t		key_t;
 typedef __kernel_suseconds_t	suseconds_t;
 
 
 typedef __kernel_uid32_t	uid_t;
 typedef __kernel_gid32_t	gid_t;
 typedef __kernel_uid16_t        uid16_t;
 typedef __kernel_gid16_t        gid16_t;
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 typedef __kernel_loff_t		loff_t;
 
 
 =20
 
 
 
 
 
 typedef __kernel_size_t		size_t;
 
 
 
 
 typedef __kernel_ssize_t	ssize_t;
 
 
 
 
 typedef __kernel_ptrdiff_t	ptrdiff_t;
 
 
 
 
 typedef __kernel_time_t		time_t;
 
 
 
 
 typedef __kernel_clock_t	clock_t;
 
 
 
 
 typedef __kernel_caddr_t	caddr_t;
 
 
 =20
 typedef unsigned char		u_char;
 typedef unsigned short		u_short;
 typedef unsigned int		u_int;
 typedef unsigned long		u_long;
 
 =20
 typedef unsigned char		unchar;
 typedef unsigned short		ushort;
 typedef unsigned int		uint;
 typedef unsigned long		ulong;
 
 
 
 
 typedef		__u8		u_int8_t;
 typedef		__s8		int8_t;
 typedef		__u16		u_int16_t;
 typedef		__s16		int16_t;
 typedef		__u32		u_int32_t;
 typedef		__s32		int32_t;
 
 
 
 typedef		__u8		uint8_t;
 typedef		__u16		uint16_t;
 typedef		__u32		uint32_t;
 
 
 typedef		__u64		uint64_t;
 typedef		__u64		u_int64_t;
 typedef		__s64		int64_t;
 
 
 
 
 =20
 
 
 
 
 struct ustat {
 	__kernel_daddr_t	f_tfree;
 	__kernel_ino_t		f_tinode;
 	char			f_fname[6];
 	char			f_fpack[6];
 };
 
 
 # 15 "core_cia.c" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/pci.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 # 1 "/usr/src/linux-2.4.2/include/linux/pci_ids.h" 1
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
  =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 268 "/usr/src/linux-2.4.2/include/linux/pci.h" 2
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ioport.h" 1
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 struct resource {
 	const char *name;
 	unsigned long start, end;
 	unsigned long flags;
 	struct resource *parent, *sibling, *child;
 };
 
 struct resource_list {
 	struct resource_list *next;
 	struct resource *res;
 	struct pci_dev *dev;
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 extern struct resource ioport_resource;
 extern struct resource iomem_resource;
 
 extern int get_resource_list(struct resource *, char *buf, int size);
 
 extern int check_resource(struct resource *root, unsigned long, unsigned =
 long);
 extern int request_resource(struct resource *root, struct resource =
 *new);
 extern int release_resource(struct resource *new);
 extern int allocate_resource(struct resource *root, struct resource =
 *new,
 			     unsigned long size,
 			     unsigned long min, unsigned long max,
 			     unsigned long align,
 			     void (*alignf)(void *, struct resource *, unsigned long),
 			     void *alignf_data);
 
 =20
 
 
 
 extern struct resource * __request_region(struct resource *, unsigned =
 long start, unsigned long n, const char *name);
 
 =20
 
 
 
 
 
 extern int __check_region(struct resource *, unsigned long, unsigned =
 long);
 extern void __release_region(struct resource *, unsigned long, unsigned =
 long);
 
 
 
 
 
 extern void autoirq_setup(int waittime);
 extern int autoirq_report(int waittime);
 
 
 # 286 "/usr/src/linux-2.4.2/include/linux/pci.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/list.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 struct list_head {
 	struct list_head *next, *prev;
 };
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 static __inline__ void __list_add(struct list_head * new,
 	struct list_head * prev,
 	struct list_head * next)
 {
 	next->prev =3D new;
 	new->next =3D next;
 	new->prev =3D prev;
 	prev->next =3D new;
 }
 
 =20
 
 
 
 
 
 
 
 static __inline__ void list_add(struct list_head *new, struct list_head =
 *head)
 {
 	__list_add(new, head, head->next);
 }
 
 =20
 
 
 
 
 
 
 
 static __inline__ void list_add_tail(struct list_head *new, struct =
 list_head *head)
 {
 	__list_add(new, head->prev, head);
 }
 
 =20
 
 
 
 
 
 
 static __inline__ void __list_del(struct list_head * prev,
 				  struct list_head * next)
 {
 	next->prev =3D prev;
 	prev->next =3D next;
 }
 
 =20
 
 
 
 
 static __inline__ void list_del(struct list_head *entry)
 {
 	__list_del(entry->prev, entry->next);
 }
 
 =20
 
 
 
 static __inline__ void list_del_init(struct list_head *entry)
 {
 	__list_del(entry->prev, entry->next);
 	do { ( entry )->next =3D ( entry ); ( entry )->prev =3D ( entry ); } =
 while (0) ;=20
 }
 
 =20
 
 
 
 static __inline__ int list_empty(struct list_head *head)
 {
 	return head->next =3D=3D head;
 }
 
 =20
 
 
 
 
 static __inline__ void list_splice(struct list_head *list, struct =
 list_head *head)
 {
 	struct list_head *first =3D list->next;
 
 	if (first !=3D list) {
 		struct list_head *last =3D list->prev;
 		struct list_head *at =3D head->next;
 
 		first->prev =3D head;
 		head->next =3D first;
 
 		last->next =3D at;
 		at->prev =3D last;
 	}
 }
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 # 287 "/usr/src/linux-2.4.2/include/linux/pci.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/errno.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/errno.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/errno.h" 2
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 # 288 "/usr/src/linux-2.4.2/include/linux/pci.h" 2
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 struct pci_dev {
 	struct list_head global_list;	=20
 	struct list_head bus_list;	=20
 	struct pci_bus	*bus;		=20
 	struct pci_bus	*subordinate;	=20
 
 	void		*sysdata;	=20
 	struct proc_dir_entry *procent;	=20
 
 	unsigned int	devfn;		=20
 	unsigned short	vendor;
 	unsigned short	device;
 	unsigned short	subsystem_vendor;
 	unsigned short	subsystem_device;
 	unsigned int	class;		=20
 	u8		hdr_type;	=20
 	u8		rom_base_reg;	=20
 
 	struct pci_driver *driver;	=20
 	void		*driver_data;	=20
 	dma_addr_t	dma_mask;	=20
 
 
 
 
 
 	=20
 	unsigned short vendor_compatible[4 ];
 	unsigned short device_compatible[4 ];
 
 	=20
 
 
 
 	unsigned int	irq;
 	struct resource resource[12 ]; =20
 	struct resource dma_resource[2 ];
 	struct resource irq_resource[2 ];
 
 	char		name[80];	=20
 	char		slot_name[8];	=20
 	int		active;		=20
 	int		ro;		=20
 	unsigned short	regs;		=20
 
 	int (*prepare)(struct pci_dev *dev);	=20
 	int (*activate)(struct pci_dev *dev);
 	int (*deactivate)(struct pci_dev *dev);
 };
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
  =20
 
 
 struct pci_bus {
 	struct list_head node;		=20
 	struct pci_bus	*parent;	=20
 	struct list_head children;	=20
 	struct list_head devices;	=20
 	struct pci_dev	*self;		=20
 	struct resource	*resource[4];	=20
 
 	struct pci_ops	*ops;		=20
 	void		*sysdata;	=20
 	struct proc_dir_entry *procdir;	=20
 
 	unsigned char	number;		=20
 	unsigned char	primary;	=20
 	unsigned char	secondary;	=20
 	unsigned char	subordinate;	=20
 
 	char		name[48];
 	unsigned short	vendor;
 	unsigned short	device;
 	unsigned int	serial;		=20
 	unsigned char	pnpver;		=20
 	unsigned char	productver;	=20
 	unsigned char	checksum;	=20
 	unsigned char	pad1;
 };
 
 
 
 extern struct list_head pci_root_buses;	=20
 extern struct list_head pci_devices;	=20
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 struct pci_ops {
 	int (*read_byte)(struct pci_dev *, int where, u8 *val);
 	int (*read_word)(struct pci_dev *, int where, u16 *val);
 	int (*read_dword)(struct pci_dev *, int where, u32 *val);
 	int (*write_byte)(struct pci_dev *, int where, u8 val);
 	int (*write_word)(struct pci_dev *, int where, u16 val);
 	int (*write_dword)(struct pci_dev *, int where, u32 val);
 };
 
 struct pbus_set_ranges_data
 {
 	int found_vga;
 	unsigned long io_start, io_end;
 	unsigned long mem_start, mem_end;
 };
 
 struct pci_device_id {
 	unsigned int vendor, device;		=20
 	unsigned int subvendor, subdevice;	=20
 	unsigned int class, class_mask;		=20
 	unsigned long driver_data;		=20
 };
 
 struct pci_driver {
 	struct list_head node;
 	char *name;
 	const struct pci_device_id *id_table;	=20
 	int (*probe)(struct pci_dev *dev, const struct pci_device_id *id);	=20
 	void (*remove)(struct pci_dev *dev);	=20
 	void (*suspend)(struct pci_dev *dev);	=20
 	void (*resume)(struct pci_dev *dev);	=20
 };
 
 
 =20
 
 
 void pcibios_init(void);
 void pcibios_fixup_bus(struct pci_bus *);
 int pcibios_enable_device(struct pci_dev *);
 char *pcibios_setup (char *str);
 
 =20
 void pcibios_align_resource(void *, struct resource *, unsigned long);
 void pcibios_update_resource(struct pci_dev *, struct resource *,
 			     struct resource *, int);
 void pcibios_update_irq(struct pci_dev *, int irq);
 void pcibios_fixup_pbus_ranges(struct pci_bus *, struct =
 pbus_set_ranges_data *);
 
 =20
 
 int pcibios_present(void);
 int pcibios_read_config_byte (unsigned char bus, unsigned char dev_fn,
 			      unsigned char where, unsigned char *val);
 int pcibios_read_config_word (unsigned char bus, unsigned char dev_fn,
 			      unsigned char where, unsigned short *val);
 int pcibios_read_config_dword (unsigned char bus, unsigned char dev_fn,
 			       unsigned char where, unsigned int *val);
 int pcibios_write_config_byte (unsigned char bus, unsigned char dev_fn,
 			       unsigned char where, unsigned char val);
 int pcibios_write_config_word (unsigned char bus, unsigned char dev_fn,
 			       unsigned char where, unsigned short val);
 int pcibios_write_config_dword (unsigned char bus, unsigned char dev_fn,
 				unsigned char where, unsigned int val);
 int pcibios_find_class (unsigned int class_code, unsigned short index, =
 unsigned char *bus, unsigned char *dev_fn);
 int pcibios_find_device (unsigned short vendor, unsigned short dev_id,
 			 unsigned short index, unsigned char *bus,
 			 unsigned char *dev_fn);
 
 =20
 
 void pci_init(void);
 int pci_bus_exists(const struct list_head *list, int nr);
 struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void =
 *sysdata);
 struct pci_bus *pci_alloc_primary_bus(int bus);
 struct pci_dev *pci_scan_slot(struct pci_dev *temp);
 int pci_proc_attach_device(struct pci_dev *dev);
 int pci_proc_detach_device(struct pci_dev *dev);
 void pci_name_device(struct pci_dev *dev);
 char *pci_class_name(u32 class);
 void pci_read_bridge_bases(struct pci_bus *child);
 struct resource *pci_find_parent_resource(const struct pci_dev *dev, =
 struct resource *res);
 int pci_setup_device(struct pci_dev *dev);
 int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);
 
 =20
 
 struct pci_dev *pci_find_device (unsigned int vendor, unsigned int =
 device, const struct pci_dev *from);
 struct pci_dev *pci_find_subsys (unsigned int vendor, unsigned int =
 device,
 				 unsigned int ss_vendor, unsigned int ss_device,
 				 const struct pci_dev *from);
 struct pci_dev *pci_find_class (unsigned int class, const struct pci_dev =
 *from);
 struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
 int pci_find_capability (struct pci_dev *dev, int cap);
 
 int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val);
 int pci_read_config_word(struct pci_dev *dev, int where, u16 *val);
 int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val);
 int pci_write_config_byte(struct pci_dev *dev, int where, u8 val);
 int pci_write_config_word(struct pci_dev *dev, int where, u16 val);
 int pci_write_config_dword(struct pci_dev *dev, int where, u32 val);
 
 int pci_enable_device(struct pci_dev *dev);
 void pci_set_master(struct pci_dev *dev);
 int pci_set_power_state(struct pci_dev *dev, int state);
 int pci_assign_resource(struct pci_dev *dev, int i);
 
 =20
 
 int pci_claim_resource(struct pci_dev *, int);
 void pci_assign_unassigned_resources(void);
 void pdev_enable_device(struct pci_dev *);
 void pdev_sort_resources(struct pci_dev *, struct resource_list *, u32);
 unsigned long pci_bridge_check_io(struct pci_dev *);
 void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *),
 		    int (*)(struct pci_dev *, u8, u8));
 
 =20
 int pci_register_driver(struct pci_driver *);
 void pci_unregister_driver(struct pci_driver *);
 void pci_insert_device(struct pci_dev *, struct pci_bus *);
 void pci_remove_device(struct pci_dev *);
 struct pci_driver *pci_dev_driver(const struct pci_dev *);
 const struct pci_device_id *pci_match_device(const struct pci_device_id =
 *ids, const struct pci_dev *dev);
 
 
 
 =20
 
 # 1 "/usr/src/linux-2.4.2/include/asm/pci.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/spinlock.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
   typedef struct { int gcc_is_buggy; } spinlock_t;
  =20
 
 
 
 
 
 
 
 
 
 # 99 "/usr/src/linux-2.4.2/include/linux/spinlock.h"
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   typedef struct { int gcc_is_buggy; } rwlock_t;
  =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 # 6 "/usr/src/linux-2.4.2/include/asm/pci.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/scatterlist.h" 1
 
 
 
 
 
 struct scatterlist {
 	char *address;			=20
 	char *alt_address;		=20
 
 	dma_addr_t dma_address;
 	unsigned int length;
 	unsigned int dma_length;
 };
 
 
 
 
 
 
 
 # 7 "/usr/src/linux-2.4.2/include/asm/pci.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/machvec.h" 1
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 =20
 
 
 struct task_struct;
 struct mm_struct;
 struct pt_regs;
 struct vm_area_struct;
 struct linux_hose_info;
 struct pci_dev;
 struct pci_ops;
 struct pci_controler;
 
 struct alpha_machine_vector
 {
 	=20
 
 
 	unsigned long hae_cache;
 	unsigned long *hae_register;
 
 	int nr_irqs;
 	int rtc_port;
 	int max_asn;
 	unsigned long max_dma_address;
 	unsigned long irq_probe_mask;
 	unsigned long iack_sc;
 	unsigned long min_io_address;
 	unsigned long min_mem_address;
 
 	void (*mv_pci_tbi)(struct pci_controler *hose,
 			   dma_addr_t start, dma_addr_t end);
 
 	unsigned int (*mv_inb)(unsigned long);
 	unsigned int (*mv_inw)(unsigned long);
 	unsigned int (*mv_inl)(unsigned long);
 
 	void (*mv_outb)(unsigned char, unsigned long);
 	void (*mv_outw)(unsigned short, unsigned long);
 	void (*mv_outl)(unsigned int, unsigned long);
 =09
 	unsigned long (*mv_readb)(unsigned long);
 	unsigned long (*mv_readw)(unsigned long);
 	unsigned long (*mv_readl)(unsigned long);
 	unsigned long (*mv_readq)(unsigned long);
 
 	void (*mv_writeb)(unsigned char, unsigned long);
 	void (*mv_writew)(unsigned short, unsigned long);
 	void (*mv_writel)(unsigned int, unsigned long);
 	void (*mv_writeq)(unsigned long, unsigned long);
 
 	unsigned long (*mv_ioremap)(unsigned long);
 	int (*mv_is_ioaddr)(unsigned long);
 
 	void (*mv_switch_mm)(struct mm_struct *, struct mm_struct *,
 			     struct task_struct *, long);
 	void (*mv_activate_mm)(struct mm_struct *, struct mm_struct *);
 
 	void (*mv_flush_tlb_current)(struct mm_struct *);
 	void (*mv_flush_tlb_current_page)(struct mm_struct * mm,
 					  struct vm_area_struct *vma,
 					  unsigned long addr);
 
 	void (*update_irq_hw)(unsigned long, unsigned long, int);
 	void (*ack_irq)(unsigned long);
 	void (*device_interrupt)(unsigned long vector, struct pt_regs *regs);
 	void (*machine_check)(u64 vector, u64 la, struct pt_regs *regs);
 
 	void (*init_arch)(void);
 	void (*init_irq)(void);
 	void (*init_rtc)(void);
 	void (*init_pci)(void);
 	void (*kill_arch)(int);
 
 	u8 (*pci_swizzle)(struct pci_dev *, u8 *);
 	int (*pci_map_irq)(struct pci_dev *, u8, u8);
 	struct pci_ops *pci_ops;
 
 	const char *vector_name;
 
 	=20
 	union {
 	    struct {
 		unsigned long gru_int_req_bits;
 	    } cia;
 
 	    struct {
 		unsigned long gamma_bias;
 	    } t2;
 
 	    struct {
 		unsigned int route_tab;
 	    } sio;
 	} sys;
 };
 
 extern struct alpha_machine_vector alpha_mv;
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 8 "/usr/src/linux-2.4.2/include/asm/pci.h" 2
 
 
 =20
 
 
 
 struct pci_dev;
 struct pci_bus;
 struct resource;
 struct pci_iommu_arena;
 
 =20
 
 struct pci_controler {
 	struct pci_controler *next;
         struct pci_bus *bus;
 	struct resource *io_space;
 	struct resource *mem_space;
 
 	=20
 
 
 	unsigned long sparse_mem_base;
 	unsigned long dense_mem_base;
 	unsigned long sparse_io_base;
 	unsigned long dense_io_base;
 
 	=20
 	unsigned long config_space_base;
 
 	unsigned int index;
 	unsigned int first_busno;
 	unsigned int last_busno;
 
 	struct pci_iommu_arena *sg_pci;
 	struct pci_iommu_arena *sg_isa;
 };
 
 =20
 
 
 
 
 
 
 
 extern void pcibios_set_master(struct pci_dev *dev);
 
 extern inline void pcibios_penalize_isa_irq(int irq)
 {
 	=20
 }
 
 =20
 
 =20
 
 
 
 
 extern void *pci_alloc_consistent(struct pci_dev *, long, dma_addr_t *);
 
 =20
 
 
 
 
 
 extern void pci_free_consistent(struct pci_dev *, long, void *, =
 dma_addr_t);
 
 =20
 
 
 
 
 extern dma_addr_t pci_map_single(struct pci_dev *, void *, long, int);
 
 =20
 
 
 
 
 
 extern void pci_unmap_single(struct pci_dev *, dma_addr_t, long, int);
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern int pci_map_sg(struct pci_dev *, struct scatterlist *, int, int);
 
 =20
 
 
 
 extern void pci_unmap_sg(struct pci_dev *, struct scatterlist *, int, =
 int);
 
 =20
 
 
 
 
 
 
 
 
 extern inline void
 pci_dma_sync_single(struct pci_dev *dev, dma_addr_t dma_addr, long size,
 		    int direction)
 {
 	=20
 }
 
 =20
 
 
 
 extern inline void
 pci_dma_sync_sg(struct pci_dev *dev, struct scatterlist *sg, int nents,
 	        int direction)
 {
 	=20
 }
 
 =20
 
 
 
 
 extern int pci_dma_supported(struct pci_dev *hwdev, dma_addr_t mask);
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 555 "/usr/src/linux-2.4.2/include/linux/pci.h" 2
 
 
 =20
 
 
 
 
 # 600 "/usr/src/linux-2.4.2/include/linux/pci.h"
 
 
 =20
 
 
 
 
 
 static inline int pci_module_init(struct pci_driver *drv)
 {
 	int rc =3D pci_register_driver (drv);
 
 	if (rc > 0)
 		return 0;
 
 	=20
 
 
 
 
 
 
 
 
 	=20
 
 	pci_unregister_driver (drv);
 =09
 	return - 19 ;
 }
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 static inline void *pci_get_drvdata (struct pci_dev *pdev)
 {
 	return pdev->driver_data;
 }
 
 static inline void pci_set_drvdata (struct pci_dev *pdev, void *data)
 {
 	pdev->driver_data =3D data;
 }
 
 =20
 
 
 
 
 
 
 struct pci_fixup {
 	int pass;
 	u16 vendor, device;			=20
 	void (*hook)(struct pci_dev *dev);
 };
 
 extern struct pci_fixup pcibios_fixups[];
 
 
 
 
 void pci_fixup_device(int pass, struct pci_dev *dev);
 
 extern int pci_pci_problems;
 
 
 
 
 
 
 
 # 16 "core_cia.c" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/sched.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/param.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 
 extern unsigned long event;
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/binfmts.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ptrace.h" 1
 
 
 =20
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/ptrace.h" 1
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct pt_regs {
 	unsigned long r0;
 	unsigned long r1;
 	unsigned long r2;
 	unsigned long r3;
 	unsigned long r4;
 	unsigned long r5;
 	unsigned long r6;
 	unsigned long r7;
 	unsigned long r8;
 	unsigned long r19;
 	unsigned long r20;
 	unsigned long r21;
 	unsigned long r22;
 	unsigned long r23;
 	unsigned long r24;
 	unsigned long r25;
 	unsigned long r26;
 	unsigned long r27;
 	unsigned long r28;
 	unsigned long hae;
 =20
 	unsigned long trap_a0;
 	unsigned long trap_a1;
 	unsigned long trap_a2;
 =20
 	unsigned long ps;
 	unsigned long pc;
 	unsigned long gp;
 	unsigned long r16;
 	unsigned long r17;
 	unsigned long r18;
 };
 
 =20
 
 
 
 struct switch_stack {
 	unsigned long r9;
 	unsigned long r10;
 	unsigned long r11;
 	unsigned long r12;
 	unsigned long r13;
 	unsigned long r14;
 	unsigned long r15;
 	unsigned long r26;
 	unsigned long fp[32];	=20
 };
 
 
 
 
 extern void show_regs(struct pt_regs *);
 
 
 
 # 24 "/usr/src/linux-2.4.2/include/linux/ptrace.h" 2
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/binfmts.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/capability.h" 1
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/fs.h" 1
 
 
 
 =20
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/limits.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 11 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/wait.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/page.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 extern void clear_page(void *page);
 
 
 extern void copy_page(void * _to, void * _from);
 
 
 
 =20
 
 
 typedef struct { unsigned long pte; } pte_t;
 typedef struct { unsigned long pmd; } pmd_t;
 typedef struct { unsigned long pgd; } pgd_t;
 typedef struct { unsigned long pgprot; } pgprot_t;
 
 
 
 
 
 
 
 
 
 
 # 57 "/usr/src/linux-2.4.2/include/asm/page.h"
 
 
 
 
 
 =20
 extern __inline__ int get_order(unsigned long size)
 {
 	int order;
 
 	size =3D (size-1) >> (13 -1);
 	order =3D -1;
 	do {
 		size >>=3D 1;
 		order++;
 	} while (size);
 	return order;
 }
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 18 "/usr/src/linux-2.4.2/include/linux/wait.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/processor.h" 1
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 typedef struct {
 	unsigned long seg;
 } mm_segment_t;
 
 struct thread_struct {
 	=20
 	unsigned long ksp;
 	unsigned long usp;
 	unsigned long ptbr;
 	unsigned int pcc;
 	unsigned int asn;
 	unsigned long unique;
 	=20
 
 
 
 	unsigned long pal_flags;
 	unsigned long res1, res2;
 
 	=20
 
 
 
 
 
 
 
 	unsigned long flags;
 
 	=20
 	mm_segment_t fs;
 
 	=20
 	unsigned long bpt_addr[2];
 	unsigned int bpt_insn[2];
 	int bpt_nsaved;
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 extern inline unsigned long thread_saved_pc(struct thread_struct *t)
 {
 	unsigned long fp, sp =3D t->ksp, base =3D (unsigned long)t;
 =20
 	if (sp > base && sp+6*8 < base + 16*1024) {
 		fp =3D ((unsigned long*)sp)[6];
 		if (fp > sp && fp < base + 16*1024)
 			return *(unsigned long *)fp;
 	}
 
 	return 0;
 }
 
 =20
 extern void start_thread(struct pt_regs *, unsigned long, unsigned =
 long);
 
 struct task_struct;
 
 =20
 extern void release_thread(struct task_struct *);
 
 =20
 extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long =
 flags);
 
 
 
 
 unsigned long get_wchan(struct task_struct *p);
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 19 "/usr/src/linux-2.4.2/include/linux/wait.h" 2
 
 
 =20
 
 
 
 
 struct __wait_queue {
 	unsigned int flags;
 
 	struct task_struct * task;
 	struct list_head task_list;
 
 
 
 
 };
 typedef struct __wait_queue wait_queue_t;
 
 =20
 
 
 
 
 
 
 
 # 58 "/usr/src/linux-2.4.2/include/linux/wait.h"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct __wait_queue_head {
 	spinlock_t  lock;
 	struct list_head task_list;
 
 
 
 
 };
 typedef struct __wait_queue_head wait_queue_head_t;
 
 
 =20
 
 
 
 # 114 "/usr/src/linux-2.4.2/include/linux/wait.h"
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline void init_waitqueue_head(wait_queue_head_t *q)
 {
 
 
 
 
 	q->lock =3D (spinlock_t) { 0 }  ;
 	do { ( &q->task_list )->next =3D ( &q->task_list ); ( &q->task_list =
 )->prev =3D ( &q->task_list ); } while (0) ;
 
 
 
 
 }
 
 static inline void init_waitqueue_entry(wait_queue_t *q, struct =
 task_struct *p)
 {
 
 
 
 
 	q->flags =3D 0;
 	q->task =3D p;
 
 
 
 }
 
 static inline int waitqueue_active(wait_queue_head_t *q)
 {
 
 
 
 
 
 
 	return !list_empty(&q->task_list);
 }
 
 static inline void __add_wait_queue(wait_queue_head_t *head, =
 wait_queue_t *new)
 {
 
 
 
 
 
 
 
 
 	list_add(&new->task_list, &head->task_list);
 }
 
 =20
 
 
 static inline void __add_wait_queue_tail(wait_queue_head_t *head,
 						wait_queue_t *new)
 {
 
 
 
 
 
 
 
 
 	list_add_tail(&new->task_list, &head->task_list);
 }
 
 static inline void __remove_wait_queue(wait_queue_head_t *head,
 							wait_queue_t *old)
 {
 
 
 
 
 
 	list_del(&old->task_list);
 }
 
 
 
 
 # 12 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/vfs.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/statfs.h" 1
 
 
 
 
 
 
 
 typedef __kernel_fsid_t	fsid_t;
 
 
 
 struct statfs {
 	int f_type;
 	int f_bsize;
 	int f_blocks;
 	int f_bfree;
 	int f_bavail;
 	int f_files;
 	int f_ffree;
 	__kernel_fsid_t f_fsid;
 	int f_namelen;
 	int f_spare[6];
 };
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/vfs.h" 2
 
 
 
 # 14 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/net.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/socket.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/socket.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/sockios.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/asm/socket.h" 2
 
 
 =20
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 					=20
 					=20
 					=20
 					=20
 
 
 
 # 6 "/usr/src/linux-2.4.2/include/linux/socket.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/sockios.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 		    =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 =20
 
 
 =20
 
 
 =20
 
 
 # 7 "/usr/src/linux-2.4.2/include/linux/socket.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/uio.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 struct iovec
 {
 	void *iov_base;		=20
 	__kernel_size_t iov_len; =20
 };
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 8 "/usr/src/linux-2.4.2/include/linux/socket.h" 2
 
 
 
 typedef unsigned short	sa_family_t;
 
 =20
 
 
 =20
 struct sockaddr {
 	sa_family_t	sa_family;	=20
 	char		sa_data[14];	=20
 };
 
 struct linger {
 	int		l_onoff;	=20
 	int		l_linger;	=20
 };
 
 =20
 
 
 
 
 =20
 struct msghdr {
 	void	*	msg_name;	=20
 	int		msg_namelen;	=20
 	struct iovec *	msg_iov;	=20
 	__kernel_size_t	msg_iovlen;	=20
 	void 	*	msg_control;	=20
 	__kernel_size_t	msg_controllen;	=20
 	unsigned	msg_flags;
 };
 
 =20
 
 
 
 
 
 struct cmsghdr {
 	__kernel_size_t	cmsg_len;	=20
         int		cmsg_level;	=20
         int		cmsg_type;	=20
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 static inline  struct cmsghdr * __cmsg_nxthdr(void *__ctl, =
 __kernel_size_t __size,
 					       struct cmsghdr *__cmsg)
 {
 	struct cmsghdr * __ptr;
 
 	__ptr =3D (struct cmsghdr*)(((unsigned char *) __cmsg) +  ( (( =
 __cmsg->cmsg_len )+sizeof(long)-1) & ~(sizeof(long)-1) ) );
 	if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
 		return (struct cmsghdr *)0;
 
 	return __ptr;
 }
 
 static inline  struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, =
 struct cmsghdr *__cmsg)
 {
 	return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, =
 __cmsg);
 }
 
 =20
 
 
 
 
 
 struct ucred {
 	__u32	pid;
 	__u32	uid;
 	__u32	gid;
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int =
 len);
 extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov,=20
 				int offset, int len);
 extern int csum_partial_copy_fromiovecend(unsigned char *kdata,=20
 					  struct iovec *iov,=20
 					  int offset,=20
 					  unsigned int len, int *csump);
 
 extern int verify_iovec(struct msghdr *m, struct iovec *iov, char =
 *address, int mode);
 extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int =
 len);
 extern void memcpy_tokerneliovec(struct iovec *iov, unsigned char =
 *kdata, int len);
 extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int =
 *ulen);
 extern int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr);
 extern int put_cmsg(struct msghdr*, int level, int type, int len, void =
 *data);
 
 
 
 # 22 "/usr/src/linux-2.4.2/include/linux/net.h" 2
 
 
 
 struct poll_table_struct;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 typedef enum {
   SS_FREE =3D 0,				=20
   SS_UNCONNECTED,			=20
   SS_CONNECTING,			=20
   SS_CONNECTED,				=20
   SS_DISCONNECTING			=20
 } socket_state;
 
 
 
 
 
 
 
 
 
 struct socket
 {
 	socket_state		state;
 
 	unsigned long		flags;
 	struct proto_ops	*ops;
 	struct inode		*inode;
 	struct fasync_struct	*fasync_list;	=20
 	struct file		*file;		=20
 	struct sock		*sk;
 	wait_queue_head_t	wait;
 
 	short			type;
 	unsigned char		passcred;
 };
 
 
 
 struct scm_cookie;
 struct vm_area_struct;
 
 struct proto_ops {
   int	family;
 
   int	(*release)	(struct socket *sock);
   int	(*bind)		(struct socket *sock, struct sockaddr *umyaddr,
 			 int sockaddr_len);
   int	(*connect)	(struct socket *sock, struct sockaddr *uservaddr,
 			 int sockaddr_len, int flags);
   int	(*socketpair)	(struct socket *sock1, struct socket *sock2);
   int	(*accept)	(struct socket *sock, struct socket *newsock,
 			 int flags);
   int	(*getname)	(struct socket *sock, struct sockaddr *uaddr,
 			 int *usockaddr_len, int peer);
   unsigned int (*poll)	(struct file *file, struct socket *sock, struct =
 poll_table_struct *wait);
   int	(*ioctl)	(struct socket *sock, unsigned int cmd,
 			 unsigned long arg);
   int	(*listen)	(struct socket *sock, int len);
   int	(*shutdown)	(struct socket *sock, int flags);
   int	(*setsockopt)	(struct socket *sock, int level, int optname,
 			 char *optval, int optlen);
   int	(*getsockopt)	(struct socket *sock, int level, int optname,
 			 char *optval, int *optlen);
   int   (*sendmsg)	(struct socket *sock, struct msghdr *m, int =
 total_len, struct scm_cookie *scm);
   int   (*recvmsg)	(struct socket *sock, struct msghdr *m, int =
 total_len, int flags, struct scm_cookie *scm);
   int	(*mmap)		(struct file *file, struct socket *sock, struct =
 vm_area_struct * vma);
 };
 
 struct net_proto_family=20
 {
 	int	family;
 	int	(*create)(struct socket *sock, int protocol);
 	=20
 
 	short	authentication;
 	short	encryption;
 	short	encrypt_net;
 };
 
 struct net_proto=20
 {
 	const char *name;		=20
 	void (*init_func)(struct net_proto *);	=20
 };
 
 extern int	sock_wake_async(struct socket *sk, int how, int band);
 extern int	sock_register(struct net_proto_family *fam);
 extern int	sock_unregister(int family);
 extern struct socket *sock_alloc(void);
 extern int	sock_create(int family, int type, int proto, struct socket =
 **);
 extern void	sock_release(struct socket *);
 extern int   	sock_sendmsg(struct socket *, struct msghdr *m, int len);
 extern int	sock_recvmsg(struct socket *, struct msghdr *m, int len, int =
 flags);
 extern int	sock_readv_writev(int type, struct inode * inode, struct file =
 * file,
 				  const struct iovec * iov, long count, long size);
 
 extern int	net_ratelimit(void);
 extern unsigned long net_random(void);
 extern void net_srandom(unsigned long);
 
 
 
 
 # 222 "/usr/src/linux-2.4.2/include/linux/net.h"
 
 
 
 
 
 # 15 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/kdev_t.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 typedef unsigned short kdev_t;
 
 
 
 
 
 
 
 
 extern const char * kdevname(kdev_t);	=20
 
 =20
 
 
 
 
 static inline unsigned int kdev_t_to_nr(kdev_t dev) {
 	return (((unsigned int) (( dev ) >> 8 )) <<8) | ((unsigned int) (( dev =
 ) & ((1U << 8 ) - 1) )) ;
 }
 
 static inline kdev_t to_kdev_t(int dev)
 {
 	int major, minor;
 
 
 
 
 
 
 
 
 	major =3D (dev >> 8);
 	minor =3D (dev & 0xff);
 
 	return ((( major ) << 8 ) | (  minor )) ;
 }
 
 # 113 "/usr/src/linux-2.4.2/include/linux/kdev_t.h"
 
 
 # 16 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ioctl.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/ioctl.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/ioctl.h" 2
 
 
 
 
 # 17 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/dcache.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/atomic.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 typedef struct { volatile int counter; } atomic_t;
 
 
 
 
 
 
 =20
 
 
 
 
 
 static __inline__ void atomic_add(int i, atomic_t * v)
 {
 	unsigned long temp;
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%1\n"
 	"	addl %0,%2,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (v->counter)
 	:"Ir" (i), "m" (v->counter));
 }
 
 static __inline__ void atomic_sub(int i, atomic_t * v)
 {
 	unsigned long temp;
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%1\n"
 	"	subl %0,%2,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (v->counter)
 	:"Ir" (i), "m" (v->counter));
 }
 
 =20
 
 
 static __inline__ long atomic_add_return(int i, atomic_t * v)
 {
 	long temp, result;
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%1\n"
 	"	addl %0,%3,%2\n"
 	"	addl %0,%3,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	"	mb\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (v->counter), "=3D&r" (result)
 	:"Ir" (i), "m" (v->counter) : "memory");
 	return result;
 }
 
 static __inline__ long atomic_sub_return(int i, atomic_t * v)
 {
 	long temp, result;
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%1\n"
 	"	subl %0,%3,%2\n"
 	"	subl %0,%3,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	"	mb\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (v->counter), "=3D&r" (result)
 	:"Ir" (i), "m" (v->counter) : "memory");
 	return result;
 }
 
 
 
 
 
 
 
 
 
 
 
 # 6 "/usr/src/linux-2.4.2/include/linux/dcache.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/mount.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct vfsmount
 {
 	struct dentry *mnt_mountpoint;	=20
 	struct dentry *mnt_root;	=20
 	struct vfsmount *mnt_parent;	=20
 	struct list_head mnt_instances;	=20
 	struct list_head mnt_clash;	=20
 					=20
 	struct super_block *mnt_sb;	=20
 	struct list_head mnt_mounts;	=20
 	struct list_head mnt_child;	=20
 	atomic_t mnt_count;
 	int mnt_flags;
 	char *mnt_devname;		=20
 	struct list_head mnt_list;
 	uid_t mnt_owner;
 };
 
 static inline struct vfsmount *mntget(struct vfsmount *mnt)
 {
 	if (mnt)
 		atomic_add(1,( &mnt->mnt_count )) ;
 	return mnt;
 }
 
 static inline void mntput(struct vfsmount *mnt)
 {
 	if (mnt) {
 		if ((atomic_sub_return(1, ( &mnt->mnt_count )) =3D=3D 0) )
 			__asm__ __volatile__("call_pal 129 # bugchk") ;
 	}
 }
 
 
 
 # 7 "/usr/src/linux-2.4.2/include/linux/dcache.h" 2
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 struct qstr {
 	const unsigned char * name;
 	unsigned int len;
 	unsigned int hash;
 };
 
 struct dentry_stat_t {
 	int nr_dentry;
 	int nr_unused;
 	int age_limit;          =20
 	int want_pages;         =20
 	int dummy[2];
 };
 extern struct dentry_stat_t dentry_stat;
 
 =20
 =20
 
 
 =20
 static __inline__ unsigned long partial_name_hash(unsigned long c, =
 unsigned long prevhash)
 {
 	return (prevhash + (c << 4) + (c >> 4)) * 11;
 }
 
 =20
 static __inline__ unsigned long end_name_hash(unsigned long hash)
 {
 	return (unsigned int) hash;
 }
 
 =20
 static __inline__ unsigned int full_name_hash(const unsigned char * =
 name, unsigned int len)
 {
 	unsigned long hash =3D 0 ;
 	while (len--)
 		hash =3D partial_name_hash(*name++, hash);
 	return end_name_hash(hash);
 }
 
 
 
 struct dentry {
 	atomic_t d_count;
 	unsigned int d_flags;
 	struct inode  * d_inode;	=20
 	struct dentry * d_parent;	=20
 	struct list_head d_vfsmnt;
 	struct list_head d_hash;	=20
 	struct list_head d_lru;		=20
 	struct list_head d_child;	=20
 	struct list_head d_subdirs;	=20
 	struct list_head d_alias;	=20
 	struct qstr d_name;
 	unsigned long d_time;		=20
 	struct dentry_operations  *d_op;
 	struct super_block * d_sb;	=20
 	unsigned long d_reftime;	=20
 	void * d_fsdata;		=20
 	unsigned char d_iname[16 ]; =20
 };
 
 struct dentry_operations {
 	int (*d_revalidate)(struct dentry *, int);
 	int (*d_hash) (struct dentry *, struct qstr *);
 	int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
 	int (*d_delete)(struct dentry *);
 	void (*d_release)(struct dentry *);
 	void (*d_iput)(struct dentry *, struct inode *);
 };
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern spinlock_t dcache_lock;
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static __inline__ void d_drop(struct dentry * dentry)
 {
 	(void)( &dcache_lock ) ;
 	list_del(&dentry->d_hash);
 	do { ( &dentry->d_hash )->next =3D ( &dentry->d_hash ); ( =
 &dentry->d_hash )->prev =3D ( &dentry->d_hash ); } while (0) ;
 	do { } while(0) ;
 }
 
 static __inline__ int dname_external(struct dentry *d)
 {
 	return d->d_name.name !=3D d->d_iname;=20
 }
 
 =20
 
 
 extern void d_instantiate(struct dentry *, struct inode *);
 extern void d_delete(struct dentry *);
 
 =20
 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
 extern void shrink_dcache_sb(struct super_block *);
 extern void shrink_dcache_parent(struct dentry *);
 extern int d_invalidate(struct dentry *);
 
 
 struct zone_struct;
 =20
 extern void shrink_dcache_memory(int, unsigned int);
 extern void prune_dcache(int);
 
 =20
 extern void shrink_icache_memory(int, int);
 extern void prune_icache(int);
 
 =20
 extern struct dentry * d_alloc_root(struct inode *);
 
 =20
 extern void d_genocide(struct dentry *);
 
 extern struct dentry *d_find_alias(struct inode *);
 extern void d_prune_aliases(struct inode *);
 
 =20
 extern int have_submounts(struct dentry *);
 
 =20
 
 
 extern void d_rehash(struct dentry *);
 
 =20
 
 
 
 
 
 
 
 =20
 static __inline__ void d_add(struct dentry * entry, struct inode * =
 inode)
 {
 	d_instantiate(entry, inode);
 	d_rehash(entry);
 }
 
 =20
 extern void d_move(struct dentry *, struct dentry *);
 
 =20
 extern struct dentry * d_lookup(struct dentry *, struct qstr *);
 
 =20
 extern int d_validate(struct dentry *, struct dentry *, unsigned int, =
 unsigned int);
 
 extern char * __d_path(struct dentry *, struct vfsmount *, struct dentry =
 *,
 	struct vfsmount *, char *, int);
  =20
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 static __inline__ struct dentry * dget(struct dentry *dentry)
 {
 	if (dentry) {
 		if (! (( &dentry->d_count )->counter) )
 			__asm__ __volatile__("call_pal 129 # bugchk") ;
 		atomic_add(1,( &dentry->d_count )) ;
 	}
 	return dentry;
 }
 
 extern struct dentry * dget_locked(struct dentry *);
 
 =20
 
 
 
 
 
 =20
 static __inline__ int d_unhashed(struct dentry *dentry)
 {
 	return list_empty(&dentry->d_hash);
 }
 
 extern void dput(struct dentry *);
 
 static __inline__ int d_mountpoint(struct dentry *dentry)
 {
 	return !list_empty(&dentry->d_vfsmnt);
 }
 
 
 
 
 # 19 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/stat.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/stat.h" 1
 
 
 
 struct __old_kernel_stat {
 	unsigned int	st_dev;
 	unsigned int	st_ino;
 	unsigned int	st_mode;
 	unsigned int	st_nlink;
 	unsigned int	st_uid;
 	unsigned int	st_gid;
 	unsigned int	st_rdev;
 	long		st_size;
 	unsigned long	st_atime;
 	unsigned long	st_mtime;
 	unsigned long	st_ctime;
 	unsigned int	st_blksize;
 	int		st_blocks;
 	unsigned int	st_flags;
 	unsigned int	st_gen;
 };
 
 struct stat {
 	unsigned int	st_dev;
 	unsigned int	st_ino;
 	unsigned int	st_mode;
 	unsigned int	st_nlink;
 	unsigned int	st_uid;
 	unsigned int	st_gid;
 	unsigned int	st_rdev;
 	long		st_size;
 	unsigned long	st_atime;
 	unsigned long	st_mtime;
 	unsigned long	st_ctime;
 	unsigned int	st_blksize;
 	int		st_blocks;
 	unsigned int	st_flags;
 	unsigned int	st_gen;
 };
 
 
 # 6 "/usr/src/linux-2.4.2/include/linux/stat.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 20 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/cache.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/cache.h" 1
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/cache.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 21 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/string.h" 1
 
 
 
 
 
 
 
 
 
 
 extern char * ___strtok;
 extern char * strpbrk(const char *,const char *);
 extern char * strtok(char *,const char *);
 extern char * strsep(char **,const char *);
 extern __kernel_size_t strspn(const char *,const char *);
 
 
 =20
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/string.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 extern void * memcpy(void *, const void *, size_t);
 
 extern void * memmove(void *, const void *, size_t);
 
 =20
 extern void * __memcpy(void *, const void *, size_t);
 
 
 
 
 extern void * __constant_c_memset(void *, unsigned long, size_t);
 extern void * __memset(void *, int, size_t);
 extern void * memset(void *, int, size_t);
 
 
 
 
 
 
 
 
 
 extern char * strcpy(char *,const char *);
 
 extern char * strncpy(char *, const char *, size_t);
 
 extern char * strcat(char *, const char *);
 
 extern char * strncat(char *, const char *, size_t);
 
 extern char * strchr(const char *,int);
 
 extern char * strrchr(const char *,int);
 
 extern size_t strlen(const char *);
 
 extern void * memchr(const void *, int, size_t);
 
 =20
 
 
 
 
 extern void * __memsetw(void *dest, unsigned short, size_t count);
 
 
 
 
 
 
 extern int strcasecmp(const char *, const char *);
 
 
 
 
 # 21 "/usr/src/linux-2.4.2/include/linux/string.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern int strcmp(const char *,const char *);
 
 
 extern int strncmp(const char *,const char *,__kernel_size_t);
 
 
 extern int strnicmp(const char *, const char *, __kernel_size_t);
 
 
 
 
 
 
 
 
 extern char * strstr(const char *,const char *);
 
 
 
 
 
 extern __kernel_size_t strnlen(const char *,__kernel_size_t);
 
 
 
 
 
 
 
 
 
 
 
 
 extern void * memscan(void *,int,__kernel_size_t);
 
 
 extern int memcmp(const void *,const void *,__kernel_size_t);
 
 
 
 
 
 
 
 
 
 
 # 23 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/bitops.h" 1
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 extern __inline__ void
 set_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long temp;
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%3\n"
 	"	bis %0,%2,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (*m)
 	:"Ir" (1UL << (nr & 31)), "m" (*m));
 }
 
 =20
 
 
 extern __inline__ void
 __set_bit(unsigned long nr, volatile void * addr)
 {
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	*m |=3D 1UL << (nr & 31);
 }
 
 
 
 
 extern __inline__ void
 clear_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long temp;
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%3\n"
 	"	and %0,%2,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (*m)
 	:"Ir" (~(1UL << (nr & 31))), "m" (*m));
 }
 
 extern __inline__ void
 change_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long temp;
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%3\n"
 	"	xor %0,%2,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,2f\n"
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (*m)
 	:"Ir" (1UL << (nr & 31)), "m" (*m));
 }
 
 extern __inline__ int
 test_and_set_bit(unsigned long nr, volatile void *addr)
 {
 	unsigned long oldbit;
 	unsigned long temp;
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%4\n"
 	"	and %0,%3,%2\n"
 	"	bne %2,2f\n"
 	"	xor %0,%3,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,3f\n"
 	"2:\n"
 
 
 
 	".subsection 2\n"
 	"3:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (*m), "=3D&r" (oldbit)
 	:"Ir" (1UL << (nr & 31)), "m" (*m) : "memory");
 
 	return oldbit !=3D 0;
 }
 
 =20
 
 
 extern __inline__ int
 __test_and_set_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long mask =3D 1 << (nr & 0x1f);
 	int *m =3D ((int *) addr) + (nr >> 5);
 	int old =3D *m;
 
 	*m =3D old | mask;
 	return (old & mask) !=3D 0;
 }
 
 extern __inline__ int
 test_and_clear_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long oldbit;
 	unsigned long temp;
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%4\n"
 	"	and %0,%3,%2\n"
 	"	beq %2,2f\n"
 	"	xor %0,%3,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,3f\n"
 	"2:\n"
 
 
 
 	".subsection 2\n"
 	"3:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (*m), "=3D&r" (oldbit)
 	:"Ir" (1UL << (nr & 31)), "m" (*m) : "memory");
 
 	return oldbit !=3D 0;
 }
 
 =20
 
 
 extern __inline__ int
 __test_and_clear_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long mask =3D 1 << (nr & 0x1f);
 	int *m =3D ((int *) addr) + (nr >> 5);
 	int old =3D *m;
 
 	*m =3D old & ~mask;
 	return (old & mask) !=3D 0;
 }
 
 extern __inline__ int
 test_and_change_bit(unsigned long nr, volatile void * addr)
 {
 	unsigned long oldbit;
 	unsigned long temp;
 	int *m =3D ((int *) addr) + (nr >> 5);
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%4\n"
 	"	and %0,%3,%2\n"
 	"	xor %0,%3,%0\n"
 	"	stl_c %0,%1\n"
 	"	beq %0,3f\n"
 
 
 
 	".subsection 2\n"
 	"3:	br 1b\n"
 	".previous"
 	:"=3D&r" (temp), "=3Dm" (*m), "=3D&r" (oldbit)
 	:"Ir" (1UL << (nr & 31)), "m" (*m) : "memory");
 
 	return oldbit !=3D 0;
 }
 
 extern __inline__ int
 test_bit(int nr, volatile void * addr)
 {
 	return (1UL & (((const int *) addr)[nr >> 5] >> (nr & 31))) !=3D 0UL;
 }
 
 =20
 
 
 
 
 
 
 extern inline unsigned long ffz_b(unsigned long x)
 {
 	unsigned long sum =3D 0;
 
 	x =3D ~x & -~x;		=20
 	if (x & 0xF0) sum +=3D 4;
 	if (x & 0xCC) sum +=3D 2;
 	if (x & 0xAA) sum +=3D 1;
 
 	return sum;
 }
 
 extern inline unsigned long ffz(unsigned long word)
 {
 
 
 
 
 
 
 	unsigned long bits, qofs, bofs;
 
 	__asm__("cmpbge %1,%2,%0" : "=3Dr"(bits) : "r"(word), "r"(~0UL));
 	qofs =3D ffz_b(bits);
 	__asm__("extbl %1,%2,%0" : "=3Dr"(bits) : "r"(word), "r"(qofs));
 	bofs =3D ffz_b(bits);
 
 	return qofs*8 + bofs;
 
 }
 
 
 
 =20
 
 
 
 
 
 extern inline int ffs(int word)
 {
 	int result =3D ffz(~word);
 	return word ? result+1 : 0;
 }
 
 =20
 
 
 
 
 # 273 "/usr/src/linux-2.4.2/include/asm/bitops.h"
 
 
 
 
 
 
 
 
 =20
 
 
 extern inline unsigned long
 find_next_zero_bit(void * addr, unsigned long size, unsigned long =
 offset)
 {
 	unsigned long * p =3D ((unsigned long *) addr) + (offset >> 6);
 	unsigned long result =3D offset & ~63UL;
 	unsigned long tmp;
 
 	if (offset >=3D size)
 		return size;
 	size -=3D result;
 	offset &=3D 63UL;
 	if (offset) {
 		tmp =3D *(p++);
 		tmp |=3D ~0UL >> (64-offset);
 		if (size < 64)
 			goto found_first;
 		if (~tmp)
 			goto found_middle;
 		size -=3D 64;
 		result +=3D 64;
 	}
 	while (size & ~63UL) {
 		if (~(tmp =3D *(p++)))
 			goto found_middle;
 		result +=3D 64;
 		size -=3D 64;
 	}
 	if (!size)
 		return result;
 	tmp =3D *p;
 found_first:
 	tmp |=3D ~0UL << size;
 	if (tmp =3D=3D ~0UL)        =20
 		return result + size; =20
 found_middle:
 	return result + ffz(tmp);
 }
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 26 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 struct poll_table_struct;
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 struct files_stat_struct {
 	int nr_files;		=20
 	int nr_free_files;	=20
 	int max_files;		=20
 };
 extern struct files_stat_struct files_stat;
 
 struct inodes_stat_t {
 	int nr_inodes;
 	int nr_unused;
 	int dummy[5];
 };
 extern struct inodes_stat_t inodes_stat;
 
 extern int max_super_blocks, nr_super_blocks;
 extern int leases_enable, dir_notify_enable, lease_break_time;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 1
 
 
 
 =20
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/current.h" 1
 
 
 
 register struct task_struct *current __asm__("$8");
 
 
 # 11 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/system.h" 1
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/pal.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 5 "/usr/src/linux-2.4.2/include/asm/system.h" 2
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 struct el_common {
 	unsigned int	size;		=20
 	int		sbz1	: 30;	=20
 	int		err2	:  1;	=20
 	int		retry	:  1;	=20
 	unsigned int	proc_offset;	=20
 	unsigned int	sys_offset;	=20
 	unsigned long	code;		=20
 };
 
 =20
 
 
 
 
 struct el_common_EV5_uncorrectable_mcheck {
         unsigned long   shadow[8];        =20
         unsigned long   paltemp[24];      =20
         unsigned long   exc_addr;         =20
         unsigned long   exc_sum;          =20
         unsigned long   exc_mask;         =20
         unsigned long   pal_base;         =20
         unsigned long   isr;              =20
         unsigned long   icsr;             =20
         unsigned long   ic_perr_stat;     =20
 
         unsigned long   dc_perr_stat;     =20
 
 
 
 
         unsigned long   va;               =20
         unsigned long   mm_stat;          =20
 
         unsigned long   sc_addr;          =20
 
 
         unsigned long   sc_stat;          =20
 
         unsigned long   bc_tag_addr;      =20
         unsigned long   ei_addr;          =20
 
         unsigned long   fill_syndrome;    =20
         unsigned long   ei_stat;          =20
 
 
         unsigned long   ld_lock;          =20
 };
 
 struct el_common_EV6_mcheck {
 	unsigned int FrameSize;		=20
 	unsigned int FrameFlags;	=20
 	unsigned int CpuOffset;		=20
 	unsigned int SystemOffset;	=20
 	unsigned int MCHK_Code;
 	unsigned int MCHK_Frame_Rev;
 	unsigned long I_STAT;		=20
 	unsigned long DC_STAT;		=20
 	unsigned long C_ADDR;
 	unsigned long DC1_SYNDROME;
 	unsigned long DC0_SYNDROME;
 	unsigned long C_STAT;
 	unsigned long C_STS;
 	unsigned long RESERVED0;
 	unsigned long EXC_ADDR;
 	unsigned long IER_CM;
 	unsigned long ISUM;
 	unsigned long MM_STAT;
 	unsigned long PAL_BASE;
 	unsigned long I_CTL;
 	unsigned long PCTX;
 };
 
 extern void halt(void) __attribute__((noreturn));
 
 
 
 
 
 
 
 
 
 
 
 
 extern struct task_struct* alpha_switch_to(unsigned long, struct =
 task_struct*);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 enum implver_enum {
 	IMPLVER_EV4,
 	IMPLVER_EV5,
 	IMPLVER_EV6
 };
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 enum amask_enum {
 	AMASK_BWX =3D (1UL << 0),
 	AMASK_FIX =3D (1UL << 1),
 	AMASK_MAX =3D (1UL << 8),
 	AMASK_PRECISE_TRAP =3D (1UL << 9),
 };
 
 
 
 
 
 
 
 # 211 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 
 # 222 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 
 # 234 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 
 # 247 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 
 # 261 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 static inline void  cflush (  unsigned long  arg0)	{	register   unsigned =
 long  __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	"call_pal %1 =
 # ""cflush"	: "=3Dr"(__r16)	: "i"(1  ), "0"(__r16)	: "$1", "$22", "$23", =
 "$24", "$25");	} ;
 static inline   unsigned long   rdmces (void)	{	register   unsigned long =
  __r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "rdmces"	=
 :"=3Dr" (__r0)	:"i" (16  )	:"$1", "$16", "$22", "$23", "$24", "$25");	=
 return __r0;	} ;
 static inline   unsigned long   rdps (void)	{	register   unsigned long  =
 __r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "rdps"	=
 :"=3Dr" (__r0)	:"i" (54  )	:"$1", "$16", "$22", "$23", "$24", "$25");	=
 return __r0;	} ;
 static inline   unsigned long   rdusp (void)	{	register   unsigned long  =
 __r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "rdusp"	=
 :"=3Dr" (__r0)	:"i" (58  )	:"$1", "$16", "$22", "$23", "$24", "$25");	=
 return __r0;	} ;
 static inline   unsigned long   swpipl (  unsigned long  arg0)	{	=
 register   unsigned long  __r0 __asm__("$0");	register   unsigned long  =
 __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	"call_pal %2 # =
 ""swpipl"	: "=3Dr"(__r16), "=3Dr"(__r0)	: "i"(53  ), "0"(__r16)	: "$1", =
 "$22", "$23", "$24", "$25");	return __r0;	} ;
 static inline   unsigned long   whami (void)	{	register   unsigned long  =
 __r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "whami"	=
 :"=3Dr" (__r0)	:"i" (60  )	:"$1", "$16", "$22", "$23", "$24", "$25");	=
 return __r0;	} ;
 static inline void  wrent (  void*  arg0,   unsigned long  arg1)	{	=
 register   void*  __r16 __asm__("$16") =3D arg0;	register   unsigned =
 long  __r17 __asm__("$17") =3D arg1;	__asm__ __volatile__(	"call_pal %2 =
 # ""wrent"	: "=3Dr"(__r16), "=3Dr"(__r17)	: "i"(52  ), "0"(__r16), =
 "1"(__r17)	: "$1", "$22", "$23", "$24", "$25");	} ;
 static inline void  wripir (  unsigned long  arg0)	{	register   unsigned =
 long  __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	"call_pal %1 =
 # ""wripir"	: "=3Dr"(__r16)	: "i"(13  ), "0"(__r16)	: "$1", "$22", =
 "$23", "$24", "$25");	} ;
 static inline void  wrkgp (  unsigned long  arg0)	{	register   unsigned =
 long  __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	"call_pal %1 =
 # ""wrkgp"	: "=3Dr"(__r16)	: "i"(55  ), "0"(__r16)	: "$1", "$22", "$23", =
 "$24", "$25");	} ;
 static inline void  wrmces (  unsigned long  arg0)	{	register   unsigned =
 long  __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	"call_pal %1 =
 # ""wrmces"	: "=3Dr"(__r16)	: "i"(17  ), "0"(__r16)	: "$1", "$22", =
 "$23", "$24", "$25");	} ;
 static inline   unsigned long   wrperfmon (  unsigned long  arg0,   =
 unsigned long  arg1)	{	register   unsigned long  __r0 __asm__("$0");	=
 register   unsigned long  __r16 __asm__("$16") =3D arg0;	register   =
 unsigned long  __r17 __asm__("$17") =3D arg1;	__asm__ __volatile__(	=
 "call_pal %3 # ""wrperfmon"	: "=3Dr"(__r16), "=3Dr"(__r17), "=3Dr"(__r0)	=
 : "i"(57  ), "0"(__r16), "1"(__r17)	: "$1", "$22", "$23", "$24", "$25");	=
 return __r0;	} ;
 static inline void  wrusp (  unsigned long  arg0)	{	register   unsigned =
 long  __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	"call_pal %1 =
 # ""wrusp"	: "=3Dr"(__r16)	: "i"(56  ), "0"(__r16)	: "$1", "$22", "$23", =
 "$24", "$25");	} ;
 static inline void  wrvptptr (  unsigned long  arg0)	{	register   =
 unsigned long  __r16 __asm__("$16") =3D arg0;	__asm__ __volatile__(	=
 "call_pal %1 # ""wrvptptr"	: "=3Dr"(__r16)	: "i"(45  ), "0"(__r16)	: =
 "$1", "$22", "$23", "$24", "$25");	} ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 323 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 # 346 "/usr/src/linux-2.4.2/include/asm/system.h"
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 extern __inline__ unsigned long
 __xchg_u32(volatile int *m, unsigned long val)
 {
 	unsigned long dummy;
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%4\n"
 	"	bis $31,%3,%1\n"
 	"	stl_c %1,%2\n"
 	"	beq %1,2f\n"
 
 
 
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	: "=3D&r" (val), "=3D&r" (dummy), "=3Dm" (*m)
 	: "rI" (val), "m" (*m) : "memory");
 
 	return val;
 }
 
 extern __inline__ unsigned long
 __xchg_u64(volatile long *m, unsigned long val)
 {
 	unsigned long dummy;
 
 	__asm__ __volatile__(
 	"1:	ldq_l %0,%4\n"
 	"	bis $31,%3,%1\n"
 	"	stq_c %1,%2\n"
 	"	beq %1,2f\n"
 
 
 
 	".subsection 2\n"
 	"2:	br 1b\n"
 	".previous"
 	: "=3D&r" (val), "=3D&r" (dummy), "=3Dm" (*m)
 	: "rI" (val), "m" (*m) : "memory");
 
 	return val;
 }
 
 =20
 
 extern void __xchg_called_with_bad_pointer(void);
 
 static __inline__ unsigned long
 __xchg(volatile void *ptr, unsigned long x, int size)
 {
 	switch (size) {
 		case 4:
 			return __xchg_u32(ptr, x);
 		case 8:
 			return __xchg_u64(ptr, x);
 	}
 	__xchg_called_with_bad_pointer();
 	return x;
 }
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 extern __inline__ unsigned long
 __cmpxchg_u32(volatile int *m, int old, int new)
 {
 	unsigned long prev, cmp;
 
 	__asm__ __volatile__(
 	"1:	ldl_l %0,%5\n"
 	"	cmpeq %0,%3,%1\n"
 	"	beq %1,2f\n"
 	"	mov %4,%1\n"
 	"	stl_c %1,%2\n"
 	"	beq %1,3f\n"
 
 
 
 	"2:\n"
 	".subsection 2\n"
 	"3:	br 1b\n"
 	".previous"
 	: "=3D&r"(prev), "=3D&r"(cmp), "=3Dm"(*m)
 	: "r"((long) old), "r"(new), "m"(*m) : "memory");
 
 	return prev;
 }
 
 extern __inline__ unsigned long
 __cmpxchg_u64(volatile long *m, unsigned long old, unsigned long new)
 {
 	unsigned long prev, cmp;
 
 	__asm__ __volatile__(
 	"1:	ldq_l %0,%5\n"
 	"	cmpeq %0,%3,%1\n"
 	"	beq %1,2f\n"
 	"	mov %4,%1\n"
 	"	stq_c %1,%2\n"
 	"	beq %1,3f\n"
 
 
 
 	"2:\n"
 	".subsection 2\n"
 	"3:	br 1b\n"
 	".previous"
 	: "=3D&r"(prev), "=3D&r"(cmp), "=3Dm"(*m)
 	: "r"((long) old), "r"(new), "m"(*m) : "memory");
 
 	return prev;
 }
 
 =20
 
 extern void __cmpxchg_called_with_bad_pointer(void);
 
 static __inline__ unsigned long
 __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int =
 size)
 {
 	switch (size) {
 		case 4:
 			return __cmpxchg_u32(ptr, old, new);
 		case 8:
 			return __cmpxchg_u64(ptr, old, new);
 	}
 	__cmpxchg_called_with_bad_pointer();
 	return old;
 }
 
 
 
 
 
 
 
 
 
 
 
 
 # 12 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 2
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/compiler.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 14 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 2
 
 
 
 
 
 struct semaphore {
 	=20
 	atomic_t count __attribute__((aligned(8)));
 	atomic_t waking;		=20
 
 	wait_queue_head_t wait;
 
 
 
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline void sema_init(struct semaphore *sem, int val)
 {
 	=20
 
 
 
 
 
 	(( &sem->count )->counter =3D (  val )) ;
 	(( &sem->waking )->counter =3D (  -1 )) ;
 	init_waitqueue_head(&sem->wait);
 
 
 
 }
 
 static inline void init_MUTEX (struct semaphore *sem)
 {
 	sema_init(sem, 1);
 }
 
 static inline void init_MUTEX_LOCKED (struct semaphore *sem)
 {
 	sema_init(sem, 0);
 }
 
 extern void down(struct semaphore *);
 extern void __down_failed(struct semaphore *);
 extern int  down_interruptible(struct semaphore *);
 extern int  __down_failed_interruptible(struct semaphore *);
 extern int  down_trylock(struct semaphore *);
 extern void up(struct semaphore *);
 extern void __up_wakeup(struct semaphore *);
 
 =20
 
 
 
 
 
 static inline void __down(struct semaphore *sem)
 {
 	long count =3D atomic_sub_return(1,( &sem->count )) ;
 	if (( count < 0 ) )
 		__down_failed(sem);
 }
 
 static inline int __down_interruptible(struct semaphore *sem)
 {
 	long count =3D atomic_sub_return(1,( &sem->count )) ;
 	if (( count < 0 ) )
 		return __down_failed_interruptible(sem);
 	return 0;
 }
 
 =20
 
 
 
 
 
 
 static inline int __down_trylock(struct semaphore * sem)
 {
 	long ret, tmp, tmp2, sub;
 
 	=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 	__asm__ __volatile__(
 		"1:	ldq_l	%1,%4\n"
 		"	lda	%3,1\n"
 		"	addl	%1,0,%2\n"
 		"	sll	%3,32,%3\n"
 		"	cmple	%2,0,%0\n"
 		"	cmovge	%2,0,%3\n"
 		"	cmplt	%1,0,%2\n"
 		"	addq	%3,1,%3\n"
 		"	and	%0,%2,%0\n"
 		"	bne	%0,2f\n"
 		"	subq	%1,%3,%1\n"
 		"	stq_c	%1,%4\n"
 		"	beq	%1,3f\n"
 		"2:	mb\n"
 		".subsection 2\n"
 		"3:	br	1b\n"
 		".previous"
 		: "=3D&r"(ret), "=3D&r"(tmp), "=3D&r"(tmp2), "=3D&r"(sub)
 		: "m"(*sem)
 		: "memory");
 
 	return ret;
 }
 
 static inline void __up(struct semaphore *sem)
 {
 	long ret, tmp, tmp2, tmp3;
 
 	=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 	__asm__ __volatile__(
 		"	mb\n"
 		"1:	ldq_l	%1,%4\n"
 		"	addl	%1,1,%0\n"
 		"	zapnot	%1,0xf0,%2\n"
 		"	addq	%2,%5,%3\n"
 		"	cmovle	%0,%3,%2\n"
 		"	zapnot	%0,0x0f,%1\n"
 		"	bis	%1,%2,%1\n"
 		"	stq_c	%1,%4\n"
 		"	beq	%1,3f\n"
 		"2:\n"
 		".subsection 2\n"
 		"3:	br	1b\n"
 		".previous"
 		: "=3D&r"(ret), "=3D&r"(tmp), "=3D&r"(tmp2), "=3D&r"(tmp3)
 		: "m"(*sem), "r"(0x0000000100000000)
 		: "memory");
 
 	if (( ret <=3D 0 ) )
 		__up_wakeup(sem);
 }
 
 
 extern inline void down(struct semaphore *sem)
 {
 	__down(sem);
 }
 extern inline int down_interruptible(struct semaphore *sem)
 {
 	return __down_interruptible(sem);
 }
 extern inline int down_trylock(struct semaphore *sem)
 {
 	return __down_trylock(sem);
 }
 extern inline void up(struct semaphore *sem)
 {
 	__up(sem);
 }
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct rw_semaphore {
 	atomic_t		count;
 	=20
 
 	unsigned		granted;
 	wait_queue_head_t	wait;
 	wait_queue_head_t	write_bias_wait;
 
 
 
 
 
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline void init_rwsem(struct rw_semaphore *sem)
 {
 	(( &sem->count )->counter =3D (  0x01000000  )) ;
 	sem->granted =3D 0;
 	init_waitqueue_head(&sem->wait);
 	init_waitqueue_head(&sem->write_bias_wait);
 
 
 
 
 
 }
 
 extern void down_read(struct rw_semaphore *);
 extern void down_write(struct rw_semaphore *);
 extern void up_read(struct rw_semaphore *);
 extern void up_write(struct rw_semaphore *);
 extern void __down_read_failed(struct rw_semaphore *, int);
 extern void __down_write_failed(struct rw_semaphore *, int);
 extern void __rwsem_wake(struct rw_semaphore *, int);
 
 static inline void __down_read(struct rw_semaphore *sem)
 {
 	long count =3D atomic_sub_return(1,( &sem->count )) ;
 	if (( count < 0 ) )
 		__down_read_failed(sem, count);
 }
 
 static inline void __down_write(struct rw_semaphore *sem)
 {
 	long count =3D atomic_sub_return(0x01000000 , &sem->count);
 	if (( count !=3D 0 ) )
 		__down_write_failed(sem, count);
 }
 
 =20
 
 
 
 static inline void __up_read(struct rw_semaphore *sem)
 {
 	long count;
 	__asm__ __volatile__("mb": : :"memory") ;
 	count =3D atomic_add_return(1,( &sem->count )) ;
 	if (( count =3D=3D 0 ) )
 		__rwsem_wake(sem, 0);
 }
 
 =20
 
 
 static inline void __up_write(struct rw_semaphore *sem)
 {
 	long count, wake;
 	__asm__ __volatile__("mb": : :"memory") ;
 	count =3D atomic_add_return(0x01000000 , &sem->count);
 
 	=20
 	wake =3D ((int)(count - 0x01000000 ) < 0) && count >=3D 0;
 	if (( wake ) )
 		__rwsem_wake(sem, count);
 }
 
 
 extern inline void down_read(struct rw_semaphore *sem)
 {
 	__down_read(sem);
 }
 extern inline void down_write(struct rw_semaphore *sem)
 {
 	__down_write(sem);
 }
 extern inline void up_read(struct rw_semaphore *sem)
 {
 	__up_read(sem);
 }
 extern inline void up_write(struct rw_semaphore *sem)
 {
 	__up_write(sem);
 }
 
 
 
 # 199 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/byteorder.h" 1
 
 
 
 
 
 
 
 static __inline __u32 __attribute__((__const)) __arch__swab32(__u32 x)
 {
 	=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 	__u64 t0, t1, t2, t3;
 
 	__asm__("inslh %1, 7, %0"	=20
 		: "=3Dr"(t0) : "r"(x));
 	__asm__("inswl %1, 3, %0"	=20
 		: "=3Dr"(t1) : "r"(x));
 
 	t1 |=3D t0;			=20
 	t2 =3D t1 >> 16;			=20
 	t0 =3D t1 & 0xFF00FF00;		=20
 	t3 =3D t2 & 0x00FF00FF;		=20
 	t1 =3D t0 + t3;			=20
 
 	return t1;
 }
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/byteorder/little_endian.h" 1
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 # 38 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h"
 
 
 # 52 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h"
 
 
 
 
 
 
 
 
 
 
 
 
 # 73 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h"
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern __inline__ __const__ __u16 __fswab16(__u16 x)
 {
 	return ({ __u16 __tmp =3D ( x ) ; ({ __u16 __x =3D ( __tmp ); ((__u16)( =
 (((__u16)(__x) & (__u16)0x00ffU) << 8) | (((__u16)(__x) & =
 (__u16)0xff00U) >> 8) )); }) ; }) ;
 }
 extern __inline__ __u16 __swab16p(__u16 *x)
 {
 	return ({ __u16 __tmp =3D ( *( x ) ) ; ({ __u16 __x =3D ( __tmp ); =
 ((__u16)( (((__u16)(__x) & (__u16)0x00ffU) << 8) | (((__u16)(__x) & =
 (__u16)0xff00U) >> 8) )); }) ; })  ;
 }
 extern __inline__ void __swab16s(__u16 *addr)
 {
 	do { *( addr ) =3D ({ __u16 __tmp =3D ( *( ( addr ) ) ) ; ({ __u16 __x =
 =3D ( __tmp ); ((__u16)( (((__u16)(__x) & (__u16)0x00ffU) << 8) | =
 (((__u16)(__x) & (__u16)0xff00U) >> 8) )); }) ; })  ; } while (0) ;
 }
 
 extern __inline__ __const__ __u32 __fswab32(__u32 x)
 {
 	return __arch__swab32 (x);
 }
 extern __inline__ __u32 __swab32p(__u32 *x)
 {
 	return __arch__swab32 (*( x )) ;
 }
 extern __inline__ void __swab32s(__u32 *addr)
 {
 	do { *( addr ) =3D __arch__swab32 (*( ( addr ) )) ; } while (0) ;
 }
 
 
 extern __inline__ __const__ __u64 __fswab64(__u64 x)
 {
 
 
 
 
 
 	return ({ __u64 __tmp =3D ( x ) ; ({ __u64 __x =3D ( __tmp ); ((__u64)( =
 (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) | =
 (__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) | =
 (__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) | =
 (__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) <<  8) | =
 (__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >>  8) | =
 (__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) | =
 (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) | =
 (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }) ; }) =
 ;
 
 }
 extern __inline__ __u64 __swab64p(__u64 *x)
 {
 	return ({ __u64 __tmp =3D ( *( x ) ) ; ({ __u64 __x =3D ( __tmp ); =
 ((__u64)( (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) | =
 (__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) | =
 (__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) | =
 (__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) <<  8) | =
 (__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >>  8) | =
 (__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) | =
 (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) | =
 (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }) ; }) =
  ;
 }
 extern __inline__ void __swab64s(__u64 *addr)
 {
 	do { *( addr ) =3D ({ __u64 __tmp =3D ( *( ( addr ) ) ) ; ({ __u64 __x =
 =3D ( __tmp ); ((__u64)( (__u64)(((__u64)(__x) & =
 (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)(__x) & =
 (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)(__x) & =
 (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)(__x) & =
 (__u64)0x00000000ff000000ULL) <<  8) | (__u64)(((__u64)(__x) & =
 (__u64)0x000000ff00000000ULL) >>  8) | (__u64)(((__u64)(__x) & =
 (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(__x) & =
 (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)(__x) & =
 (__u64)0xff00000000000000ULL) >> 56) )); }) ; })  ; } while (0) ;
 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 11 "/usr/src/linux-2.4.2/include/linux/byteorder/little_endian.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/byteorder/generic.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 extern __u32			ntohl(__u32);
 extern __u32			htonl(__u32);
 
 
 
 
 extern unsigned short int	ntohs(unsigned short int);
 extern unsigned short int	htons(unsigned short int);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 66 "/usr/src/linux-2.4.2/include/linux/byteorder/little_endian.h" 2
 
 
 
 # 46 "/usr/src/linux-2.4.2/include/asm/byteorder.h" 2
 
 
 
 # 200 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 extern void update_atime (struct inode *);
 
 
 extern void buffer_init(unsigned long);
 extern void inode_init(unsigned long);
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 struct buffer_head {
 	=20
 	struct buffer_head *b_next;	=20
 	unsigned long b_blocknr;	=20
 	unsigned short b_size;		=20
 	unsigned short b_list;		=20
 	kdev_t b_dev;			=20
 
 	atomic_t b_count;		=20
 	kdev_t b_rdev;			=20
 	unsigned long b_state;		=20
 	unsigned long b_flushtime;	=20
 
 	struct buffer_head *b_next_free;=20
 	struct buffer_head *b_prev_free;=20
 	struct buffer_head *b_this_page;=20
 	struct buffer_head *b_reqnext;	=20
 
 	struct buffer_head **b_pprev;	=20
 	char * b_data;			=20
 	struct page *b_page;		=20
 	void (*b_end_io)(struct buffer_head *bh, int uptodate); =20
  	void *b_private;		=20
 
 	unsigned long b_rsector;	=20
 	wait_queue_head_t b_wait;
 
 	struct inode *	     b_inode;
 	struct list_head     b_inode_buffers;	=20
 };
 
 typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
 void init_buffer(struct buffer_head *, bh_end_io_t *, void *);
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern void set_bh_page(struct buffer_head *bh, struct page *page, =
 unsigned long offset);
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/pipe_fs_i.h" 1
 
 
 
 
 struct pipe_inode_info {
 	wait_queue_head_t wait;
 	char *base;
 	unsigned int start;
 	unsigned int readers;
 	unsigned int writers;
 	unsigned int waiting_readers;
 	unsigned int waiting_writers;
 	unsigned int r_counter;
 	unsigned int w_counter;
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 void pipe_wait(struct inode * inode);
 
 struct inode* pipe_new(struct inode* inode);
 
 
 # 279 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/minix_fs_i.h" 1
 
 
 
 =20
 
 
 struct minix_inode_info {
 	union {
 		__u16 i1_data[16];
 		__u32 i2_data[16];
 	} u;
 };
 
 
 # 280 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ext2_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 struct ext2_inode_info {
 	__u32	i_data[15];
 	__u32	i_flags;
 	__u32	i_faddr;
 	__u8	i_frag_no;
 	__u8	i_frag_size;
 	__u16	i_osync;
 	__u32	i_file_acl;
 	__u32	i_dir_acl;
 	__u32	i_dtime;
 	__u32	not_used_1;	=20
 	__u32	i_block_group;
 	__u32	i_next_alloc_block;
 	__u32	i_next_alloc_goal;
 	__u32	i_prealloc_block;
 	__u32	i_prealloc_count;
 	__u32	i_high_size;
 	int	i_new_inode:1;	=20
 };
 
 
 # 281 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/hpfs_fs_i.h" 1
 
 
 
 struct hpfs_inode_info {
 	unsigned long mmu_private;
 	ino_t i_parent_dir;	=20
 	unsigned i_dno;		=20
 	unsigned i_dpos;	=20
 	unsigned i_dsubdno;	=20
 	unsigned i_file_sec;	=20
 	unsigned i_disk_sec;	=20
 	unsigned i_n_secs;	=20
 	unsigned i_ea_size;	=20
 	unsigned i_conv : 2;	=20
 	unsigned i_ea_mode : 1;	=20
 	unsigned i_ea_uid : 1;	=20
 	unsigned i_ea_gid : 1;	=20
 	unsigned i_dirty : 1;
 	struct semaphore i_sem;	=20
 	loff_t **i_rddir_off;
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 =20
 
 
 
 
 
 # 282 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ntfs_fs_i.h" 1
 
 
 
 =20
 struct ntfs_attribute;
 struct ntfs_sb_info;
 
 =20
 
 
 typedef u8  ntfs_u8;
 typedef u16 ntfs_u16;
 typedef u32 ntfs_u32;
 typedef u64 ntfs_u64;
 typedef s8  ntfs_s8;
 typedef s16 ntfs_s16;
 typedef s32 ntfs_s32;
 typedef s64 ntfs_s64;
 
 
 
 
 typedef __kernel_mode_t ntmode_t;
 
 
 
 typedef uid_t ntfs_uid_t;
 
 
 
 typedef gid_t ntfs_gid_t;
 
 
 
 typedef __kernel_size_t ntfs_size_t;
 
 
 
 typedef __kernel_time_t ntfs_time_t;
 
 
 =20
 
 
 typedef unsigned short     ntfs_wchar_t;
 
 =20
 
 
 typedef unsigned long long ntfs_offset_t;
 
 =20
 
 
 typedef unsigned long long ntfs_time64_t;
 
 =20
 
 
 typedef unsigned int ntfs_cluster_t;
 
 
 =20
 struct ntfs_inode_info{
 	unsigned long mmu_private;
 	struct ntfs_sb_info *vol;
 	int i_number;                =20
 	unsigned sequence_number;
 	unsigned char* attr;         =20
 	int attr_count;              =20
 	struct ntfs_attribute *attrs;
 	int record_count;            =20
 	=20
 
 	int *records;
 	union{
 		struct{
 			int recordsize;
 			int clusters_per_record;
 		}index;
 	} u;=09
 };
 
 
 # 283 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/msdos_fs_i.h" 1
 
 
 
 =20
 
 
 
 struct msdos_inode_info {
 	unsigned long mmu_private;
 	int i_start;	=20
 	int i_logstart;	=20
 	int i_attrs;	=20
 	int i_ctime_ms;	=20
 	int i_location;	=20
 	struct inode *i_fat_inode;	=20
 	struct list_head i_fat_hash;	=20
 };
 
 
 # 284 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/umsdos_fs_i.h" 1
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct dir_locking_info {
 	wait_queue_head_t p;
 	short int looking;	=20
 	short int creating;	=20
 
 
 
 	long pid;		=20
 
 };
 
 struct umsdos_inode_info {
 	struct msdos_inode_info msdos_info;
 	struct dir_locking_info dir_info;
 	int i_patched;			=20
 	int i_is_hlink;			=20
 	off_t pos;			=20
 };
 
 
 # 285 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/iso_fs_i.h" 1
 
 
 
 =20
 
 
 struct iso_inode_info {
 	unsigned int i_first_extent;
 	unsigned char i_file_format;
 	unsigned long i_next_section_ino;
 	off_t i_section_size;
 };
 
 
 # 286 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/nfs_fs_i.h" 1
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/nfs.h" 1
 =20
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/sunrpc/msg_prot.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 enum rpc_auth_flavor {
 	RPC_AUTH_NULL  =3D 0,
 	RPC_AUTH_UNIX  =3D 1,
 	RPC_AUTH_SHORT =3D 2,
 	RPC_AUTH_DES   =3D 3,
 	RPC_AUTH_KRB   =3D 4,
 };
 
 enum rpc_msg_type {
 	RPC_CALL =3D 0,
 	RPC_REPLY =3D 1
 };
 
 enum rpc_reply_stat {
 	RPC_MSG_ACCEPTED =3D 0,
 	RPC_MSG_DENIED =3D 1
 };
 
 enum rpc_accept_stat {
 	RPC_SUCCESS =3D 0,
 	RPC_PROG_UNAVAIL =3D 1,
 	RPC_PROG_MISMATCH =3D 2,
 	RPC_PROC_UNAVAIL =3D 3,
 	RPC_GARBAGE_ARGS =3D 4,
 	RPC_SYSTEM_ERR =3D 5
 };
 
 enum rpc_reject_stat {
 	RPC_MISMATCH =3D 0,
 	RPC_AUTH_ERROR =3D 1
 };
 
 enum rpc_auth_stat {
 	RPC_AUTH_OK =3D 0,
 	RPC_AUTH_BADCRED =3D 1,
 	RPC_AUTH_REJECTEDCRED =3D 2,
 	RPC_AUTH_BADVERF =3D 3,
 	RPC_AUTH_REJECTEDVERF =3D 4,
 	RPC_AUTH_TOOWEAK =3D 5
 };
 
 
 
 
 
 
 
 
 
 # 10 "/usr/src/linux-2.4.2/include/linux/nfs.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
  enum nfs_stat {
 	NFS_OK =3D 0,			=20
 	NFSERR_PERM =3D 1,		=20
 	NFSERR_NOENT =3D 2,		=20
 	NFSERR_IO =3D 5,			=20
 	NFSERR_NXIO =3D 6,		=20
 	NFSERR_EAGAIN =3D 11,		=20
 	NFSERR_ACCES =3D 13,		=20
 	NFSERR_EXIST =3D 17,		=20
 	NFSERR_XDEV =3D 18,		=20
 	NFSERR_NODEV =3D 19,		=20
 	NFSERR_NOTDIR =3D 20,		=20
 	NFSERR_ISDIR =3D 21,		=20
 	NFSERR_INVAL =3D 22,		=20
 	NFSERR_FBIG =3D 27,		=20
 	NFSERR_NOSPC =3D 28,		=20
 	NFSERR_ROFS =3D 30,		=20
 	NFSERR_MLINK =3D 31,		=20
 	NFSERR_OPNOTSUPP =3D 45,		=20
 	NFSERR_NAMETOOLONG =3D 63,	=20
 	NFSERR_NOTEMPTY =3D 66,		=20
 	NFSERR_DQUOT =3D 69,		=20
 	NFSERR_STALE =3D 70,		=20
 	NFSERR_REMOTE =3D 71,		=20
 	NFSERR_WFLUSH =3D 99,		=20
 	NFSERR_BADHANDLE =3D 10001,	=20
 	NFSERR_NOT_SYNC =3D 10002,	=20
 	NFSERR_BAD_COOKIE =3D 10003,	=20
 	NFSERR_NOTSUPP =3D 10004,		=20
 	NFSERR_TOOSMALL =3D 10005,	=20
 	NFSERR_SERVERFAULT =3D 10006,	=20
 	NFSERR_BADTYPE =3D 10007,		=20
 	NFSERR_JUKEBOX =3D 10008		=20
  };
 =20
 =20
 
 enum nfs_ftype {
 	NFNON =3D 0,
 	NFREG =3D 1,
 	NFDIR =3D 2,
 	NFBLK =3D 3,
 	NFCHR =3D 4,
 	NFLNK =3D 5,
 	NFSOCK =3D 6,
 	NFBAD =3D 7,
 	NFFIFO =3D 8
 };
 
 
 =20
 
 
 
 struct nfs_fh {
 	unsigned short		size;
 	unsigned char		data[64 ];
 };
 
 =20
 
 
 
 
 
 
 enum nfs3_stable_how {
 	NFS_UNSTABLE =3D 0,
 	NFS_DATA_SYNC =3D 1,
 	NFS_FILE_SYNC =3D 2
 };
 
 
 # 6 "/usr/src/linux-2.4.2/include/linux/nfs_fs_i.h" 2
 
 
 =20
 
 
 struct nfs_inode_info {
 	=20
 
 
 	__u64 fsid;
 	__u64 fileid;
 
 	=20
 
 
 	struct nfs_fh		fh;
 
 	=20
 
 
 	unsigned short		flags;
 
 	=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 	unsigned long		read_cache_jiffies;
 	__u64			read_cache_ctime;
 	__u64			read_cache_mtime;
 	__u64			read_cache_atime;
 	__u64			read_cache_isize;
 	unsigned long		attrtimeo;
 	unsigned long		attrtimeo_timestamp;
 
 	=20
 
 
 
 	__u32			cookieverf[2];
 
 	=20
 
 
 	struct list_head	read;
 	struct list_head	dirty;
 	struct list_head	commit;
 	struct list_head	writeback;
 
 	unsigned int		nread,
 				ndirty,
 				ncommit,
 				npages;
 
 	=20
 	struct inode		*hash_next,
 				*hash_prev;
 	unsigned long		nextscan;
 };
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 struct nfs_lock_info {
 	u32		state;
 	u32		flags;
 	struct nlm_host	*host;
 };
 
 =20
 
 
 
 
 
 # 287 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/sysv_fs_i.h" 1
 
 
 
 =20
 
 
 struct sysv_inode_info {
 	u32 i_data[10+1+1+1];	=20
 
 
 
 
 };
 
 
 
 # 288 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/affs_fs_i.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/a.out.h" 1
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/a.out.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 struct filehdr
 {
 	=20
 	__u16 f_magic, f_nscns;
 	__u32 f_timdat;
 	__u64 f_symptr;
 	__u32 f_nsyms;
 	__u16 f_opthdr, f_flags;
 };
 
 struct aouthdr
 {
 	__u64 info;		=20
 	__u64 tsize;
 	__u64 dsize;
 	__u64 bsize;
 	__u64 entry;
 	__u64 text_start;	=20
 	__u64 data_start;
 	__u64 bss_start;
 	__u32 gprmask, fprmask;	=20
 	__u64 gpvalue;
 };
 
 struct scnhdr
 {
 	char	s_name[8];
 	__u64	s_paddr;
 	__u64	s_vaddr;
 	__u64	s_size;
 	__u64	s_scnptr;
 	__u64	s_relptr;
 	__u64	s_lnnoptr;
 	__u16	s_nreloc;
 	__u16	s_nlnno;
 	__u32	s_flags;
 };
 
 struct exec
 {
 	=20
 	struct filehdr		fh;
 	struct aouthdr		ah;
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 8 "/usr/src/linux-2.4.2/include/linux/a.out.h" 2
 
 
 
 
 =20
 enum machine_type {
 
 
 
   M_OLDSUN2 =3D 0,
 
 
 
 
   M_68010 =3D 1,
 
 
 
 
   M_68020 =3D 2,
 
 
 
 
   M_SPARC =3D 3,
 
   =20
   M_386 =3D 100,
   M_MIPS1 =3D 151,	=20
   M_MIPS2 =3D 152		=20
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 =20
 
 =20
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =0C
 
 struct nlist {
   union {
     char *n_name;
     struct nlist *n_next;
     long n_strx;
   } n_un;
   unsigned char n_type;
   char n_other;
   short n_desc;
   unsigned long n_value;
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 =0C
 
 =20
 
 
 
 
 struct relocation_info
 {
   =20
   int r_address;
   =20
   unsigned int r_symbolnum:24;
   =20
 
 
   unsigned int r_pcrel:1;
   =20
 
   unsigned int r_length:2;
   =20
 
 
 
 
 
   unsigned int r_extern:1;
   =20
 
 
 
 
 
 
   unsigned int r_pad:4;
 
 };
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/affs_fs_i.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/time.h" 1
 
 
 
 
 
 
 
 
 struct timespec {
 	time_t	tv_sec;		=20
 	long	tv_nsec;	=20
 };
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 static __inline__ unsigned long
 timespec_to_jiffies(struct timespec *value)
 {
 	unsigned long sec =3D value->tv_sec;
 	long nsec =3D value->tv_nsec;
 
 	if (sec >=3D (((~0UL >> 1)-1)  / 1024 ))
 		return ((~0UL >> 1)-1) ;
 	nsec +=3D 1000000000L / 1024  - 1;
 	nsec /=3D 1000000000L / 1024 ;
 	return 1024  * sec + nsec;
 }
 
 static __inline__ void
 jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
 {
 	value->tv_nsec =3D (jiffies % 1024 ) * (1000000000L / 1024 );
 	value->tv_sec =3D jiffies / 1024 ;
 }
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline unsigned long
 mktime (unsigned int year, unsigned int mon,
 	unsigned int day, unsigned int hour,
 	unsigned int min, unsigned int sec)
 {
 	if (0 >=3D (int) (mon -=3D 2)) {	=20
 		mon +=3D 12;		=20
 		year -=3D 1;
 	}
 
 	return (((
 		(unsigned long) (year/4 - year/100 + year/400 + 367*mon/12 + day) +
 			year*365 - 719499
 	    )*24 + hour =20
 	  )*60 + min =20
 	)*60 + sec; =20
 }
 
 
 
 
 struct timeval {
 	time_t		tv_sec;		=20
 	suseconds_t	tv_usec;	=20
 };
 
 struct timezone {
 	int	tz_minuteswest;	=20
 	int	tz_dsttime;	=20
 };
 
 
 
 
 extern void do_gettimeofday(struct timeval *tv);
 extern void do_settimeofday(struct timeval *tv);
 extern void get_fast_time(struct timeval *tv);
 extern void (*do_get_fast_time)(struct timeval *);
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 struct  itimerspec {
         struct  timespec it_interval;    =20
         struct  timespec it_value;       =20
 };
 
 struct	itimerval {
 	struct	timeval it_interval;	=20
 	struct	timeval it_value;	=20
 };
 
 
 # 5 "/usr/src/linux-2.4.2/include/linux/affs_fs_i.h" 2
 
 
 
 
 
 struct key_cache {
 	struct timeval	 kc_lru_time;	=20
 	s32	 kc_first;		=20
 	s32	 kc_last;		=20
 	s32	 kc_this_key;		=20
 	int	 kc_this_seq;		=20
 	s32	 kc_next_key;		=20
 	s32	 kc_keys[73 ];	=20
 };
 
 
 
 struct ext_cache {
 	struct key_cache  kc[4];	=20
 	s32	 ec[((1UL << 13 )  - 4 * sizeof(struct key_cache) - 4) / 4 ];		=20
 	int	 max_ext;		=20
 };
 
 =20
 
 
 struct affs_inode_info {
 	unsigned long mmu_private;
 	u32	 i_protect;			=20
 	s32	 i_parent;			=20
 	s32	 i_original;			=20
 	s32	 i_data[16 ];	=20
 	struct ext_cache *i_ec;			=20
 	int	 i_cache_users;			=20
 	int	 i_lastblock;			=20
 	short	 i_pa_cnt;			=20
 	short	 i_pa_next;			=20
 	short	 i_pa_last;			=20
 	short	 i_zone;			=20
 	unsigned char i_hlink;			=20
 	unsigned char i_pad;
 };
 
 
 # 289 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ufs_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct ufs_inode_info {
 	union {
 		__u32	i_data[15];
 		__u8	i_symlink[4*15];
 	} i_u1;
 	__u64	i_size;
 	__u32	i_flags;
 	__u32	i_gen;
 	__u32	i_shadow;
 	__u32	i_unused1;
 	__u32	i_unused2;
 	__u32	i_oeftflag;
 	__u16	i_osync;
 	__u32	i_lastfrag;
 };
 
 
 # 290 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/efs_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 typedef	int32_t		efs_block_t;
 typedef uint32_t	efs_ino_t;
 
 
 
 =20
 
 
 typedef union extent_u {
 	unsigned char raw[8];
 	struct extent_s {
 		unsigned int	ex_magic:8;	=20
 		unsigned int	ex_bn:24;	=20
 		unsigned int	ex_length:8;	=20
 		unsigned int	ex_offset:24;	=20
 	} cooked;
 } efs_extent;
 
 typedef struct edevs {
 	short		odev;
 	unsigned int	ndev;
 } efs_devs;
 
 =20
 
 
 
 struct	efs_dinode {
 	u_short		di_mode;	=20
 	short		di_nlink;	=20
 	u_short		di_uid;		=20
 	u_short		di_gid;		=20
 	int32_t		di_size;	=20
 	int32_t		di_atime;	=20
 	int32_t		di_mtime;	=20
 	int32_t		di_ctime;	=20
 	uint32_t	di_gen;		=20
 	short		di_numextents;	=20
 	u_char		di_version;	=20
 	u_char		di_spare;	=20
 	union di_addr {
 		efs_extent	di_extents[12 ];
 		efs_devs	di_dev;	=20
 	} di_u;
 };
 
 =20
 struct efs_inode_info {
 	int		numextents;
 	int		lastextent;
 
 	efs_extent	extents[12 ];
 };
 
 
 
 # 291 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/coda_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/coda.h" 1
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 98 "/usr/src/linux-2.4.2/include/linux/coda.h"
 
 
 
 
 
 
 
 
 
 
 
 typedef unsigned long long u_quad_t;
 
 
 
 
 
 
 
 
 
 
 
 
 # 130 "/usr/src/linux-2.4.2/include/linux/coda.h"
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
  =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 struct venus_dirent {
         unsigned long	d_fileno;		=20
         unsigned short	d_reclen;		=20
         unsigned char 	d_type;			=20
         unsigned char	d_namlen;		=20
         char		d_name[255  + 1];=20
 };
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 typedef u_long VolumeId;
 typedef u_long VnodeId;
 typedef u_long Unique_t;
 typedef u_long FileVersion;
 
 
 
 
 typedef struct ViceFid {
     VolumeId Volume;
     VnodeId Vnode;
     Unique_t Unique;
 } ViceFid;
 
 
 
 
 static __inline__ ino_t  coda_f2i(struct ViceFid *fid)
 {
 	if ( ! fid )=20
 		return 0;=20
 	if (fid->Vnode =3D=3D 0xfffffffe || fid->Vnode =3D=3D 0xffffffff)
 		return ((fid->Volume << 20) | (fid->Unique & 0xfffff));
 	else
 		return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20));
 }
 =09
 
 
 
 
 
 
 
 
 typedef u_int32_t vuid_t;
 typedef u_int32_t vgid_t;
 
 
 
 
 struct coda_cred {
     vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid; =20
     vgid_t cr_groupid,     cr_egid, cr_sgid, cr_fsgid; =20
 };
 
 
 
 
 =20
 
 
 enum coda_vtype	{ C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, =
 C_VSOCK, C_VFIFO, C_VBAD };
 
 struct coda_vattr {
 	long     	va_type;	=20
 	u_short		va_mode;	=20
 	short		va_nlink;	=20
 	vuid_t		va_uid;		=20
 	vgid_t		va_gid;		=20
 	long		va_fileid;	=20
 	u_quad_t	va_size;	=20
 	long		va_blocksize;	=20
 	struct timespec	va_atime;	=20
 	struct timespec	va_mtime;	=20
 	struct timespec	va_ctime;	=20
 	u_long		va_gen;		=20
 	u_long		va_flags;	=20
 	u_quad_t 	        va_rdev;	=20
 	u_quad_t	va_bytes;	=20
 	u_quad_t	va_filerev;	=20
 };
 
 
 
 =20
 struct coda_statfs {
     int32_t f_blocks;
     int32_t f_bfree;
     int32_t f_bavail;
     int32_t f_files;
     int32_t f_ffree;
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 struct coda_in_hdr {
     unsigned long opcode;
     unsigned long unique;	    =20
     u_short pid;		    =20
     u_short pgid;		    =20
     u_short sid;                    =20
     struct coda_cred cred;	    =20
 };
 
 =20
 struct coda_out_hdr {
     unsigned long opcode;
     unsigned long unique;=09
     unsigned long result;
 };
 
 =20
 struct coda_root_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
 };
 
 struct coda_root_in {
     struct coda_in_hdr in;
 };
 
 =20
 struct coda_open_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int	flags;
 };
 
 struct coda_open_out {
     struct coda_out_hdr oh;
     u_quad_t 	dev;
     ino_t	inode;
 };
 
 
 =20
 struct coda_close_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int	flags;
 };
 
 struct coda_close_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_ioctl_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     int	cmd;
     int	len;
     int	rwflag;
     char *data;			=20
 };
 
 struct coda_ioctl_out {
     struct coda_out_hdr oh;
     int	len;
     caddr_t	data;		=20
 };
 
 
 =20
 struct coda_getattr_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_getattr_out {
     struct coda_out_hdr oh;
     struct coda_vattr attr;
 };
 
 
 =20
 struct coda_setattr_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     struct coda_vattr attr;
 };
 
 struct coda_setattr_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_access_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int	flags;
 };
 
 struct coda_access_out {
     struct coda_out_hdr out;
 };
 
 
 =20
 
 
 
 =20
 struct  coda_lookup_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int         name;		=20
     int         flags;=09
 };
 
 struct coda_lookup_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     int	vtype;
 };
 
 
 =20
 struct coda_create_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
     struct coda_vattr attr;
     int excl;
     int mode;
     int 	name;		=20
 };
 
 struct coda_create_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     struct coda_vattr attr;
 };
 
 
 =20
 struct coda_remove_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int name;		=20
 };
 
 struct coda_remove_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_link_in {
     struct coda_in_hdr ih;
     ViceFid sourceFid;          =20
     ViceFid destFid;            =20
     int tname;		=20
 };
 
 struct coda_link_out {
     struct coda_out_hdr out;
 };
 
 
 =20
 struct coda_rename_in {
     struct coda_in_hdr ih;
     ViceFid	sourceFid;
     int 	srcname;
     ViceFid destFid;
     int 	destname;
 };
 
 struct coda_rename_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_mkdir_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     struct coda_vattr attr;
     int	   name;		=20
 };
 
 struct coda_mkdir_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     struct coda_vattr attr;
 };
 
 
 =20
 struct coda_rmdir_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int name;		=20
 };
 
 struct coda_rmdir_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_symlink_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;          =20
     int srcname;
     struct coda_vattr attr;
     int tname;
 };
 
 struct coda_symlink_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_readlink_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_readlink_out {
     struct coda_out_hdr oh;
     int	count;
     caddr_t	data;		=20
 };
 
 
 =20
 struct coda_fsync_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_fsync_out {
     struct coda_out_hdr out;
 };
 
 =20
 struct coda_vget_in {
     struct coda_in_hdr ih;
     ViceFid VFid;
 };
 
 struct coda_vget_out {
     struct coda_out_hdr oh;
     ViceFid VFid;
     int	vtype;
 };
 
 
 =20
 =20
 =20
 
 =20
 =20
 struct coda_purgeuser_out {
     struct coda_out_hdr oh;
     struct coda_cred cred;
 };
 
 =20
 =20
 struct coda_zapfile_out { =20
     struct coda_out_hdr oh;
     ViceFid CodaFid;
 };
 
 =20
  =09
 struct coda_zapdir_out {	 =20
     struct coda_out_hdr oh;
     ViceFid CodaFid;
 };
 
 =20
  =09
 struct coda_zapvnode_out {=20
     struct coda_out_hdr oh;
     struct coda_cred cred;
     ViceFid VFid;
 };
 
 =20
  =09
 struct coda_purgefid_out {=20
     struct coda_out_hdr oh;
     ViceFid CodaFid;
 };
 
 =20
  =09
 struct coda_replace_out { =20
     struct coda_out_hdr oh;
     ViceFid NewFid;
     ViceFid OldFid;
 };
 
 =20
 struct coda_open_by_fd_in {
     struct coda_in_hdr ih;
     ViceFid    VFid;
     int        flags;
 };
 
 struct coda_open_by_fd_out {
     struct coda_out_hdr oh;
     int fd;
 };
 
 =20
 struct coda_open_by_path_in {
     struct coda_in_hdr ih;
     ViceFid	VFid;
     int	flags;
 };
 
 struct coda_open_by_path_out {
     struct coda_out_hdr oh;
 	int path;
 };
 
 =20
 struct coda_statfs_in {
     struct coda_in_hdr in;
 };
 
 struct coda_statfs_out {
     struct coda_out_hdr oh;
     struct coda_statfs stat;
 };
 
 =20
 
 
 
 
 
 
 union inputArgs {
     struct coda_in_hdr ih;		=20
     struct coda_open_in coda_open;
     struct coda_close_in coda_close;
     struct coda_ioctl_in coda_ioctl;
     struct coda_getattr_in coda_getattr;
     struct coda_setattr_in coda_setattr;
     struct coda_access_in coda_access;
     struct coda_lookup_in coda_lookup;
     struct coda_create_in coda_create;
     struct coda_remove_in coda_remove;
     struct coda_link_in coda_link;
     struct coda_rename_in coda_rename;
     struct coda_mkdir_in coda_mkdir;
     struct coda_rmdir_in coda_rmdir;
     struct coda_symlink_in coda_symlink;
     struct coda_readlink_in coda_readlink;
     struct coda_fsync_in coda_fsync;
     struct coda_vget_in coda_vget;
     struct coda_open_by_fd_in coda_open_by_fd;
     struct coda_open_by_path_in coda_open_by_path;
     struct coda_statfs_in coda_statfs;
 };
 
 union outputArgs {
     struct coda_out_hdr oh;		=20
     struct coda_root_out coda_root;
     struct coda_open_out coda_open;
     struct coda_ioctl_out coda_ioctl;
     struct coda_getattr_out coda_getattr;
     struct coda_lookup_out coda_lookup;
     struct coda_create_out coda_create;
     struct coda_mkdir_out coda_mkdir;
     struct coda_readlink_out coda_readlink;
     struct coda_vget_out coda_vget;
     struct coda_purgeuser_out coda_purgeuser;
     struct coda_zapfile_out coda_zapfile;
     struct coda_zapdir_out coda_zapdir;
     struct coda_zapvnode_out coda_zapvnode;
     struct coda_purgefid_out coda_purgefid;
     struct coda_replace_out coda_replace;
     struct coda_open_by_fd_out coda_open_by_fd;
     struct coda_open_by_path_out coda_open_by_path;
     struct coda_statfs_out coda_statfs;
 };   =20
 
 union coda_downcalls {
     =20
     =20
     struct coda_purgeuser_out purgeuser;
     struct coda_zapfile_out zapfile;
     struct coda_zapdir_out zapdir;
     struct coda_zapvnode_out zapvnode;
     struct coda_purgefid_out purgefid;
     struct coda_replace_out replace;
 };
 
 
 =20
 
 
 
 
 struct ViceIoctl {
         caddr_t in, out;        =20
         short in_size;          =20
         short out_size;         =20
 };
 
 struct PioctlData {
         const char *path;
         int follow;
         struct ViceIoctl vi;
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 struct coda_mount_data {
 	int		version;
 	int		fd;       =20
 };
 
 
 
 # 14 "/usr/src/linux-2.4.2/include/linux/coda_fs_i.h" 2
 
 
 
 =20
 
 
 struct coda_inode_info {
         struct ViceFid     c_fid;	=20
         u_short	           c_flags;     =20
 	struct list_head   c_volrootlist; =20
 	struct list_head   c_cilist;    =20
         struct inode      *c_vnode;     =20
         unsigned int       c_contcount; =20
         struct coda_cred   c_cached_cred; =20
         unsigned int       c_cached_perm; =20
         int                c_magic;     =20
 };
 
 =20
 
 
 
 
 
 int coda_cnode_make(struct inode **, struct ViceFid *, struct =
 super_block *);
 int coda_cnode_makectl(struct inode **inode, struct super_block *sb);
 struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb);
 void coda_replace_fid(struct inode *, ViceFid *, ViceFid *);
 
 
 
 # 292 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/romfs_fs_i.h" 1
 
 
 
 =20
 
 struct romfs_inode_info {
 	unsigned long i_metasize;	=20
 	unsigned long i_dataoffset;	=20
 };
 
 
 # 293 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/shmem_fs.h" 1
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 typedef struct {
 	unsigned long val;
 } swp_entry_t;
 
 struct shmem_inode_info {
 	spinlock_t	lock;
 	swp_entry_t	i_direct[16 ]; =20
 	swp_entry_t   **i_indirect; =20
 	unsigned long	swapped;
 	int		locked;     =20
 	struct list_head	list;
 };
 
 struct shmem_sb_info {
 	unsigned long max_blocks;   =20
 	unsigned long free_blocks;  =20
 	unsigned long max_inodes;   =20
 	unsigned long free_inodes;  =20
 	spinlock_t    stat_lock;
 };
 
 
 # 294 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/smb_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 struct smb_inode_info {
 
 	=20
 
 
 
         unsigned int open;	=20
 	__u16 fileid;		=20
 	__u16 attr;		=20
 
 	__u16 access;		=20
 	__u16 flags;		=20
 	unsigned long oldmtime;	=20
 	unsigned long closed;	=20
 	unsigned openers;	=20
 };
 
 
 
 # 295 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/hfs_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 struct hfs_inode_info {
 	int				magic;     =20
 
 	unsigned long			mmu_private;
 	struct hfs_cat_entry		*entry;
 
 	=20
 	struct hfs_fork 		*fork;
 	int				convert;
 
 	=20
 	ino_t				file_type;
 	char				dir_size;
 
 	=20
 	const struct hfs_hdr_layout	*default_layout;
 	struct hfs_hdr_layout		*layout;
 
 	=20
 	int                             tz_secondswest;
 
         =20
         void (*d_drop_op)(struct dentry *, const ino_t);
 };
 
 
 # 296 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/adfs_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 struct adfs_inode_info {
 	unsigned long	mmu_private;
 	unsigned long	parent_id;	=20
 	__u32		loadaddr;	=20
 	__u32		execaddr;	=20
 	unsigned int	filetype;	=20
 	unsigned int	attr;		=20
 	int		stamped:1;	=20
 };
 
 
 # 297 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/qnx4_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/qnxtypes.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 typedef __u16 qnx4_nxtnt_t;
 typedef __u8  qnx4_ftype_t;
 
 typedef struct {
 	__u32 xtnt_blk;
 	__u32 xtnt_size;
 } qnx4_xtnt_t;
 
 typedef __u16 qnx4_mode_t;
 typedef __u16 qnx4_muid_t;
 typedef __u16 qnx4_mgid_t;
 typedef __u32 qnx4_off_t;
 typedef __u16 qnx4_nlink_t;
 
 
 # 14 "/usr/src/linux-2.4.2/include/linux/qnx4_fs_i.h" 2
 
 
 =20
 
 
 struct qnx4_inode_info {
 	char		i_reserved[16];	=20
 	qnx4_off_t	i_size;		=20
 	qnx4_xtnt_t	i_first_xtnt;	=20
 	__u32		i_xblk;		=20
 	__s32		i_ftime;	=20
 	__s32		i_mtime;	=20
 	__s32		i_atime;	=20
 	__s32		i_ctime;	=20
 	qnx4_nxtnt_t	i_num_xtnts;	=20
 	qnx4_mode_t	i_mode;		=20
 	qnx4_muid_t	i_uid;		=20
 	qnx4_mgid_t	i_gid;		=20
 	qnx4_nlink_t	i_nlink;	=20
 	__u8		i_zero[4];	=20
 	qnx4_ftype_t	i_type;		=20
 	__u8		i_status;	=20
 	unsigned long	mmu_private;
 };
 
 
 # 298 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/reiserfs_fs_i.h" 1
 
 
 
 =20
 
 
 struct reiserfs_page_list ;
 
 struct reiserfs_inode_info {
   __u32 i_key [4];=20
  =20
 				=20
 
 
 
 
   int i_version;  =20
 
   int i_pack_on_close ; =20
 
   __u32 i_first_direct_byte; =20
 
   =20
 
 
 
 
 
   struct reiserfs_page_list *i_converted_page ;
 
   =20
 
 
 
 
   int i_conversion_trans_id ;
 
 				=20
 
 
 
 
 
 
 
 
 
 
 
 
 
   =20
   int i_prealloc_block;
   int i_prealloc_count;
 
 				=20
 
   =20
   int nopack;
 };
 
 
 
 # 299 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/bfs_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 =20
 
 
 struct bfs_inode_info {
 	unsigned long i_dsk_ino; =20
 	unsigned long i_sblock;
 	unsigned long i_eblock;
 };
 
 
 # 300 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/udf_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 typedef struct
 {
 	__u32 logicalBlockNum;
 	__u16 partitionReferenceNum;
 } lb_addr;
 
 
 struct udf_inode_info
 {
 	long i_uatime;
 	long i_umtime;
 	long i_uctime;
 	=20
 	lb_addr i_location;
 	__u64 i_unique;
 	__u32 i_lenEAttr;
 	__u32 i_lenAlloc;
 	__u32 i_next_alloc_block;
 	__u32 i_next_alloc_goal;
 	unsigned i_alloc_type : 3;
 	unsigned i_extended_fe : 1;
 	unsigned i_strat_4096 : 1;
 	unsigned i_new_inode : 1;
 	unsigned reserved : 26;
 };
 
 
 
 =20
 
 
 
 
 
 
 # 301 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ncp_fs_i.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 struct ncp_inode_info {
 	__u32	dirEntNum __attribute__((packed));
 	__u32	DosDirNum __attribute__((packed));
 	__u32	volNumber __attribute__((packed));
 	__u32	nwattr;
 	struct semaphore open_sem;
 	atomic_t	opened;
 	int	access;
 	__u32	server_file_handle __attribute__((packed));
 	__u8	open_create_action __attribute__((packed));
 	__u8	file_handle[6] __attribute__((packed));
 };
 
 
 
 
 # 302 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/proc_fs_i.h" 1
 struct proc_inode_info {
 	struct task_struct *task;
 	int type;
 	union {
 		int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount =
 **);
 		int (*proc_read)(struct task_struct *task, char *page);
 	} op;
 	struct file *file;
 };
 # 303 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/usbdev_fs_i.h" 1
 struct usb_device;
 struct usb_bus;
 
 struct usbdev_inode_info {
 	struct list_head dlist;
 	struct list_head slist;
 	union {
 		struct usb_device *dev;
 		struct usb_bus *bus;
 	} p;
 };
 # 304 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 struct iattr {
 	unsigned int	ia_valid;
 	umode_t		ia_mode;
 	uid_t		ia_uid;
 	gid_t		ia_gid;
 	loff_t		ia_size;
 	time_t		ia_atime;
 	time_t		ia_mtime;
 	time_t		ia_ctime;
 	unsigned int	ia_attr_flags;
 };
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/quota.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 extern int nr_dquots, nr_free_dquots;
 extern int max_dquots;
 extern int dquot_root_squash;
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 struct dqblk {
 	__u32 dqb_bhardlimit;	=20
 	__u32 dqb_bsoftlimit;	=20
 	__u32 dqb_curblocks;	=20
 	__u32 dqb_ihardlimit;	=20
 	__u32 dqb_isoftlimit;	=20
 	__u32 dqb_curinodes;	=20
 	time_t dqb_btime;		=20
 	time_t dqb_itime;		=20
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct dqstats {
 	__u32 lookups;
 	__u32 drops;
 	__u32 reads;
 	__u32 writes;
 	__u32 cache_hits;
 	__u32 allocated_dquots;
 	__u32 free_dquots;
 	__u32 syncs;
 };
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 struct dquot {
 	struct dquot *dq_next;		=20
 	struct dquot **dq_pprev;
 	struct list_head dq_free;	=20
 	struct dquot *dq_hash_next;	=20
 	struct dquot **dq_hash_pprev;	=20
 	wait_queue_head_t dq_wait;	=20
 	int dq_count;			=20
 
 	=20
 	struct super_block *dq_sb;	=20
 	unsigned int dq_id;		=20
 	kdev_t dq_dev;			=20
 	short dq_type;			=20
 	short dq_flags;			=20
 	unsigned long dq_referenced;	=20
 
 	struct dqblk dq_dqb;		=20
 };
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 # 208 "/usr/src/linux-2.4.2/include/linux/quota.h"
 
 
 # 355 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 
 =20
 
 
 struct page;
 struct address_space;
 
 struct address_space_operations {
 	int (*writepage)(struct page *);
 	int (*readpage)(struct file *, struct page *);
 	int (*sync_page)(struct page *);
 	int (*prepare_write)(struct file *, struct page *, unsigned, unsigned);
 	int (*commit_write)(struct file *, struct page *, unsigned, unsigned);
 	=20
 	int (*bmap)(struct address_space *, long);
 };
 
 struct address_space {
 	struct list_head	clean_pages;	=20
 	struct list_head	dirty_pages;	=20
 	struct list_head	locked_pages;	=20
 	unsigned long		nrpages;	=20
 	struct address_space_operations *a_ops;	=20
 	struct inode		*host;		=20
 	struct vm_area_struct	*i_mmap;	=20
 	struct vm_area_struct	*i_mmap_shared; =20
 	spinlock_t		i_shared_lock;  =20
 };
 
 struct block_device {
 	struct list_head	bd_hash;
 	atomic_t		bd_count;
 =20
 	dev_t			bd_dev;  =20
 	atomic_t		bd_openers;
 	const struct block_device_operations *bd_op;
 	struct semaphore	bd_sem;	=20
 };
 
 struct inode {
 	struct list_head	i_hash;
 	struct list_head	i_list;
 	struct list_head	i_dentry;
 =09
 	struct list_head	i_dirty_buffers;
 
 	unsigned long		i_ino;
 	atomic_t		i_count;
 	kdev_t			i_dev;
 	umode_t			i_mode;
 	nlink_t			i_nlink;
 	uid_t			i_uid;
 	gid_t			i_gid;
 	kdev_t			i_rdev;
 	loff_t			i_size;
 	time_t			i_atime;
 	time_t			i_mtime;
 	time_t			i_ctime;
 	unsigned long		i_blksize;
 	unsigned long		i_blocks;
 	unsigned long		i_version;
 	struct semaphore	i_sem;
 	struct semaphore	i_zombie;
 	struct inode_operations	*i_op;
 	struct file_operations	*i_fop;	=20
 	struct super_block	*i_sb;
 	wait_queue_head_t	i_wait;
 	struct file_lock	*i_flock;
 	struct address_space	*i_mapping;
 	struct address_space	i_data;=09
 	struct dquot		*i_dquot[2 ];
 	struct pipe_inode_info	*i_pipe;
 	struct block_device	*i_bdev;
 
 	unsigned long		i_dnotify_mask; =20
 	struct dnotify_struct	*i_dnotify; =20
 
 	unsigned long		i_state;
 
 	unsigned int		i_flags;
 	unsigned char		i_sock;
 
 	atomic_t		i_writecount;
 	unsigned int		i_attr_flags;
 	__u32			i_generation;
 	union {
 		struct minix_inode_info		minix_i;
 		struct ext2_inode_info		ext2_i;
 		struct hpfs_inode_info		hpfs_i;
 		struct ntfs_inode_info		ntfs_i;
 		struct msdos_inode_info		msdos_i;
 		struct umsdos_inode_info	umsdos_i;
 		struct iso_inode_info		isofs_i;
 		struct nfs_inode_info		nfs_i;
 		struct sysv_inode_info		sysv_i;
 		struct affs_inode_info		affs_i;
 		struct ufs_inode_info		ufs_i;
 		struct efs_inode_info		efs_i;
 		struct romfs_inode_info		romfs_i;
 		struct shmem_inode_info		shmem_i;
 		struct coda_inode_info		coda_i;
 		struct smb_inode_info		smbfs_i;
 		struct hfs_inode_info		hfs_i;
 		struct adfs_inode_info		adfs_i;
 		struct qnx4_inode_info		qnx4_i;
 		struct reiserfs_inode_info	reiserfs_i;
 		struct bfs_inode_info		bfs_i;
 		struct udf_inode_info		udf_i;
 		struct ncp_inode_info		ncpfs_i;
 		struct proc_inode_info		proc_i;
 		struct socket			socket_i;
 		struct usbdev_inode_info        usbdev_i;
 		void				*generic_ip;
 	} u;
 };
 
 struct fown_struct {
 	int pid;		=20
 	uid_t uid, euid;	=20
 	int signum;		=20
 };
 
 struct file {
 	struct list_head	f_list;
 	struct dentry		*f_dentry;
 	struct vfsmount         *f_vfsmnt;
 	struct file_operations	*f_op;
 	atomic_t		f_count;
 	unsigned int 		f_flags;
 	mode_t			f_mode;
 	loff_t			f_pos;
 	unsigned long 		f_reada, f_ramax, f_raend, f_ralen, f_rawin;
 	struct fown_struct	f_owner;
 	unsigned int		f_uid, f_gid;
 	int			f_error;
 
 	unsigned long		f_version;
 
 	=20
 	void			*private_data;
 };
 extern spinlock_t files_lock;
 
 
 
 
 
 
 extern int init_private_file(struct file *, struct dentry *, int);
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 typedef struct files_struct *fl_owner_t;
 
 struct file_lock {
 	struct file_lock *fl_next;	=20
 	struct list_head fl_link;	=20
 	struct list_head fl_block;	=20
 	fl_owner_t fl_owner;
 	unsigned int fl_pid;
 	wait_queue_head_t fl_wait;
 	struct file *fl_file;
 	unsigned char fl_flags;
 	unsigned char fl_type;
 	loff_t fl_start;
 	loff_t fl_end;
 
 	void (*fl_notify)(struct file_lock *);	=20
 	void (*fl_insert)(struct file_lock *);	=20
 	void (*fl_remove)(struct file_lock *);	=20
 
 	struct fasync_struct *	fl_fasync; =20
 
 	union {
 		struct nfs_lock_info	nfs_fl;
 	} fl_u;
 };
 
 =20
 
 
 
 
 
 
 extern struct list_head file_lock_list;
 
 # 1 "/usr/src/linux-2.4.2/include/linux/fcntl.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/fcntl.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 struct flock {
 	short l_type;
 	short l_whence;
 	__kernel_off_t l_start;
 	__kernel_off_t l_len;
 	__kernel_pid_t l_pid;
 };
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/fcntl.h" 2
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 # 556 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 extern int fcntl_getlk(unsigned int, struct flock *);
 extern int fcntl_setlk(unsigned int, unsigned int, struct flock *);
 
 extern int fcntl_getlk64(unsigned int, struct flock  *);
 extern int fcntl_setlk64(unsigned int, unsigned int, struct flock  *);
 
 =20
 extern void locks_init_lock(struct file_lock *);
 extern void locks_copy_lock(struct file_lock *, struct file_lock *);
 extern void locks_remove_posix(struct file *, fl_owner_t);
 extern void locks_remove_flock(struct file *);
 extern struct file_lock *posix_test_lock(struct file *, struct file_lock =
 *);
 extern int posix_lock_file(struct file *, struct file_lock *, unsigned =
 int);
 extern void posix_block_lock(struct file_lock *, struct file_lock *);
 extern void posix_unblock_lock(struct file_lock *);
 extern int __get_lease(struct inode *inode, unsigned int flags);
 extern time_t lease_get_mtime(struct inode *);
 extern int lock_may_read(struct inode *, loff_t start, unsigned long =
 count);
 extern int lock_may_write(struct inode *, loff_t start, unsigned long =
 count);
 
 struct fasync_struct {
 	int	magic;
 	int	fa_fd;
 	struct	fasync_struct	*fa_next; =20
 	struct	file 		*fa_file;
 };
 
 
 
 =20
 extern int fasync_helper(int, struct file *, int, struct fasync_struct =
 **);
 =20
 extern void kill_fasync(struct fasync_struct **, int, int);
 =20
 extern void __kill_fasync(struct fasync_struct *, int, int);
 
 struct nameidata {
 	struct dentry *dentry;
 	struct vfsmount *mnt;
 	struct qstr last;
 	unsigned int flags;
 	int last_type;
 };
 
 
 
 
 struct quota_mount_options
 {
 	unsigned int flags;			=20
 	struct semaphore dqio_sem;		=20
 	struct semaphore dqoff_sem;		=20
 	struct file *files[2 ];		=20
 	time_t inode_expire[2 ];		=20
 	time_t block_expire[2 ];		=20
 	char rsquash[2 ];		=20
 };
 
 =20
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/minix_fs_sb.h" 1
 
 
 
 =20
 
 
 struct minix_sb_info {
 			unsigned long s_ninodes;
 			unsigned long s_nzones;
 			unsigned long s_imap_blocks;
 			unsigned long s_zmap_blocks;
 			unsigned long s_firstdatazone;
 			unsigned long s_log_zone_size;
 			unsigned long s_max_size;
 			int s_dirsize;
 			int s_namelen;
 			int s_link_max;
 			struct buffer_head ** s_imap;
 			struct buffer_head ** s_zmap;
 			struct buffer_head * s_sbh;
 			struct minix_super_block * s_ms;
 			unsigned short s_mount_state;
 			unsigned short s_version;
 };
 
 
 # 622 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ext2_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 struct ext2_sb_info {
 	unsigned long s_frag_size;	=20
 	unsigned long s_frags_per_block;=20
 	unsigned long s_inodes_per_block;=20
 	unsigned long s_frags_per_group;=20
 	unsigned long s_blocks_per_group;=20
 	unsigned long s_inodes_per_group;=20
 	unsigned long s_itb_per_group;	=20
 	unsigned long s_gdb_count;	=20
 	unsigned long s_desc_per_block;	=20
 	unsigned long s_groups_count;	=20
 	struct buffer_head * s_sbh;	=20
 	struct ext2_super_block * s_es;	=20
 	struct buffer_head ** s_group_desc;
 	unsigned short s_loaded_inode_bitmaps;
 	unsigned short s_loaded_block_bitmaps;
 	unsigned long s_inode_bitmap_number[8 ];
 	struct buffer_head * s_inode_bitmap[8 ];
 	unsigned long s_block_bitmap_number[8 ];
 	struct buffer_head * s_block_bitmap[8 ];
 	unsigned long  s_mount_opt;
 	uid_t s_resuid;
 	gid_t s_resgid;
 	unsigned short s_mount_state;
 	unsigned short s_pad;
 	int s_addr_per_block_bits;
 	int s_desc_per_block_bits;
 	int s_inode_size;
 	int s_first_ino;
 };
 
 
 # 623 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/hpfs_fs_sb.h" 1
 
 
 
 struct hpfs_sb_info {
 	ino_t sb_root;			=20
 	unsigned sb_fs_size;		=20
 	unsigned sb_bitmaps;		=20
 	unsigned sb_dirband_start;	=20
 	unsigned sb_dirband_size;	=20
 	unsigned sb_dmap;		=20
 	unsigned sb_n_free;		=20
 	unsigned sb_n_free_dnodes;	=20
 	uid_t sb_uid;			=20
 	gid_t sb_gid;			=20
 	umode_t sb_mode;		=20
 	unsigned sb_conv : 2;		=20
 	unsigned sb_eas : 2;		=20
 	unsigned sb_err : 2;		=20
 	unsigned sb_chk : 2;		=20
 	unsigned sb_lowercase : 1;	=20
 	unsigned sb_was_error : 1;	=20
 	unsigned sb_chkdsk : 2;		=20
 	unsigned sb_rd_fnode : 2;	=20
 	unsigned sb_rd_inode : 2;	=20
 
 
 	wait_queue_head_t sb_iget_q;
 	unsigned char *sb_cp_table;	=20
 					=20
 					=20
 	unsigned *sb_bmp_dir;		=20
 	unsigned sb_c_bitmap;		=20
 	wait_queue_head_t sb_creation_de;=20
 
 	unsigned sb_creation_de_lock : 1;
 	=20
 	int sb_timeshift;
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 # 624 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ntfs_fs_sb.h" 1
 
 
 
 struct ntfs_sb_info{
 	=20
 	ntfs_uid_t uid;
 	ntfs_gid_t gid;
 	ntmode_t umask;
         unsigned int nct;
 	void *nls_map;
 	unsigned int ngt;
 	=20
 	ntfs_size_t partition_bias;	=20
 	=20
 	ntfs_u32 at_standard_information;
 	ntfs_u32 at_attribute_list;
 	ntfs_u32 at_file_name;
 	ntfs_u32 at_volume_version;
 	ntfs_u32 at_security_descriptor;
 	ntfs_u32 at_volume_name;
 	ntfs_u32 at_volume_information;
 	ntfs_u32 at_data;
 	ntfs_u32 at_index_root;
 	ntfs_u32 at_index_allocation;
 	ntfs_u32 at_bitmap;
 	ntfs_u32 at_symlink; =20
 	=20
 	int blocksize;
 	int clusterfactor;
 	int clustersize;
 	int mft_recordsize;
 	int mft_clusters_per_record;
 	int index_recordsize;
 	int index_clusters_per_record;
 	int mft_cluster;
 	=20
 	unsigned char *mft;
 	unsigned short *upcase;
 	unsigned int upcase_length;
 	=20
 	struct ntfs_inode_info *mft_ino;
 	struct ntfs_inode_info *mftmirr;
 	struct ntfs_inode_info *bitmap;
 	struct super_block *sb;
 };
 
 
 # 625 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/msdos_fs_sb.h" 1
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/fat_cvf.h" 1
 
 
 
 
 
 struct cvf_format
 { int cvf_version;
   char* cvf_version_text;
   unsigned long flags;
   int (*detect_cvf) (struct super_block*sb);
   int (*mount_cvf) (struct super_block*sb,char*options);
   int (*unmount_cvf) (struct super_block*sb);
   struct buffer_head* (*cvf_bread) (struct super_block*sb,int block);
   struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block);
   void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh);
   void (*cvf_mark_buffer_dirty) (struct super_block *sb,
                               struct buffer_head *bh);
   void (*cvf_set_uptodate) (struct super_block *sb,
                          struct buffer_head *bh,
                          int val);
   int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head =
 *bh);
   void (*cvf_ll_rw_block) (struct super_block *sb,
                         int opr,
                         int nbreq,
                         struct buffer_head *bh[32]);
   int (*fat_access) (struct super_block *sb,int nr,int new_value);
   int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int =
 bufsiz);
   int (*cvf_bmap) (struct inode *inode,int block);
   ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
   ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, =
 loff_t *);
   int (*cvf_mmap) (struct file *, struct vm_area_struct *);
   int (*cvf_readpage) (struct inode *, struct page *);
   int (*cvf_writepage) (struct inode *, struct page *);
   int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
                         unsigned int cmd, unsigned long arg);
   void (*zero_out_cluster) (struct inode*, int clusternr);
 };
 
 int register_cvf_format(struct cvf_format*cvf_format);
 int unregister_cvf_format(struct cvf_format*cvf_format);
 void dec_cvf_format_use_count_by_version(int version);
 int detect_cvf(struct super_block*sb,char*force);
 
 extern struct cvf_format *cvf_formats[];
 extern int cvf_format_use_count[];
 
 
 # 3 "/usr/src/linux-2.4.2/include/linux/msdos_fs_sb.h" 2
 
 
 =20
 
 
 
 struct fat_mount_options {
 	uid_t fs_uid;
 	gid_t fs_gid;
 	unsigned short fs_umask;
 	unsigned short codepage;  =20
 	char *iocharset;          =20
 	unsigned char name_check; =20
 	unsigned char conversion; =20
 	unsigned quiet:1,         =20
 		 showexec:1,      =20
 		 sys_immutable:1, =20
 		 dotsOK:1,        =20
 		 isvfat:1,        =20
 		 utf8:1,	  =20
 		 unicode_xlate:1, =20
 		 posixfs:1,       =20
 		 numtail:1,       =20
 		 atari:1,         =20
 		 fat32:1,	  =20
 		 nocase:1;	  =20
 };
 
 struct vfat_unicode {
 	unsigned char uni1;
 	unsigned char uni2;
 };
 
 struct msdos_sb_info {
 	unsigned short cluster_size; =20
 	unsigned short cluster_bits; =20
 	unsigned char fats,fat_bits; =20
 	unsigned short fat_start;
 	unsigned long fat_length;    =20
 	unsigned long dir_start;
 	unsigned short dir_entries;  =20
 	unsigned long data_start;    =20
 	unsigned long clusters;      =20
 	unsigned long root_cluster;  =20
 	unsigned long fsinfo_offset; =20
 	wait_queue_head_t fat_wait;
 	struct semaphore fat_lock;
 	int prev_free;               =20
 	int free_clusters;           =20
 	struct fat_mount_options options;
 	struct nls_table *nls_disk;  =20
 	struct nls_table *nls_io;    =20
 	struct cvf_format* cvf_format;
 	void *dir_ops;		     =20
 	void *private_data;=09
 };
 
 
 # 626 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/iso_fs_sb.h" 1
 
 
 
 =20
 
 
 struct isofs_sb_info {
 	unsigned long s_ninodes;
 	unsigned long s_nzones;
 	unsigned long s_firstdatazone;
 	unsigned long s_log_zone_size;
 	unsigned long s_max_size;
 =09
 	unsigned char s_high_sierra; =20
 	unsigned char s_mapping;
 	unsigned char s_rock;
 	unsigned char s_joliet_level;
 	unsigned char s_utf8;
 	unsigned char s_cruft; =20
 
 
 	unsigned char s_unhide;
 	unsigned char s_nosuid;
 	unsigned char s_nodev;
 	mode_t s_mode;
 	gid_t s_gid;
 	uid_t s_uid;
 	struct nls_table *s_nls_iocharset; =20
 };
 
 
 # 627 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/nfs_fs_sb.h" 1
 
 
 
 =20
 
 
 struct nfs_server {
 	struct rpc_clnt *	client;		=20
 	struct nfs_rpc_ops *	rpc_ops;	=20
 	int			flags;		=20
 	unsigned int		rsize;		=20
 	unsigned int		rpages;		=20
 	unsigned int		wsize;		=20
 	unsigned int		wpages;		=20
 	unsigned int		dtsize;		=20
 	unsigned int		bsize;		=20
 	unsigned int		acregmin;	=20
 	unsigned int		acregmax;
 	unsigned int		acdirmin;
 	unsigned int		acdirmax;
 	unsigned int		namelen;
 	char *			hostname;	=20
 	struct nfs_reqlist *	rw_requests;	=20
 };
 
 =20
 
 
 struct nfs_sb_info {
 	struct nfs_server	s_server;
 };
 
 
 # 628 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/sysv_fs_sb.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 struct sysv_sb_info {
 	int	       s_type;		=20
 	unsigned int   s_block_size;	=20
 	unsigned int   s_block_size_1;	=20
 	unsigned int   s_block_size_bits;	=20
 	unsigned int   s_block_size_inc_bits;	=20
 	unsigned int   s_block_size_dec_bits;	=20
 	char	       s_convert;	=20
 	char	       s_kludge_symlinks; =20
 	char	       s_truncate;	=20
 					=20
 	nlink_t        s_link_max;	=20
 	unsigned int   s_inodes_per_block;	=20
 	unsigned int   s_inodes_per_block_1;	=20
 	unsigned int   s_inodes_per_block_bits;	=20
 	unsigned int   s_ind_per_block;		=20
 	unsigned int   s_ind_per_block_1;	=20
 	unsigned int   s_ind_per_block_bits;	=20
 	unsigned int   s_ind_per_block_2;	=20
 	unsigned int   s_ind_per_block_2_1;	=20
 	unsigned int   s_ind_per_block_2_bits;	=20
 	unsigned int   s_ind_per_block_3;	=20
 	unsigned int   s_ind_per_block_block_size_1;	=20
 	unsigned int   s_ind_per_block_block_size_bits;	=20
 	unsigned int   s_ind_per_block_2_block_size_1;	=20
 	unsigned int   s_ind_per_block_2_block_size_bits; =20
 	unsigned int   s_ind0_size;		=20
 	unsigned int   s_ind1_size;		=20
 	unsigned int   s_ind2_size;		=20
 	unsigned int   s_toobig_block;		=20
 	unsigned int   s_block_base;	=20
 	unsigned short s_fic_size;	=20
 	unsigned short s_flc_size;	=20
 	=20
 	struct buffer_head *s_bh1;
 	struct buffer_head *s_bh2;
 	=20
 
 	char *         s_sbd1;		=20
 	char *         s_sbd2;		=20
 	u16            *s_sb_fic_count;	=20
         u16            *s_sb_fic_inodes; =20
 	u16            *s_sb_total_free_inodes; =20
 	u16            *s_sb_flc_count;	=20
 	u32	       *s_sb_flc_blocks; =20
 	u32            *s_sb_total_free_blocks;=20
 	u32            *s_sb_time;	=20
 	u32            *s_sb_state;	=20
 	=20
 
 	u32            s_firstinodezone; =20
 	u32            s_firstdatazone;	=20
 	u32            s_ninodes;	=20
 	u32            s_ndatazones;	=20
 	u32            s_nzones;	=20
 };
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 629 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/affs_fs_sb.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 struct affs_bm_info {
 	struct buffer_head *bm_bh;	=20
 	s32 bm_firstblk;		=20
 	s32 bm_key;			=20
 	int bm_count;			=20
 };
 
 struct affs_alloc_zone {
 	short az_size;			=20
 	short az_count;			=20
 	int az_free;			=20
 };
 
 struct affs_zone {
 	unsigned long z_ino;		=20
 	struct affs_bm_info *z_bm;	=20
 	int z_start;			=20
 	int z_end;			=20
 	int z_az_no;			=20
 	unsigned long z_lru_time;	=20
 };
 
 struct affs_sb_info {
 	int s_partition_size;		=20
 	int s_blksize;			=20
 	s32 s_root_block;		=20
 	int s_hashsize;			=20
 	unsigned long s_flags;		=20
 	s16 s_uid;			=20
 	s16 s_gid;			=20
 	umode_t s_mode;			=20
 	int s_reserved;			=20
 	struct buffer_head *s_root_bh;	=20
 	struct affs_bm_info *s_bitmap;	=20
 	int s_bm_count;			=20
 	int s_nextzone;			=20
 	int s_num_az;			=20
 	struct affs_zone *s_zones;	=20
 	struct affs_alloc_zone *s_alloc;=20
 	char *s_zonemap;		=20
 	char *s_prefix;			=20
 	int s_prefix_len;		=20
 	char s_volume[32];		=20
 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 630 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ufs_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ufs_fs.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 =20
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
            =20
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 struct ufs_timeval {
 	__s32	tv_sec;
 	__s32	tv_usec;
 };
 
 struct ufs_dir_entry {
 	__u32  d_ino;			=20
 	__u16  d_reclen;		=20
 	union {
 		__u16	d_namlen;		=20
 		struct {
 			__u8	d_type;		=20
 			__u8	d_namlen;	=20
 		} d_44;
 	} d_u;
 	__u8	d_name[255  + 1];	=20
 };
 
 struct ufs_csum {
 	__u32	cs_ndir;	=20
 	__u32	cs_nbfree;	=20
 	__u32	cs_nifree;	=20
 	__u32	cs_nffree;	=20
 };
 
 =20
 
 
 struct ufs_super_block {
 	__u32	fs_link;	=20
 	__u32	fs_rlink;	=20
 	__u32	fs_sblkno;	=20
 	__u32	fs_cblkno;	=20
 	__u32	fs_iblkno;	=20
 	__u32	fs_dblkno;	=20
 	__u32	fs_cgoffset;	=20
 	__u32	fs_cgmask;	=20
 	__u32	fs_time;	=20
 	__u32	fs_size;	=20
 	__u32	fs_dsize;	=20
 	__u32	fs_ncg;		=20
 	__u32	fs_bsize;	=20
 	__u32	fs_fsize;	=20
 	__u32	fs_frag;	=20
 =20
 	__u32	fs_minfree;	=20
 	__u32	fs_rotdelay;	=20
 	__u32	fs_rps;		=20
 =20
 	__u32	fs_bmask;	=20
 	__u32	fs_fmask;	=20
 	__u32	fs_bshift;	=20
 	__u32	fs_fshift;	=20
 =20
 	__u32	fs_maxcontig;	=20
 	__u32	fs_maxbpg;	=20
 =20
 	__u32	fs_fragshift;	=20
 	__u32	fs_fsbtodb;	=20
 	__u32	fs_sbsize;	=20
 	__u32	fs_csmask;	=20
 	__u32	fs_csshift;	=20
 	__u32	fs_nindir;	=20
 	__u32	fs_inopb;	=20
 	__u32	fs_nspf;	=20
 =20
 	__u32	fs_optim;	=20
 =20
 	union {
 		struct {
 			__u32	fs_npsect;	=20
 		} fs_sun;
 		struct {
 			__s32	fs_state;	=20
 		} fs_sunx86;
 	} fs_u1;
 	__u32	fs_interleave;	=20
 	__u32	fs_trackskew;	=20
 =20
 =20
 =20
 =20
 	__u32	fs_id[2];	=20
 =20
 	__u32	fs_csaddr;	=20
 	__u32	fs_cssize;	=20
 	__u32	fs_cgsize;	=20
 =20
 	__u32	fs_ntrak;	=20
 	__u32	fs_nsect;	=20
 	__u32	fs_spc;		=20
 =20
 	__u32	fs_ncyl;	=20
 =20
 	__u32	fs_cpg;		=20
 	__u32	fs_ipg;		=20
 	__u32	fs_fpg;		=20
 =20
 	struct ufs_csum fs_cstotal;	=20
 =20
 	__s8	fs_fmod;	=20
 	__s8	fs_clean;	=20
 	__s8	fs_ronly;	=20
 	__s8	fs_flags;	=20
 	__s8	fs_fsmnt[512 ];	=20
 =20
 	__u32	fs_cgrotor;	=20
 	__u32	fs_csp[31 ];	=20
 	__u32	fs_maxcluster;
 	__u32	fs_cpc;		=20
 	__u16	fs_opostbl[16][8];	 =09
 	union {
 		struct {
 			__s32	fs_sparecon[53];=20
 			__s32	fs_reclaim;
 			__s32	fs_sparecon2[1];
 			__s32	fs_state;	=20
 			__u32	fs_qbmask[2];	=20
 			__u32	fs_qfmask[2];	=20
 		} fs_sun;
 		struct {
 			__s32	fs_sparecon[53];=20
 			__s32	fs_reclaim;
 			__s32	fs_sparecon2[1];
 			__u32	fs_npsect;	=20
 			__u32	fs_qbmask[2];	=20
 			__u32	fs_qfmask[2];	=20
 		} fs_sunx86;
 		struct {
 			__s32	fs_sparecon[50];=20
 			__s32	fs_contigsumsize;=20
 			__s32	fs_maxsymlinklen;=20
 			__s32	fs_inodefmt;	=20
 			__u32	fs_maxfilesize[2];	=20
 			__u32	fs_qbmask[2];	=20
 			__u32	fs_qfmask[2];	=20
 			__s32	fs_state;	=20
 		} fs_44;
 	} fs_u2;
 	__s32	fs_postblformat;	=20
 	__s32	fs_nrpos;		=20
 	__s32	fs_postbloff;		=20
 	__s32	fs_rotbloff;		=20
 	__s32	fs_magic;		=20
 	__u8	fs_space[1];		=20
 };
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 struct	ufs_cylinder_group {
 	__u32	cg_link;		=20
 	__u32	cg_magic;		=20
 	__u32	cg_time;		=20
 	__u32	cg_cgx;			=20
 	__u16	cg_ncyl;		=20
 	__u16	cg_niblk;		=20
 	__u32	cg_ndblk;		=20
 	struct	ufs_csum cg_cs;		=20
 	__u32	cg_rotor;		=20
 	__u32	cg_frotor;		=20
 	__u32	cg_irotor;		=20
 	__u32	cg_frsum[(8192  / 1024 ) ];	=20
 	__u32	cg_btotoff;		=20
 	__u32	cg_boff;		=20
 	__u32	cg_iusedoff;		=20
 	__u32	cg_freeoff;		=20
 	__u32	cg_nextfreeoff;		=20
 	union {
 		struct {
 			__u32	cg_clustersumoff;	=20
 			__u32	cg_clusteroff;		=20
 			__u32	cg_nclusterblks;	=20
 			__u32	cg_sparecon[13];	=20
 		} cg_44;
 		__u32	cg_sparecon[16];	=20
 	} cg_u;
 	__u8	cg_space[1];		=20
 =20
 };
 
 =20
 
 
 struct ufs_inode {
 	__u16	ui_mode;		=20
 	__u16	ui_nlink;		=20
 	union {
 		struct {
 			__u16	ui_suid;	=20
 			__u16	ui_sgid;	=20
 		} oldids;
 		__u32	ui_inumber;		=20
 		__u32	ui_author;		=20
 	} ui_u1;
 	__u64	ui_size;		=20
 	struct ufs_timeval ui_atime;	=20
 	struct ufs_timeval ui_mtime;	=20
 	struct ufs_timeval ui_ctime;	=20
 	union {
 		struct {
 			__u32	ui_db[12 ];=20
 			__u32	ui_ib[3 ];=20
 		} ui_addr;
 		__u8	ui_symlink[4*(12 + 3 )];=20
 	} ui_u2;
 	__u32	ui_flags;		=20
 	__u32	ui_blocks;		=20
 	__u32	ui_gen;			=20
 	union {
 		struct {
 			__u32	ui_shadow;	=20
 			__u32	ui_uid;		=20
 			__u32	ui_gid;		=20
 			__u32	ui_oeftflag;	=20
 		} ui_sun;
 		struct {
 			__u32	ui_uid;		=20
 			__u32	ui_gid;		=20
 			__s32	ui_spare[2];	=20
 		} ui_44;
 		struct {
 			__u32	ui_uid;		=20
 			__u32	ui_gid;		=20
 			__u16	ui_modeh;	=20
 			__u16	ui_spare;	=20
 			__u32	ui_trans;	=20
 		} ui_hurd;
 	} ui_u3;
 };
 
 =20
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 extern void ufs_free_fragments (struct inode *, unsigned, unsigned);
 extern void ufs_free_blocks (struct inode *, unsigned, unsigned);
 extern unsigned ufs_new_fragments (struct inode *, u32 *, unsigned, =
 unsigned, unsigned, int *);
 
 =20
 extern struct ufs_cg_private_info * ufs_load_cylinder (struct =
 super_block *, unsigned);
 extern void ufs_put_cylinder (struct super_block *, unsigned);
 
 =20
 extern struct inode_operations ufs_dir_inode_operations;
 extern int ufs_check_dir_entry (const char *, struct inode *, struct =
 ufs_dir_entry *, struct buffer_head *, unsigned long);
 
 =20
 extern struct inode_operations ufs_file_inode_operations;
 extern struct file_operations ufs_file_operations;
 
 extern struct address_space_operations ufs_aops;
 
 =20
 extern void ufs_free_inode (struct inode *inode);
 extern struct inode * ufs_new_inode (const struct inode *, int, int *);
 
 =20
 extern int ufs_frag_map (struct inode *, int);
 extern void ufs_read_inode (struct inode *);
 extern void ufs_put_inode (struct inode *);
 extern void ufs_write_inode (struct inode *, int);
 extern int ufs_sync_inode (struct inode *);
 extern void ufs_delete_inode (struct inode *);
 extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, =
 int *);
 extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, =
 int *);
 
 =20
 extern struct file_operations ufs_dir_operations;
        =20
 =20
 extern struct file_system_type ufs_fs_type;
 extern void ufs_warning (struct super_block *, const char *, const char =
 *, ...) __attribute__ ((format (printf, 3, 4)));
 extern void ufs_error (struct super_block *, const char *, const char *, =
 ...) __attribute__ ((format (printf, 3, 4)));
 extern void ufs_panic (struct super_block *, const char *, const char *, =
 ...) __attribute__ ((format (printf, 3, 4)));
 extern void ufs_write_super (struct super_block *);
 
 =20
 extern struct inode_operations ufs_fast_symlink_inode_operations;
 
 =20
 extern void ufs_truncate (struct inode *);
 
 
 
 
 # 17 "/usr/src/linux-2.4.2/include/linux/ufs_fs_sb.h" 2
 
 
 =20
 
 
 
 struct ufs_buffer_head {
 	unsigned fragment;			=20
 	unsigned count;				=20
 	struct buffer_head * bh[(8192  / 1024 ) ];	=20
 };
 
 struct ufs_cg_private_info {
 	struct ufs_cylinder_group ucg;
 	__u32	c_cgx;		=20
 	__u16	c_ncyl;		=20
 	__u16	c_niblk;	=20
 	__u32	c_ndblk;	=20
 	__u32	c_rotor;	=20
 	__u32	c_frotor;	=20
 	__u32	c_irotor;	=20
 	__u32	c_btotoff;	=20
 	__u32	c_boff;		=20
 	__u32	c_iusedoff;	=20
 	__u32	c_freeoff;	=20
 	__u32	c_nextfreeoff;	=20
 	__u32	c_clustersumoff;=20
 	__u32	c_clusteroff;	=20
 	__u32	c_nclusterblks;	=20
 };=09
 
 struct ufs_sb_private_info {
 	struct ufs_buffer_head s_ubh; =20
 	__u32	s_sblkno;	=20
 	__u32	s_cblkno;	=20
 	__u32	s_iblkno;	=20
 	__u32	s_dblkno;	=20
 	__u32	s_cgoffset;	=20
 	__u32	s_cgmask;	=20
 	__u32	s_size;		=20
 	__u32	s_dsize;	=20
 	__u32	s_ncg;		=20
 	__u32	s_bsize;	=20
 	__u32	s_fsize;	=20
 	__u32	s_fpb;		=20
 	__u32	s_minfree;	=20
 	__u32	s_bmask;	=20
 	__u32	s_fmask;	=20
 	__u32	s_bshift;	=20
 	__u32   s_fshift;	=20
 	__u32	s_fpbshift;	=20
 	__u32	s_fsbtodb;	=20
 	__u32	s_sbsize;	=20
 	__u32   s_csmask;	=20
 	__u32	s_csshift;	=20
 	__u32	s_nindir;	=20
 	__u32	s_inopb;	=20
 	__u32	s_nspf;		=20
 	__u32	s_npsect;	=20
 	__u32	s_interleave;	=20
 	__u32	s_trackskew;	=20
 	__u32	s_csaddr;	=20
 	__u32	s_cssize;	=20
 	__u32	s_cgsize;	=20
 	__u32	s_ntrak;	=20
 	__u32	s_nsect;	=20
 	__u32	s_spc;		=20
 	__u32	s_ipg;		=20
 	__u32	s_fpg;		=20
 	__u32	s_cpc;		=20
 	__s32	s_contigsumsize;=20
 	__s64	s_qbmask;	=20
 	__s64	s_qfmask;	=20
 	__s32	s_postblformat;	=20
 	__s32	s_nrpos;	=20
         __s32	s_postbloff;	=20
 	__s32	s_rotbloff;	=20
 
 	__u32	s_fpbmask;	=20
 	__u32	s_apb;		=20
 	__u32	s_2apb;		=20
 	__u32	s_3apb;		=20
 	__u32	s_apbmask;	=20
 	__u32	s_apbshift;	=20
 	__u32	s_2apbshift;	=20
 	__u32	s_3apbshift;	=20
 	__u32	s_nspfshift;	=20
 	__u32	s_nspb;		=20
 	__u32	s_inopf;	=20
 	__u32	s_sbbase;	=20
 	__u32	s_bpf;		=20
 	__u32	s_bpfshift;	=20
 	__u32	s_bpfmask;	=20
 
 	__u32	s_maxsymlinklen;=20
 };
 
 
 
 
 
 struct ufs_sb_info {
 	struct ufs_sb_private_info * s_uspi;=09
 	struct ufs_csum	* s_csp[31 ];
 	unsigned s_swab;
 	unsigned s_flags;
 	struct buffer_head ** s_ucg;
 	struct ufs_cg_private_info * s_ucpi[8 ];=20
 	unsigned s_cgno[8 ];
 	unsigned short s_cg_loaded;
 	unsigned s_mount_opt;
 };
 
 =20
 
 
 
 
 
 struct ufs_super_block_first {
 	__u32	fs_link;
 	__u32	fs_rlink;
 	__u32	fs_sblkno;
 	__u32	fs_cblkno;
 	__u32	fs_iblkno;
 	__u32	fs_dblkno;
 	__u32	fs_cgoffset;
 	__u32	fs_cgmask;
 	__u32	fs_time;
 	__u32	fs_size;
 	__u32	fs_dsize;
 	__u32	fs_ncg;
 	__u32	fs_bsize;
 	__u32	fs_fsize;
 	__u32	fs_frag;
 	__u32	fs_minfree;
 	__u32	fs_rotdelay;
 	__u32	fs_rps;
 	__u32	fs_bmask;
 	__u32	fs_fmask;
 	__u32	fs_bshift;
 	__u32	fs_fshift;
 	__u32	fs_maxcontig;
 	__u32	fs_maxbpg;
 	__u32	fs_fragshift;
 	__u32	fs_fsbtodb;
 	__u32	fs_sbsize;
 	__u32	fs_csmask;
 	__u32	fs_csshift;
 	__u32	fs_nindir;
 	__u32	fs_inopb;
 	__u32	fs_nspf;
 	__u32	fs_optim;
 	union {
 		struct {
 			__u32	fs_npsect;
 		} fs_sun;
 		struct {
 			__s32	fs_state;
 		} fs_sunx86;
 	} fs_u1;
 	__u32	fs_interleave;
 	__u32	fs_trackskew;
 	__u32	fs_id[2];
 	__u32	fs_csaddr;
 	__u32	fs_cssize;
 	__u32	fs_cgsize;
 	__u32	fs_ntrak;
 	__u32	fs_nsect;
 	__u32	fs_spc;
 	__u32	fs_ncyl;
 	__u32	fs_cpg;
 	__u32	fs_ipg;
 	__u32	fs_fpg;
 	struct ufs_csum fs_cstotal;
 	__s8	fs_fmod;
 	__s8	fs_clean;
 	__s8	fs_ronly;
 	__s8	fs_flags;
 	__s8	fs_fsmnt[512  - 212];
 
 };
 
 struct ufs_super_block_second {
 	__s8	fs_fsmnt[212];
 	__u32	fs_cgrotor;
 	__u32	fs_csp[31 ];
 	__u32	fs_maxcluster;
 	__u32	fs_cpc;
 	__u16	fs_opostbl[82];
 };=09
 
 struct ufs_super_block_third {
 	__u16	fs_opostbl[46];
 	union {
 		struct {
 			__s32	fs_sparecon[53];=20
 			__s32	fs_reclaim;
 			__s32	fs_sparecon2[1];
 			__s32	fs_state;	=20
 			__u32	fs_qbmask[2];	=20
 			__u32	fs_qfmask[2];	=20
 		} fs_sun;
 		struct {
 			__s32	fs_sparecon[53];=20
 			__s32	fs_reclaim;
 			__s32	fs_sparecon2[1];
 			__u32	fs_npsect;	=20
 			__u32	fs_qbmask[2];	=20
 			__u32	fs_qfmask[2];	=20
 		} fs_sunx86;
 		struct {
 			__s32	fs_sparecon[50];=20
 			__s32	fs_contigsumsize;=20
 			__s32	fs_maxsymlinklen;=20
 			__s32	fs_inodefmt;	=20
 			__u32	fs_maxfilesize[2];	=20
 			__u32	fs_qbmask[2];	=20
 			__u32	fs_qfmask[2];	=20
 			__s32	fs_state;	=20
 		} fs_44;
 	} fs_u2;
 	__s32	fs_postblformat;
 	__s32	fs_nrpos;
 	__s32	fs_postbloff;
 	__s32	fs_rotbloff;
 	__s32	fs_magic;
 	__u8	fs_space[1];
 };
 
 
 # 631 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/efs_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 struct efs_super {
 	int32_t		fs_size;        =20
 	int32_t		fs_firstcg;     =20
 	int32_t		fs_cgfsize;     =20
 	short		fs_cgisize;     =20
 	short		fs_sectors;     =20
 	short		fs_heads;       =20
 	short		fs_ncg;         =20
 	short		fs_dirty;       =20
 	int32_t		fs_time;        =20
 	int32_t		fs_magic;       =20
 	char		fs_fname[6];    =20
 	char		fs_fpack[6];    =20
 	int32_t		fs_bmsize;      =20
 	int32_t		fs_tfree;       =20
 	int32_t		fs_tinode;      =20
 	int32_t		fs_bmblock;     =20
 	int32_t		fs_replsb;      =20
 	int32_t		fs_lastialloc;  =20
 	char		fs_spare[20];   =20
 	int32_t		fs_checksum;    =20
 };
 
 =20
 struct efs_sb_info {
 	int32_t	fs_magic;	=20
 	int32_t	fs_start;	=20
 	int32_t	first_block;	=20
 	int32_t	total_blocks;	=20
 	int32_t	group_size;	 =20
 	int32_t	data_free;	=20
 	int32_t	inode_free;	=20
 	short	inode_blocks;	=20
 	short	total_groups;	=20
 };
 
 
 
 # 632 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/romfs_fs_sb.h" 1
 
 
 
 =20
 
 struct romfs_sb_info {
 	unsigned long s_maxsize;
 };
 
 
 # 633 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/smb_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/smb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 enum smb_protocol {=20
 	SMB_PROTOCOL_NONE,=20
 	SMB_PROTOCOL_CORE,=20
 	SMB_PROTOCOL_COREPLUS,=20
 	SMB_PROTOCOL_LANMAN1,=20
 	SMB_PROTOCOL_LANMAN2,=20
 	SMB_PROTOCOL_NT1=20
 };
 
 enum smb_case_hndl {
 	SMB_CASE_DEFAULT,
 	SMB_CASE_LOWER,
 	SMB_CASE_UPPER
 };
 
 struct smb_dskattr {
         __u16 total;
         __u16 allocblocks;
         __u16 blocksize;
         __u16 free;
 };
 
 struct smb_conn_opt {
 
         =20
 	unsigned int fd;
 
 	enum smb_protocol protocol;
 	enum smb_case_hndl case_handling;
 
 	=20
 
 	__u32              max_xmit;
 	__u16              server_uid;
 	__u16              tid;
 
         =20
         __u16              secmode;
         __u16              maxmux;
         __u16              maxvcs;
         __u16              rawmode;
         __u32              sesskey;
 
 	=20
 	__u32              maxraw;
 	__u32              capabilities;
 	__s16              serverzone;
 };
 
 
 
 
 struct smb_nls_codepage {
 	char local_name[20 ];
 	char remote_name[20 ];
 };
 
 
 
 
 
 =20
 
 
 struct smb_fattr {
 
 	__u16 attr;
 
 	unsigned long	f_ino;
 	umode_t		f_mode;
 	nlink_t		f_nlink;
 	uid_t		f_uid;
 	gid_t		f_gid;
 	kdev_t		f_rdev;
 	off_t		f_size;
 	time_t		f_atime;
 	time_t		f_mtime;
 	time_t		f_ctime;
 	unsigned long	f_blksize;
 	unsigned long	f_blocks;
 };
 
 enum smb_conn_state {
         CONN_VALID,             =20
         CONN_INVALID,           =20
 
         CONN_RETRIED            =20
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 # 15 "/usr/src/linux-2.4.2/include/linux/smb_fs_sb.h" 2
 
 
 =20
 
 
 
 
 
 struct smb_sb_info {
         enum smb_conn_state state;
 	struct file * sock_file;
 
         struct smb_mount_data_kernel *mnt;
         unsigned char *temp_buf;
 
 	=20
 
 
 	unsigned int generation;
 	pid_t conn_pid;
 	struct smb_conn_opt opt;
 
 	struct semaphore sem;
 	wait_queue_head_t wait;
 
 	__u32              packet_size;
 	unsigned char *    packet;
         unsigned short     rcls; =20
         unsigned short     err;
 
         =20
         void *data_ready;
 
 	=20
 	struct nls_table *remote_nls;
 	struct nls_table *local_nls;
 
 	=20
 
 
 	char *name_buf;
 
 	int (*convert)(char *, int, const char *, int,
 		       struct nls_table *, struct nls_table *);
 };
 
 
 
 
 # 634 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/hfs_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 struct hfs_name;
 
 typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
 typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
 typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);
 
 =20
 
 
 
 
 struct hfs_sb_info {
 	int			magic;		=20
 	struct hfs_mdb		*s_mdb;		=20
 	int			s_quiet;	=20
 
 	int			s_lowercase;	=20
 	int			s_afpd;		=20
 	int                     s_version;      =20
 	hfs_namein_fn		s_namein;	=20
 
 
 	hfs_nameout_fn		s_nameout;	=20
 
 
 	hfs_ifill_fn		s_ifill;	=20
 
 	const struct hfs_name	*s_reserved1;	=20
 	const struct hfs_name	*s_reserved2;	=20
 	__u32			s_type;		=20
 	__u32			s_creator;	=20
 	umode_t			s_umask;	=20
 
 	uid_t			s_uid;		=20
 	gid_t			s_gid;		=20
 	char			s_conv;		=20
 };
 
 
 # 635 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/adfs_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 struct adfs_discmap;
 struct adfs_dir_ops;
 
 =20
 
 
 struct adfs_sb_info {
 	struct adfs_discmap *s_map;	=20
 	struct adfs_dir_ops *s_dir;	=20
 
 	uid_t		s_uid;		=20
 	gid_t		s_gid;		=20
 	umode_t		s_owner_mask;	=20
 	umode_t		s_other_mask;	=20
 
 	__u32		s_ids_per_zone;	=20
 	__u32		s_idlen;	=20
 	__u32		s_map_size;	=20
 	unsigned long	s_size;		=20
 	signed int	s_map2blk;	=20
 	unsigned int	s_log2sharesize;=20
 	unsigned int	s_version;	=20
 	unsigned int	s_namelen;	=20
 };
 
 
 # 636 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/qnx4_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/qnx4_fs.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 struct qnx4_inode_entry {
 	char		di_fname[16 ];
 	qnx4_off_t	di_size;
 	qnx4_xtnt_t	di_first_xtnt;
 	__u32		di_xblk;
 	__s32		di_ftime;
 	__s32		di_mtime;
 	__s32		di_atime;
 	__s32		di_ctime;
 	qnx4_nxtnt_t	di_num_xtnts;
 	qnx4_mode_t	di_mode;
 	qnx4_muid_t	di_uid;
 	qnx4_mgid_t	di_gid;
 	qnx4_nlink_t	di_nlink;
 	__u8		di_zero[4];
 	qnx4_ftype_t	di_type;
 	__u8		di_status;
 };
 
 struct qnx4_link_info {
 	char		dl_fname[48 ];
 	__u32		dl_inode_blk;
 	__u8		dl_inode_ndx;
 	__u8		dl_spare[10];
 	__u8		dl_status;
 };
 
 struct qnx4_xblk {
 	__u32		xblk_next_xblk;
 	__u32		xblk_prev_xblk;
 	__u8		xblk_num_xtnts;
 	__u8		xblk_spare[3];
 	__s32		xblk_num_blocks;
 	qnx4_xtnt_t	xblk_xtnts[60 ];
 	char		xblk_signature[8];
 	qnx4_xtnt_t	xblk_first_xtnt;
 };
 
 struct qnx4_super_block {
 	struct qnx4_inode_entry RootDir;
 	struct qnx4_inode_entry Inode;
 	struct qnx4_inode_entry Boot;
 	struct qnx4_inode_entry AltBoot;
 };
 
 
 
 
 
 
 
 
 
 
 
 extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry =
 *dentry);
 extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
 extern unsigned long qnx4_block_map(struct inode *inode, long iblock);
 
 extern struct buffer_head *qnx4_getblk(struct inode *, int, int);
 extern struct buffer_head *qnx4_bread(struct inode *, int, int);
 
 extern int qnx4_create(struct inode *dir, struct dentry *dentry, int =
 mode);
 extern struct inode_operations qnx4_file_inode_operations;
 extern struct inode_operations qnx4_dir_inode_operations;
 extern struct file_operations qnx4_file_operations;
 extern struct file_operations qnx4_dir_operations;
 extern int qnx4_is_free(struct super_block *sb, long block);
 extern int qnx4_set_bitmap(struct super_block *sb, long block, int =
 busy);
 extern int qnx4_create(struct inode *inode, struct dentry *dentry, int =
 mode);
 extern void qnx4_truncate(struct inode *inode);
 extern void qnx4_free_inode(struct inode *inode);
 extern int qnx4_unlink(struct inode *dir, struct dentry *dentry);
 extern int qnx4_rmdir(struct inode *dir, struct dentry *dentry);
 extern int qnx4_sync_file(struct file *file, struct dentry *dentry, =
 int);
 extern int qnx4_sync_inode(struct inode *inode);
 extern int qnx4_get_block(struct inode *inode, long iblock, struct =
 buffer_head *bh, int create);
 
 
 
 
 # 14 "/usr/src/linux-2.4.2/include/linux/qnx4_fs_sb.h" 2
 
 
 =20
 
 
 
 struct qnx4_sb_info {
 	struct buffer_head	*sb_buf;	=20
 	struct qnx4_super_block	*sb;		=20
 	unsigned int		Version;	=20
 	struct qnx4_inode_entry	*BitMap;	=20
 };
 
 
 # 637 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/reiserfs_fs_sb.h" 1
 =20
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/tqueue.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct tq_struct {
 	struct list_head list;		=20
 	unsigned long sync;		=20
 	void (*routine)(void *);	=20
 	void *data;			=20
 };
 
 typedef struct list_head task_queue;
 
 
 
 
 extern task_queue tq_timer, tq_immediate, tq_disk;
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern spinlock_t tqueue_lock;
 
 =20
 
 
 
 static inline int queue_task(struct tq_struct *bh_pointer, task_queue =
 *bh_list)
 {
 	int ret =3D 0;
 	if (!test_and_set_bit(0,&bh_pointer->sync)) {
 		unsigned long flags;
 		do { do { (    flags   ) =3D swpipl(7 ); __asm__ __volatile__("": : =
 :"memory") ; } while(0)  ;       (void)(  &tqueue_lock  ) ; } while (0) =
 ;
 		list_add_tail(&bh_pointer->list, bh_list);
 		do { do { } while(0) ;  do { __asm__ __volatile__("": : :"memory") ; =
 ((void) swpipl(     flags    )) ; __asm__ __volatile__("": : :"memory") =
 ; } while(0)  ; } while (0) ;
 		ret =3D 1;
 	}
 	return ret;
 }
 
 =20
 
 
 
 extern void __run_task_queue(task_queue *list);
 
 static inline void run_task_queue(task_queue *list)
 {
 	if ((!list_empty(& *list )) )
 		__run_task_queue(list);
 }
 
 
 # 8 "/usr/src/linux-2.4.2/include/linux/reiserfs_fs_sb.h" 2
 
 
 
 =20
 =20
 =20
 =20
 =20
 
 
                      =20
 
 
 
 
 
 =20
 
 struct reiserfs_super_block
 {
   __u32 s_block_count;
   __u32 s_free_blocks;                  =20
   __u32 s_root_block;           	=20
   __u32 s_journal_block;           	=20
   __u32 s_journal_dev;           	=20
 
   =20
 
 
 
 
 
 
 				=20
 
   __u32 s_orig_journal_size; 	=09
   __u32 s_journal_trans_max ;           =20
   __u32 s_journal_block_count ;         =20
   __u32 s_journal_max_batch ;           =20
   __u32 s_journal_max_commit_age ;      =20
   __u32 s_journal_max_trans_age ;       =20
   __u16 s_blocksize;                   	=20
   __u16 s_oid_maxsize;			=20
   __u16 s_oid_cursize;			=20
   __u16 s_state;                       	=20
   char s_magic[12];                     =20
   __u32 s_hash_function_code;		=20
   __u16 s_tree_height;                  =20
   __u16 s_bmap_nr;                      =20
   __u16 s_version;		=20
 
 
 
 
   __u16 s_reserved;
   char s_unused[128] ;			=20
 } __attribute__ ((__packed__));
 
 
 
 =20
 struct reiserfs_super_block_v1
 {
   __u32 s_block_count;			=20
   __u32 s_free_blocks;                  =20
   __u32 s_root_block;           	=20
   __u32 s_journal_block;           	=20
   __u32 s_journal_dev;           	=20
   __u32 s_orig_journal_size; 		=20
   __u32 s_journal_trans_max ;           =20
   __u32 s_journal_block_count ;         =20
   __u32 s_journal_max_batch ;           =20
   __u32 s_journal_max_commit_age ;      =20
   __u32 s_journal_max_trans_age ;       =20
   __u16 s_blocksize;                   	=20
   __u16 s_oid_maxsize;			=20
   __u16 s_oid_cursize;			=20
   __u16 s_state;                       	=20
   char s_magic[16];                     =20
   __u16 s_tree_height;                  =20
   __u16 s_bmap_nr;                      =20
   __u32 s_reserved;
 } __attribute__ ((__packed__));
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 				=20
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 struct reiserfs_journal_cnode {
   struct buffer_head *bh ;		 =20
   kdev_t dev ;				 =20
   unsigned long blocknr ;		  		=20
   int state ;
   struct reiserfs_journal_list *jlist ;  =20
   struct reiserfs_journal_cnode *next ;  =20
   struct reiserfs_journal_cnode *prev ;  =20
   struct reiserfs_journal_cnode *hprev ; =20
   struct reiserfs_journal_cnode *hnext ; =20
 };
 
 struct reiserfs_bitmap_node {
   int id ;
   char *data ;
   struct list_head list ;
 } ;
 
 struct reiserfs_list_bitmap {
   struct reiserfs_journal_list *journal_list ;
   struct reiserfs_bitmap_node **bitmaps ;
 } ;
 
 =20
 
 
 struct reiserfs_transaction_handle {
 				=20
   char *t_caller ;              =20
   int t_blocks_logged ;         =20
   int t_blocks_allocated ;      =20
   unsigned long t_trans_id ;    =20
   struct super_block *t_super ; =20
 
 
 } ;
 
 =20
 
 
 
 
 
 struct reiserfs_journal_list {
   unsigned long j_start ;
   unsigned long j_len ;
   atomic_t j_nonzerolen ;
   atomic_t j_commit_left ;
   atomic_t j_flushing ;
   atomic_t j_commit_flushing ;
   atomic_t j_older_commits_done ;      =20
   unsigned long j_trans_id ;
   time_t j_timestamp ;
   struct reiserfs_list_bitmap *j_list_bitmap ;
   struct buffer_head *j_commit_bh ; =20
   struct reiserfs_journal_cnode *j_realblock  ;
   struct reiserfs_journal_cnode *j_freedlist ; =20
   wait_queue_head_t j_commit_wait ; =20
   wait_queue_head_t j_flush_wait ; =20
 } ;
 
 struct reiserfs_page_list  ; =20
 
 struct reiserfs_journal {
   struct buffer_head ** j_ap_blocks ; =20
   struct reiserfs_journal_cnode *j_last ; =20
   struct reiserfs_journal_cnode *j_first ; =20
 			=09
   int j_state ;		=09
   unsigned long j_trans_id ;
   unsigned long j_mount_id ;
   unsigned long j_start ;             =20
   unsigned long j_len ;               =20
   unsigned long j_len_alloc ;         =20
   atomic_t j_wcount ;            =20
   unsigned long j_bcount ;            =20
   unsigned long j_first_unflushed_offset ;  =20
   unsigned long j_last_flush_trans_id ;    =20
   struct buffer_head *j_header_bh ;  =20
 
   =20
 
 
   struct reiserfs_page_list *j_flush_pages ;
   time_t j_trans_start_time ;         =20
   wait_queue_head_t j_wait ;         =20
   atomic_t j_wlock ;                       =20
   wait_queue_head_t j_join_wait ;    =20
   atomic_t j_jlock ;                       =20
   int j_journal_list_index ;	      =20
   int j_list_bitmap_index ;	      =20
   int j_must_wait ;		       =20
   int j_next_full_flush ;             =20
   int j_next_async_flush ;             =20
 
   int j_cnode_used ;	      =20
   int j_cnode_free ;          =20
 
   struct reiserfs_journal_cnode *j_cnode_free_list ;
   struct reiserfs_journal_cnode *j_cnode_free_orig ; =20
 
   int j_free_bitmap_nodes ;
   int j_used_bitmap_nodes ;
   struct list_head j_bitmap_nodes ;
   struct reiserfs_list_bitmap j_list_bitmap[5 ] ;	=20
   struct reiserfs_journal_list j_journal_list[64 ] ;	    =20
   struct reiserfs_journal_cnode *j_hash_table[8192 ] ; 	     =20
   struct reiserfs_journal_cnode *j_list_hash_table[8192 ] ; =20
 
 };
 
 
 
 
 typedef __u32 (*hashf_t) (const char *, int);
 
 =20
 struct reiserfs_sb_info
 {
     struct buffer_head * s_sbh;                   =20
 				=20
 
     struct reiserfs_super_block * s_rs;           =20
     struct buffer_head ** s_ap_bitmap;       =20
     struct reiserfs_journal *s_journal ;		=20
     unsigned short s_mount_state;                 =20
  =20
 				=20
     void (*end_io_handler)(struct buffer_head *, int);
     hashf_t s_hash_function;	=20
 
 
     unsigned long s_mount_opt;	=20
 
 
 
 				=20
     wait_queue_head_t s_wait;
 				=20
     atomic_t s_generation_counter; =20
     =20
    =20
     =20
     int s_kmallocs;
     int s_disk_reads;
     int s_disk_writes;
     int s_fix_nodes;
     int s_do_balance;
     int s_unneeded_left_neighbor;
     int s_good_search_by_key_reada;
     int s_bmaps;
     int s_bmaps_without_search;
     int s_direct2indirect;
     int s_indirect2direct;
 };
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 void reiserfs_file_buffer (struct buffer_head * bh, int list);
 int reiserfs_is_super(struct super_block *s)  ;
 int journal_mark_dirty(struct reiserfs_transaction_handle *, struct =
 super_block *, struct buffer_head *bh) ;
 int flush_old_commits(struct super_block *s, int) ;
 int show_reiserfs_locks(void) ;
 int reiserfs_resize(struct super_block *, unsigned long) ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 638 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/bfs_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 =20
 
 
 struct bfs_sb_info {
 	unsigned long si_blocks;
 	unsigned long si_freeb;
 	unsigned long si_freei;
 	unsigned long si_lf_ioff;
 	unsigned long si_lf_sblk;
 	unsigned long si_lf_eblk;
 	unsigned long si_lasti;
 	char * si_imap;
 	struct buffer_head * si_sbh;		=20
 	struct bfs_super_block * si_bfs_sb;	=20
 };
 
 
 # 639 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/udf_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 #pragma pack(1)
 
 
 
 
 
 
 
 
 struct udf_sparing_data
 {
 	__u32	s_spar_loc[4];
 	__u8	s_spar_pshift;
 	__u8	s_spar_indexsize;
 	__u32	*s_spar_map;
 	union
 	{
 		__u8	*s_spar_remap8;
 		__u16	*s_spar_remap16;
 		__u32	*s_spar_remap32;
 	} s_spar_remap;
 };
 
 struct udf_virtual_data
 {
 	__u32	s_num_entries;
 	__u16	s_start_offset;
 };
 
 struct udf_part_map
 {
 	union
 	{
 		__u32			bitmap;
 		struct inode	*table;
 	}		s_uspace;
 	union
 	{
 		__u32			bitmap;
 		struct inode	*table;
 	}		s_fspace;
 	__u32	s_partition_root;
 	__u32	s_partition_len;
 	__u16	s_partition_type;
 	__u16	s_partition_num;
 	union
 	{
 		struct udf_sparing_data s_sparing;
 		struct udf_virtual_data s_virtual;
 	} s_type_specific;
 	__u32	(*s_partition_func)(struct super_block *, __u32, __u16, __u32);
 	__u16	s_volumeseqnum;
 	__u16	s_partition_flags;
 };
 
 #pragma pack()
 
 struct udf_sb_info
 {
 	struct udf_part_map *s_partmaps;
 	__u8  s_volident[32];
 
 	=20
 	__u16 s_partitions;
 	__u16 s_partition;
 
 	=20
 	__u32 s_session;
 	__u32 s_anchor[4];
 	__u32 s_lastblock;
 
 	struct buffer_head *s_lvidbh;
 
 	__u16 s_loaded_block_bitmaps;
 	__u32 s_block_bitmap_number[8 ];
 	struct buffer_head *s_block_bitmap[8 ];
 
 	=20
 	mode_t s_umask;
 	gid_t s_gid;
 	uid_t s_uid;
 
 	=20
 	time_t s_recordtime;
 
 	=20
 	__u16 s_serialnum;
 
 	=20
 	__u16 s_udfrev;
 
 	=20
 	__u32 s_flags;
 
 	=20
 	struct inode    *s_vat;
 };
 
 
 # 640 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ncp_fs_sb.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ncp_mount.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ncp.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct ncp_request_header {
 	__u16 type __attribute__((packed));
 	__u8 sequence __attribute__((packed));
 	__u8 conn_low __attribute__((packed));
 	__u8 task __attribute__((packed));
 	__u8 conn_high __attribute__((packed));
 	__u8 function __attribute__((packed));
 	__u8 data[0] __attribute__((packed));
 };
 
 
 
 
 struct ncp_reply_header {
 	__u16 type __attribute__((packed));
 	__u8 sequence __attribute__((packed));
 	__u8 conn_low __attribute__((packed));
 	__u8 task __attribute__((packed));
 	__u8 conn_high __attribute__((packed));
 	__u8 completion_code __attribute__((packed));
 	__u8 connection_state __attribute__((packed));
 	__u8 data[0] __attribute__((packed));
 };
 
 
 
 struct ncp_volume_info {
 	__u32 total_blocks;
 	__u32 free_blocks;
 	__u32 purgeable_blocks;
 	__u32 not_yet_purgeable_blocks;
 	__u32 total_dir_entries;
 	__u32 available_dir_entries;
 	__u8 sectors_per_block;
 	char volume_name[(16)  + 1];
 };
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 struct nw_info_struct {
 	__u32 spaceAlloc __attribute__((packed));
 	__u32 attributes __attribute__((packed));
 	__u16 flags __attribute__((packed));
 	__u32 dataStreamSize __attribute__((packed));
 	__u32 totalStreamSize __attribute__((packed));
 	__u16 numberOfStreams __attribute__((packed));
 	__u16 creationTime __attribute__((packed));
 	__u16 creationDate __attribute__((packed));
 	__u32 creatorID __attribute__((packed));
 	__u16 modifyTime __attribute__((packed));
 	__u16 modifyDate __attribute__((packed));
 	__u32 modifierID __attribute__((packed));
 	__u16 lastAccessDate __attribute__((packed));
 	__u16 archiveTime __attribute__((packed));
 	__u16 archiveDate __attribute__((packed));
 	__u32 archiverID __attribute__((packed));
 	__u16 inheritedRightsMask __attribute__((packed));
 	__u32 dirEntNum __attribute__((packed));
 	__u32 DosDirNum __attribute__((packed));
 	__u32 volNumber __attribute__((packed));
 	__u32 EADataSize __attribute__((packed));
 	__u32 EAKeyCount __attribute__((packed));
 	__u32 EAKeySize __attribute__((packed));
 	__u32 NSCreator __attribute__((packed));
 	__u8 nameLen __attribute__((packed));
 	__u8 entryName[256] __attribute__((packed));
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct nw_modify_dos_info {
 	__u32 attributes __attribute__((packed));
 	__u16 creationDate __attribute__((packed));
 	__u16 creationTime __attribute__((packed));
 	__u32 creatorID __attribute__((packed));
 	__u16 modifyDate __attribute__((packed));
 	__u16 modifyTime __attribute__((packed));
 	__u32 modifierID __attribute__((packed));
 	__u16 archiveDate __attribute__((packed));
 	__u16 archiveTime __attribute__((packed));
 	__u32 archiverID __attribute__((packed));
 	__u16 lastAccessDate __attribute__((packed));
 	__u16 inheritanceGrantMask __attribute__((packed));
 	__u16 inheritanceRevokeMask __attribute__((packed));
 	__u32 maximumSpace __attribute__((packed));
 };
 
 struct nw_search_sequence {
 	__u8 volNumber __attribute__((packed));
 	__u32 dirBase __attribute__((packed));
 	__u32 sequence __attribute__((packed));
 };
 
 
 # 12 "/usr/src/linux-2.4.2/include/linux/ncp_mount.h" 2
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 struct ncp_mount_data {
 	int version;
 	unsigned int ncp_fd;	=20
 	__kernel_uid_t mounted_uid;	=20
 	__kernel_pid_t wdog_pid;		=20
 
 	unsigned char mounted_vol[(16)  + 1];
 	unsigned int time_out;	=20
 
 	unsigned int retry_count;	=20
 	unsigned int flags;
 
 	__kernel_uid_t uid;
 	__kernel_gid_t gid;
 	__kernel_mode_t file_mode;
 	__kernel_mode_t dir_mode;
 };
 
 
 
 struct ncp_mount_data_v4 {
 	int version;
 	unsigned long flags;	=20
 	=20
 	=20
 	unsigned long mounted_uid;	=20
 	=20
 	long wdog_pid;		=20
 
 	unsigned int ncp_fd;	=20
 	unsigned int time_out;	=20
 
 	unsigned int retry_count;	=20
 
 	=20
 	=20
 	unsigned long uid;
 	unsigned long gid;
 	=20
 	unsigned long file_mode;
 	unsigned long dir_mode;
 };
 
 
 
 struct ncp_mount_data_kernel {
 	unsigned long    flags;		=20
 	unsigned int	 int_flags;	=20
 
 	__kernel_uid32_t mounted_uid;	=20
 	__kernel_pid_t   wdog_pid;		=20
 	unsigned int     ncp_fd;	=20
 	unsigned int     time_out;	=20
 
 	unsigned int     retry_count;	=20
 	unsigned char	 mounted_vol[(16)  + 1];
 	__kernel_uid32_t uid;
 	__kernel_gid32_t gid;
 	__kernel_mode_t  file_mode;
 	__kernel_mode_t  dir_mode;
 };
 
 
 
 
 # 12 "/usr/src/linux-2.4.2/include/linux/ncp_fs_sb.h" 2
 
 
 
 
 
 
 struct ncp_server {
 
 	struct ncp_mount_data_kernel m;	=20
 
 
 
 	__u8 name_space[(64)  + 2];
 
 	struct file *ncp_filp;	=20
 
 	u8 sequence;
 	u8 task;
 	u16 connection;		=20
 
 	u8 completion;		=20
 	u8 conn_status;		=20
 
 
 
 	int buffer_size;	=20
 
 	int reply_size;		=20
 
 	int packet_size;
 	unsigned char *packet;	=20
 
 
 	int lock;		=20
 	struct semaphore sem;
 
 	int current_size;	=20
 	int has_subfunction;
 	int ncp_reply_size;
 
 	int root_setuped;
 
 	=20
 	int sign_wanted;	=20
 	int sign_active;	=20
 	char sign_root[8];	=20
 	char sign_last[16];=09
 
 	=20
 	struct {
 		int	auth_type;
 		size_t	object_name_len;
 		void*	object_name;
 		int	object_type;
 	} auth;
 	=20
 	struct {
 		size_t	len;
 		void*	data;
 	} priv;
 
 	=20
 	struct nls_table *nls_vol;
 	struct nls_table *nls_io;
 
 	=20
 	int dentry_ttl;
 
 	=20
 	unsigned int flags;
 };
 
 
 
 
 
 
 
 
 
 static inline int ncp_conn_valid(struct ncp_server *server)
 {
 	return ((server->conn_status & 0x11) =3D=3D 0);
 }
 
 static inline void ncp_invalidate_conn(struct ncp_server *server)
 {
 	server->conn_status |=3D 0x01;
 }
 
 
 
 
 =20
 # 641 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/usbdev_fs_sb.h" 1
 struct usbdev_sb_info {
 	struct list_head slist;
 	struct list_head ilist;
 	uid_t devuid;
 	gid_t devgid;
 	umode_t devmode;
 	uid_t busuid;
 	gid_t busgid;
 	umode_t busmode;
 };
 # 642 "/usr/src/linux-2.4.2/include/linux/fs.h" 2
 
 
 extern struct list_head super_blocks;
 
 
 struct super_block {
 	struct list_head	s_list;		=20
 	kdev_t			s_dev;
 	unsigned long		s_blocksize;
 	unsigned char		s_blocksize_bits;
 	unsigned char		s_lock;
 	unsigned char		s_dirt;
 	struct file_system_type	*s_type;
 	struct super_operations	*s_op;
 	struct dquot_operations	*dq_op;
 	unsigned long		s_flags;
 	unsigned long		s_magic;
 	struct dentry		*s_root;
 	wait_queue_head_t	s_wait;
 
 	struct list_head	s_dirty;	=20
 	struct list_head	s_files;
 
 	struct block_device	*s_bdev;
 	struct list_head	s_mounts;	=20
 	struct quota_mount_options s_dquot;	=20
 
 	union {
 		struct minix_sb_info	minix_sb;
 		struct ext2_sb_info	ext2_sb;
 		struct hpfs_sb_info	hpfs_sb;
 		struct ntfs_sb_info	ntfs_sb;
 		struct msdos_sb_info	msdos_sb;
 		struct isofs_sb_info	isofs_sb;
 		struct nfs_sb_info	nfs_sb;
 		struct sysv_sb_info	sysv_sb;
 		struct affs_sb_info	affs_sb;
 		struct ufs_sb_info	ufs_sb;
 		struct efs_sb_info	efs_sb;
 		struct shmem_sb_info	shmem_sb;
 		struct romfs_sb_info	romfs_sb;
 		struct smb_sb_info	smbfs_sb;
 		struct hfs_sb_info	hfs_sb;
 		struct adfs_sb_info	adfs_sb;
 		struct qnx4_sb_info	qnx4_sb;
 		struct reiserfs_sb_info	reiserfs_sb;
 		struct bfs_sb_info	bfs_sb;
 		struct udf_sb_info	udf_sb;
 		struct ncp_server 	ncpfs_sb;
 		struct usbdev_sb_info   usbdevfs_sb;
 		void			*generic_sbp;
 	} u;
 	=20
 
 
 
 	struct semaphore s_vfs_rename_sem;	=20
 
 	=20
 
 
 
 
 
 
 	struct semaphore s_nfsd_free_path_sem;
 };
 
 =20
 
 
 extern int vfs_create(struct inode *, struct dentry *, int);
 extern int vfs_mkdir(struct inode *, struct dentry *, int);
 extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
 extern int vfs_symlink(struct inode *, struct dentry *, const char *);
 extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
 extern int vfs_rmdir(struct inode *, struct dentry *);
 extern int vfs_unlink(struct inode *, struct dentry *);
 extern int vfs_rename(struct inode *, struct dentry *, struct inode *, =
 struct dentry *);
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t, =
 unsigned);
 
 struct block_device_operations {
 	int (*open) (struct inode *, struct file *);
 	int (*release) (struct inode *, struct file *);
 	int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
 	int (*check_media_change) (kdev_t);
 	int (*revalidate) (kdev_t);
 };
 
 =20
 
 
 
 
 struct file_operations {
 	struct module *owner;
 	loff_t (*llseek) (struct file *, loff_t, int);
 	ssize_t (*read) (struct file *, char *, size_t, loff_t *);
 	ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
 	int (*readdir) (struct file *, void *, filldir_t);
 	unsigned int (*poll) (struct file *, struct poll_table_struct *);
 	int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned =
 long);
 	int (*mmap) (struct file *, struct vm_area_struct *);
 	int (*open) (struct inode *, struct file *);
 	int (*flush) (struct file *);
 	int (*release) (struct inode *, struct file *);
 	int (*fsync) (struct file *, struct dentry *, int datasync);
 	int (*fasync) (int, struct file *, int);
 	int (*lock) (struct file *, int, struct file_lock *);
 	ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, =
 loff_t *);
 	ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, =
 loff_t *);
 };
 
 struct inode_operations {
 	int (*create) (struct inode *,struct dentry *,int);
 	struct dentry * (*lookup) (struct inode *,struct dentry *);
 	int (*link) (struct dentry *,struct inode *,struct dentry *);
 	int (*unlink) (struct inode *,struct dentry *);
 	int (*symlink) (struct inode *,struct dentry *,const char *);
 	int (*mkdir) (struct inode *,struct dentry *,int);
 	int (*rmdir) (struct inode *,struct dentry *);
 	int (*mknod) (struct inode *,struct dentry *,int,int);
 	int (*rename) (struct inode *, struct dentry *,
 			struct inode *, struct dentry *);
 	int (*readlink) (struct dentry *, char *,int);
 	int (*follow_link) (struct dentry *, struct nameidata *);
 	void (*truncate) (struct inode *);
 	int (*permission) (struct inode *, int);
 	int (*revalidate) (struct dentry *);
 	int (*setattr) (struct dentry *, struct iattr *);
 	int (*getattr) (struct dentry *, struct iattr *);
 };
 
 =20
 
 
 
 struct super_operations {
 	void (*read_inode) (struct inode *);
  =20
   	=20
 
 
 
 
 
     	void (*read_inode2) (struct inode *, void *) ;
    	void (*dirty_inode) (struct inode *);
 	void (*write_inode) (struct inode *, int);
 	void (*put_inode) (struct inode *);
 	void (*delete_inode) (struct inode *);
 	void (*put_super) (struct super_block *);
 	void (*write_super) (struct super_block *);
 	void (*write_super_lockfs) (struct super_block *);
 	void (*unlockfs) (struct super_block *);
 	int (*statfs) (struct super_block *, struct statfs *);
 	int (*remount_fs) (struct super_block *, int *, char *);
 	void (*clear_inode) (struct inode *);
 	void (*umount_begin) (struct super_block *);
 };
 
 =20
 
 
 
 
 
 
 
 
 
 extern void __mark_inode_dirty(struct inode *, int);
 static inline void mark_inode_dirty(struct inode *inode)
 {
 	__mark_inode_dirty(inode, (1  | 2  | 4 ) );
 }
 
 static inline void mark_inode_dirty_sync(struct inode *inode)
 {
 	__mark_inode_dirty(inode, 1 );
 }
 
 static inline void mark_inode_dirty_pages(struct inode *inode)
 {
 	__mark_inode_dirty(inode, 4 );
 }
 
 struct dquot_operations {
 	void (*initialize) (struct inode *, short);
 	void (*drop) (struct inode *);
 	int (*alloc_block) (const struct inode *, unsigned long, char);
 	int (*alloc_inode) (const struct inode *, unsigned long);
 	void (*free_block) (const struct inode *, unsigned long);
 	void (*free_inode) (const struct inode *, unsigned long);
 	int (*transfer) (struct dentry *, struct iattr *);
 };
 
 struct file_system_type {
 	const char *name;
 	int fs_flags;
 	struct super_block *(*read_super) (struct super_block *, void *, int);
 	struct module *owner;
 	struct vfsmount *kern_mnt; =20
 	struct file_system_type * next;
 };
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 extern int register_filesystem(struct file_system_type *);
 extern int unregister_filesystem(struct file_system_type *);
 extern struct vfsmount *kern_mount(struct file_system_type *);
 extern void kern_umount(struct vfsmount *);
 extern int may_umount(struct vfsmount *);
 extern long do_mount(char *, char *, char *, unsigned long, void *);
 
 
 extern int vfs_statfs(struct super_block *, struct statfs *);
 
 =20
 
 =20
 
 
 
 
 
 extern int locks_mandatory_locked(struct inode *);
 extern int locks_mandatory_area(int, struct inode *, struct file *, =
 loff_t, size_t);
 
 =20
 
 
 
 
 
 
 static inline int locks_verify_locked(struct inode *inode)
 {
 	if ((((   inode   )->i_sb->s_flags & (  64  ))   && (( inode )->i_mode =
 & (0002000  | 00010 )) =3D=3D 0002000 ) )
 		return locks_mandatory_locked(inode);
 	return 0;
 }
 
 static inline int locks_verify_area(int read_write, struct inode *inode,
 				    struct file *filp, loff_t offset,
 				    size_t count)
 {
 	if (inode->i_flock && (((   inode   )->i_sb->s_flags & (  64  ))   && =
 (( inode )->i_mode & (0002000  | 00010 )) =3D=3D 0002000 ) )
 		return locks_mandatory_area(read_write, inode, filp, offset, count);
 	return 0;
 }
 
 static inline int locks_verify_truncate(struct inode *inode,
 				    struct file *filp,
 				    loff_t size)
 {
 	if (inode->i_flock && (((   inode   )->i_sb->s_flags & (  64  ))   && =
 (( inode )->i_mode & (0002000  | 00010 )) =3D=3D 0002000 ) )
 		return locks_mandatory_area(
 			2 , inode, filp,
 			size < inode->i_size ? size : inode->i_size,
 			(size < inode->i_size ? inode->i_size - size
 			 : size - inode->i_size)
 		);
 	return 0;
 }
 
 extern inline int get_lease(struct inode *inode, unsigned int mode)
 {
 	if (inode->i_flock && (inode->i_flock->fl_flags & 32 ))
 		return __get_lease(inode, mode);
 	return 0;
 }
 
 =20
 
    long sys_open(const char *, int, int);
    long sys_close(unsigned int);	=20
 extern int do_truncate(struct dentry *, loff_t start);
 
 extern struct file *filp_open(const char *, int, int);
 extern struct file * dentry_open(struct dentry *, struct vfsmount *, =
 int);
 extern int filp_close(struct file *, fl_owner_t id);
 extern char * getname(const char *);
 
 =20
 extern void vfs_caches_init(unsigned long);
 
 
 
 
 enum {BDEV_FILE, BDEV_SWAP, BDEV_FS, BDEV_RAW};
 extern int register_blkdev(unsigned int, const char *, struct =
 block_device_operations *);
 extern int unregister_blkdev(unsigned int, const char *);
 extern struct block_device *bdget(dev_t);
 extern void bdput(struct block_device *);
 extern int blkdev_open(struct inode *, struct file *);
 extern struct file_operations def_blk_fops;
 extern struct file_operations def_fifo_fops;
 extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned =
 long);
 extern int blkdev_get(struct block_device *, mode_t, unsigned, int);
 extern int blkdev_put(struct block_device *, int);
 
 =20
 extern const struct block_device_operations *get_blkfops(unsigned int);
 extern int register_chrdev(unsigned int, const char *, struct =
 file_operations *);
 extern int unregister_chrdev(unsigned int, const char *);
 extern int chrdev_open(struct inode *, struct file *);
 extern const char * bdevname(kdev_t);
 extern const char * cdevname(kdev_t);
 extern const char * kdevname(kdev_t);
 extern void init_special_inode(struct inode *, umode_t, int);
 
 =20
 extern void make_bad_inode(struct inode *);
 extern int is_bad_inode(struct inode *);
 
 extern struct file_operations read_fifo_fops;
 extern struct file_operations write_fifo_fops;
 extern struct file_operations rdwr_fifo_fops;
 extern struct file_operations read_pipe_fops;
 extern struct file_operations write_pipe_fops;
 extern struct file_operations rdwr_pipe_fops;
 
 extern int fs_may_remount_ro(struct super_block *);
 
 extern int try_to_free_buffers(struct page *, int);
 extern void refile_buffer(struct buffer_head * buf);
 
 =20
 extern void set_buffer_async_io(struct buffer_head *bh) ;
 
 
 
 
 
 
 
 =20
 
 
 static inline void mark_buffer_uptodate(struct buffer_head * bh, int on)
 {
 	if (on)
 		set_bit(0 , &bh->b_state);
 	else
 		clear_bit(0 , &bh->b_state);
 }
 
 
 
 static inline void __mark_buffer_clean(struct buffer_head *bh)
 {
 	refile_buffer(bh);
 }
 
 static inline void mark_buffer_clean(struct buffer_head * bh)
 {
 	if (test_and_clear_bit(1 , &( bh )->b_state) )
 		__mark_buffer_clean(bh);
 }
 
 
 
 static inline void __mark_buffer_protected(struct buffer_head *bh)
 {
 	refile_buffer(bh);
 }
 
 static inline void mark_buffer_protected(struct buffer_head * bh)
 {
 	if (! test_and_set_bit(6 , &( bh )->b_state) )
 		__mark_buffer_protected(bh);
 }
 
 extern void  __mark_buffer_dirty(struct buffer_head *bh)  ;
 extern void  mark_buffer_dirty(struct buffer_head *bh)  ;
 
 
 
 =20
 
 
 
 
 
 static inline void buffer_IO_error(struct buffer_head * bh)
 {
 	mark_buffer_clean(bh);
 	=20
 
 
 	bh->b_end_io(bh, 0);
 }
 
 extern void buffer_insert_inode_queue(struct buffer_head *, struct inode =
 *);
 static inline void mark_buffer_dirty_inode(struct buffer_head *bh, =
 struct inode *inode)
 {
 	mark_buffer_dirty(bh);
 	buffer_insert_inode_queue(bh, inode);
 }
 
 extern void balance_dirty(kdev_t);
 extern int check_disk_change(kdev_t);
 extern int invalidate_inodes(struct super_block *);
 extern void invalidate_inode_pages(struct inode *);
 extern void invalidate_inode_buffers(struct inode *);
 
 
 extern void __invalidate_buffers(kdev_t dev, int);
 extern void sync_inodes(kdev_t);
 extern void write_inode_now(struct inode *, int);
 extern void sync_dev(kdev_t);
 extern int fsync_dev(kdev_t);
 extern int fsync_inode_buffers(struct inode *);
 extern int osync_inode_buffers(struct inode *);
 extern int inode_has_buffers(struct inode *);
 extern void filemap_fdatasync(struct address_space *);
 extern void filemap_fdatawait(struct address_space *);
 extern void sync_supers(kdev_t);
 extern int bmap(struct inode *, int);
 extern int notify_change(struct dentry *, struct iattr *);
 extern int permission(struct inode *, int);
 extern int vfs_permission(struct inode *, int);
 extern int get_write_access(struct inode *);
 extern int deny_write_access(struct file *);
 static inline void put_write_access(struct inode * inode)
 {
 	atomic_sub(1,( &inode->i_writecount )) ;
 }
 static inline void allow_write_access(struct file *file)
 {
 	if (file)
 		atomic_add(1,( &file->f_dentry->d_inode->i_writecount )) ;
 }
 extern int do_pipe(int *);
 
 extern int open_namei(const char *, int, int, struct nameidata *);
 
 extern int kernel_read(struct file *, unsigned long, char *, unsigned =
 long);
 extern struct file * open_exec(const char *);
 =20
 =20
 extern int is_subdir(struct dentry *, struct dentry *);
 extern ino_t find_inode_number(struct dentry *, struct qstr *);
 
 =20
 
 
 
 
 
 
 
 static inline void *ERR_PTR(long error)
 {
 	return (void *) error;
 }
 
 static inline long PTR_ERR(const void *ptr)
 {
 	return (long) ptr;
 }
 
 static inline long IS_ERR(const void *ptr)
 {
 	return (unsigned long)ptr > (unsigned long)-1000L;
 }
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};
 
 =20
 
 
 
 
 
 
 
 
 typedef struct {
 	size_t written;
 	size_t count;
 	char * buf;
 	int error;
 } read_descriptor_t;
 
 typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned =
 long, unsigned long);
 
 =20
 extern loff_t default_llseek(struct file *file, loff_t offset, int =
 origin);
 
 extern int __user_walk(const char *, unsigned, struct nameidata *);
 extern int path_init(const char *, unsigned, struct nameidata *);
 extern int path_walk(const char *, struct nameidata *);
 extern void path_release(struct nameidata *);
 extern int follow_down(struct vfsmount **, struct dentry **);
 extern int follow_up(struct vfsmount **, struct dentry **);
 extern struct dentry * lookup_one(const char *, struct dentry *);
 extern struct dentry * lookup_hash(struct qstr *, struct dentry *);
 
 
 
 extern void iput(struct inode *);
 extern void force_delete(struct inode *);
 extern struct inode * igrab(struct inode *);
 extern ino_t iunique(struct super_block *, ino_t);
 
 typedef int (*find_inode_t)(struct inode *, unsigned long, void *);
 extern struct inode * iget4(struct super_block *, unsigned long, =
 find_inode_t, void *);
 static inline struct inode *iget(struct super_block *sb, unsigned long =
 ino)
 {
 	return iget4(sb, ino, ((void *)0) , ((void *)0) );
 }
 
 extern void clear_inode(struct inode *);
 extern struct inode * get_empty_inode(void);
 static inline struct inode * new_inode(struct super_block *sb)
 {
 	struct inode *inode =3D get_empty_inode();
 	if (inode) {
 		inode->i_sb =3D sb;
 		inode->i_dev =3D sb->s_dev;
 	}
 	return inode;
 }
 
 extern void insert_inode_hash(struct inode *);
 extern void remove_inode_hash(struct inode *);
 extern struct file * get_empty_filp(void);
 extern void file_move(struct file *f, struct list_head *list);
 extern void file_moveto(struct file *new, struct file *old);
 extern struct buffer_head * get_hash_table(kdev_t, int, int);
 extern struct buffer_head * getblk(kdev_t, int, int);
 extern void ll_rw_block(int, int, struct buffer_head * bh[]);
 extern void submit_bh(int, struct buffer_head *);
 extern int is_read_only(kdev_t);
 extern void __brelse(struct buffer_head *);
 static inline void brelse(struct buffer_head *buf)
 {
 	if (buf)
 		__brelse(buf);
 }
 extern void __bforget(struct buffer_head *);
 static inline void bforget(struct buffer_head *buf)
 {
 	if (buf)
 		__bforget(buf);
 }
 extern void set_blocksize(kdev_t, int);
 extern unsigned int get_hardblocksize(kdev_t);
 extern struct buffer_head * bread(kdev_t, int, int);
 extern void wakeup_bdflush(int wait);
 
 extern int brw_page(int, struct page *, kdev_t, int [], int);
 
 typedef int (get_block_t)(struct inode*,long,struct buffer_head*,int);
 
 =20
 extern int block_flushpage(struct page *, unsigned long);
 extern int block_symlink(struct inode *, const char *, int);
 extern int block_write_full_page(struct page*, get_block_t*);
 extern int block_read_full_page(struct page*, get_block_t*);
 extern int block_prepare_write(struct page*, unsigned, unsigned, =
 get_block_t*);
 extern int cont_prepare_write(struct page*, unsigned, unsigned, =
 get_block_t*,
 				unsigned long *);
 extern int block_sync_page(struct page *);
 
 int generic_block_bmap(struct address_space *, long, get_block_t *);
 int generic_commit_write(struct file *, struct page *, unsigned, =
 unsigned);
 int block_truncate_page(struct address_space *, loff_t, get_block_t *);
 
 extern int generic_file_mmap(struct file *, struct vm_area_struct *);
 extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t =
 *);
 extern ssize_t generic_file_write(struct file *, const char *, size_t, =
 loff_t *);
 extern void do_generic_file_read(struct file *, loff_t *, =
 read_descriptor_t *, read_actor_t);
 
 extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t =
 *);
 
 extern struct file_operations generic_ro_fops;
 
 extern int vfs_readlink(struct dentry *, char *, int, const char *);
 extern int vfs_follow_link(struct nameidata *, const char *);
 extern int page_readlink(struct dentry *, char *, int);
 extern int page_follow_link(struct dentry *, struct nameidata *);
 extern struct inode_operations page_symlink_inode_operations;
 
 extern int vfs_readdir(struct file *, filldir_t, void *);
 extern int dcache_readdir(struct file *, void *, filldir_t);
 
 extern struct file_system_type *get_fs_type(const char *name);
 extern struct super_block *get_super(kdev_t);
 struct super_block *get_empty_super(void);
 extern void put_super(kdev_t);
 unsigned long generate_cluster(kdev_t, int b[], int);
 unsigned long generate_cluster_swab32(kdev_t, int b[], int);
 extern kdev_t ROOT_DEV;
 extern char root_device_name[];
 
 
 extern void show_buffers(void);
 extern void mount_root(void);
 
 
 
 
 
 
 extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
 extern ssize_t block_read(struct file *, char *, size_t, loff_t *);
 extern int read_ahead[];
 
 extern ssize_t char_write(struct file *, const char *, size_t, loff_t =
 *);
 extern ssize_t block_write(struct file *, const char *, size_t, loff_t =
 *);
 
 extern int file_fsync(struct file *, struct dentry *, int);
 extern int generic_buffer_fdatasync(struct inode *inode, unsigned long =
 start_idx, unsigned long end_idx);
 extern int generic_osync_inode(struct inode *, int);
 
 extern int inode_change_ok(struct inode *, struct iattr *);
 extern void inode_setattr(struct inode *, struct iattr *);
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 static inline struct dentry *lock_parent(struct dentry *dentry)
 {
 	struct dentry *dir =3D dget(dentry->d_parent);
 
 	down(&dir->d_inode->i_sem);
 	return dir;
 }
 
 static inline struct dentry *get_parent(struct dentry *dentry)
 {
 	return dget(dentry->d_parent);
 }
 
 static inline void unlock_dir(struct dentry *dir)
 {
 	up(&dir->d_inode->i_sem);
 	dput(dir);
 }
 
 =20
 
 
 
 static inline void double_down(struct semaphore *s1, struct semaphore =
 *s2)
 {
 	if (s1 !=3D s2) {
 		if ((unsigned long) s1 < (unsigned long) s2) {
 			struct semaphore *tmp =3D s2;
 			s2 =3D s1; s1 =3D tmp;
 		}
 		down(s1);
 	}
 	down(s2);
 }
 
 =20
 
 
 
 
 
 
 
 
 static inline void triple_down(struct semaphore *s1,
 			       struct semaphore *s2,
 			       struct semaphore *s3)
 {
 	if (s1 !=3D s2) {
 		if ((unsigned long) s1 < (unsigned long) s2) {
 			if ((unsigned long) s1 < (unsigned long) s3) {
 				struct semaphore *tmp =3D s3;
 				s3 =3D s1; s1 =3D tmp;
 			}
 			if ((unsigned long) s1 < (unsigned long) s2) {
 				struct semaphore *tmp =3D s2;
 				s2 =3D s1; s1 =3D tmp;
 			}
 		} else {
 			if ((unsigned long) s1 < (unsigned long) s3) {
 				struct semaphore *tmp =3D s3;
 				s3 =3D s1; s1 =3D tmp;
 			}
 			if ((unsigned long) s2 < (unsigned long) s3) {
 				struct semaphore *tmp =3D s3;
 				s3 =3D s2; s2 =3D tmp;
 			}
 		}
 		down(s1);
 	} else if ((unsigned long) s2 < (unsigned long) s3) {
 		struct semaphore *tmp =3D s3;
 		s3 =3D s2; s2 =3D tmp;
 	}
 	down(s2);
 	down(s3);
 }
 
 static inline void double_up(struct semaphore *s1, struct semaphore *s2)
 {
 	up(s1);
 	if (s1 !=3D s2)
 		up(s2);
 }
 
 static inline void triple_up(struct semaphore *s1,
 			     struct semaphore *s2,
 			     struct semaphore *s3)
 {
 	up(s1);
 	if (s1 !=3D s2)
 		up(s2);
 	up(s3);
 }
 
 static inline void double_lock(struct dentry *d1, struct dentry *d2)
 {
 	double_down(&d1->d_inode->i_sem, &d2->d_inode->i_sem);
 }
 
 static inline void double_unlock(struct dentry *d1, struct dentry *d2)
 {
 	double_up(&d1->d_inode->i_sem,&d2->d_inode->i_sem);
 	dput(d1);
 	dput(d2);
 }
 
 
 
 
 # 17 "/usr/src/linux-2.4.2/include/linux/capability.h" 2
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 typedef struct __user_cap_header_struct {
 	__u32 version;
 	int pid;
 } *cap_user_header_t;
 =20
 typedef struct __user_cap_data_struct {
         __u32 effective;
         __u32 permitted;
         __u32 inheritable;
 } *cap_user_data_t;
  =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 typedef __u32 kernel_cap_t;
 
 
  =20
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
    =20
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 =20
 =20
 =20
 
 
 
 =20
 =20
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 =20
 =20
 
 
 
 =20
 
 
 
 =20
 =20
 =20
 =20
 =20
 
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 
 
 
 =20
 =20
 
 
 
 =20
 =20
 
 
 
 
 =20
 
 
 
 =20
 =20
 
 
 =20
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 =20
 
 =20
 
 
 
 =20
 
 
 
 =20
 
 =20
 
 
 
 
 
 =20
 =20
 =20
 =20
 
 =20
 =20
 =20
 =20
 
 
 
 =20
 =20
 =20
 
 
 
 =20
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 =20
 
 
 extern kernel_cap_t cap_bset;
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline kernel_cap_t cap_combine(kernel_cap_t a, kernel_cap_t b)
 {
      kernel_cap_t dest;
      ( dest )  =3D ( a )  | ( b ) ;
      return dest;
 }
 
 static inline kernel_cap_t cap_intersect(kernel_cap_t a, kernel_cap_t b)
 {
      kernel_cap_t dest;
      ( dest )  =3D ( a )  & ( b ) ;
      return dest;
 }
 
 static inline kernel_cap_t cap_drop(kernel_cap_t a, kernel_cap_t drop)
 {
      kernel_cap_t dest;
      ( dest )  =3D ( a )  & ~( drop ) ;
      return dest;
 }
 
 static inline kernel_cap_t cap_invert(kernel_cap_t c)
 {
      kernel_cap_t dest;
      ( dest )  =3D ~( c ) ;
      return dest;
 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 5 "/usr/src/linux-2.4.2/include/linux/binfmts.h" 2
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 struct linux_binprm{
 	char buf[128 ];
 	struct page *page[32 ];
 	unsigned long p; =20
 	int sh_bang;
 	struct file * file;
 	int e_uid, e_gid;
 	kernel_cap_t cap_inheritable, cap_permitted, cap_effective;
 	int argc, envc;
 	char * filename;	=20
 	unsigned long loader, exec;
 };
 
 =20
 
 
 
 struct linux_binfmt {
 	struct linux_binfmt * next;
 	struct module *module;
 	int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
 	int (*load_shlib)(struct file *);
 	int (*core_dump)(long signr, struct pt_regs * regs, struct file * =
 file);
 	unsigned long min_coredump;	=20
 };
 
 extern int register_binfmt(struct linux_binfmt *);
 extern int unregister_binfmt(struct linux_binfmt *);
 
 extern int prepare_binprm(struct linux_binprm *);
 extern void remove_arg_zero(struct linux_binprm *);
 extern int search_binary_handler(struct linux_binprm *,struct pt_regs =
 *);
 extern int flush_old_exec(struct linux_binprm * bprm);
 extern int setup_arg_pages(struct linux_binprm * bprm);
 extern int copy_strings(int argc,char ** argv,struct linux_binprm =
 *bprm);=20
 extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm =
 *bprm);
 extern void compute_creds(struct linux_binprm *binprm);
 extern int do_coredump(long signr, struct pt_regs * regs);
 extern void set_binfmt(struct linux_binfmt *new);
 
 
 
 
 
 
 
 
 
 # 9 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/personality.h" 1
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 typedef void (*lcall7_func)(int, struct pt_regs *);
 
 
 =20
 
 
 
 
 struct exec_domain {
 	const char *name;
 	lcall7_func handler;
 	unsigned char pers_low, pers_high;
 	unsigned long * signal_map;
 	unsigned long * signal_invmap;
 	struct module * module;
 	struct exec_domain *next;
 };
 
 extern struct exec_domain default_exec_domain;
 
 extern int register_exec_domain(struct exec_domain *it);
 extern int unregister_exec_domain(struct exec_domain *it);
 
 
 
 
 extern void __set_personality(unsigned long personality);
 
 
 
 
    long sys_personality(unsigned long personality);
 
 
 # 10 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/threads.h" 1
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 # 11 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/times.h" 1
 
 
 
 struct tms {
 	clock_t tms_utime;
 	clock_t tms_stime;
 	clock_t tms_cutime;
 	clock_t tms_cstime;
 };
 
 
 # 14 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/timex.h" 1
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 # 73 "/usr/src/linux-2.4.2/include/linux/timex.h"
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/timex.h" 1
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 typedef unsigned int cycles_t;
 extern cycles_t cacheflush_time;
 
 static inline cycles_t get_cycles (void)
 {
 	cycles_t ret;
 	__asm__ __volatile__ ("rpcc %0" : "=3Dr"(ret));
 	return ret;
 }
 
 
 # 150 "/usr/src/linux-2.4.2/include/linux/timex.h" 2
 
 
 =20
 
 
 =20
 
 
 
 struct timex {
 	unsigned int modes;	=20
 	long offset;		=20
 	long freq;		=20
 	long maxerror;		=20
 	long esterror;		=20
 	int status;		=20
 	long constant;		=20
 	long precision;		=20
 	long tolerance;		=20
 
 
 	struct timeval time;	=20
 	long tick;		=20
 
 	long ppsfreq;           =20
 	long jitter;            =20
 	int shift;              =20
 	long stabil;            =20
 	long jitcnt;            =20
 	long calcnt;            =20
 	long errcnt;            =20
 	long stbcnt;            =20
 
 	int  :32; int  :32; int  :32; int  :32;
 	int  :32; int  :32; int  :32; int  :32;
 	int  :32; int  :32; int  :32; int  :32;
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 extern long tick;                      =20
 extern int tickadj;			=20
 
 =20
 
 
 extern int time_state;		=20
 extern int time_status;		=20
 extern long time_offset;	=20
 extern long time_constant;	=20
 extern long time_tolerance;	=20
 extern long time_precision;	=20
 extern long time_maxerror;	=20
 extern long time_esterror;	=20
 
 extern long time_phase;		=20
 extern long time_freq;		=20
 extern long time_adj;		=20
 extern long time_reftime;	=20
 
 extern long time_adjust;	=20
 
 =20
 extern long pps_offset;		=20
 extern long pps_jitter;		=20
 extern long pps_freq;		=20
 extern long pps_stabil;		=20
 extern long pps_valid;		=20
 
 =20
 extern int pps_shift;		=20
 extern long pps_jitcnt;		=20
 extern long pps_calcnt;		=20
 extern long pps_errcnt;		=20
 extern long pps_stbcnt;		=20
 
 
 
 
 # 15 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/mmu.h" 1
 
 
 
 =20
 typedef unsigned long mm_context_t[1 ];
 
 
 # 21 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/smp.h" 1
 
 
 
 =20
 
 
 
 
 
 
 # 74 "/usr/src/linux-2.4.2/include/linux/smp.h"
 
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 # 23 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/tty.h" 1
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 		=20
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/major.h" 1
 
 
 
 =20
 
 
 
 
 =20
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
  =20
 
 
 
 
 static __inline__ int scsi_blk_major(int m) {
 	return (((  m  ) =3D=3D 8  || ((  m  ) >=3D 65  && (  m  ) <=3D 71 )) 	=
 || ( m ) =3D=3D 11 ) ;
 }
 
 
 # 21 "/usr/src/linux-2.4.2/include/linux/tty.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/termios.h" 1
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/termios.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/ioctls.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   =20
 
 
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/asm/termios.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/termbits.h" 1
 
 
 
 
 
 typedef unsigned char	cc_t;
 typedef unsigned int	speed_t;
 typedef unsigned int	tcflag_t;
 
 =20
 
 
 
 
 
 
 struct termios {
 	tcflag_t c_iflag;		=20
 	tcflag_t c_oflag;		=20
 	tcflag_t c_cflag;		=20
 	tcflag_t c_lflag;		=20
 	cc_t c_cc[19 ];		=20
 	cc_t c_line;			=20
 	speed_t c_ispeed;		=20
 	speed_t c_ospeed;		=20
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
   =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 # 5 "/usr/src/linux-2.4.2/include/asm/termios.h" 2
 
 
 struct sgttyb {
 	char	sg_ispeed;
 	char	sg_ospeed;
 	char	sg_erase;
 	char	sg_kill;
 	short	sg_flags;
 };
 
 struct tchars {
 	char	t_intrc;
 	char	t_quitc;
 	char	t_startc;
 	char	t_stopc;
 	char	t_eofc;
 	char	t_brkc;
 };
 
 struct ltchars {
 	char	t_suspc;
 	char	t_dsuspc;
 	char	t_rprntc;
 	char	t_flushc;
 	char	t_werasc;
 	char	t_lnextc;
 };
 
 struct winsize {
 	unsigned short ws_row;
 	unsigned short ws_col;
 	unsigned short ws_xpixel;
 	unsigned short ws_ypixel;
 };
 
 
 struct termio {
 	unsigned short c_iflag;		=20
 	unsigned short c_oflag;		=20
 	unsigned short c_cflag;		=20
 	unsigned short c_lflag;		=20
 	unsigned char c_line;		=20
 	unsigned char c_cc[8 ];	=20
 };
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 # 125 "/usr/src/linux-2.4.2/include/asm/termios.h"
 
 =20
 
 
 
 
 
 # 154 "/usr/src/linux-2.4.2/include/asm/termios.h"
 
 
 
 
 
 
 
 
 
 
 # 5 "/usr/src/linux-2.4.2/include/linux/termios.h" 2
 
 
 
 # 22 "/usr/src/linux-2.4.2/include/linux/tty.h" 2
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/tty_driver.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct tty_driver {
 	int	magic;		=20
 	const char	*driver_name;
 	const char	*name;
 	int	name_base;	=20
 	short	major;		=20
 	short	minor_start;	=20
 	short	num;		=20
 	short	type;		=20
 	short	subtype;	=20
 	struct termios init_termios; =20
 	int	flags;		=20
 	int	*refcount;	=20
 	struct proc_dir_entry *proc_entry; =20
 	struct tty_driver *other; =20
 
 	=20
 
 
 	struct tty_struct **table;
 	struct termios **termios;
 	struct termios **termios_locked;
 	void *driver_state;	=20
 =09
 	=20
 
 
 
 	int  (*open)(struct tty_struct * tty, struct file * filp);
 	void (*close)(struct tty_struct * tty, struct file * filp);
 	int  (*write)(struct tty_struct * tty, int from_user,
 		      const unsigned char *buf, int count);
 	void (*put_char)(struct tty_struct *tty, unsigned char ch);
 	void (*flush_chars)(struct tty_struct *tty);
 	int  (*write_room)(struct tty_struct *tty);
 	int  (*chars_in_buffer)(struct tty_struct *tty);
 	int  (*ioctl)(struct tty_struct *tty, struct file * file,
 		    unsigned int cmd, unsigned long arg);
 	void (*set_termios)(struct tty_struct *tty, struct termios * old);
 	void (*throttle)(struct tty_struct * tty);
 	void (*unthrottle)(struct tty_struct * tty);
 	void (*stop)(struct tty_struct *tty);
 	void (*start)(struct tty_struct *tty);
 	void (*hangup)(struct tty_struct *tty);
 	void (*break_ctl)(struct tty_struct *tty, int state);
 	void (*flush_buffer)(struct tty_struct *tty);
 	void (*set_ldisc)(struct tty_struct *tty);
 	void (*wait_until_sent)(struct tty_struct *tty, int timeout);
 	void (*send_xchar)(struct tty_struct *tty, char ch);
 	int (*read_proc)(char *page, char **start, off_t off,
 			  int count, int *eof, void *data);
 	int (*write_proc)(struct file *file, const char *buffer,
 			  unsigned long count, void *data);
 
 	=20
 
 
 	struct tty_driver *next;
 	struct tty_driver *prev;
 };
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 # 24 "/usr/src/linux-2.4.2/include/linux/tty.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/tty_ldisc.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct tty_ldisc {
 	int	magic;
 	char	*name;
 	int	num;
 	int	flags;
 	=20
 
 
 	int	(*open)(struct tty_struct *);
 	void	(*close)(struct tty_struct *);
 	void	(*flush_buffer)(struct tty_struct *tty);
 	ssize_t	(*chars_in_buffer)(struct tty_struct *tty);
 	ssize_t	(*read)(struct tty_struct * tty, struct file * file,
 			unsigned char * buf, size_t nr);
 	ssize_t	(*write)(struct tty_struct * tty, struct file * file,
 			 const unsigned char * buf, size_t nr);=09
 	int	(*ioctl)(struct tty_struct * tty, struct file * file,
 			 unsigned int cmd, unsigned long arg);
 	void	(*set_termios)(struct tty_struct *tty, struct termios * old);
 	unsigned int (*poll)(struct tty_struct *, struct file *,
 			     struct poll_table_struct *);
 =09
 	=20
 
 
 	void	(*receive_buf)(struct tty_struct *, const unsigned char *cp,
 			       char *fp, int count);
 	int	(*receive_room)(struct tty_struct *);
 	void	(*write_wakeup)(struct tty_struct *);
 };
 
 
 
 
 
 
 # 25 "/usr/src/linux-2.4.2/include/linux/tty.h" 2
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 struct screen_info {
 	unsigned char  orig_x;			=20
 	unsigned char  orig_y;			=20
 	unsigned short dontuse1;		=20
 	unsigned short orig_video_page;		=20
 	unsigned char  orig_video_mode;		=20
 	unsigned char  orig_video_cols;		=20
 	unsigned short unused2;			=20
 	unsigned short orig_video_ega_bx;	=20
 	unsigned short unused3;			=20
 	unsigned char  orig_video_lines;	=20
 	unsigned char  orig_video_isVGA;	=20
 	unsigned short orig_video_points;	=20
 
 	=20
 	unsigned short lfb_width;		=20
 	unsigned short lfb_height;		=20
 	unsigned short lfb_depth;		=20
 	unsigned long  lfb_base;		=20
 	unsigned long  lfb_size;		=20
 	unsigned short dontuse2, dontuse3;	=20
 	unsigned short lfb_linelength;		=20
 	unsigned char  red_size;		=20
 	unsigned char  red_pos;			=20
 	unsigned char  green_size;		=20
 	unsigned char  green_pos;		=20
 	unsigned char  blue_size;		=20
 	unsigned char  blue_pos;		=20
 	unsigned char  rsvd_size;		=20
 	unsigned char  rsvd_pos;		=20
 	unsigned short vesapm_seg;		=20
 	unsigned short vesapm_off;		=20
 	unsigned short pages;			=20
 						=20
 };
 
 extern struct screen_info screen_info;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 struct tty_flip_buffer {
 	struct tq_struct tqueue;
 	struct semaphore pty_sem;
 	char		*char_buf_ptr;
 	unsigned char	*flag_buf_ptr;
 	int		count;
 	int		buf_num;
 	unsigned char	char_buf[2* 512 ];
 	char		flag_buf[2* 512 ];
 	unsigned char	slop[4]; =20
 };
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct tty_struct {
 	int	magic;
 	struct tty_driver driver;
 	struct tty_ldisc ldisc;
 	struct termios *termios, *termios_locked;
 	int pgrp;
 	int session;
 	kdev_t	device;
 	unsigned long flags;
 	int count;
 	struct winsize winsize;
 	unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1;
 	unsigned char low_latency:1, warned:1;
 	unsigned char ctrl_status;
 
 	struct tty_struct *link;
 	struct fasync_struct *fasync;
 	struct tty_flip_buffer flip;
 	int max_flip_cnt;
 	int alt_speed;		=20
 	wait_queue_head_t write_wait;
 	wait_queue_head_t read_wait;
 	struct tq_struct tq_hangup;
 	void *disc_data;
 	void *driver_data;
 	struct list_head tty_files;
 
 
 =09
 	=20
 
 
 
 	unsigned int column;
 	unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1;
 	unsigned char closing:1;
 	unsigned short minimum_to_wake;
 	unsigned overrun_time;
 	int num_overrun;
 	unsigned long process_char_map[256/(8*sizeof(unsigned long))];
 	char *read_buf;
 	int read_head;
 	int read_tail;
 	int read_cnt;
 	unsigned long read_flags[4096 /(8*sizeof(unsigned long))];
 	int canon_data;
 	unsigned long canon_head;
 	unsigned int canon_column;
 	struct semaphore atomic_read;
 	struct semaphore atomic_write;
 	spinlock_t read_lock;
 };
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern void tty_write_flush(struct tty_struct *);
 
 extern struct termios tty_std_termios;
 extern struct tty_struct * redirect;
 extern struct tty_ldisc ldiscs[];
 extern int fg_console, last_console, want_console;
 
 extern int kmsg_redirect;
 
 extern void con_init(void);
 extern void console_init(void);
 
 extern int lp_init(void);
 extern int pty_init(void);
 extern void tty_init(void);
 extern int mxser_init(void);
 extern int moxa_init(void);
 extern int ip2_init(void);
 extern int pcxe_init(void);
 extern int pc_init(void);
 extern int vcs_init(void);
 extern int rp_init(void);
 extern int cy_init(void);
 extern int stl_init(void);
 extern int stli_init(void);
 extern int specialix_init(void);
 extern int espserial_init(void);
 extern int macserial_init(void);
 
 extern int tty_paranoia_check(struct tty_struct *tty, kdev_t device,
 			      const char *routine);
 extern char *tty_name(struct tty_struct *tty, char *buf);
 extern void tty_wait_until_sent(struct tty_struct * tty, long timeout);
 extern int tty_check_change(struct tty_struct * tty);
 extern void stop_tty(struct tty_struct * tty);
 extern void start_tty(struct tty_struct * tty);
 extern int tty_register_ldisc(int disc, struct tty_ldisc *new_ldisc);
 extern int tty_register_driver(struct tty_driver *driver);
 extern int tty_unregister_driver(struct tty_driver *driver);
 extern void tty_register_devfs (struct tty_driver *driver, unsigned int =
 flags,
 				unsigned minor);
 extern void tty_unregister_devfs (struct tty_driver *driver, unsigned =
 minor);
 extern int tty_read_raw_data(struct tty_struct *tty, unsigned char =
 *bufp,
 			     int buflen);
 extern void tty_write_message(struct tty_struct *tty, char *msg);
 
 extern int is_orphaned_pgrp(int pgrp);
 extern int is_ignored(int sig);
 extern int tty_signal(int sig, struct tty_struct *tty);
 extern void tty_hangup(struct tty_struct * tty);
 extern void tty_vhangup(struct tty_struct * tty);
 extern void tty_unhangup(struct file *filp);
 extern int tty_hung_up_p(struct file * filp);
 extern void do_SAK(struct tty_struct *tty);
 extern void disassociate_ctty(int priv);
 extern void tty_flip_buffer_push(struct tty_struct *tty);
 extern int tty_get_baud_rate(struct tty_struct *tty);
 
 =20
 extern struct tty_ldisc tty_ldisc_N_TTY;
 
 =20
 extern int n_tty_ioctl(struct tty_struct * tty, struct file * file,
 		       unsigned int cmd, unsigned long arg);
 
 =20
 
 extern void serial_console_init(void);
 =20
 =20
 
 extern int pcxe_open(struct tty_struct *tty, struct file *filp);
 
 =20
 
 extern void console_print(const char *);
 
 =20
 
 extern int vt_ioctl(struct tty_struct *tty, struct file * file,
 		    unsigned int cmd, unsigned long arg);
 
 
 
 # 24 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/sem.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/ipc.h" 1
 
 
 
 
 
 
 
 =20
 struct ipc_perm
 {
 	__kernel_key_t	key;
 	__kernel_uid_t	uid;
 	__kernel_gid_t	gid;
 	__kernel_uid_t	cuid;
 	__kernel_gid_t	cgid;
 	__kernel_mode_t	mode;=20
 	unsigned short	seq;
 };
 
 =20
 # 1 "/usr/src/linux-2.4.2/include/asm/ipcbuf.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 struct ipc64_perm
 {
 	__kernel_key_t	key;
 	__kernel_uid_t	uid;
 	__kernel_gid_t	gid;
 	__kernel_uid_t	cuid;
 	__kernel_gid_t	cgid;
 	__kernel_mode_t	mode;=20
 	unsigned short	seq;
 	unsigned short	__pad1;
 	unsigned long	__unused1;
 	unsigned long	__unused2;
 };
 
 
 # 21 "/usr/src/linux-2.4.2/include/linux/ipc.h" 2
 
 
 =20
 
 
 
 
 =20
 
   =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 struct kern_ipc_perm
 {
 	key_t		key;
 	uid_t		uid;
 	gid_t		gid;
 	uid_t		cuid;
 	gid_t		cgid;
 	mode_t		mode;=20
 	unsigned long	seq;
 };
 
 
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/sem.h" 2
 
 
 =20
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 struct semid_ds {
 	struct ipc_perm	sem_perm;		=20
 	__kernel_time_t	sem_otime;		=20
 	__kernel_time_t	sem_ctime;		=20
 	struct sem	*sem_base;		=20
 	struct sem_queue *sem_pending;		=20
 	struct sem_queue **sem_pending_last;	=20
 	struct sem_undo	*undo;			=20
 	unsigned short	sem_nsems;		=20
 };
 
 =20
 # 1 "/usr/src/linux-2.4.2/include/asm/sembuf.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 struct semid64_ds {
 	struct ipc64_perm sem_perm;		=20
 	__kernel_time_t	sem_otime;		=20
 	__kernel_time_t	sem_ctime;		=20
 	unsigned long	sem_nsems;		=20
 	unsigned long	__unused1;
 	unsigned long	__unused2;
 };
 
 
 # 35 "/usr/src/linux-2.4.2/include/linux/sem.h" 2
 
 
 =20
 struct sembuf {
 	unsigned short  sem_num;	=20
 	short		sem_op;		=20
 	short		sem_flg;	=20
 };
 
 =20
 union semun {
 	int val;			=20
 	struct semid_ds *buf;		=20
 	unsigned short *array;		=20
 	struct seminfo *__buf;		=20
 	void *__pad;
 };
 
 struct  seminfo {
 	int semmap;
 	int semmni;
 	int semmns;
 	int semmnu;
 	int semmsl;
 	int semopm;
 	int semume;
 	int semusz;
 	int semvmx;
 	int semaem;
 };
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 struct sem {
 	int	semval;		=20
 	int	sempid;		=20
 };
 
 =20
 struct sem_array {
 	struct kern_ipc_perm	sem_perm;	=20
 	time_t			sem_otime;	=20
 	time_t			sem_ctime;	=20
 	struct sem		*sem_base;	=20
 	struct sem_queue	*sem_pending;	=20
 	struct sem_queue	**sem_pending_last; =20
 	struct sem_undo		*undo;		=20
 	unsigned long		sem_nsems;	=20
 };
 
 =20
 struct sem_queue {
 	struct sem_queue *	next;	 =20
 	struct sem_queue **	prev;	 =20
 	struct task_struct*	sleeper; =20
 	struct sem_undo *	undo;	 =20
 	int    			pid;	 =20
 	int    			status;	 =20
 	struct sem_array *	sma;	 =20
 	int			id;	 =20
 	struct sembuf *		sops;	 =20
 	int			nsops;	 =20
 	int			alter;	 =20
 };
 
 =20
 
 
 struct sem_undo {
 	struct sem_undo *	proc_next;	=20
 	struct sem_undo *	id_next;	=20
 	int			semid;		=20
 	short *			semadj;		=20
 };
 
    long sys_semget (key_t key, int nsems, int semflg);
    long sys_semop (int semid, struct sembuf *sops, unsigned nsops);
    long sys_semctl (int semid, int semnum, int cmd, union semun arg);
 
 
 
 
 # 25 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/signal.h" 1
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/signal.h" 1
 
 
 
 
 
 =20
 struct siginfo;
 
 
 =20
 
 
 
 
 
 
 typedef unsigned long old_sigset_t;		=20
 
 typedef struct {
 	unsigned long sig[(64  / 64 ) ];
 } sigset_t;
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 typedef void (*__sighandler_t)(int);
 
 
 
 
 
 
 struct osf_sigaction {
 	__sighandler_t	sa_handler;
 	old_sigset_t	sa_mask;
 	int		sa_flags;
 };
 
 struct sigaction {
 	__sighandler_t	sa_handler;
 	unsigned long	sa_flags;
 	sigset_t	sa_mask;	=20
 };
 
 struct k_sigaction {
 	struct sigaction sa;
 	void (*ka_restorer)(void);
 };
 # 169 "/usr/src/linux-2.4.2/include/asm/signal.h"
 
 
 typedef struct sigaltstack {
 	void *ss_sp;
 	int ss_flags;
 	size_t ss_size;
 } stack_t;
 
 =20
 
 
 
 struct sigstack {
 	void *ss_sp;
 	int ss_onstack;
 };
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/sigcontext.h" 1
 
 
 
 struct sigcontext {
 	=20
 
 
 
 
 
 
 
 	 long		sc_onstack;
 	 long		sc_mask;
 	 long		sc_pc;
 	 long		sc_ps;
 	 long		sc_regs[32];
 	 long		sc_ownedfp;
 	 long		sc_fpregs[32];
 	 unsigned long	sc_fpcr;
 	 unsigned long	sc_fp_control;
 	 unsigned long	sc_reserved1, sc_reserved2;
 	 unsigned long	sc_ssize;
 	 char *		sc_sbase;
 	 unsigned long	sc_traparg_a0;
 	 unsigned long	sc_traparg_a1;
 	 unsigned long	sc_traparg_a2;
 	 unsigned long	sc_fp_trap_pc;
 	 unsigned long	sc_fp_trigger_sum;
 	 unsigned long	sc_fp_trigger_inst;
 };
 
 
 
 # 187 "/usr/src/linux-2.4.2/include/asm/signal.h" 2
 
 
 
 
 # 4 "/usr/src/linux-2.4.2/include/linux/signal.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/siginfo.h" 1
 
 
 
 
 
 =20
 
 typedef union sigval {
 	int sival_int;
 	void *sival_ptr;
 } sigval_t;
 
 
 
 
 typedef struct siginfo {
 	int si_signo;
 	int si_errno;
 	int si_code;
 
 	union {
 		int _pad[((128 /sizeof(int)) - 4) ];
 
 		=20
 		struct {
 			pid_t _pid;		=20
 			uid_t _uid;		=20
 		} _kill;
 
 		=20
 		struct {
 			unsigned int _timer1;
 			unsigned int _timer2;
 		} _timer;
 
 		=20
 		struct {
 			pid_t _pid;		=20
 			uid_t _uid;		=20
 			sigval_t _sigval;
 		} _rt;
 
 		=20
 		struct {
 			pid_t _pid;		=20
 			uid_t _uid;		=20
 			int _status;		=20
 			clock_t _utime;
 			clock_t _stime;
 		} _sigchld;
 
 		=20
 		struct {
 			void *_addr; =20
 		} _sigfault;
 
 		=20
 		struct {
 			int _band;	=20
 			int _fd;
 		} _sigpoll;
 	} _sifields;
 } siginfo_t;
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 97 "/usr/src/linux-2.4.2/include/asm/siginfo.h"
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 typedef struct sigevent {
 	sigval_t sigev_value;
 	int sigev_signo;
 	int sigev_notify;
 	union {
 		int _pad[((64 /sizeof(int)) - 4) ];
 
 		struct {
 			void (*_function)(sigval_t);
 			void *_attribute;	=20
 		} _sigev_thread;
 	} _sigev_un;
 } sigevent_t;
 
 
 
 
 
 
 
 extern inline void copy_siginfo(siginfo_t *to, siginfo_t *from)
 {
 	if (from->si_code < 0)
 		__builtin_memcpy (to, from, sizeof(siginfo_t));
 	else
 		=20
 		__builtin_memcpy (to, from, 4*sizeof(int) + =
 sizeof(from->_sifields._sigchld));
 }
 
 extern int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from);
 
 
 
 
 # 5 "/usr/src/linux-2.4.2/include/linux/signal.h" 2
 
 
 
 =20
 
 
 
 struct sigqueue {
 	struct sigqueue *next;
 	siginfo_t info;
 };
 
 struct sigpending {
 	struct sigqueue *head, **tail;
 	sigset_t signal;
 };
 
 =20
 
 
 
 
 
 
 =20
 
 static inline void sigaddset(sigset_t *set, int _sig)
 {
 	unsigned long sig =3D _sig - 1;
 	if ((64  / 64 )  =3D=3D 1)
 		set->sig[0] |=3D 1UL << sig;
 	else
 		set->sig[sig / 64 ] |=3D 1UL << (sig % 64 );
 }
 
 static inline void sigdelset(sigset_t *set, int _sig)
 {
 	unsigned long sig =3D _sig - 1;
 	if ((64  / 64 )  =3D=3D 1)
 		set->sig[0] &=3D ~(1UL << sig);
 	else
 		set->sig[sig / 64 ] &=3D ~(1UL << (sig % 64 ));
 }
 
 static inline int sigismember(sigset_t *set, int _sig)
 {
 	unsigned long sig =3D _sig - 1;
 	if ((64  / 64 )  =3D=3D 1)
 		return 1 & (set->sig[0] >> sig);
 	else
 		return 1 & (set->sig[sig / 64 ] >> (sig % 64 ));
 }
 
 static inline int sigfindinword(unsigned long word)
 {
 	return ffz(~word);
 }
 
 
 
 
 
 
 
 
 
 # 106 "/usr/src/linux-2.4.2/include/linux/signal.h"
 
 
 static inline void  sigorsets (sigset_t *r, const sigset_t *a, const =
 sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned =
 long i;	for (i =3D 0; i < (64  / 64 ) /4; ++i) {	a0 =3D a->sig[4*i+0]; =
 a1 =3D a->sig[4*i+1];	a2 =3D a->sig[4*i+2]; a3 =3D a->sig[4*i+3];	b0 =3D =
 b->sig[4*i+0]; b1 =3D b->sig[4*i+1];	b2 =3D b->sig[4*i+2]; b3 =3D =
 b->sig[4*i+3];	r->sig[4*i+0] =3D   (( a0 ) | (  b0 )) ;	r->sig[4*i+1] =
 =3D   (( a1 ) | (  b1 )) ;	r->sig[4*i+2] =3D   (( a2 ) | (  b2 )) ;	=
 r->sig[4*i+3] =3D   (( a3 ) | (  b3 )) ;	}	switch ((64  / 64 )  % 4) {	=
 case 3:	a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1]; a2 =3D =
 a->sig[4*i+2]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; b2 =3D =
 b->sig[4*i+2]; r->sig[4*i+0] =3D   (( a0 ) | (  b0 )) ;	r->sig[4*i+1] =
 =3D   (( a1 ) | (  b1 )) ;	r->sig[4*i+2] =3D   (( a2 ) | (  b2 )) ;	=
 break;	case 2:	a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1];	b0 =3D =
 b->sig[4*i+0]; b1 =3D b->sig[4*i+1];	r->sig[4*i+0] =3D   (( a0 ) | (  b0 =
 )) ;	r->sig[4*i+1] =3D   (( a1 ) | (  b1 )) ;	break;	case 1:	a0 =3D =
 a->sig[4*i+0]; b0 =3D b->sig[4*i+0];	r->sig[4*i+0] =3D   (( a0 ) | (  b0 =
 )) ;	break;	}	}=20
 
 
 static inline void  sigandsets (sigset_t *r, const sigset_t *a, const =
 sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned =
 long i;	for (i =3D 0; i < (64  / 64 ) /4; ++i) {	a0 =3D a->sig[4*i+0]; =
 a1 =3D a->sig[4*i+1];	a2 =3D a->sig[4*i+2]; a3 =3D a->sig[4*i+3];	b0 =3D =
 b->sig[4*i+0]; b1 =3D b->sig[4*i+1];	b2 =3D b->sig[4*i+2]; b3 =3D =
 b->sig[4*i+3];	r->sig[4*i+0] =3D   (( a0 ) & (  b0 )) ;	r->sig[4*i+1] =
 =3D   (( a1 ) & (  b1 )) ;	r->sig[4*i+2] =3D   (( a2 ) & (  b2 )) ;	=
 r->sig[4*i+3] =3D   (( a3 ) & (  b3 )) ;	}	switch ((64  / 64 )  % 4) {	=
 case 3:	a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1]; a2 =3D =
 a->sig[4*i+2]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; b2 =3D =
 b->sig[4*i+2]; r->sig[4*i+0] =3D   (( a0 ) & (  b0 )) ;	r->sig[4*i+1] =
 =3D   (( a1 ) & (  b1 )) ;	r->sig[4*i+2] =3D   (( a2 ) & (  b2 )) ;	=
 break;	case 2:	a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1];	b0 =3D =
 b->sig[4*i+0]; b1 =3D b->sig[4*i+1];	r->sig[4*i+0] =3D   (( a0 ) & (  b0 =
 )) ;	r->sig[4*i+1] =3D   (( a1 ) & (  b1 )) ;	break;	case 1:	a0 =3D =
 a->sig[4*i+0]; b0 =3D b->sig[4*i+0];	r->sig[4*i+0] =3D   (( a0 ) & (  b0 =
 )) ;	break;	}	}=20
 
 
 static inline void  signandsets (sigset_t *r, const sigset_t *a, const =
 sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned =
 long i;	for (i =3D 0; i < (64  / 64 ) /4; ++i) {	a0 =3D a->sig[4*i+0]; =
 a1 =3D a->sig[4*i+1];	a2 =3D a->sig[4*i+2]; a3 =3D a->sig[4*i+3];	b0 =3D =
 b->sig[4*i+0]; b1 =3D b->sig[4*i+1];	b2 =3D b->sig[4*i+2]; b3 =3D =
 b->sig[4*i+3];	r->sig[4*i+0] =3D   (( a0 ) & ~(  b0 )) ;	r->sig[4*i+1] =
 =3D   (( a1 ) & ~(  b1 )) ;	r->sig[4*i+2] =3D   (( a2 ) & ~(  b2 )) ;	=
 r->sig[4*i+3] =3D   (( a3 ) & ~(  b3 )) ;	}	switch ((64  / 64 )  % 4) {	=
 case 3:	a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1]; a2 =3D =
 a->sig[4*i+2]; b0 =3D b->sig[4*i+0]; b1 =3D b->sig[4*i+1]; b2 =3D =
 b->sig[4*i+2]; r->sig[4*i+0] =3D   (( a0 ) & ~(  b0 )) ;	r->sig[4*i+1] =
 =3D   (( a1 ) & ~(  b1 )) ;	r->sig[4*i+2] =3D   (( a2 ) & ~(  b2 )) ;	=
 break;	case 2:	a0 =3D a->sig[4*i+0]; a1 =3D a->sig[4*i+1];	b0 =3D =
 b->sig[4*i+0]; b1 =3D b->sig[4*i+1];	r->sig[4*i+0] =3D   (( a0 ) & ~(  =
 b0 )) ;	r->sig[4*i+1] =3D   (( a1 ) & ~(  b1 )) ;	break;	case 1:	a0 =3D =
 a->sig[4*i+0]; b0 =3D b->sig[4*i+0];	r->sig[4*i+0] =3D   (( a0 ) & ~(  =
 b0 )) ;	break;	}	}=20
 
 
 
 
 
 
 
 # 138 "/usr/src/linux-2.4.2/include/linux/signal.h"
 
 
 static inline void  signotset (sigset_t *set)	{	unsigned long i;	for (i =
 =3D 0; i < (64  / 64 ) /4; ++i) {	set->sig[4*i+0] =3D   (~( =
 set->sig[4*i+0] )) ;	set->sig[4*i+1] =3D   (~( set->sig[4*i+1] )) ;	=
 set->sig[4*i+2] =3D   (~( set->sig[4*i+2] )) ;	set->sig[4*i+3] =3D   (~( =
 set->sig[4*i+3] )) ;	}	switch ((64  / 64 )  % 4) {	case 3: =
 set->sig[4*i+2] =3D   (~( set->sig[4*i+2] )) ;	case 2: set->sig[4*i+1] =
 =3D   (~( set->sig[4*i+1] )) ;	case 1: set->sig[4*i+0] =3D   (~( =
 set->sig[4*i+0] )) ;	}	}=20
 
 
 
 
 static inline void sigemptyset(sigset_t *set)
 {
 	switch ((64  / 64 ) ) {
 	default:
 		(__builtin_constant_p(  0 )	? (__builtin_constant_p(  sizeof(sigset_t) =
 ) && (  0 ) =3D=3D 0	? __builtin_memset(( set ),0,(  sizeof(sigset_t) )) =
 : __constant_c_memset(( set ),0x0101010101010101UL*(unsigned char)(  0 =
 ),(  sizeof(sigset_t) ))) : __memset(( set ),(  0 ),(  sizeof(sigset_t) =
 ))) ;
 		break;
 	case 2: set->sig[1] =3D 0;
 	case 1:	set->sig[0] =3D 0;
 		break;
 	}
 }
 
 static inline void sigfillset(sigset_t *set)
 {
 	switch ((64  / 64 ) ) {
 	default:
 		(__builtin_constant_p(  -1 )	? (__builtin_constant_p(  =
 sizeof(sigset_t) ) && (  -1 ) =3D=3D 0	? __builtin_memset(( set ),0,(  =
 sizeof(sigset_t) )) : __constant_c_memset(( set =
 ),0x0101010101010101UL*(unsigned char)(  -1 ),(  sizeof(sigset_t) ))) : =
 __memset(( set ),(  -1 ),(  sizeof(sigset_t) ))) ;
 		break;
 	case 2: set->sig[1] =3D -1;
 	case 1:	set->sig[0] =3D -1;
 		break;
 	}
 }
 
 extern char * render_sigset_t(sigset_t *set, char *buffer);
 
 =20
 
 static inline void sigaddsetmask(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] |=3D mask;
 }
 
 static inline void sigdelsetmask(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] &=3D ~mask;
 }
 
 static inline int sigtestsetmask(sigset_t *set, unsigned long mask)
 {
 	return (set->sig[0] & mask) !=3D 0;
 }
 
 static inline void siginitset(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] =3D mask;
 	switch ((64  / 64 ) ) {
 	default:
 		(__builtin_constant_p(  0 )	? (__builtin_constant_p(  =
 sizeof(long)*((64  / 64 ) -1) ) && (  0 ) =3D=3D 0	? __builtin_memset(( =
 &set->sig[1] ),0,(  sizeof(long)*((64  / 64 ) -1) )) : =
 __constant_c_memset(( &set->sig[1] ),0x0101010101010101UL*(unsigned =
 char)(  0 ),(  sizeof(long)*((64  / 64 ) -1) ))) : __memset(( =
 &set->sig[1] ),(  0 ),(  sizeof(long)*((64  / 64 ) -1) ))) ;
 		break;
 	case 2: set->sig[1] =3D 0;
 	case 1: ;
 	}
 }
 
 static inline void siginitsetinv(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] =3D ~mask;
 	switch ((64  / 64 ) ) {
 	default:
 		(__builtin_constant_p(  -1 )	? (__builtin_constant_p(  =
 sizeof(long)*((64  / 64 ) -1) ) && (  -1 ) =3D=3D 0	? __builtin_memset(( =
 &set->sig[1] ),0,(  sizeof(long)*((64  / 64 ) -1) )) : =
 __constant_c_memset(( &set->sig[1] ),0x0101010101010101UL*(unsigned =
 char)(  -1 ),(  sizeof(long)*((64  / 64 ) -1) ))) : __memset(( =
 &set->sig[1] ),(  -1 ),(  sizeof(long)*((64  / 64 ) -1) ))) ;
 		break;
 	case 2: set->sig[1] =3D -1;
 	case 1: ;
 	}
 }
 
 
 
 static inline void init_sigpending(struct sigpending *sig)
 {
 	sigemptyset(&sig->signal);
 	sig->head =3D ((void *)0) ;
 	sig->tail =3D &sig->head;
 }
 
 extern long do_sigpending(void *, unsigned long);
 
 
 
 
 # 26 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/securebits.h" 1
 
 
 
 
 
 extern unsigned securebits;
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 27 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/fs_struct.h" 1
 
 
 
 
 struct fs_struct {
 	atomic_t count;
 	rwlock_t lock;
 	int umask;
 	struct dentry * root, * pwd, * altroot;
 	struct vfsmount * rootmnt, * pwdmnt, * altrootmnt;
 };
 
 
 
 
 
 
 
 
 extern void exit_fs(struct task_struct *);
 extern void set_fs_altroot(void);
 
 =20
 
 
 
 
 static inline void set_fs_root(struct fs_struct *fs,
 	struct vfsmount *mnt,
 	struct dentry *dentry)
 {
 	struct dentry *old_root;
 	struct vfsmount *old_rootmnt;
 	(void)( &fs->lock ) ;
 	old_root =3D fs->root;
 	old_rootmnt =3D fs->rootmnt;
 	fs->rootmnt =3D mntget(mnt);
 	fs->root =3D dget(dentry);
 	do { } while(0) ;
 	if (old_root) {
 		dput(old_root);
 		mntput(old_rootmnt);
 	}
 }
 
 =20
 
 
 
 
 static inline void set_fs_pwd(struct fs_struct *fs,
 	struct vfsmount *mnt,
 	struct dentry *dentry)
 {
 	struct dentry *old_pwd;
 	struct vfsmount *old_pwdmnt;
 	(void)( &fs->lock ) ;
 	old_pwd =3D fs->pwd;
 	old_pwdmnt =3D fs->pwdmnt;
 	fs->pwdmnt =3D mntget(mnt);
 	fs->pwd =3D dget(dentry);
 	do { } while(0) ;
 	if (old_pwd) {
 		dput(old_pwd);
 		mntput(old_pwdmnt);
 	}
 }
 
 struct fs_struct *copy_fs_struct(struct fs_struct *old);
 void put_fs_struct(struct fs_struct *fs);
 
 
 
 # 28 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 extern unsigned long avenrun[];		=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern int nr_running, nr_threads;
 extern int last_pid;
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/param.h" 1
 
 
 
 
 
 
 # 78 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/resource.h" 1
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 struct	rusage {
 	struct timeval ru_utime;	=20
 	struct timeval ru_stime;	=20
 	long	ru_maxrss;		=20
 	long	ru_ixrss;		=20
 	long	ru_idrss;		=20
 	long	ru_isrss;		=20
 	long	ru_minflt;		=20
 	long	ru_majflt;		=20
 	long	ru_nswap;		=20
 	long	ru_inblock;		=20
 	long	ru_oublock;		=20
 	long	ru_msgsnd;		=20
 	long	ru_msgrcv;		=20
 	long	ru_nsignals;		=20
 	long	ru_nvcsw;		=20
 	long	ru_nivcsw;		=20
 };
 
 struct rlimit {
 	unsigned long	rlim_cur;
 	unsigned long	rlim_max;
 };
 
 
 
 
 
 
 
 
 =20
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/resource.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 # 45 "/usr/src/linux-2.4.2/include/asm/resource.h"
 
 
 
 
 # 56 "/usr/src/linux-2.4.2/include/linux/resource.h" 2
 
 
 
 # 79 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/timer.h" 1
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 struct timer_list {
 	struct list_head list;
 	unsigned long expires;
 	unsigned long data;
 	void (*function)(unsigned long);
 };
 
 extern void add_timer(struct timer_list * timer);
 extern int del_timer(struct timer_list * timer);
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 int mod_timer(struct timer_list *timer, unsigned long expires);
 
 extern void it_real_fn(unsigned long);
 
 static inline void init_timer(struct timer_list * timer)
 {
 	timer->list.next =3D timer->list.prev =3D ((void *)0) ;
 }
 
 static inline int timer_pending (const struct timer_list * timer)
 {
 	return timer->list.next !=3D ((void *)0) ;
 }
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 80 "/usr/src/linux-2.4.2/include/linux/sched.h" 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 struct sched_param {
 	int sched_priority;
 };
 
 
 
 
 
 =20
 
 
 
 
 
 extern rwlock_t tasklist_lock;
 extern spinlock_t runqueue_lock;
 extern spinlock_t mmlist_lock;
 
 extern void sched_init(void);
 extern void init_idle(void);
 extern void show_state(void);
 extern void cpu_init (void);
 extern void trap_init(void);
 extern void update_process_times(int user);
 extern void update_one_process(struct task_struct *p, unsigned long =
 user,
 			       unsigned long system, int cpu);
 
 
 extern signed long  schedule_timeout(signed long timeout)  ;
    void schedule(void);
 
 extern int schedule_task(struct tq_struct *task);
 extern void flush_scheduled_tasks(void);
 extern int start_context_thread(void);
 extern int current_is_keventd(void);
 
 =20
 
 
 
 
 
 =20
 
 
 struct files_struct {
 	atomic_t count;
 	rwlock_t file_lock;
 	int max_fds;
 	int max_fdset;
 	int next_fd;
 	struct file ** fd;	=20
 	fd_set *close_on_exec;
 	fd_set *open_fds;
 	fd_set close_on_exec_init;
 	fd_set open_fds_init;
 	struct file * fd_array[64  ];
 };
 
 
 # 196 "/usr/src/linux-2.4.2/include/linux/sched.h"
 
 =20
 
 
 =20
 
 
 struct mm_struct {
 	struct vm_area_struct * mmap;		=20
 	struct vm_area_struct * mmap_avl;	=20
 	struct vm_area_struct * mmap_cache;	=20
 	pgd_t * pgd;
 	atomic_t mm_users;			=20
 	atomic_t mm_count;			=20
 	int map_count;				=20
 	struct semaphore mmap_sem;
 	spinlock_t page_table_lock;
 
 	struct list_head mmlist;		=20
 
 	unsigned long start_code, end_code, start_data, end_data;
 	unsigned long start_brk, brk, start_stack;
 	unsigned long arg_start, arg_end, env_start, env_end;
 	unsigned long rss, total_vm, locked_vm;
 	unsigned long def_flags;
 	unsigned long cpu_vm_mask;
 	unsigned long swap_address;
 
 	=20
 	mm_context_t context;
 };
 
 extern int mmlist_nr;
 
 
 # 243 "/usr/src/linux-2.4.2/include/linux/sched.h"
 
 struct signal_struct {
 	atomic_t		count;
 	struct k_sigaction	action[64 ];
 	spinlock_t		siglock;
 };
 
 
 
 
 
 
 
 
 =20
 
 
 struct user_struct {
 	atomic_t __count;	=20
 	atomic_t processes;	=20
 	atomic_t files;		=20
 
 	=20
 	struct user_struct *next, **pprev;
 	uid_t uid;
 };
 
 
 
 
 
 
 extern struct user_struct root_user;
 
 
 struct task_struct {
 	=20
 
 
 	volatile long state;	=20
 	unsigned long flags;	=20
 	int sigpending;
 	mm_segment_t addr_limit;	=20
 
 
 
 	struct exec_domain *exec_domain;
 	volatile long need_resched;
 	unsigned long ptrace;
 
 	int lock_depth;		=20
 
 =20
 
 
 
 
 	long counter;
 	long nice;
 	unsigned long policy;
 	struct mm_struct *mm;
 	int has_cpu, processor;
 	unsigned long cpus_allowed;
 	=20
 
 
 
 	struct list_head run_list;
 	unsigned long sleep_time;
 
 	struct task_struct *next_task, *prev_task;
 	struct mm_struct *active_mm;
 
 =20
 	struct linux_binfmt *binfmt;
 	int exit_code, exit_signal;
 	int pdeath_signal;  =20
 	=20
 	unsigned long personality;
 	int dumpable:1;
 	int did_exec:1;
 	pid_t pid;
 	pid_t pgrp;
 	pid_t tty_old_pgrp;
 	pid_t session;
 	pid_t tgid;
 	=20
 	int leader;
 	=20
 
 
 
 
 	struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr;
 	struct list_head thread_group;
 
 	=20
 	struct task_struct *pidhash_next;
 	struct task_struct **pidhash_pprev;
 
 	wait_queue_head_t wait_chldexit;	=20
 	struct semaphore *vfork_sem;		=20
 	unsigned long rt_priority;
 	unsigned long it_real_value, it_prof_value, it_virt_value;
 	unsigned long it_real_incr, it_prof_incr, it_virt_incr;
 	struct timer_list real_timer;
 	struct tms times;
 	unsigned long start_time;
 	long per_cpu_utime[1 ], per_cpu_stime[1 ];
 =20
 	unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap;
 	int swappable:1;
 =20
 	uid_t uid,euid,suid,fsuid;
 	gid_t gid,egid,sgid,fsgid;
 	int ngroups;
 	gid_t	groups[32 ];
 	kernel_cap_t   cap_effective, cap_inheritable, cap_permitted;
 	int keep_capabilities:1;
 	struct user_struct *user;
 =20
 	struct rlimit rlim[11 ];
 	unsigned short used_math;
 	char comm[16];
 =20
 	int link_count;
 	struct tty_struct *tty; =20
 	unsigned int locks; =20
 =20
 	struct sem_undo *semundo;
 	struct sem_queue *semsleeping;
 =20
 	struct thread_struct thread;
 =20
 	struct fs_struct *fs;
 =20
 	struct files_struct *files;
 =20
 	spinlock_t sigmask_lock;	=20
 	struct signal_struct *sig;
 
 	sigset_t blocked;
 	struct sigpending pending;
 
 	unsigned long sas_ss_sp;
 	size_t sas_ss_size;
 	int (*notifier)(void *priv);
 	void *notifier_data;
 	sigset_t *notifier_mask;
 =09
 =20
    	u32 parent_exec_id;
    	u32 self_exec_id;
 =20
 	spinlock_t alloc_lock;
 };
 
 =20
 
 
 
 					=20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 # 479 "/usr/src/linux-2.4.2/include/linux/sched.h"
 
 
 
 
 
 
 union task_union {
 	struct task_struct task;
 	unsigned long stack[2048*sizeof(long) /sizeof(long)];
 };
 
 extern union task_union init_task_union;
 
 extern struct   mm_struct init_mm;
 extern struct task_struct *init_tasks[1 ];
 
 =20
 
 extern struct task_struct *pidhash[(4096 >> 2) ];
 
 
 
 static inline void hash_pid(struct task_struct *p)
 {
 	struct task_struct **htable =3D &pidhash[(((( p->pid ) >> 8) ^ ( p->pid =
 )) & ((4096 >> 2)  - 1)) ];
 
 	if((p->pidhash_next =3D *htable) !=3D ((void *)0) )
 		(*htable)->pidhash_pprev =3D &p->pidhash_next;
 	*htable =3D p;
 	p->pidhash_pprev =3D htable;
 }
 
 static inline void unhash_pid(struct task_struct *p)
 {
 	if(p->pidhash_next)
 		p->pidhash_next->pidhash_pprev =3D p->pidhash_pprev;
 	*p->pidhash_pprev =3D p->pidhash_next;
 }
 
 static inline struct task_struct *find_task_by_pid(int pid)
 {
 	struct task_struct *p, **htable =3D &pidhash[(((( pid ) >> 8) ^ ( pid =
 )) & ((4096 >> 2)  - 1)) ];
 
 	for(p =3D *htable; p && p->pid !=3D pid; p =3D p->pidhash_next)
 		;
 
 	return p;
 }
 
 =20
 extern struct user_struct * alloc_uid(uid_t);
 extern void free_uid(struct user_struct *);
 
 
 
 extern unsigned long volatile jiffies;
 extern unsigned long itimer_ticks;
 extern unsigned long itimer_next;
 extern struct timeval xtime;
 extern void do_timer(struct pt_regs *);
 
 extern unsigned int * prof_buffer;
 extern unsigned long prof_len;
 extern unsigned long prof_shift;
 
 
 
 extern void  __wake_up(wait_queue_head_t *q, unsigned int mode, int nr)  =
 ;
 extern void  __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int =
 nr)  ;
 extern void  sleep_on(wait_queue_head_t *q)  ;
 extern long  sleep_on_timeout(wait_queue_head_t *q,
 				      signed long timeout)  ;
 extern void  interruptible_sleep_on(wait_queue_head_t *q)  ;
 extern long  interruptible_sleep_on_timeout(wait_queue_head_t *q,
 						    signed long timeout)  ;
 extern int  wake_up_process(struct task_struct * tsk)  ;
 
 
 
 
 
 
 
 
 
 
 
    long sys_wait4(pid_t pid,unsigned int * stat_addr, int options, =
 struct rusage * ru);
 
 extern int in_group_p(gid_t);
 extern int in_egroup_p(gid_t);
 
 extern void proc_caches_init(void);
 extern void flush_signals(struct task_struct *);
 extern void flush_signal_handlers(struct task_struct *);
 extern int dequeue_signal(sigset_t *, siginfo_t *);
 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
 			      sigset_t *mask);
 extern void unblock_all_signals(void);
 extern int send_sig_info(int, struct siginfo *, struct task_struct *);
 extern int force_sig_info(int, struct siginfo *, struct task_struct *);
 extern int kill_pg_info(int, struct siginfo *, pid_t);
 extern int kill_sl_info(int, struct siginfo *, pid_t);
 extern int kill_proc_info(int, struct siginfo *, pid_t);
 extern void notify_parent(struct task_struct *, int);
 extern void do_notify_parent(struct task_struct *, int);
 extern void force_sig(int, struct task_struct *);
 extern int send_sig(int, struct task_struct *, int);
 extern int kill_pg(pid_t, int, int);
 extern int kill_sl(pid_t, int, int);
 extern int kill_proc(pid_t, int, int);
 extern int do_sigaction(int, const struct k_sigaction *, struct =
 k_sigaction *);
 extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
 
 static inline int signal_pending(struct task_struct *p)
 {
 	return (p->sigpending !=3D 0);
 }
 
 =20
 
 
 
 static inline int has_pending_signals(sigset_t *signal, sigset_t =
 *blocked)
 {
 	unsigned long ready;
 	long i;
 
 	switch ((64  / 64 ) ) {
 	default:
 		for (i =3D (64  / 64 ) , ready =3D 0; --i >=3D 0 ;)
 			ready |=3D signal->sig[i] &~ blocked->sig[i];
 		break;
 
 	case 4: ready  =3D signal->sig[3] &~ blocked->sig[3];
 		ready |=3D signal->sig[2] &~ blocked->sig[2];
 		ready |=3D signal->sig[1] &~ blocked->sig[1];
 		ready |=3D signal->sig[0] &~ blocked->sig[0];
 		break;
 
 	case 2: ready  =3D signal->sig[1] &~ blocked->sig[1];
 		ready |=3D signal->sig[0] &~ blocked->sig[0];
 		break;
 
 	case 1: ready  =3D signal->sig[0] &~ blocked->sig[0];
 	}
 	return ready !=3D	0;
 }
 
 =20
 
 
 
 static inline void recalc_sigpending(struct task_struct *t)
 {
 	t->sigpending =3D has_pending_signals(&t->pending.signal, &t->blocked);
 }
 
 =20
 
 static inline int on_sig_stack(unsigned long sp)
 {
 	return (sp - current->sas_ss_sp < current->sas_ss_size);
 }
 
 static inline int sas_ss_flags(unsigned long sp)
 {
 	return (current->sas_ss_size =3D=3D 0 ? 2=20
 		: on_sig_stack(sp) ? 1  : 0);
 }
 
 extern int request_irq(unsigned int,
 		       void (*handler)(int, void *, struct pt_regs *),
 		       unsigned long, const char *, void *);
 extern void free_irq(unsigned int, void *);
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline int suser(void)
 {
 	if (! ( (1 << ( 0  +1)) & 0x00000000  ? (1 << ( 0  )) & 0x00000000  :	=
 (1 << ( 0  )) & securebits )  && current->euid =3D=3D 0) {=20
 		current->flags |=3D 0x00000100 ;
 		return 1;
 	}
 	return 0;
 }
 
 static inline int fsuser(void)
 {
 	if (! ( (1 << ( 0  +1)) & 0x00000000  ? (1 << ( 0  )) & 0x00000000  :	=
 (1 << ( 0  )) & securebits )  && current->fsuid =3D=3D 0) {
 		current->flags |=3D 0x00000100 ;
 		return 1;
 	}
 	return 0;
 }
 
 =20
 
 
 
 
 
 static inline int capable(int cap)
 {
 
 	if (((  current->cap_effective  )  & (1 << (   cap  )) ) )
 
 
 
 	{
 		current->flags |=3D 0x00000100 ;
 		return 1;
 	}
 	return 0;
 }
 
 =20
 
 
 extern struct mm_struct * mm_alloc(void);
 
 extern struct mm_struct * start_lazy_tlb(void);
 extern void end_lazy_tlb(struct mm_struct *mm);
 
 =20
 extern inline void  __mmdrop(struct mm_struct *)  ;
 static inline void mmdrop(struct mm_struct * mm)
 {
 	if ((atomic_sub_return(1, ( &mm->mm_count )) =3D=3D 0) )
 		__mmdrop(mm);
 }
 
 =20
 extern void mmput(struct mm_struct *);
 =20
 extern void mm_release(void);
 
 =20
 
 
 extern struct file ** alloc_fd_array(int);
 extern int expand_fd_array(struct files_struct *, int nr);
 extern void free_fd_array(struct file **, int);
 
 extern fd_set *alloc_fdset(int);
 extern int expand_fdset(struct files_struct *, int nr);
 extern void free_fdset(fd_set *, int);
 
 extern int  copy_thread(int, unsigned long, unsigned long, unsigned =
 long, struct task_struct *, struct pt_regs *);
 extern void flush_thread(void);
 extern void exit_thread(void);
 
 extern void exit_mm(struct task_struct *);
 extern void exit_files(struct task_struct *);
 extern void exit_sighand(struct task_struct *);
 
 extern void daemonize(void);
 
 extern int do_execve(char *, char **, char **, struct pt_regs *);
 extern int do_fork(unsigned long, unsigned long, struct pt_regs *, =
 unsigned long);
 
 extern void  add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)  =
 ;
 extern void  add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t =
 * wait)  ;
 extern void  remove_wait_queue(wait_queue_head_t *q, wait_queue_t * =
 wait)  ;
 
 
 # 771 "/usr/src/linux-2.4.2/include/linux/sched.h"
 
 
 
 
 
 
 
 
 
 # 799 "/usr/src/linux-2.4.2/include/linux/sched.h"
 =09
 
 
 
 
 
 
 
 
 
 # 818 "/usr/src/linux-2.4.2/include/linux/sched.h"
 
 
 # 829 "/usr/src/linux-2.4.2/include/linux/sched.h"
 
 
 
 
 
 
 
 static inline void del_from_runqueue(struct task_struct * p)
 {
 	nr_running--;
 	p->sleep_time =3D jiffies;
 	list_del(&p->run_list);
 	p->run_list.next =3D ((void *)0) ;
 }
 
 static inline int task_on_runqueue(struct task_struct *p)
 {
 	return (p->run_list.next !=3D ((void *)0) );
 }
 
 static inline void unhash_process(struct task_struct *p)
 {
 	if (task_on_runqueue(p)) __asm__ __volatile__("call_pal 129 # bugchk") =
 ;
 	do { do { ((void) swpipl( 7  )) ; __asm__ __volatile__("": : :"memory") =
 ; } while(0)  ;        (void)(  &tasklist_lock  ) ; } while (0) ;
 	nr_threads--;
 	unhash_pid(p);
 	do { ( p )->next_task->prev_task =3D ( p )->prev_task; ( p =
 )->prev_task->next_task =3D ( p )->next_task; if (( p )->p_osptr) ( p =
 )->p_osptr->p_ysptr =3D ( p )->p_ysptr; if (( p )->p_ysptr) ( p =
 )->p_ysptr->p_osptr =3D ( p )->p_osptr; else ( p )->p_pptr->p_cptr =3D ( =
 p )->p_osptr; } while (0) ;
 	list_del(&p->thread_group);
 	do { do { } while(0) ; do { __asm__ __volatile__("": : :"memory") ; =
 ((void) swpipl( 0  )) ; } while(0)  ;       } while (0) ;
 }
 
 static inline void task_lock(struct task_struct *p)
 {
 	(void)( &p->alloc_lock ) ;
 }
 
 static inline void task_unlock(struct task_struct *p)
 {
 	do { } while(0) ;
 }
 
 =20
 static inline char * d_path(struct dentry *dentry, struct vfsmount =
 *vfsmnt,
 				char *buf, int buflen)
 {
 	char *res;
 	struct vfsmount *rootmnt;
 	struct dentry *root;
 	(void)( &current->fs->lock ) ;
 	rootmnt =3D mntget(current->fs->rootmnt);
 	root =3D dget(current->fs->root);
 	do { } while(0) ;
 	(void)( &dcache_lock ) ;
 	res =3D __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen);
 	do { } while(0) ;
 	dput(root);
 	mntput(rootmnt);
 	return res;
 }
 
 
 
 
 # 17 "core_cia.c" 2
 
 # 1 "/usr/src/linux-2.4.2/include/linux/init.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 typedef int (*initcall_t)(void);
 typedef void (*exitcall_t)(void);
 
 extern initcall_t __initcall_start, __initcall_end;
 
 
 
 
 
 
 =20
 
 
 struct kernel_param {
 	const char *str;
 	int (*setup_func)(char *);
 };
 
 extern struct kernel_param __setup_start, __setup_end;
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 # 122 "/usr/src/linux-2.4.2/include/linux/init.h"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 18 "core_cia.c" 2
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/hwrpb.h" 1
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 struct pcb_struct {
 	unsigned long ksp;
 	unsigned long usp;
 	unsigned long ptbr;
 	unsigned int pcc;
 	unsigned int asn;
 	unsigned long unique;
 	unsigned long flags;
 	unsigned long res1, res2;
 };
 
 struct percpu_struct {
 	unsigned long hwpcb[16];
 	unsigned long flags;
 	unsigned long pal_mem_size;
 	unsigned long pal_scratch_size;
 	unsigned long pal_mem_pa;
 	unsigned long pal_scratch_pa;
 	unsigned long pal_revision;
 	unsigned long type;
 	unsigned long variation;
 	unsigned long revision;
 	unsigned long serial_no[2];
 	unsigned long logout_area_pa;
 	unsigned long logout_area_len;
 	unsigned long halt_PCBB;
 	unsigned long halt_PC;
 	unsigned long halt_PS;
 	unsigned long halt_arg;
 	unsigned long halt_ra;
 	unsigned long halt_pv;
 	unsigned long halt_reason;
 	unsigned long res;
 	unsigned long ipc_buffer[21];
 	unsigned long palcode_avail[16];
 	unsigned long compatibility;
 };
 
 struct procdesc_struct {
 	unsigned long weird_vms_stuff;
 	unsigned long address;
 };
 
 struct vf_map_struct {
 	unsigned long va;
 	unsigned long pa;
 	unsigned long count;
 };
 
 struct crb_struct {
 	struct procdesc_struct * dispatch_va;
 	struct procdesc_struct * dispatch_pa;
 	struct procdesc_struct * fixup_va;
 	struct procdesc_struct * fixup_pa;
 	=20
 	unsigned long map_entries;
 	unsigned long map_pages;
 	struct vf_map_struct map[1];
 };
 
 struct memclust_struct {
 	unsigned long start_pfn;
 	unsigned long numpages;
 	unsigned long numtested;
 	unsigned long bitmap_va;
 	unsigned long bitmap_pa;
 	unsigned long bitmap_chksum;
 	unsigned long usage;
 };
 
 struct memdesc_struct {
 	unsigned long chksum;
 	unsigned long optional_pa;
 	unsigned long numclusters;
 	struct memclust_struct cluster[0];
 };
 
 struct dsr_struct {
 	long smm;			=20
 	unsigned long  lurt_off;	=20
 	unsigned long  sysname_off;	=20
 };
 
 struct hwrpb_struct {
 	unsigned long phys_addr;	=20
 	unsigned long id;		=20
 	unsigned long revision;=09
 	unsigned long size;		=20
 	unsigned long cpuid;
 	unsigned long pagesize;		=20
 	unsigned long pa_bits;		=20
 	unsigned long max_asn;
 	unsigned char ssn[16];		=20
 	unsigned long sys_type;
 	unsigned long sys_variation;
 	unsigned long sys_revision;
 	unsigned long intr_freq;	=20
 	unsigned long cycle_freq;	=20
 	unsigned long vptb;		=20
 	unsigned long res1;
 	unsigned long tbhb_offset;	=20
 	unsigned long nr_processors;
 	unsigned long processor_size;
 	unsigned long processor_offset;
 	unsigned long ctb_nr;
 	unsigned long ctb_size;		=20
 	unsigned long ctbt_offset;	=20
 	unsigned long crb_offset;	=20
 	unsigned long mddt_offset;	=20
 	unsigned long cdb_offset;	=20
 	unsigned long frut_offset;	=20
 	void (*save_terminal)(unsigned long);
 	unsigned long save_terminal_data;
 	void (*restore_terminal)(unsigned long);
 	unsigned long restore_terminal_data;
 	void (*CPU_restart)(unsigned long);
 	unsigned long CPU_restart_data;
 	unsigned long res2;
 	unsigned long res3;
 	unsigned long chksum;
 	unsigned long rxrdy;
 	unsigned long txrdy;
 	unsigned long dsr_offset;	=20
 };
 
 
 
 extern struct hwrpb_struct *hwrpb;
 
 static inline void
 hwrpb_update_checksum(struct hwrpb_struct *h)
 {
 	unsigned long sum =3D 0, *l;
         for (l =3D (unsigned long *) h; l < (unsigned long *) =
 &h->chksum; ++l)
                 sum +=3D *l;
         h->chksum =3D sum;
 }
 
 
 
 
 # 22 "core_cia.c" 2
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/io.h" 1
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 static inline void __set_hae(unsigned long new_hae)
 {
 	unsigned long flags;
 	do { ( flags ) =3D swpipl(7 ); __asm__ __volatile__("": : :"memory") ; =
 } while(0) ;
 
 	alpha_mv.hae_cache =3D new_hae;
 	*alpha_mv.hae_register =3D new_hae;
 	__asm__ __volatile__("mb": : :"memory") ;
 	=20
 	new_hae =3D *alpha_mv.hae_register;
 
 	do { __asm__ __volatile__("": : :"memory") ; ((void) swpipl(  flags  )) =
 ; __asm__ __volatile__("": : :"memory") ; } while(0) ;
 }
 
 static inline void set_hae(unsigned long new_hae)
 {
 	if (new_hae !=3D alpha_mv.hae_cache)
 		__set_hae(new_hae);
 }
 
 =20
 
 
 static inline unsigned long virt_to_phys(void *address)
 {
 	return (unsigned long)address - 0xfffffc0000000000 ;
 }
 
 static inline void * phys_to_virt(unsigned long address)
 {
 	return (void *) (address + 0xfffffc0000000000 );
 }
 
 =20
 
 
 
 
 
 
 
 extern unsigned long __direct_map_base;
 extern unsigned long __direct_map_size;
 
 static inline unsigned long virt_to_bus(void *address)
 {
 	unsigned long phys =3D virt_to_phys(address);
 	unsigned long bus =3D phys + __direct_map_base;
 	return phys <=3D __direct_map_size ? bus : 0;
 }
 
 static inline void *bus_to_virt(unsigned long address)
 {
 	void *virt;
 
 	=20
 
 
 	address -=3D __direct_map_base;
 	virt =3D phys_to_virt(address);
 	return (long)address <=3D 0 ? ((void *)0)  : virt;
 }
 
 # 104 "/usr/src/linux-2.4.2/include/asm/io.h"
 
 
 =20
 
 
 
 
 # 150 "/usr/src/linux-2.4.2/include/asm/io.h"
 
 
 =20
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/core_cia.h" 1
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 struct el_CIA_sysdata_mcheck {
 	unsigned long	cpu_err0;
 	unsigned long	cpu_err1;
 	unsigned long	cia_err;
 	unsigned long	cia_stat;
 	unsigned long	err_mask;
 	unsigned long	cia_syn;
 	unsigned long	mem_err0;
 	unsigned long	mem_err1;
 	unsigned long	pci_err0;
 	unsigned long	pci_err1;
 	unsigned long	pci_err2;
 };
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 inline  unsigned int cia_inb(unsigned long addr)
 {
 	long result;
 	result =3D *(volatile int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8580000000UL)  + 0x00);
 	return ({ unsigned long __kir;	__asm__("extbl %2,%1,%0" : "=3Dr"(__kir) =
 : "rI"(  addr & 3 ), "r"( result ));	__kir; }) ;
 }
 
 inline  void cia_outb(unsigned char b, unsigned long addr)
 {
 	unsigned long w =3D ({ unsigned long __kir;	__asm__("insbl %2,%1,%0" : =
 "=3Dr"(__kir) : "rI"(  addr & 3 ), "r"( b ));	__kir; }) ;
 	*(volatile unsigned int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8580000000UL)  + 0x00) =3D w;
 	__asm__ __volatile__("mb": : :"memory") ;
 }
 
 inline  unsigned int cia_inw(unsigned long addr)
 {
 	long result;
 	result =3D *(volatile int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8580000000UL)  + 0x08);
 	return ({ unsigned long __kir;	__asm__("extwl %2,%1,%0" : "=3Dr"(__kir) =
 : "rI"(  addr & 3 ), "r"( result ));	__kir; }) ;
 }
 
 inline  void cia_outw(unsigned short b, unsigned long addr)
 {
 	unsigned long w =3D ({ unsigned long __kir;	__asm__("inswl %2,%1,%0" : =
 "=3Dr"(__kir) : "rI"(  addr & 3 ), "r"( b ));	__kir; }) ;
 	*(volatile unsigned int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8580000000UL)  + 0x08) =3D w;
 	__asm__ __volatile__("mb": : :"memory") ;
 }
 
 inline  unsigned int cia_inl(unsigned long addr)
 {
 	return *(volatile unsigned int * ) ((addr << 5) + (0xfffffc0000000000  =
 + 0x8580000000UL)  + 0x18);
 }
 
 inline  void cia_outl(unsigned int b, unsigned long addr)
 {
 	*(volatile unsigned int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8580000000UL)  + 0x18) =3D b;
 	__asm__ __volatile__("mb": : :"memory") ;
 }
 
 inline  unsigned int cia_bwx_inb(unsigned long addr)
 {
 	=20
 
 
 
 
 	return ({ unsigned char __kir;	__asm__("ldbu %0,%1" : "=3Dr"(__kir) : =
 "m"( *(volatile unsigned char * )(addr+ (0xfffffc0000000000  + =
 0x8900000000UL) ) ));	__kir; }) ;
 }
 
 inline  void cia_bwx_outb(unsigned char b, unsigned long addr)
 {
 	__asm__("stb %1,%0" : "=3Dm"(  *(volatile unsigned char * )(addr+ =
 (0xfffffc0000000000  + 0x8900000000UL) ) ) : "r"( b )) ;
 	__asm__ __volatile__("mb": : :"memory") ;
 }
 
 inline  unsigned int cia_bwx_inw(unsigned long addr)
 {
 	return ({ unsigned short __kir;	__asm__("ldwu %0,%1" : "=3Dr"(__kir) : =
 "m"( *(volatile unsigned short * )(addr+ (0xfffffc0000000000  + =
 0x8900000000UL) ) ));	__kir; }) ;
 }
 
 inline  void cia_bwx_outw(unsigned short b, unsigned long addr)
 {
 	__asm__("stw %1,%0" : "=3Dm"(  *(volatile unsigned short * )(addr+ =
 (0xfffffc0000000000  + 0x8900000000UL) ) ) : "r"( b )) ;
 	__asm__ __volatile__("mb": : :"memory") ;
 }
 
 inline  unsigned int cia_bwx_inl(unsigned long addr)
 {
 	return *(volatile unsigned int * )(addr+ (0xfffffc0000000000  + =
 0x8900000000UL) );
 }
 
 inline  void cia_bwx_outl(unsigned int b, unsigned long addr)
 {
 	*(volatile unsigned int * )(addr+ (0xfffffc0000000000  + =
 0x8900000000UL) ) =3D b;
 	__asm__ __volatile__("mb": : :"memory") ;
 }
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 inline  unsigned long cia_readb(unsigned long addr)
 {
 	unsigned long result;
 
 	addr &=3D 0x1fffffff ;
 	result =3D *(volatile int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8000000000UL)  + 0x00);
 	return ({ unsigned long __kir;	__asm__("extbl %2,%1,%0" : "=3Dr"(__kir) =
 : "rI"(  addr & 3 ), "r"( result ));	__kir; }) ;
 }
 
 inline  unsigned long cia_readw(unsigned long addr)
 {
 	unsigned long result;
 
 	addr &=3D 0x1fffffff ;
 	result =3D *(volatile int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8000000000UL)  + 0x08);
 	return ({ unsigned long __kir;	__asm__("extwl %2,%1,%0" : "=3Dr"(__kir) =
 : "rI"(  addr & 3 ), "r"( result ));	__kir; }) ;
 }
 
 inline  void cia_writeb(unsigned char b, unsigned long addr)
 {
 	unsigned long w;
 
 	addr &=3D 0x1fffffff ;
 	w =3D ({ unsigned long __kir;	__asm__("insbl %2,%1,%0" : "=3Dr"(__kir) =
 : "rI"(  addr & 3 ), "r"( b ));	__kir; }) ;
 	*(volatile unsigned int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8000000000UL)  + 0x00) =3D w;
 }
 
 inline  void cia_writew(unsigned short b, unsigned long addr)
 {
 	unsigned long w;
 
 	addr &=3D 0x1fffffff ;
 	w =3D ({ unsigned long __kir;	__asm__("inswl %2,%1,%0" : "=3Dr"(__kir) =
 : "rI"(  addr & 3 ), "r"( b ));	__kir; }) ;
 	*(volatile unsigned int * ) ((addr << 5) + (0xfffffc0000000000  + =
 0x8000000000UL)  + 0x08) =3D w;
 }
 
 inline  unsigned long cia_readl(unsigned long addr)
 {
 	return *(volatile unsigned int * )addr;
 }
 
 inline  unsigned long cia_readq(unsigned long addr)
 {
 	return *(volatile unsigned long * )addr;
 }
 
 inline  void cia_writel(unsigned int b, unsigned long addr)
 {
 	*(volatile unsigned int * )addr =3D b;
 }
 
 inline  void cia_writeq(unsigned long b, unsigned long addr)
 {
 	*(volatile unsigned long * )addr =3D b;
 }
 
 inline  unsigned long cia_ioremap(unsigned long addr)
 {
 	return addr + (0xfffffc0000000000  + 0x8600000000UL) ;
 }
 
 inline  unsigned long cia_bwx_readb(unsigned long addr)
 {
 	return ({ unsigned char __kir;	__asm__("ldbu %0,%1" : "=3Dr"(__kir) : =
 "m"( *(volatile unsigned char * )addr ));	__kir; }) ;
 }
 
 inline  unsigned long cia_bwx_readw(unsigned long addr)
 {
 	return ({ unsigned short __kir;	__asm__("ldwu %0,%1" : "=3Dr"(__kir) : =
 "m"( *(volatile unsigned short * )addr ));	__kir; }) ;
 }
 
 inline  unsigned long cia_bwx_readl(unsigned long addr)
 {
 	return *(volatile unsigned int * )addr;
 }
 
 inline  unsigned long cia_bwx_readq(unsigned long addr)
 {
 	return *(volatile unsigned long * )addr;
 }
 
 inline  void cia_bwx_writeb(unsigned char b, unsigned long addr)
 {
 	__asm__("stb %1,%0" : "=3Dm"(  *(volatile unsigned char * )addr ) : =
 "r"( b )) ;
 }
 
 inline  void cia_bwx_writew(unsigned short b, unsigned long addr)
 {
 	__asm__("stw %1,%0" : "=3Dm"(  *(volatile unsigned short * )addr ) : =
 "r"( b )) ;
 }
 
 inline  void cia_bwx_writel(unsigned int b, unsigned long addr)
 {
 	*(volatile unsigned int * )addr =3D b;
 }
 
 inline  void cia_bwx_writeq(unsigned long b, unsigned long addr)
 {
 	*(volatile unsigned long * )addr =3D b;
 }
 
 inline  unsigned long cia_bwx_ioremap(unsigned long addr)
 {
 	return addr + (0xfffffc0000000000  + 0x8800000000UL) ;
 }
 
 inline  int cia_is_ioaddr(unsigned long addr)
 {
 	return addr >=3D 0xfffffc0000000000  + 0x8000000000UL;
 }
 
 
 
 
 
 
 
 
 
 # 566 "/usr/src/linux-2.4.2/include/asm/core_cia.h"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 158 "/usr/src/linux-2.4.2/include/asm/io.h" 2
 
 # 179 "/usr/src/linux-2.4.2/include/asm/io.h"
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 extern unsigned int	_inb (unsigned long port);
 extern unsigned int	_inw (unsigned long port);
 extern unsigned int	_inl (unsigned long port);
 extern void		_outb (unsigned char b,unsigned long port);
 extern void		_outw (unsigned short w,unsigned long port);
 extern void		_outl (unsigned int l,unsigned long port);
 extern unsigned long	_readb(unsigned long addr);
 extern unsigned long	_readw(unsigned long addr);
 extern unsigned long	_readl(unsigned long addr);
 extern unsigned long	_readq(unsigned long addr);
 extern void		_writeb(unsigned char b, unsigned long addr);
 extern void		_writew(unsigned short b, unsigned long addr);
 extern void		_writel(unsigned int b, unsigned long addr);
 extern void		_writeq(unsigned long b, unsigned long addr);
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 274 "/usr/src/linux-2.4.2/include/asm/io.h"
 
 
 
 
 =20
 
 
 
 
 
 
 
 static inline void * ioremap(unsigned long offset, unsigned long size)
 {
 	return (void *) cia_ioremap((unsigned long)( offset )) ;
 }=20
 
 static inline void iounmap(void *addr)
 {
 }
 
 static inline void * ioremap_nocache(unsigned long offset, unsigned long =
 size)
 {
 	return ioremap(offset, size);
 }=20
 
 =20
 
 extern unsigned long	___raw_readb(unsigned long addr);
 extern unsigned long	___raw_readw(unsigned long addr);
 extern unsigned long	___raw_readl(unsigned long addr);
 extern unsigned long	___raw_readq(unsigned long addr);
 extern void		___raw_writeb(unsigned char b, unsigned long addr);
 extern void		___raw_writew(unsigned short b, unsigned long addr);
 extern void		___raw_writel(unsigned int b, unsigned long addr);
 extern void		___raw_writeq(unsigned long b, unsigned long addr);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 extern void _memcpy_fromio(void *, unsigned long, long);
 extern void _memcpy_toio(unsigned long, const void *, long);
 extern void _memset_c_io(unsigned long, unsigned long, long);
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 extern void insb (unsigned long port, void *dst, unsigned long count);
 extern void insw (unsigned long port, void *dst, unsigned long count);
 extern void insl (unsigned long port, void *dst, unsigned long count);
 extern void outsb (unsigned long port, const void *src, unsigned long =
 count);
 extern void outsw (unsigned long port, const void *src, unsigned long =
 count);
 extern void outsl (unsigned long port, const void *src, unsigned long =
 count);
 
 =20
 
 
 
 
 
 
 
 
 static inline int
 check_signature(unsigned long io_addr, const unsigned char *signature,
 		int length)
 {
 	int retval =3D 0;
 	do {
 		if (_readb((unsigned long)( io_addr ))  !=3D *signature)
 			goto out;
 		io_addr++;
 		signature++;
 		length--;
 	} while (length);
 	retval =3D 1;
 out:
 	return retval;
 }
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 # 25 "core_cia.c" 2
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/bootmem.h" 1
 =20
 
 
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/asm/pgtable.h" 1
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 	=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 extern pte_t __bad_page(void);
 extern pmd_t * __bad_pagetable(void);
 
 extern unsigned long __zero_page(void);
 
 
 
 
 
 =20
 
 
 =20
 
 
 =20
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
 { pte_t pte; (( pte ).pte)  =3D (( physpage )  << (32- 13 )) | ((( =
 pgprot ).pgprot)  & ~0x0000 ); return pte; }
 
 extern inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
 { (( pte ).pte)  =3D ((( pte ).pte)  & (0xFFFFFFFF00000000  | (0x20000  =
 | 0x1000  | 0x2000 )  | (0x40000  | 0x0100  | 0x0200 )  | 0x0000 ) ) | =
 (( newprot ).pgprot) ; return pte; }
 
 extern inline void pmd_set(pmd_t * pmdp, pte_t * ptep)
 { (( *pmdp ).pmd)  =3D (0x0001  | (0x20000  | 0x1000  | 0x2000 )  | =
 (0x40000  | 0x0100  | 0x0200 ) )  | ((((unsigned long) ptep) - =
 0xfffffc0000000000 ) << (32- 13 )); }
 
 extern inline void pgd_set(pgd_t * pgdp, pmd_t * pmdp)
 { (( *pgdp ).pgd)  =3D (0x0001  | (0x20000  | 0x1000  | 0x2000 )  | =
 (0x40000  | 0x0100  | 0x0200 ) )  | ((((unsigned long) pmdp) - =
 0xfffffc0000000000 ) << (32- 13 )); }
 
 
 
 extern inline unsigned long pmd_page(pmd_t pmd)
 { return 0xfffffc0000000000  + (((( pmd ).pmd)  & 0xFFFFFFFF00000000 ) =
 >> (32- 13 )); }
 
 extern inline unsigned long pgd_page(pgd_t pgd)
 { return 0xfffffc0000000000  + (((( pgd ).pgd)  & 0xFFFFFFFF00000000 ) =
 >> (32- 13 )); }
 
 extern inline int pte_none(pte_t pte)		{ return ! (( pte ).pte) ; }
 extern inline int pte_present(pte_t pte)	{ return (( pte ).pte)  & =
 0x0001 ; }
 extern inline void pte_clear(pte_t *ptep)	{ (( *ptep ).pte)  =3D 0; }
 
 extern inline int pmd_none(pmd_t pmd)		{ return ! (( pmd ).pmd) ; }
 extern inline int pmd_bad(pmd_t pmd)		{ return ((( pmd ).pmd)  & =
 ~0xFFFFFFFF00000000 ) !=3D (0x0001  | (0x20000  | 0x1000  | 0x2000 )  | =
 (0x40000  | 0x0100  | 0x0200 ) ) ; }
 extern inline int pmd_present(pmd_t pmd)	{ return (( pmd ).pmd)  & =
 0x0001 ; }
 extern inline void pmd_clear(pmd_t * pmdp)	{ (( *pmdp ).pmd)  =3D 0; }
 
 extern inline int pgd_none(pgd_t pgd)		{ return ! (( pgd ).pgd) ; }
 extern inline int pgd_bad(pgd_t pgd)		{ return ((( pgd ).pgd)  & =
 ~0xFFFFFFFF00000000 ) !=3D (0x0001  | (0x20000  | 0x1000  | 0x2000 )  | =
 (0x40000  | 0x0100  | 0x0200 ) ) ; }
 extern inline int pgd_present(pgd_t pgd)	{ return (( pgd ).pgd)  & =
 0x0001 ; }
 extern inline void pgd_clear(pgd_t * pgdp)	{ (( *pgdp ).pgd)  =3D 0; }
 
 
 
 =20
 
 
 
 extern inline int pte_read(pte_t pte)		{ return !((( pte ).pte)  & =
 0x0002 ); }
 extern inline int pte_write(pte_t pte)		{ return !((( pte ).pte)  & =
 0x0004 ); }
 extern inline int pte_exec(pte_t pte)		{ return !((( pte ).pte)  & =
 0x0008 ); }
 extern inline int pte_dirty(pte_t pte)		{ return (( pte ).pte)  & =
 0x20000 ; }
 extern inline int pte_young(pte_t pte)		{ return (( pte ).pte)  & =
 0x40000 ; }
 
 extern inline pte_t pte_wrprotect(pte_t pte)	{ (( pte ).pte)  |=3D =
 0x0004 ; return pte; }
 extern inline pte_t pte_rdprotect(pte_t pte)	{ (( pte ).pte)  |=3D =
 0x0002 ; return pte; }
 extern inline pte_t pte_exprotect(pte_t pte)	{ (( pte ).pte)  |=3D =
 0x0008 ; return pte; }
 extern inline pte_t pte_mkclean(pte_t pte)	{ (( pte ).pte)  &=3D =
 ~((0x20000  | 0x1000  | 0x2000 ) ); return pte; }
 extern inline pte_t pte_mkold(pte_t pte)	{ (( pte ).pte)  &=3D =
 ~((0x40000  | 0x0100  | 0x0200 ) ); return pte; }
 extern inline pte_t pte_mkwrite(pte_t pte)	{ (( pte ).pte)  &=3D ~0x0004 =
 ; return pte; }
 extern inline pte_t pte_mkread(pte_t pte)	{ (( pte ).pte)  &=3D ~0x0002 =
 ; return pte; }
 extern inline pte_t pte_mkexec(pte_t pte)	{ (( pte ).pte)  &=3D ~0x0008 =
 ; return pte; }
 extern inline pte_t pte_mkdirty(pte_t pte)	{ (( pte ).pte)  |=3D =
 (0x20000  | 0x1000  | 0x2000 ) ; return pte; }
 extern inline pte_t pte_mkyoung(pte_t pte)	{ (( pte ).pte)  |=3D =
 (0x40000  | 0x0100  | 0x0200 ) ; return pte; }
 
 
 
 =20
 
 
 =20
 
 
 
 
 =20
 extern inline pmd_t * pmd_offset(pgd_t * dir, unsigned long address)
 {
 	return (pmd_t *) pgd_page(*dir) + ((address >> (13  + (13 -3)) ) & =
 ((1UL << (13 -3))  - 1));
 }
 
 =20
 extern inline pte_t * pte_offset(pmd_t * dir, unsigned long address)
 {
 	return (pte_t *) pmd_page(*dir) + ((address >> 13 ) & ((1UL << (13 -3)) =
  - 1));
 }
 
 extern pgd_t swapper_pg_dir[1024];
 
 =20
 
 
 
 extern inline void update_mmu_cache(struct vm_area_struct * vma,
 	unsigned long address, pte_t pte)
 {
 }
 
 =20
 
 
 
 extern inline pte_t mk_swap_pte(unsigned long type, unsigned long =
 offset)
 { pte_t pte; (( pte ).pte)  =3D (type << 32) | (offset << 40); return =
 pte; }
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern void paging_init(void);
 
 # 1 "/usr/src/linux-2.4.2/include/asm-generic/pgtable.h" 1
 
 
 
 static inline int ptep_test_and_clear_young(pte_t *ptep)
 {
 	pte_t pte =3D *ptep;
 	if (!pte_young(pte))
 		return 0;
 	((*( ptep )) =3D (  pte_mkold(pte) )) ;
 	return 1;
 }
 
 static inline int ptep_test_and_clear_dirty(pte_t *ptep)
 {
 	pte_t pte =3D *ptep;
 	if (!pte_dirty(pte))
 		return 0;
 	((*( ptep )) =3D (  pte_mkclean(pte) )) ;
 	return 1;
 }
 
 static inline pte_t ptep_get_and_clear(pte_t *ptep)
 {
 	pte_t pte =3D *ptep;
 	pte_clear(ptep);
 	return pte;
 }
 
 static inline void ptep_set_wrprotect(pte_t *ptep)
 {
 	pte_t old_pte =3D *ptep;
 	((*( ptep )) =3D (  pte_wrprotect(old_pte) )) ;
 }
 
 static inline void ptep_mkdirty(pte_t *ptep)
 {
 	pte_t old_pte =3D *ptep;
 	((*( ptep )) =3D (  pte_mkdirty(old_pte) )) ;
 }
 
 
 
 
 # 327 "/usr/src/linux-2.4.2/include/asm/pgtable.h" 2
 
 
 
 # 7 "/usr/src/linux-2.4.2/include/linux/bootmem.h" 2
 
 # 1 "/usr/src/linux-2.4.2/include/asm/dma.h" 1
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern spinlock_t  dma_spin_lock;
 
 static __inline__ unsigned long claim_dma_lock(void)
 {
 	unsigned long flags;
 	do { do { (    flags   ) =3D swpipl(7 ); __asm__ __volatile__("": : =
 :"memory") ; } while(0)  ;       (void)(  &dma_spin_lock  ) ; } while =
 (0) ;
 	return flags;
 }
 
 static __inline__ void release_dma_lock(unsigned long flags)
 {
 	do { do { } while(0) ;  do { __asm__ __volatile__("": : :"memory") ; =
 ((void) swpipl(     flags    )) ; __asm__ __volatile__("": : :"memory") =
 ; } while(0)  ; } while (0) ;
 }
 
 =20
 static __inline__ void enable_dma(unsigned int dmanr)
 {
 	if (dmanr<=3D3)
 		_outb(( dmanr ),(   0x0A  )) ;
 	else
 		_outb(( dmanr & 3 ),(   0xD4  )) ;
 }
 
 static __inline__ void disable_dma(unsigned int dmanr)
 {
 	if (dmanr<=3D3)
 		_outb(( dmanr | 4 ),(   0x0A  )) ;
 	else
 		_outb(( (dmanr & 3) | 4 ),(   0xD4  )) ;
 }
 
 =20
 
 
 
 
 
 
 static __inline__ void clear_dma_ff(unsigned int dmanr)
 {
 	if (dmanr<=3D3)
 		_outb(( 0 ),(   0x0C  )) ;
 	else
 		_outb(( 0 ),(   0xD8  )) ;
 }
 
 =20
 static __inline__ void set_dma_mode(unsigned int dmanr, char mode)
 {
 	if (dmanr<=3D3)
 		_outb(( mode | dmanr ),(   0x0B  )) ;
 	else
 		_outb(( mode | (dmanr&3) ),(   0xD6  )) ;
 }
 
 =20
 static __inline__ void set_dma_ext_mode(unsigned int dmanr, char =
 ext_mode)
 {
 	if (dmanr<=3D3)
 		_outb(( ext_mode | dmanr ),(   (0x400 | 0x0B )  )) ;
 	else
 		_outb(( ext_mode | (dmanr&3) ),(   (0x400 | 0xD6 )  )) ;
 }
 
 =20
 
 
 
 static __inline__ void set_dma_page(unsigned int dmanr, unsigned int =
 pagenr)
 {
 	switch(dmanr) {
 		case 0:
 			_outb(( pagenr ),(  0x87  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x87 )  )) ;
 			break;
 		case 1:
 			_outb(( pagenr ),(  0x83  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x83 )  )) ;
 			break;
 		case 2:
 			_outb(( pagenr ),(  0x81  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x81 )  )) ;
 			break;
 		case 3:
 			_outb(( pagenr ),(  0x82  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x82 )  )) ;
 			break;
 		case 5:
 			_outb(( pagenr & 0xfe ),(  0x8B  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x8B )  )) ;
 			break;
 		case 6:
 			_outb(( pagenr & 0xfe ),(  0x89  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x89 )  )) ;
 			break;
 		case 7:
 			_outb(( pagenr & 0xfe ),(  0x8A  )) ;
 			_outb(( (pagenr >> 8) ),(  (0x400 | 0x8A )  )) ;
 			break;
 	}
 }
 
 
 =20
 
 
 static __inline__ void set_dma_addr(unsigned int dmanr, unsigned int a)
 {
 	if (dmanr <=3D 3)  {
 	    _outb((  a & 0xff ),(  ((dmanr&3)<<1) + 0x00   )) ;
             _outb((  (a>>8) & 0xff ),(  ((dmanr&3)<<1) + 0x00   )) ;
 	}  else  {
 	    _outb((  (a>>1) & 0xff ),(  ((dmanr&3)<<2) + 0xC0   )) ;
 	    _outb((  (a>>9) & 0xff ),(  ((dmanr&3)<<2) + 0xC0   )) ;
 	}
 	set_dma_page(dmanr, a>>16);	=20
 }
 
 
 =20
 
 
 
 
 
 
 
 static __inline__ void set_dma_count(unsigned int dmanr, unsigned int =
 count)
 {
         count--;
 	if (dmanr <=3D 3)  {
 	    _outb((  count & 0xff ),(  ((dmanr&3)<<1) + 1 + 0x00   )) ;
 	    _outb((  (count>>8) & 0xff ),(  ((dmanr&3)<<1) + 1 + 0x00   )) ;
         } else {
 	    _outb((  (count>>1) & 0xff ),(  ((dmanr&3)<<2) + 2 + 0xC0   )) ;
 	    _outb((  (count>>9) & 0xff ),(  ((dmanr&3)<<2) + 2 + 0xC0   )) ;
         }
 }
 
 
 =20
 
 
 
 
 
 
 
 static __inline__ int get_dma_residue(unsigned int dmanr)
 {
 	unsigned int io_port =3D (dmanr<=3D3)? ((dmanr&3)<<1) + 1 + 0x00=20
 					 : ((dmanr&3)<<2) + 2 + 0xC0 ;
 
 	=20
 	unsigned short count;
 
 	count =3D 1 + _inb( io_port ) ;
 	count +=3D _inb( io_port )  << 8;
 =09
 	return (dmanr<=3D3)? count : (count<<1);
 }
 
 
 =20
 extern int request_dma(unsigned int dmanr, const char * device_id);	=20
 extern void free_dma(unsigned int dmanr);	=20
 
 extern int check_dma(unsigned int dmanr);
 
 =20
 
 
 extern int isa_dma_bridge_buggy;
 
 
 
 
 
 
 # 8 "/usr/src/linux-2.4.2/include/linux/bootmem.h" 2
 
 
 
 # 1 "/usr/src/linux-2.4.2/include/linux/mmzone.h" 1
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 typedef struct free_area_struct {
 	struct list_head	free_list;
 	unsigned int		*map;
 } free_area_t;
 
 struct pglist_data;
 
 typedef struct zone_struct {
 	=20
 
 
 	spinlock_t		lock;
 	unsigned long		offset;
 	unsigned long		free_pages;
 	unsigned long		inactive_clean_pages;
 	unsigned long		inactive_dirty_pages;
 	unsigned long		pages_min, pages_low, pages_high;
 
 	=20
 
 
 	struct list_head	inactive_clean_list;
 	free_area_t		free_area[10 ];
 
 	=20
 
 
 	char			*name;
 	unsigned long		size;
 	=20
 
 
 	struct pglist_data	*zone_pgdat;
 	unsigned long		zone_start_paddr;
 	unsigned long		zone_start_mapnr;
 	struct page		*zone_mem_map;
 } zone_t;
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 typedef struct zonelist_struct {
 	zone_t * zones [3 +1]; =20
 	int gfp_mask;
 } zonelist_t;
 
 
 
 struct bootmem_data;
 typedef struct pglist_data {
 	zone_t node_zones[3 ];
 	zonelist_t node_zonelists[0x100 ];
 	struct page *node_mem_map;
 	unsigned long *valid_addr_bitmap;
 	struct bootmem_data *bdata;
 	unsigned long node_start_paddr;
 	unsigned long node_start_mapnr;
 	unsigned long node_size;
 	int node_id;
 	struct pglist_data *node_next;
 } pg_data_t;
 
 extern int numnodes;
 extern pg_data_t *pgdat_list;
 
 
 
 
 
 =20
 
 
 
 struct page;
 extern void show_free_areas_core(pg_data_t *pgdat);
 extern void free_area_init_core(int nid, pg_data_t *pgdat, struct page =
 **gmap,
   unsigned long *zones_size, unsigned long paddr, unsigned long =
 *zholes_size,
   struct page *pmap);
 
 extern pg_data_t contig_page_data;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 # 11 "/usr/src/linux-2.4.2/include/linux/bootmem.h" 2
 
 
 =20
 
 
 
 extern unsigned long max_low_pfn;
 extern unsigned long min_low_pfn;
 
 =20
 
 
 
 typedef struct bootmem_data {
 	unsigned long node_boot_start;
 	unsigned long node_low_pfn;
 	void *node_bootmem_map;
 	unsigned long last_offset;
 	unsigned long last_pos;
 } bootmem_data_t;
 
 extern unsigned long __attribute__ ((__section__ (".text.init")))  =
 bootmem_bootmap_pages (unsigned long);
 extern unsigned long __attribute__ ((__section__ (".text.init")))  =
 init_bootmem (unsigned long addr, unsigned long memend);
 extern void __attribute__ ((__section__ (".text.init")))  =
 reserve_bootmem (unsigned long addr, unsigned long size);
 extern void __attribute__ ((__section__ (".text.init")))  free_bootmem =
 (unsigned long addr, unsigned long size);
 extern void * __attribute__ ((__section__ (".text.init")))  =
 __alloc_bootmem (unsigned long size, unsigned long align, unsigned long =
 goal);
 
 
 
 
 
 
 
 
 extern unsigned long __attribute__ ((__section__ (".text.init")))  =
 free_all_bootmem (void);
 
 extern unsigned long __attribute__ ((__section__ (".text.init")))  =
 init_bootmem_node (pg_data_t *pgdat, unsigned long freepfn, unsigned =
 long startpfn, unsigned long endpfn);
 extern void __attribute__ ((__section__ (".text.init")))  =
 reserve_bootmem_node (pg_data_t *pgdat, unsigned long physaddr, unsigned =
 long size);
 extern void __attribute__ ((__section__ (".text.init")))  =
 free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long =
 size);
 extern unsigned long __attribute__ ((__section__ (".text.init")))  =
 free_all_bootmem_node (pg_data_t *pgdat);
 extern void * __attribute__ ((__section__ (".text.init")))  =
 __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned =
 long align, unsigned long goal);
 
 
 
 
 
 
 
 
 # 29 "core_cia.c" 2
 
 
 # 1 "proto.h" 1
 
 =20
 
 
 
 
 
 
 
 struct pt_regs;
 struct task_struct;
 struct pci_dev;
 struct pci_controler;
 
 =20
 extern struct pci_ops apecs_pci_ops;
 extern void apecs_init_arch(void);
 extern void apecs_pci_clr_err(void);
 extern void apecs_machine_check(u64, u64, struct pt_regs *);
 extern void apecs_pci_tbi(struct pci_controler *, dma_addr_t, =
 dma_addr_t);
 
 =20
 extern struct pci_ops cia_pci_ops;
 extern void cia_init_pci(void);
 extern void cia_init_arch(void);
 extern void pyxis_init_arch(void);
 extern void cia_machine_check(u64, u64, struct pt_regs *);
 extern void cia_pci_tbi(struct pci_controler *, dma_addr_t, dma_addr_t);
 
 =20
 extern struct pci_ops irongate_pci_ops;
 extern int irongate_pci_clr_err(void);
 extern void irongate_init_arch(void);
 extern void irongate_machine_check(u64, u64, struct pt_regs *);
 
 
 =20
 extern struct pci_ops lca_pci_ops;
 extern void lca_init_arch(void);
 extern void lca_machine_check(u64, u64, struct pt_regs *);
 extern void lca_pci_tbi(struct pci_controler *, dma_addr_t, dma_addr_t);
 
 =20
 extern struct pci_ops mcpcia_pci_ops;
 extern void mcpcia_init_arch(void);
 extern void mcpcia_init_hoses(void);
 extern void mcpcia_machine_check(u64, u64, struct pt_regs *);
 extern void mcpcia_pci_tbi(struct pci_controler *, dma_addr_t, =
 dma_addr_t);
 
 =20
 extern struct pci_ops polaris_pci_ops;
 extern int polaris_read_config_dword(struct pci_dev *, int, u32 *);
 extern int polaris_write_config_dword(struct pci_dev *, int, u32);
 extern void polaris_init_arch(void);
 extern void polaris_machine_check(u64, u64, struct pt_regs *);
 
 
 =20
 extern struct pci_ops t2_pci_ops;
 extern void t2_init_arch(void);
 extern void t2_machine_check(u64, u64, struct pt_regs *);
 
 
 =20
 extern struct pci_ops titan_pci_ops;
 extern void titan_init_arch(void);
 extern void titan_kill_arch(int);
 extern void titan_machine_check(u64, u64, struct pt_regs *);
 extern void titan_pci_tbi(struct pci_controler *, dma_addr_t, =
 dma_addr_t);
 
 =20
 extern struct pci_ops tsunami_pci_ops;
 extern void tsunami_init_arch(void);
 extern void tsunami_kill_arch(int);
 extern void tsunami_machine_check(u64, u64, struct pt_regs *);
 extern void tsunami_pci_tbi(struct pci_controler *, dma_addr_t, =
 dma_addr_t);
 
 =20
 extern struct pci_ops wildfire_pci_ops;
 extern void wildfire_init_arch(void);
 extern void wildfire_kill_arch(int);
 extern void wildfire_machine_check(u64, u64, struct pt_regs *);
 extern void wildfire_pci_tbi(struct pci_controler *, dma_addr_t, =
 dma_addr_t);
 
 =20
 extern unsigned long srm_hae;
 extern int boot_cpuid;
 extern int srmcons_output;
 extern void register_srm_console(void);
 extern void unregister_srm_console(void);
 
 =20
 extern void setup_smp(void);
 extern int smp_info(char *buffer);
 extern void handle_ipi(struct pt_regs *);
 extern void smp_percpu_timer_interrupt(struct pt_regs *);
 
 =20
 =20
 
 =20
 extern void timer_interrupt(int irq, void *dev, struct pt_regs * regs);
 extern void common_init_rtc(void);
 extern unsigned long est_cycle_freq;
 
 =20
 extern void SMC93x_Init(void);
 
 =20
 extern void SMC669_Init(int);
 
 =20
 extern void es1888_init(void);
 
 =20
 extern void ns87312_enable_ide(long ide_base);
 
 =20
 extern void alpha_write_fp_reg (unsigned long reg, unsigned long val);
 extern unsigned long alpha_read_fp_reg (unsigned long reg);
 
 =20
 extern void wrmces(unsigned long mces);
 extern void cserve_ena(unsigned long);
 extern void cserve_dis(unsigned long);
 extern void __smp_callin(unsigned long);
 
 =20
 extern void entArith(void);
 extern void entIF(void);
 extern void entInt(void);
 extern void entMM(void);
 extern void entSys(void);
 extern void entUna(void);
 extern void entDbg(void);
 
 =20
 extern void cpu_idle(void) __attribute__((noreturn));
 
 =20
 extern int ptrace_set_bpt (struct task_struct *child);
 extern int ptrace_cancel_bpt (struct task_struct *child);
 
 =20
 extern void dik_show_regs(struct pt_regs *regs, unsigned long *r9_15);
 extern void die_if_kernel(char *, struct pt_regs *, long, unsigned long =
 *);
 
 =20
 extern void switch_to_system_map(void);
 extern void srm_paging_stop(void);
 
 =20
 
 
 
 
 
 
 extern struct mcheck_info
 {
 	unsigned char expected __attribute__((aligned(8)));
 	unsigned char taken;
 	unsigned char extra;
 } __mcheck_info;
 
 
 
 
 
 
 
 
 extern void process_mcheck_info(unsigned long vector, unsigned long =
 la_ptr,
 				struct pt_regs *regs, const char *machine,
 				int expected);
 # 31 "core_cia.c" 2
 
 # 1 "pci_impl.h" 1
 =20
 
 
 
 
 
 
 struct pci_dev;
 struct pci_controler;
 struct pci_iommu_arena;
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 =20
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline u8 bridge_swizzle(u8 pin, u8 slot)=20
 {
 	return (((pin-1) + slot) % 4) + 1;
 }
 
 
 =20
 
 
 
 
 
 
 
 
 
 =20
 
 =20
 
 
 
 
 struct pci_iommu_arena
 {
 	spinlock_t lock;
 	struct pci_controler *hose;
 	unsigned long *ptes;
 	dma_addr_t dma_base;
 	unsigned int size;
 	unsigned int next_entry;
 	unsigned int align_entry;
 };
 
 
 =20
 extern struct pci_controler *hose_head, **hose_tail;
 extern struct pci_controler *pci_isa_hose;
 
 extern void common_init_pci(void);
 extern u8 common_swizzle(struct pci_dev *, u8 *);
 extern struct pci_controler *alloc_pci_controler(void);
 extern struct resource *alloc_resource(void);
 
 extern struct pci_iommu_arena *iommu_arena_new(struct pci_controler *,
 					       dma_addr_t, unsigned long,
 					       unsigned long);
 extern long iommu_arena_alloc(struct pci_iommu_arena *arena, long n);
 
 extern const char *const pci_io_names[];
 extern const char *const pci_mem_names[];
 extern const char pci_hae0_name[];
 # 32 "core_cia.c" 2
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 =20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static int
 mk_conf_addr(struct pci_dev *dev, int where, unsigned long *pci_addr,
 	     unsigned char *type1)
 {
 	u8 bus =3D dev->bus->number;
 	u8 device_fn =3D dev->devfn;
 
 	*type1 =3D (bus !=3D 0);
 	*pci_addr =3D (bus << 16) | (device_fn << 8) | where;
 
 	 ;
 
 
 
 	return 0;
 }
 
 static unsigned int
 conf_read(unsigned long addr, unsigned char type1)
 {
 	unsigned long flags;
 	int stat0, value;
 	int cia_cfg =3D 0;
 
 	 ;
 	do { ( flags ) =3D swpipl(7 ); __asm__ __volatile__("": : :"memory") ; =
 } while(0) ;
 
 	=20
 	stat0 =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL)  =3D stat0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ; =20
 
 	=20
 	if (type1) {
 		cia_cfg =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL) =
 ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL)  =3D =
 (cia_cfg & ~3) | 1;
 		__asm__ __volatile__("mb": : :"memory") ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL) ;
 	}
 
 	__asm__ __volatile__("mb": : :"memory") ;
 	__asm__ __volatile__ ("call_pal %0 #draina" : : "i" (2 ) : "memory") ;
 	(__mcheck_info.expected)  =3D 1;
 	(__mcheck_info.taken)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	=20
 	value =3D *(volatile int  * )addr;
 	__asm__ __volatile__("mb": : :"memory") ;
 	__asm__ __volatile__("mb": : :"memory") ;  =20
 	if ((__mcheck_info.taken) ) {
 		(__mcheck_info.taken)  =3D 0;
 		value =3D 0xffffffff;
 		__asm__ __volatile__("mb": : :"memory") ;
 	}
 	(__mcheck_info.expected)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	=20
 	if (type1) {
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL)  =3D =
 cia_cfg;
 		__asm__ __volatile__("mb": : :"memory") ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL) ;
 	}
 
 	do { __asm__ __volatile__("": : :"memory") ; ((void) swpipl(  flags  )) =
 ; __asm__ __volatile__("": : :"memory") ; } while(0) ;
 	 ;
 
 	return value;
 }
 
 static void
 conf_write(unsigned long addr, unsigned int value, unsigned char type1)
 {
 	unsigned long flags;
 	int stat0, cia_cfg =3D 0;
 
 	 ;
 	do { ( flags ) =3D swpipl(7 ); __asm__ __volatile__("": : :"memory") ; =
 } while(0) ;
 
 	=20
 	stat0 =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL)  =3D stat0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ; =20
 
 	=20
 	if (type1) {
 		cia_cfg =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL) =
 ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL)  =3D =
 (cia_cfg & ~3) | 1;
 		__asm__ __volatile__("mb": : :"memory") ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL) ;
 	}
 
 	__asm__ __volatile__("mb": : :"memory") ;
 	__asm__ __volatile__ ("call_pal %0 #draina" : : "i" (2 ) : "memory") ;
 	(__mcheck_info.expected)  =3D 1;
 	(__mcheck_info.taken)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	=20
 	*(volatile int  * )addr =3D value;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )addr; =20
 
 	(__mcheck_info.expected)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	=20
 	if (type1) {
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL)  =3D =
 cia_cfg;
 		__asm__ __volatile__("mb": : :"memory") ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL) ;
 	}
 
 	do { __asm__ __volatile__("": : :"memory") ; ((void) swpipl(  flags  )) =
 ; __asm__ __volatile__("": : :"memory") ; } while(0) ;
 	 ;
 }
 
 static int
 cia_read_config_byte(struct pci_dev *dev, int where, u8 *value)
 {
 	unsigned long addr, pci_addr;
 	unsigned char type1;
 
 	if (mk_conf_addr(dev, where, &pci_addr, &type1))
 		return 0x86 ;
 
 	addr =3D (pci_addr << 5) + 0x00 + (0xfffffc0000000000  + =
 0x8700000000UL) ;
 	*value =3D conf_read(addr, type1) >> ((where & 3) * 8);
 	return 0x00 ;
 }
 
 static int=20
 cia_read_config_word(struct pci_dev *dev, int where, u16 *value)
 {
 	unsigned long addr, pci_addr;
 	unsigned char type1;
 
 	if (mk_conf_addr(dev, where, &pci_addr, &type1))
 		return 0x86 ;
 
 	addr =3D (pci_addr << 5) + 0x08 + (0xfffffc0000000000  + =
 0x8700000000UL) ;
 	*value =3D conf_read(addr, type1) >> ((where & 3) * 8);
 	return 0x00 ;
 }
 
 static int=20
 cia_read_config_dword(struct pci_dev *dev, int where, u32 *value)
 {
 	unsigned long addr, pci_addr;
 	unsigned char type1;
 
 	if (mk_conf_addr(dev, where, &pci_addr, &type1))
 		return 0x86 ;
 
 	addr =3D (pci_addr << 5) + 0x18 + (0xfffffc0000000000  + =
 0x8700000000UL) ;
 	*value =3D conf_read(addr, type1);
 	return 0x00 ;
 }
 
 static int=20
 cia_write_config(struct pci_dev *dev, int where, u32 value, long mask)
 {
 	unsigned long addr, pci_addr;
 	unsigned char type1;
 
 	if (mk_conf_addr(dev, where, &pci_addr, &type1))
 		return 0x86 ;
 
 	addr =3D (pci_addr << 5) + mask + (0xfffffc0000000000  + =
 0x8700000000UL) ;
 	conf_write(addr, value << ((where & 3) * 8), type1);
 	return 0x00 ;
 }
 
 static int
 cia_write_config_byte(struct pci_dev *dev, int where, u8 value)
 {
 	return cia_write_config(dev, where, value, 0x00);
 }
 
 static int=20
 cia_write_config_word(struct pci_dev *dev, int where, u16 value)
 {
 	return cia_write_config(dev, where, value, 0x08);
 }
 
 static int=20
 cia_write_config_dword(struct pci_dev *dev, int where, u32 value)
 {
 	return cia_write_config(dev, where, value, 0x18);
 }
 
 struct pci_ops cia_pci_ops =3D=20
 {
 	read_byte:	cia_read_config_byte,
 	read_word:	cia_read_config_word,
 	read_dword:	cia_read_config_dword,
 	write_byte:	cia_write_config_byte,
 	write_word:	cia_write_config_word,
 	write_dword:	cia_write_config_dword
 };
 =0C
 =20
 
 
 
 
 
 void
 cia_pci_tbi(struct pci_controler *hose, dma_addr_t start, dma_addr_t =
 end)
 {
 	__asm__ __volatile__("wmb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000100UL)  =3D 3;	=20
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000100UL) ;
 }
 
 =20
 
 
 
 
 
 static void
 cia_pci_tbi_try1(struct pci_controler *hose,
 		 dma_addr_t start, dma_addr_t end)
 {
 	__asm__ __volatile__("wmb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 0 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 1 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 2 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 3 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 4 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 5 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 6 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 7 )*0x40)  =
 =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 0 )*0x40) =
 ;
 }
 
 # 399 "core_cia.c"
 
 
 static void __attribute__ ((__section__ (".text.init")))=20
 verify_tb_operation(void)
 {
 	static int page[(1UL << 13 ) /4]
 		__attribute__((aligned((1UL << 13 ) )))
 		__attribute__ ((__section__ (".data.init")))  =3D { 0 };
 
 	struct pci_iommu_arena *arena =3D pci_isa_hose->sg_isa;
 	int ctrl, addr0, tag0, pte0, data0;
 	int temp;
 
 	=20
 	__asm__ __volatile__("mb": : :"memory") ;
 	ctrl =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL) ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL)  =3D ctrl | =
 (1 << 2) ;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL) ;
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	=20
 
 	addr0 =3D arena->dma_base;
 	tag0 =3D addr0 | 1;
 	pte0 =3D (virt_to_phys(page) >> (13  - 1)) | 1;
 
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 0 )*0x40)  =
 =3D tag0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 1 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 2 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 3 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 4 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 5 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 6 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 7 )*0x40)  =
 =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760001000UL + ( 0 )*0x100 =
 + ( 0 )*0x40)  =3D pte0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760001000UL + ( 0 )*0x100 =
 + ( 1 )*0x40)  =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760001000UL + ( 0 )*0x100 =
 + ( 2 )*0x40)  =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760001000UL + ( 0 )*0x100 =
 + ( 3 )*0x40)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	=20
 
 
 	=20
 
 
 
 
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 0 =
 )*0x40) ;
 	if (temp !=3D tag0) {
 		printk("pci: failed tb register update test "
 		       "(tag0 %#x !=3D %#x)\n", temp, tag0);
 		goto failed;
 	}
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 1 =
 )*0x40) ;
 	if (temp !=3D 0) {
 		printk("pci: failed tb register update test "
 		       "(tag1 %#x !=3D 0)\n", temp);
 		goto failed;
 	}
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8760001000UL + ( 0 =
 )*0x100 + ( 0 )*0x40) ;
 	if (temp !=3D pte0) {
 		printk("pci: failed tb register update test "
 		       "(pte0 %#x !=3D %#x)\n", temp, pte0);
 		goto failed;
 	}
 	printk("pci: passed tb register update test\n");
 
 	=20
 
 	data0 =3D 0xdeadbeef;
 	page[0] =3D data0;
 	(__mcheck_info.expected)  =3D 1;
 	(__mcheck_info.taken)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	temp =3D cia_readl(cia_ioremap(addr0));
 	__asm__ __volatile__("mb": : :"memory") ;
 	(__mcheck_info.expected)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	if ((__mcheck_info.taken) ) {
 		printk("pci: failed sg loopback i/o read test (mcheck)\n");
 		goto failed;
 	}
 	if (temp !=3D data0) {
 		printk("pci: failed sg loopback i/o read test "
 		       "(%#x !=3D %#x)\n", temp, data0);
 		goto failed;
 	}
 	printk("pci: passed sg loopback i/o read test\n");
 
 	=20
 
 	cia_pci_tbi(arena->hose, 0, -1);
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( 0 =
 )*0x40) ;
 	if (temp & 1) {
 		cia_pci_tbi_try1(arena->hose, 0, -1);
 =09
 		temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8760000800UL + ( =
 0 )*0x40) ;
 		if (temp & 1) {
 			printk("pci: failed tbia test; "
 			       "no usable workaround\n");
 			goto failed;
 		}
 
 		alpha_mv.mv_pci_tbi =3D cia_pci_tbi_try1;
 		printk("pci: failed tbia test; workaround 1 succeeded\n");
 	} else {
 		printk("pci: passed tbia test\n");
 	}
 
 	=20
 
 
 	data0 =3D 0x5adda15e;
 	page[0] =3D data0;
 	arena->ptes[4] =3D pte0;
 	(__mcheck_info.expected)  =3D 1;
 	(__mcheck_info.taken)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	temp =3D cia_readl(cia_ioremap(addr0 + 4* (1UL << 13 ) ));
 	__asm__ __volatile__("mb": : :"memory") ;
 	(__mcheck_info.expected)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	if ((__mcheck_info.taken) ) {
 		printk("pci: failed pte write cache snoop test (mcheck)\n");
 		goto failed;
 	}
 	if (temp !=3D data0) {
 		printk("pci: failed pte write cache snoop test "
 		       "(%#x !=3D %#x)\n", temp, data0);
 		goto failed;
 	}
 	printk("pci: passed pte write cache snoop test\n");
 
 	=20
 
 
 	data0 =3D 0xabcdef12;
 	page[0] =3D data0;
 	arena->ptes[5] =3D pte0;
 	(__mcheck_info.expected)  =3D 1;
 	(__mcheck_info.taken)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	temp =3D cia_readl(cia_ioremap(addr0 + 5* (1UL << 13 ) ));
 	__asm__ __volatile__("mb": : :"memory") ;
 	(__mcheck_info.expected)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	if ((__mcheck_info.taken) ) {
 		printk("pci: failed valid tag invalid pte reload test "
 		       "(mcheck; workaround available)\n");
 		=20
 
 		arena->align_entry =3D 4;
 	} else if (temp !=3D data0) {
 		printk("pci: failed valid tag invalid pte reload test "
 		       "(%#x !=3D %#x)\n", temp, data0);
 		goto failed;
 	} else {
 		printk("pci: passed valid tag invalid pte reload test\n");
 	}
 
 	=20
 
 
 	(__mcheck_info.expected)  =3D 1;
 	(__mcheck_info.taken)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	temp =3D cia_readl(cia_ioremap(addr0 + 6* (1UL << 13 ) ));
 	__asm__ __volatile__("mb": : :"memory") ;
 	(__mcheck_info.expected)  =3D 0;
 	__asm__ __volatile__("mb": : :"memory") ;
 	printk("pci: %s pci machine check test\n",
 	       (__mcheck_info.taken)  ? "passed" : "failed");
 
 	=20
 	arena->ptes[4] =3D 0;
 	arena->ptes[5] =3D 0;
 	alpha_mv.mv_pci_tbi(arena->hose, 0, -1);
 
 exit:
 	=20
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL)  =3D ctrl;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL) ;
 	__asm__ __volatile__("mb": : :"memory") ;
 	return;
 
 failed:
 	printk("pci: disabling sg translation window\n");
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000400UL)  =3D 0;
 	alpha_mv.mv_pci_tbi =3D ((void *)0) ;
 	goto exit;
 }
 =0C
 static void __attribute__ ((__section__ (".text.init")))=20
 do_init_arch(int is_pyxis)
 {
 	struct pci_controler *hose;
 	int temp;
 	int cia_rev;
 
 	cia_rev =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740000080UL)  =
 & 0xff ;
 	printk("pci: cia revision %d%s\n",
 	       cia_rev, is_pyxis ? " (pyxis)" : "");
 
 	=20
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740008280UL) ;
 	temp &=3D ~((1 << 2)  | (1 << 3)  | (1 << 9)=20
 		  | (1 << 7)  | (1 << 8) );
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008280UL)  =3D temp;
 
 	=20
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL)  =3D temp;
 
 	=20
 	temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL) ;
 	temp |=3D (1 << 10)  | (1 << 11) ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000100UL)  =3D temp;
 
 	=20
 
 
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000480UL)  =3D 0;
 =20
 	=20
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000400UL)  =3D 0;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000440UL)  =3D 0;
 
 	=20
 
 	if (is_pyxis) {
 		temp =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740000140UL) ;
 		temp |=3D (1 << 0) ;
 		*(volatile int  * )(0xfffffc0000000000  + 0x8740000140UL)  =3D temp;
 	}
 
 	=20
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740000080UL) ;
 
 	=20
 
 
 
 	pci_isa_hose =3D hose =3D alloc_pci_controler();
 	hose->io_space =3D &ioport_resource;
 	hose->mem_space =3D &iomem_resource;
 	hose->index =3D 0;
 
 	if (! is_pyxis) {
 		struct resource *hae_mem =3D alloc_resource();
 		hose->mem_space =3D hae_mem;
 
 		hae_mem->start =3D 0;
 		hae_mem->end =3D 0x1fffffff ;
 		hae_mem->name =3D pci_hae0_name;
 		hae_mem->flags =3D 0x00000200 ;
 
 		if (request_resource(&iomem_resource, hae_mem) < 0)
 			printk("<3>"  "Failed to request HAE_MEM\n");
 
 		hose->sparse_mem_base =3D (0xfffffc0000000000  + 0x8000000000UL)  - =
 0xfffffc0000000000 ;
 		hose->dense_mem_base =3D (0xfffffc0000000000  + 0x8600000000UL)  - =
 0xfffffc0000000000 ;
 		hose->sparse_io_base =3D (0xfffffc0000000000  + 0x8580000000UL)  - =
 0xfffffc0000000000 ;
 		hose->dense_io_base =3D 0;
 	} else {
 		hose->sparse_mem_base =3D 0;
 		hose->dense_mem_base =3D (0xfffffc0000000000  + 0x8800000000UL)  - =
 0xfffffc0000000000 ;
 		hose->sparse_io_base =3D 0;
 		hose->dense_io_base =3D (0xfffffc0000000000  + 0x8900000000UL)  - =
 0xfffffc0000000000 ;
 	}
 
 	=20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 	hose->sg_pci =3D ((void *)0) ;
 	hose->sg_isa =3D iommu_arena_new(hose, 0x00800000, 0x00800000, 32768);
 	__direct_map_base =3D 0x40000000;
 	__direct_map_size =3D 0x80000000;
 
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000400UL)  =3D =
 hose->sg_isa->dma_base | 3;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000440UL)  =3D =
 (hose->sg_isa->size - 1) & 0xfff00000;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000480UL)  =3D =
 virt_to_phys(hose->sg_isa->ptes) >> 2;
 
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000500UL)  =3D =
 0x40000000 | 1;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000540UL)  =3D =
 (0x40000000 - 1) & 0xfff00000;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000580UL)  =3D 0 >> 2;
 
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000600UL)  =3D =
 0x80000000 | 1;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000640UL)  =3D =
 (0x40000000 - 1) & 0xfff00000;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000680UL)  =3D =
 0x40000000 >> 2;
 
 	*(volatile int  * )(0xfffffc0000000000  + 0x8760000700UL)  =3D 0;
 }
 
 void __attribute__ ((__section__ (".text.init")))=20
 cia_init_arch(void)
 {
 	do_init_arch(0);
 }
 
 void __attribute__ ((__section__ (".text.init")))=20
 pyxis_init_arch(void)
 {
 	=20
 
 
 
 
 
 
 
 	unsigned int cc0, cc1;
 	unsigned long pyxis_cc;
 
 	__asm__ __volatile__ ("rpcc %0" : "=3Dr"(cc0));
 	pyxis_cc =3D *(volatile unsigned long  * )(0xfffffc0000000000  + =
 0x87A0000200UL) ;
 	do { } while(*(volatile unsigned long  * )(0xfffffc0000000000  + =
 0x87A0000200UL)  - pyxis_cc < 4096);
 	__asm__ __volatile__ ("rpcc %0" : "=3Dr"(cc1));
 	cc1 -=3D cc0;
 	hwrpb->cycle_freq =3D ((cc1 >> 11) * 100000000UL) / 3;
 	hwrpb_update_checksum(hwrpb);
 
 	do_init_arch(1);
 }
 
 void __attribute__ ((__section__ (".text.init")))=20
 cia_init_pci(void)
 {
 	=20
 	verify_tb_operation();
 	common_init_pci();
 }
 
 static inline void
 cia_pci_clr_err(void)
 {
 	int jd;
 
 	jd =3D *(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL)  =3D jd;
 	__asm__ __volatile__("mb": : :"memory") ;
 	*(volatile int  * )(0xfffffc0000000000  + 0x8740008200UL) ;		=20
 }
 
 static void
 cia_decode_pci_error(struct el_CIA_sysdata_mcheck *cia, const char *msg)
 {
 	static const char * const pci_cmd_desc[16] =3D {
 		"Interrupt Acknowledge", "Special Cycle", "I/O Read",
 		"I/O Write", "Reserved 0x4", "Reserved 0x5", "Memory Read",
 		"Memory Write", "Reserved 0x8", "Reserved 0x9",
 		"Configuration Read", "Configuration Write",
 		"Memory Read Multiple", "Dual Address Cycle",
 		"Memory Read Line", "Memory Write and Invalidate"
 	};
 
 	if (cia->cia_err & ((1 << 0)=20
 			    | (1 << 1)=20
 			    | (1 << 3)=20
 			    | (1 << 9) )) {
 		static const char * const window_desc[6] =3D {
 			"No window active", "Window 0 hit", "Window 1 hit",
 			"Window 2 hit", "Window 3 hit", "Monster window hit"
 		};
 
 		const char *window;
 		const char *cmd;
 		unsigned long addr, tmp;
 		int lock, dac;
 =09
 		cmd =3D pci_cmd_desc[cia->pci_err0 & 0x7];
 		lock =3D (cia->pci_err0 >> 4) & 1;
 		dac =3D (cia->pci_err0 >> 5) & 1;
 
 		tmp =3D (cia->pci_err0 >> 8) & 0x1F;
 		tmp =3D ffs(tmp);
 		window =3D window_desc[tmp];
 
 		addr =3D cia->pci_err1;
 		if (dac) {
 			tmp =3D *(volatile int  * )(0xfffffc0000000000  + 0x87600007C0UL)  & =
 0xFFUL;
 			addr |=3D tmp << 32;
 		}
 
 		printk("<2>"  "CIA machine check: %s\n", msg);
 		printk("<2>"  "  DMA command: %s\n", cmd);
 		printk("<2>"  "  PCI address: %#010lx\n", addr);
 		printk("<2>"  "  %s, Lock: %d, DAC: %d\n",
 		       window, lock, dac);
 	} else if (cia->cia_err & ((1 << 5)=20
 				   | (1 << 6)=20
 				   | (1 << 7)=20
 				   | (1 << 8)=20
 				   | (1 << 11) )) {
 		static const char * const master_st_desc[16] =3D {
 			"Idle", "Drive bus", "Address step cycle",
 			"Address cycle", "Data cycle", "Last read data cycle",
 			"Last write data cycle", "Read stop cycle",
 			"Write stop cycle", "Read turnaround cycle",
 			"Write turnaround cycle", "Reserved 0xB",
 			"Reserved 0xC", "Reserved 0xD", "Reserved 0xE",
 			"Unknown state"
 		};
 		static const char * const target_st_desc[16] =3D {
 			"Idle", "Busy", "Read data cycle", "Write data cycle",
 			"Read stop cycle", "Write stop cycle",
 			"Read turnaround cycle", "Write turnaround cycle",
 			"Read wait cycle", "Write wait cycle",
 			"Reserved 0xA", "Reserved 0xB", "Reserved 0xC",
 			"Reserved 0xD", "Reserved 0xE", "Unknown state"
 		};
 
 		const char *cmd;
 		const char *master, *target;
 		unsigned long addr, tmp;
 		int dac;
 
 		master =3D master_st_desc[(cia->pci_err0 >> 16) & 0xF];
 		target =3D target_st_desc[(cia->pci_err0 >> 20) & 0xF];
 		cmd =3D pci_cmd_desc[(cia->pci_err0 >> 24) & 0xF];
 		dac =3D (cia->pci_err0 >> 28) & 1;
 
 		addr =3D cia->pci_err2;
 		if (dac) {
 			tmp =3D *(volatile int *)(0xfffffc0000000000  + 0x87600007C0UL)  & =
 0xFFUL;
 			addr |=3D tmp << 32;
 		}
 
 		printk("<2>"  "CIA machine check: %s\n", msg);
 		printk("<2>"  "  PCI command: %s\n", cmd);
 		printk("<2>"  "  Master state: %s, Target state: %s\n",
 		       master, target);
 		printk("<2>"  "  PCI address: %#010lx, DAC: %d\n",
 		       addr, dac);
 	} else {
 		printk("<2>"  "CIA machine check: %s\n", msg);
 		printk("<2>"  "  Unknown PCI error\n");
 		printk("<2>"  "  PCI_ERR0 =3D %#08lx", cia->pci_err0);
 		printk("<2>"  "  PCI_ERR1 =3D %#08lx", cia->pci_err1);
 		printk("<2>"  "  PCI_ERR2 =3D %#08lx", cia->pci_err2);
 	}
 }
 
 static void
 cia_decode_mem_error(struct el_CIA_sysdata_mcheck *cia, const char *msg)
 {
 	unsigned long mem_port_addr;
 	unsigned long mem_port_mask;
 	const char *mem_port_cmd;
 	const char *seq_state;
 	const char *set_select;
 	unsigned long tmp;
 
 	=20
 	if ((cia->mem_err1 >> 20) & 1)
 		cia_decode_pci_error(cia, msg);
 	else
 		printk("<2>"  "CIA machine check: %s\n", msg);
 
 	mem_port_addr =3D cia->mem_err0 & 0xfffffff0;
 	mem_port_addr |=3D (cia->mem_err1 & 0x83UL) << 32;
 
 	mem_port_mask =3D (cia->mem_err1 >> 12) & 0xF;
 
 	tmp =3D (cia->mem_err1 >> 8) & 0xF;
 	tmp |=3D ((cia->mem_err1 >> 20) & 1) << 4;
 	if ((tmp & 0x1E) =3D=3D 0x06)
 		mem_port_cmd =3D "WRITE BLOCK or WRITE BLOCK LOCK";
 	else if ((tmp & 0x1C) =3D=3D 0x08)
 		mem_port_cmd =3D "READ MISS or READ MISS MODIFY";
 	else if (tmp =3D=3D 0x1C)
 		mem_port_cmd =3D "BC VICTIM";
 	else if ((tmp & 0x1E) =3D=3D 0x0E)
 		mem_port_cmd =3D "READ MISS MODIFY";
 	else if ((tmp & 0x1C) =3D=3D 0x18)
 		mem_port_cmd =3D "DMA READ or DMA READ MODIFY";
 	else if ((tmp & 0x1E) =3D=3D 0x12)
 		mem_port_cmd =3D "DMA WRITE";
 	else
 		mem_port_cmd =3D "Unknown";
 
 	tmp =3D (cia->mem_err1 >> 16) & 0xF;
 	switch (tmp) {
 	case 0x0:
 		seq_state =3D "Idle";
 		break;
 	case 0x1:
 		seq_state =3D "DMA READ or DMA WRITE";
 		break;
 	case 0x2: case 0x3:
 		seq_state =3D "READ MISS (or READ MISS MODIFY) with victim";
 		break;
 	case 0x4: case 0x5: case 0x6:
 		seq_state =3D "READ MISS (or READ MISS MODIFY) with no victim";
 		break;
 	case 0x8: case 0x9: case 0xB:
 		seq_state =3D "Refresh";
 		break;
 	case 0xC:
 		seq_state =3D "Idle, waiting for DMA pending read";
 		break;
 	case 0xE: case 0xF:
 		seq_state =3D "Idle, ras precharge";
 		break;
 	default:
 		seq_state =3D "Unknown";
 		break;
 	}
 
 	tmp =3D (cia->mem_err1 >> 24) & 0x1F;
 	switch (tmp) {
 	case 0x00: set_select =3D "Set 0 selected"; break;
 	case 0x01: set_select =3D "Set 1 selected"; break;
 	case 0x02: set_select =3D "Set 2 selected"; break;
 	case 0x03: set_select =3D "Set 3 selected"; break;
 	case 0x04: set_select =3D "Set 4 selected"; break;
 	case 0x05: set_select =3D "Set 5 selected"; break;
 	case 0x06: set_select =3D "Set 6 selected"; break;
 	case 0x07: set_select =3D "Set 7 selected"; break;
 	case 0x08: set_select =3D "Set 8 selected"; break;
 	case 0x09: set_select =3D "Set 9 selected"; break;
 	case 0x0A: set_select =3D "Set A selected"; break;
 	case 0x0B: set_select =3D "Set B selected"; break;
 	case 0x0C: set_select =3D "Set C selected"; break;
 	case 0x0D: set_select =3D "Set D selected"; break;
 	case 0x0E: set_select =3D "Set E selected"; break;
 	case 0x0F: set_select =3D "Set F selected"; break;
 	case 0x10: set_select =3D "No set selected"; break;
 	case 0x1F: set_select =3D "Refresh cycle"; break;
 	default:   set_select =3D "Unknown"; break;
 	}
 
 	printk("<2>"  "  Memory port command: %s\n", mem_port_cmd);
 	printk("<2>"  "  Memory port address: %#010lx, mask: %#lx\n",
 	       mem_port_addr, mem_port_mask);
 	printk("<2>"  "  Memory sequencer state: %s\n", seq_state);
 	printk("<2>"  "  Memory set: %s\n", set_select);
 }
 
 static void
 cia_decode_ecc_error(struct el_CIA_sysdata_mcheck *cia, const char *msg)
 {
 	long syn;
 	long i;
 	const char *fmt;
 
 	cia_decode_mem_error(cia, msg);
 
 	syn =3D cia->cia_syn & 0xff;
 	if (syn =3D=3D (syn & -syn)) {
 		fmt =3D "<2>"  "  ECC syndrome %#x -- check bit %d\n";
 		i =3D ffs(syn) - 1;
 	} else {
 		static unsigned char const data_bit[64] =3D {
 			0xCE, 0xCB, 0xD3, 0xD5,
 			0xD6, 0xD9, 0xDA, 0xDC,
 			0x23, 0x25, 0x26, 0x29,
 			0x2A, 0x2C, 0x31, 0x34,
 			0x0E, 0x0B, 0x13, 0x15,
 			0x16, 0x19, 0x1A, 0x1C,
 			0xE3, 0xE5, 0xE6, 0xE9,
 			0xEA, 0xEC, 0xF1, 0xF4,
 			0x4F, 0x4A, 0x52, 0x54,
 			0x57, 0x58, 0x5B, 0x5D,
 			0xA2, 0xA4, 0xA7, 0xA8,
 			0xAB, 0xAD, 0xB0, 0xB5,
 			0x8F, 0x8A, 0x92, 0x94,
 			0x97, 0x98, 0x9B, 0x9D,
 			0x62, 0x64, 0x67, 0x68,
 			0x6B, 0x6D, 0x70, 0x75
 		};
 
 		for (i =3D 0; i < 64; ++i)
 			if (data_bit[i] =3D=3D syn)
 				break;
 
 		if (i < 64)
 			fmt =3D "<2>"  "  ECC syndrome %#x -- data bit %d\n";
 		else
 			fmt =3D "<2>"  "  ECC syndrome %#x -- unknown bit\n";
 	}
 
 	printk (fmt, syn, i);
 }
 
 static void
 cia_decode_parity_error(struct el_CIA_sysdata_mcheck *cia)
 {
 	static const char * const cmd_desc[16] =3D {
 		"NOP", "LOCK", "FETCH", "FETCH_M", "MEMORY BARRIER",
 		"SET DIRTY", "WRITE BLOCK", "WRITE BLOCK LOCK",
 		"READ MISS0", "READ MISS1", "READ MISS MOD0",
 		"READ MISS MOD1", "BCACHE VICTIM", "Spare",
 		"READ MISS MOD STC0", "READ MISS MOD STC1"
 	};
 
 	unsigned long addr;
 	unsigned long mask;
 	const char *cmd;
 	int par;
 
 	addr =3D cia->cpu_err0 & 0xfffffff0;
 	addr |=3D (cia->cpu_err1 & 0x83UL) << 32;
 	cmd =3D cmd_desc[(cia->cpu_err1 >> 8) & 0xF];
 	mask =3D (cia->cpu_err1 >> 12) & 0xF;
 	par =3D (cia->cpu_err1 >> 21) & 1;
 
 	printk("<2>"  "CIA machine check: System bus parity error\n");
 	printk("<2>"  "  Command: %s, Parity bit: %d\n", cmd, par);
 	printk("<2>"  "  Address: %#010lx, Mask: %#lx\n", addr, mask);
 }
 
 static int
 cia_decode_mchk(unsigned long la_ptr)
 {
 	struct el_common *com;
 	struct el_CIA_sysdata_mcheck *cia;
 	int which;
 
 	com =3D (void *)la_ptr;
 	cia =3D (void *)(la_ptr + com->sys_offset);
 
 	if ((cia->cia_err & (1 << 31) ) =3D=3D 0)
 		return 0;
 
 	which =3D cia->cia_err & 0xfff;
 	switch (ffs(which) - 1) {
 	case 0: =20
 		cia_decode_ecc_error(cia, "Corrected ECC error");
 		break;
 	case 1: =20
 		cia_decode_ecc_error(cia, "Uncorrected ECC error");
 		break;
 	case 2: =20
 		cia_decode_parity_error(cia);
 		break;
 	case 3: =20
 		cia_decode_mem_error(cia, "Access to nonexistent memory");
 		break;
 	case 4: =20
 		cia_decode_pci_error(cia, "PCI bus system error");
 		break;
 	case 5: =20
 		cia_decode_pci_error(cia, "PCI data parity error");
 		break;
 	case 6: =20
 		cia_decode_pci_error(cia, "PCI address parity error");
 		break;
 	case 7: =20
 		cia_decode_pci_error(cia, "PCI master abort");
 		break;
 	case 8: =20
 		cia_decode_pci_error(cia, "PCI target abort");
 		break;
 	case 9: =20
 		cia_decode_pci_error(cia, "PCI invalid PTE");
 		break;
 	case 10: =20
 		cia_decode_mem_error(cia, "Write to flash ROM attempted");
 		break;
 	case 11: =20
 		cia_decode_pci_error(cia, "I/O timeout");
 		break;
 	}
 
 	if (cia->cia_err & (1 << 16) )
 		printk("<2>"  "CIA lost machine check: "
 		       "Correctable ECC error\n");
 	if (cia->cia_err & (1 << 17) )
 		printk("<2>"  "CIA lost machine check: "
 		       "Uncorrectable ECC error\n");
 	if (cia->cia_err & (1 << 18) )
 		printk("<2>"  "CIA lost machine check: "
 		       "System bus parity error\n");
 	if (cia->cia_err & (1 << 19) )
 		printk("<2>"  "CIA lost machine check: "
 		       "Access to nonexistent memory\n");
 	if (cia->cia_err & (1 << 21) )
 		printk("<2>"  "CIA lost machine check: "
 		       "PCI data parity error\n");
 	if (cia->cia_err & (1 << 22) )
 		printk("<2>"  "CIA lost machine check: "
 		       "PCI address parity error\n");
 	if (cia->cia_err & (1 << 23) )
 		printk("<2>"  "CIA lost machine check: "
 		       "PCI master abort\n");
 	if (cia->cia_err & (1 << 24) )
 		printk("<2>"  "CIA lost machine check: "
 		       "PCI target abort\n");
 	if (cia->cia_err & (1 << 25) )
 		printk("<2>"  "CIA lost machine check: "
 		       "PCI invalid PTE\n");
 	if (cia->cia_err & (1 << 26) )
 		printk("<2>"  "CIA lost machine check: "
 		       "Write to flash ROM attempted\n");
 	if (cia->cia_err & (1 << 27) )
 		printk("<2>"  "CIA lost machine check: "
 		       "I/O timeout\n");
 
 	return 1;
 }
 
 void
 cia_machine_check(unsigned long vector, unsigned long la_ptr,
 		  struct pt_regs * regs)
 {
 	int expected;
 
 	=20
 	__asm__ __volatile__("mb": : :"memory") ;
 	__asm__ __volatile__("mb": : :"memory") ;  =20
 	__asm__ __volatile__ ("call_pal %0 #draina" : : "i" (2 ) : "memory") ;
 	cia_pci_clr_err();
 	wrmces(rdmces());	=20
 	__asm__ __volatile__("mb": : :"memory") ;
 
 	expected =3D (__mcheck_info.expected) ;
 	if (!expected && vector =3D=3D 0x660)
 		expected =3D cia_decode_mchk(la_ptr);
 	process_mcheck_info(vector, la_ptr, regs, "CIA", expected);
 }
 
 ------=_NextPart_000_0004_01C0D95F.14D46C00--
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]