2.95.3 destruction in Linux header

Stephen L Moshier moshier@mediaone.net
Fri Mar 23 14:39:00 GMT 2001


gcc-2.95.2 and egcs-2.91.66 do not complain about this program
but 2.95.3 generates hundreds of failure messages.


----start of source code ---
#include <linux/fs.h>
-----end of source code  ---
(The linux version happens to be 2.2.14.)

> i486-linux-gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/2.95.3/specs
gcc version 2.95.3 20010312 (prerelease)


i486-linux-gcc -Wall -DDEBUG -D__KERNEL__ -DMODULE -c tst.i
In file included from /usr/include/linux/fs.h:262,
                 from tst3.c:1:
/usr/include/linux/hpfs_fs_i.h:5: parse error before `ino_t'
/usr/include/linux/hpfs_fs_i.h:5: warning: no semicolon at end of struct or union
/usr/include/linux/hpfs_fs_i.h:12: parse error before `:'
... 500-odd more lines of failure messages


------------


---- start of .i file ---
# 1 "tst3.c"
# 1 "/usr/include/linux/fs.h" 1 3



 




# 1 "/usr/include/linux/config.h" 1 3



# 1 "/usr/include/linux/autoconf.h" 1 3
 




 




 

















 






 




























 






 




















































































 










































































 



































 







 













 

















































































































 




 























 















































































































 















 





























 

















 










































 













































 

















 



























 

























































 




























 





















































 













 









































 



















 










































 























 








































 
























 










 

























































 



















































 















































































 























 



# 4 "/usr/include/linux/config.h" 2 3



# 9 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/linkage.h" 1 3









































# 52 "/usr/include/linux/linkage.h" 3



# 10 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/limits.h" 1 3



















# 11 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/wait.h" 1 3










# 1 "/usr/include/asm/page.h" 1 3



 













 


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;











# 55 "/usr/include/asm/page.h" 3



 


 





















# 1 "/usr/include/asm/page_offset.h" 1 3








# 83 "/usr/include/asm/page.h" 2 3












# 11 "/usr/include/linux/wait.h" 2 3


struct wait_queue {
	struct task_struct * task;
	struct wait_queue * next;
};



static inline void init_waitqueue(struct wait_queue **q)
{
	*q = ((struct wait_queue *)(( q )-1)) ;
}

static inline int waitqueue_active(struct wait_queue **q)
{
	struct wait_queue *head = *q;
	return head && head != ((struct wait_queue *)(( q )-1)) ;
}




# 12 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/types.h" 1 3



# 1 "/usr/include/linux/posix_types.h" 1 3



# 1 "/usr/include/linux/stddef.h" 1 3














# 4 "/usr/include/linux/posix_types.h" 2 3


 










 


















typedef struct {
	unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)) ) ];
} __kernel_fd_set;

 
typedef void (*__kernel_sighandler_t)(int);

 
typedef int __kernel_key_t;

# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 1 3
 

# 1 "/usr/include/features.h" 1 3
 




















 



























































 



















 





 



 







 
# 138 "/usr/include/features.h" 3


 









 





 



























# 196 "/usr/include/features.h" 3


































 



 








 




 

# 1 "/usr/include/sys/cdefs.h" 1 3
 




















 




 





 








 




# 71 "/usr/include/sys/cdefs.h" 3


 







 



# 103 "/usr/include/sys/cdefs.h" 3



 








 















 








 








 









 







# 250 "/usr/include/features.h" 2 3


 








 





 

 








# 1 "/usr/include/gnu/stubs.h" 1 3
 






































# 278 "/usr/include/features.h" 2 3




# 3 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3

# 1 "/usr/include/asm/posix_types.h" 1 3



 





typedef unsigned short	__kernel_dev_t;
typedef unsigned long	__kernel_ino_t;
typedef unsigned short	__kernel_mode_t;
typedef unsigned short	__kernel_nlink_t;
typedef long		__kernel_off_t;
typedef int		__kernel_pid_t;
typedef unsigned short	__kernel_ipc_pid_t;
typedef unsigned short	__kernel_uid_t;
typedef unsigned short	__kernel_gid_t;
typedef unsigned int	__kernel_size_t;
typedef int		__kernel_ssize_t;
typedef int		__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 long long	__kernel_loff_t;


typedef struct {

	int	val[2];



} __kernel_fsid_t;























# 70 "/usr/include/asm/posix_types.h" 3




# 4 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3


# 16 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 3




# 46 "/usr/include/linux/posix_types.h" 2 3



# 4 "/usr/include/linux/types.h" 2 3

# 1 "/usr/include/asm/types.h" 1 3



typedef unsigned short umode_t;

 




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 long __s64;
typedef unsigned long long __u64;


 




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 long s64;
typedef unsigned long long u64;






# 5 "/usr/include/linux/types.h" 2 3


# 94 "/usr/include/linux/types.h" 3


 




struct ustat {
	__kernel_daddr_t	f_tfree;
	__kernel_ino_t		f_tinode;
	char			f_fname[6];
	char			f_fpack[6];
};


# 13 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/vfs.h" 1 3



# 1 "/usr/include/asm/statfs.h" 1 3











struct statfs {
	long f_type;
	long f_bsize;
	long f_blocks;
	long f_bfree;
	long f_bavail;
	long f_files;
	long f_ffree;
	__kernel_fsid_t f_fsid;
	long f_namelen;
	long f_spare[6];
};


# 4 "/usr/include/linux/vfs.h" 2 3



# 14 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/net.h" 1 3
 



















# 1 "/usr/include/linux/socket.h" 1 3





# 1 "/usr/include/asm/socket.h" 1 3



# 1 "/usr/include/asm/sockios.h" 1 3



 








# 4 "/usr/include/asm/socket.h" 2 3


 
















 







 






 



 

 






					 
					 
					 
					 



# 6 "/usr/include/linux/socket.h" 2 3

# 1 "/usr/include/linux/sockios.h" 1 3
 





















 




 











































 
		     




 




 




 




 

 





 


 


 


# 7 "/usr/include/linux/socket.h" 2 3

# 1 "/usr/include/linux/uio.h" 1 3





 









 


struct iovec
{
	void *iov_base;		 
	__kernel_size_t iov_len;  
};

 


 









# 8 "/usr/include/linux/socket.h" 2 3



typedef unsigned short	sa_family_t;

 


 
struct sockaddr {
	sa_family_t	sa_family;	 
	char		sa_data[14];	 
};

struct linger {
	int		l_onoff;	 
	int		l_linger;	 
};

 




 
struct msghdr {
	void	*	msg_name;	 
	int		msg_namelen;	 
	struct iovec *	msg_iov;	 
	__kernel_size_t	msg_iovlen;	 
	void 	*	msg_control;	 
	__kernel_size_t	msg_controllen;	 
	unsigned	msg_flags;
};

 





struct cmsghdr {
	__kernel_size_t	cmsg_len;	 
        int		cmsg_level;	 
        int		cmsg_type;	 
};

 


















 


 











 











 
extern __inline__  struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
					       struct cmsghdr *__cmsg)
{
	struct cmsghdr * __ptr;

	__ptr = (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;
}

extern __inline__  struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
{
	return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
}

 





struct ucred {
	__u32	pid;
	__u32	uid;
	__u32	gid;
};


 



























 




























 


 


 























 

 

















 


 





extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov, 
				int offset, int len);
extern int csum_partial_copy_fromiovecend(unsigned char *kdata, 
					  struct iovec *iov, 
					  int offset, 
					  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);



# 279 "/usr/include/linux/socket.h" 3


# 21 "/usr/include/linux/net.h" 2 3


struct poll_table_struct;























typedef enum {
  SS_FREE = 0,				 
  SS_UNCONNECTED,			 
  SS_CONNECTING,			 
  SS_CONNECTED,				 
  SS_DISCONNECTING			 
} socket_state;







struct socket
{
	socket_state		state;

	unsigned long		flags;
	struct proto_ops	*ops;
	struct inode		*inode;
	struct fasync_struct	*fasync_list;	 
	struct file		*file;		 
	struct sock		*sk;
	struct wait_queue	*wait;

	short			type;
	unsigned char		passcred;
	unsigned char		tli;
};



struct scm_cookie;

struct proto_ops {
  int	family;

  int	(*dup)		(struct socket *newsock, struct socket *oldsock);
  int	(*release)	(struct socket *sock, struct socket *peer);
  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	(*fcntl)	(struct socket *sock, unsigned int cmd,
			 unsigned long arg);	
  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);
};

struct net_proto_family 
{
	int	family;
	int	(*create)(struct socket *sock, int protocol);
	 

	short	authentication;
	short	encryption;
	short	encrypt_net;
};

struct net_proto 
{
	const char *name;		 
	void (*init_func)(struct net_proto *);	 
};

extern struct net_proto_family *net_families[];
extern int	sock_wake_async(struct socket *sk, int how);
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);



# 15 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/kdev_t.h" 1 3



 























































 






typedef unsigned short kdev_t;








extern char * kdevname(kdev_t);	 

 




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 = (dev >> 8);
	minor = (dev & 0xff);

	return ((( major ) << 8 ) | (  minor )) ;
}

# 113 "/usr/include/linux/kdev_t.h" 3


# 16 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ioctl.h" 1 3



# 1 "/usr/include/asm/ioctl.h" 1 3
 







 









 






















 












 





 





 








# 4 "/usr/include/linux/ioctl.h" 2 3




# 17 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/list.h" 1 3





 









struct list_head {
	struct list_head *next, *prev;
};








 





static __inline__ void __list_add(struct list_head * new,
	struct list_head * prev,
	struct list_head * next)
{
	next->prev = new;
	new->next = next;
	new->prev = prev;
	prev->next = new;
}

 


static __inline__ void list_add(struct list_head *new, struct list_head *head)
{
	__list_add(new, head, head->next);
}

 






static __inline__ void __list_del(struct list_head * prev,
				  struct list_head * next)
{
	next->prev = prev;
	prev->next = next;
}

static __inline__ void list_del(struct list_head *entry)
{
	__list_del(entry->prev, entry->next);
}

static __inline__ int list_empty(struct list_head *head)
{
	return head->next == head;
}

 


static __inline__ void list_splice(struct list_head *list, struct list_head *head)
{
	struct list_head *first = list->next;

	if (first != list) {
		struct list_head *last = list->prev;
		struct list_head *at = head->next;

		first->prev = head;
		head->next = first;

		last->next = at;
		at->prev = last;
	}
}







# 18 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/dcache.h" 1 3





 












 



struct qstr {
	const unsigned char * name;
	unsigned int len;
	unsigned int hash;
};

 


 
static __inline__ unsigned long partial_name_hash(unsigned long c, unsigned long prevhash)
{
	prevhash = (prevhash << 4) | (prevhash >> (8*sizeof(unsigned long)-4));
	return prevhash ^ c;
}

 
static __inline__ unsigned long end_name_hash(unsigned long hash)
{
	if (sizeof(hash) > sizeof(unsigned int))
		hash += hash >> 4*sizeof(hash);
	return (unsigned int) hash;
}

 
static __inline__ unsigned int full_name_hash(const unsigned char * name, unsigned int len)
{
	unsigned long hash = 0 ;
	while (len--)
		hash = partial_name_hash(*name++, hash);
	return end_name_hash(hash);
}



struct dentry {
	int d_count;
	unsigned int d_flags;
	struct inode  * d_inode;	 
	struct dentry * d_parent;	 
	struct dentry * d_mounts;	 
	struct dentry * d_covers;
	struct list_head d_hash;	 
	struct list_head d_lru;		 
	struct list_head d_child;	 
	struct list_head d_subdirs;	 
	struct list_head d_alias;	 
	struct qstr d_name;
	unsigned long d_time;		 
	struct dentry_operations  *d_op;
	struct super_block * d_sb;	 
	unsigned long d_reftime;	 
	void * d_fsdata;		 
	unsigned char d_iname[16 ];  
};

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 *);
	void (*d_delete)(struct dentry *);
	void (*d_release)(struct dentry *);
	void (*d_iput)(struct dentry *, struct inode *);
};

 








 






 












static __inline__ void d_drop(struct dentry * dentry)
{
	list_del(&dentry->d_hash);
	do { ( &dentry->d_hash )->next = ( &dentry->d_hash ); ( &dentry->d_hash )->prev = ( &dentry->d_hash ); } while (0) ;
}

static __inline__ int dname_external(struct dentry *d)
{
	return d->d_name.name != d->d_iname; 
}

 


extern void d_instantiate(struct dentry *, struct inode *);
extern void d_delete(struct dentry *);

 
extern struct dentry * d_alloc(struct dentry * parent, const struct qstr *name);
extern int prune_dcache(int, int);
extern void shrink_dcache_sb(struct super_block *);
extern void shrink_dcache_parent(struct dentry *);
extern int d_invalidate(struct dentry *);



 
extern void shrink_dcache_memory(int, unsigned int);
extern void check_dcache_memory(void);
extern void free_inode_memory(int);	 

 
extern struct dentry * d_alloc_root(struct inode * root_inode, struct dentry * old_root);

 
extern int is_root_busy(struct dentry *);

 
extern int have_submounts(struct dentry *);

 


extern void d_rehash(struct dentry * entry);
 



static __inline__ void d_add(struct dentry * entry, struct inode * inode)
{
	d_rehash(entry);
	d_instantiate(entry, inode);
}

 
extern void d_move(struct dentry * entry, struct dentry * newdentry);

 
extern struct dentry * d_lookup(struct dentry * dir, struct qstr * name);

 
extern int d_validate(struct dentry *dentry, struct dentry *dparent,
		      unsigned int hash, unsigned int len);

 
extern char * d_path(struct dentry * entry, char * buf, int buflen);

 
static __inline__ struct dentry * dget(struct dentry *dentry)
{
	if (dentry)
		dentry->d_count++;
	return dentry;
}

extern void dput(struct dentry *);




# 19 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/stat.h" 1 3





# 1 "/usr/include/asm/stat.h" 1 3



struct __old_kernel_stat {
	unsigned short st_dev;
	unsigned short st_ino;
	unsigned short st_mode;
	unsigned short st_nlink;
	unsigned short st_uid;
	unsigned short st_gid;
	unsigned short st_rdev;
	unsigned long  st_size;
	unsigned long  st_atime;
	unsigned long  st_mtime;
	unsigned long  st_ctime;
};

struct stat {
	unsigned short st_dev;
	unsigned short __pad1;
	unsigned long st_ino;
	unsigned short st_mode;
	unsigned short st_nlink;
	unsigned short st_uid;
	unsigned short st_gid;
	unsigned short st_rdev;
	unsigned short __pad2;
	unsigned long  st_size;
	unsigned long  st_blksize;
	unsigned long  st_blocks;
	unsigned long  st_atime;
	unsigned long  __unused1;
	unsigned long  st_mtime;
	unsigned long  __unused2;
	unsigned long  st_ctime;
	unsigned long  __unused3;
	unsigned long  __unused4;
	unsigned long  __unused5;
};


# 6 "/usr/include/linux/stat.h" 2 3




















































# 20 "/usr/include/linux/fs.h" 2 3


# 1 "/usr/include/asm/atomic.h" 1 3



 










 









typedef struct { int counter; } atomic_t;







static __inline__ void atomic_add(int i, volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "addl %1,%0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ void atomic_sub(int i, volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "subl %1,%0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ void atomic_inc(volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "incl %0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ void atomic_dec(volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "decl %0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ int atomic_dec_and_test(volatile atomic_t *v)
{
	unsigned char c;

	__asm__ __volatile__(
		""  "decl %0; sete %1"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
	return c != 0;
}

extern __inline__ int atomic_inc_and_test_greater_zero(volatile atomic_t *v)
{
	unsigned char c;

	__asm__ __volatile__(
		""  "incl %0; setg %1"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
	return c;  
}

 









# 22 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/bitops.h" 1 3




 





extern __inline__ int generic_ffs(int x)
{
	int r = 1;

	if (!x)
		return 0;
	if (!(x & 0xffff)) {
		x >>= 16;
		r += 16;
	}
	if (!(x & 0xff)) {
		x >>= 8;
		r += 8;
	}
	if (!(x & 0xf)) {
		x >>= 4;
		r += 4;
	}
	if (!(x & 3)) {
		x >>= 2;
		r += 2;
	}
	if (!(x & 1)) {
		x >>= 1;
		r += 1;
	}
	return r;
}

 




extern __inline__ unsigned int generic_hweight32(unsigned int w)
{
        unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555);
        res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
        res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
        res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
        return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
}

extern __inline__ unsigned int generic_hweight16(unsigned int w)
{
        unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555);
        res = (res & 0x3333) + ((res >> 2) & 0x3333);
        res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
        return (res & 0x00FF) + ((res >> 8) & 0x00FF);
}

extern __inline__ unsigned int generic_hweight8(unsigned int w)
{
        unsigned int res = (w & 0x55) + ((w >> 1) & 0x55);
        res = (res & 0x33) + ((res >> 2) & 0x33);
        return (res & 0x0F) + ((res >> 4) & 0x0F);
}

# 1 "/usr/include/asm/bitops.h" 1 3



 



 













 


extern void set_bit(int nr, volatile void * addr);
extern void clear_bit(int nr, volatile void * addr);
extern void change_bit(int nr, volatile void * addr);
extern int test_and_set_bit(int nr, volatile void * addr);
extern int test_and_clear_bit(int nr, volatile void * addr);
extern int test_and_change_bit(int nr, volatile void * addr);
extern int __constant_test_bit(int nr, const volatile void * addr);
extern int __test_bit(int nr, volatile void * addr);
extern int find_first_zero_bit(void * addr, unsigned size);
extern int find_next_zero_bit (void * addr, int size, int offset);
extern unsigned long ffz(unsigned long word);

 


struct __dummy { unsigned long a[100]; };



extern __inline__ void set_bit(int nr, volatile void * addr)
{
	__asm__ __volatile__( "" 
		"btsl %1,%0"
		:"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
}

extern __inline__ void clear_bit(int nr, volatile void * addr)
{
	__asm__ __volatile__( "" 
		"btrl %1,%0"
		:"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
}

extern __inline__ void change_bit(int nr, volatile void * addr)
{
	__asm__ __volatile__( "" 
		"btcl %1,%0"
		:"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
}

extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__( "" 
		"btsl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
	return oldbit;
}

extern __inline__ int test_and_clear_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__( "" 
		"btrl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
	return oldbit;
}

extern __inline__ int test_and_change_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__( "" 
		"btcl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
	return oldbit;
}

 


extern __inline__ int __constant_test_bit(int nr, const volatile void * addr)
{
	return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
}

extern __inline__ int __test_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__(
		"btl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit)
		:"m" ((*(volatile struct __dummy *) addr) ),"Ir" (nr));
	return oldbit;
}






 


extern __inline__ int find_first_zero_bit(void * addr, unsigned size)
{
	int d0, d1, d2;
	int res;

	if (!size)
		return 0;
	__asm__("cld\n\t"
		"movl $-1,%%eax\n\t"
		"xorl %%edx,%%edx\n\t"
		"repe; scasl\n\t"
		"je 1f\n\t"
		"xorl -4(%%edi),%%eax\n\t"
		"subl $4,%%edi\n\t"
		"bsfl %%eax,%%edx\n"
		"1:\tsubl %%ebx,%%edi\n\t"
		"shll $3,%%edi\n\t"
		"addl %%edi,%%edx"
		:"=d" (res), "=&c" (d0), "=&D" (d1), "=&a" (d2)
		:"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
	return res;
}

extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
	unsigned long * p = ((unsigned long *) addr) + (offset >> 5);
	int set = 0, bit = offset & 31, res;
	
	if (bit) {
		 


		__asm__("bsfl %1,%0\n\t"
			"jne 1f\n\t"
			"movl $32, %0\n"
			"1:"
			: "=r" (set)
			: "r" (~(*p >> bit)));
		if (set < (32 - bit))
			return set + offset;
		set = 32 - bit;
		p++;
	}
	 


	res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr));
	return (offset + set + res);
}

 



extern __inline__ unsigned long ffz(unsigned long word)
{
	__asm__("bsfl %1,%0"
		:"=r" (word)
		:"r" (~word));
	return word;
}



 





extern __inline__ int ffs(int x)
{
	int r;

	__asm__("bsfl %1,%0\n\t"
		"jnz 1f\n\t"
		"movl $-1,%0\n"
		"1:" : "=r" (r) : "g" (x));
	return r+1;
}

 


















 








# 69 "/usr/include/linux/bitops.h" 2 3




# 23 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/asm/cache.h" 1 3
 





 











# 24 "/usr/include/linux/fs.h" 2 3



struct poll_table_struct;


 









 







 
extern int max_inodes;
extern int max_files, nr_files, nr_free_files;
extern int max_super_blocks, nr_super_blocks;






















 







 



















 




 





 




























 





















# 1 "/usr/include/asm/semaphore.h" 1 3





 
























# 1 "/usr/include/asm/system.h" 1 3



# 1 "/usr/include/linux/kernel.h" 1 3



 





# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 1 3
 
































































 






typedef void *__gnuc_va_list;



 



 

















void va_end (__gnuc_va_list);		 


 



 












 























 
 













# 175 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 3


 




 

 

 

typedef __gnuc_va_list va_list;
























# 10 "/usr/include/linux/kernel.h" 2 3



 
 




























extern void math_error(void);
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)) ;
extern unsigned long simple_strtoul(const char *,char **,unsigned int);
extern long simple_strtol(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);

extern int session_of_pgrp(int pgrp);

  __attribute__((regparm(0)))  int printk(const char * fmt, ...)
	__attribute__ ((format (printf, 1, 2)));












 












struct sysinfo {
	long uptime;			 
	unsigned long loads[3];		 
	unsigned long totalram;		 
	unsigned long freeram;		 
	unsigned long sharedram;	 
	unsigned long bufferram;	 
	unsigned long totalswap;	 
	unsigned long freeswap;		 
	unsigned short procs;		 
	char _f[22];			 
};


# 4 "/usr/include/asm/system.h" 2 3

# 1 "/usr/include/asm/segment.h" 1 3










# 5 "/usr/include/asm/system.h" 2 3




struct task_struct;	 
extern void  __switch_to(struct task_struct *prev, struct task_struct *next)  __attribute__((regparm(3))) ;


# 31 "/usr/include/asm/system.h" 3


# 43 "/usr/include/asm/system.h" 3


# 56 "/usr/include/asm/system.h" 3




static inline unsigned long _get_base(char * addr)
{
	unsigned long __base;
	__asm__("movb %3,%%dh\n\t"
		"movb %2,%%dl\n\t"
		"shll $16,%%edx\n\t"
		"movw %1,%%dx"
		:"=&d" (__base)
		:"m" (*((addr)+2)),
		 "m" (*((addr)+4)),
		 "m" (*((addr)+7)));
	return __base;
}



 




# 96 "/usr/include/asm/system.h" 3

 
















static inline unsigned long get_limit(unsigned long segment)
{
	unsigned long __limit;
	__asm__("lsll %1,%0"
		:"=r" (__limit):"r" (segment));
	return __limit+1;
}






struct __xchg_dummy { unsigned long a[100]; };


 


static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
{
	switch (size) {
		case 1:
			__asm__("xchgb %b0,%1"
				:"=q" (x)
				:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
				:"memory");
			break;
		case 2:
			__asm__("xchgw %w0,%1"
				:"=r" (x)
				:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
				:"memory");
			break;
		case 4:
			__asm__("xchgl %0,%1"
				:"=r" (x)
				:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
				:"memory");
			break;
	}
	return x;
}

 

















 








# 196 "/usr/include/asm/system.h" 3









 



void disable_hlt(void);
void enable_hlt(void);


# 31 "/usr/include/asm/semaphore.h" 2 3


# 1 "/usr/include/asm/spinlock.h" 1 3









 





  typedef struct { } spinlock_t;
  


















# 80 "/usr/include/asm/spinlock.h" 3


 












  typedef struct { } rwlock_t;
  























# 253 "/usr/include/asm/spinlock.h" 3


# 33 "/usr/include/asm/semaphore.h" 2 3


struct semaphore {
	atomic_t count;
	int waking;
	struct wait_queue * wait;
};




  __attribute__((regparm(0)))  void __down_failed(void  );
  __attribute__((regparm(0)))  int  __down_failed_interruptible(void   );
  __attribute__((regparm(0)))  int  __down_failed_trylock(void   );
  __attribute__((regparm(0)))  void __up_wakeup(void  );

  __attribute__((regparm(0)))  void __down(struct semaphore * sem);
  __attribute__((regparm(0)))  int  __down_interruptible(struct semaphore * sem);
  __attribute__((regparm(0)))  int  __down_trylock(struct semaphore * sem);
  __attribute__((regparm(0)))  void __up(struct semaphore * sem);

extern spinlock_t semaphore_wake_lock;



 




extern inline void down(struct semaphore * sem)
{
	__asm__ __volatile__(
		"# atomic down operation\n\t"



		"decl (%0)\n\t"      
		"js 2f\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __down_failed\n\t"
		"jmp 1b\n"
		".previous"
		: 
		:"c" (sem)
		:"memory");
}

extern inline int down_interruptible(struct semaphore * sem)
{
	int result;

	__asm__ __volatile__(
		"# atomic interruptible down operation\n\t"



		"decl (%1)\n\t"      
		"js 2f\n\t"
		"xorl %0,%0\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __down_failed_interruptible\n\t"
		"jmp 1b\n"
		".previous"
		:"=a" (result)
		:"c" (sem)
		:"memory");
	return result;
}

extern inline int down_trylock(struct semaphore * sem)
{
	int result;

	__asm__ __volatile__(
		"# atomic interruptible down operation\n\t"



		"decl (%1)\n\t"      
		"js 2f\n\t"
		"xorl %0,%0\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __down_failed_trylock\n\t"
		"jmp 1b\n"
		".previous"
		:"=a" (result)
		:"c" (sem)
		:"memory");
	return result;
}

 





extern inline void up(struct semaphore * sem)
{
	__asm__ __volatile__(
		"# atomic up operation\n\t"



		"incl (%0)\n\t"      
		"jle 2f\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __up_wakeup\n\t"
		"jmp 1b\n"
		".previous"
		: 
		:"c" (sem)
		:"memory");
}


# 164 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/asm/byteorder.h" 1 3







 




static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
{

	__asm__("bswap %0" : "=r" (x) : "0" (x));







	return x;
}

static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
{
	__asm__("xchgb %b0,%h0"		  		: "=q" (x) 		:  "0" (x)); 		return x;



}











# 1 "/usr/include/linux/byteorder/little_endian.h" 1 3










# 1 "/usr/include/linux/byteorder/swab.h" 1 3



 













 













# 41 "/usr/include/linux/byteorder/swab.h" 3

 

































 






















extern __inline__ __const__ __u16 __fswab16(__u16 x)
{
	return ___arch__swab16( x ) ;
}
extern __inline__ __u16 __swab16p(__u16 *x)
{
	return (__builtin_constant_p((__u16)( *( x ) )) ? ((__u16)( (((__u16)( ( *( x ) ) ) & (__u16)0x00ffU) << 8) | (((__u16)( ( *( x ) ) ) & (__u16)0xff00U) >> 8) ))  : __fswab16(( *( x ) )))  ;
}
extern __inline__ void __swab16s(__u16 *addr)
{
	do { *( addr ) = __swab16p(( addr )); } while (0) ;
}

extern __inline__ __const__ __u32 __fswab32(__u32 x)
{
	return ___arch__swab32( x ) ;
}
extern __inline__ __u32 __swab32p(__u32 *x)
{
	return (__builtin_constant_p((__u32)( *( x ) )) ? ((__u32)( (((__u32)( ( *( x ) ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( *( x ) ) ) & (__u32)0x0000ff00UL) <<  8) | (((__u32)( ( *( x ) ) ) & (__u32)0x00ff0000UL) >>  8) | (((__u32)( ( *( x ) ) ) & (__u32)0xff000000UL) >> 24) ))  : __fswab32(( *( x ) )))  ;
}
extern __inline__ void __swab32s(__u32 *addr)
{
	do { *( addr ) = __swab32p(( addr )); } while (0) ;
}


extern __inline__ __const__ __u64 __fswab64(__u64 x)
{

	__u32 h = x >> 32;
        __u32 l = x & ((1ULL<<32)-1);
        return (((__u64)(__builtin_constant_p((__u32)( l )) ? ((__u32)( (((__u32)( ( l ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( l ) ) & (__u32)0x0000ff00UL) <<  8) | (((__u32)( ( l ) ) & (__u32)0x00ff0000UL) >>  8) | (((__u32)( ( l ) ) & (__u32)0xff000000UL) >> 24) ))  : __fswab32(( l ))) ) << 32) | ((__u64)((__builtin_constant_p((__u32)( h )) ? ((__u32)( (((__u32)( ( h ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( h ) ) & (__u32)0x0000ff00UL) <<  8) | (((__u32)( ( h ) ) & (__u32)0x00ff0000UL) >>  8) | (((__u32)( ( h ) ) & (__u32)0xff000000UL) >> 24) ))  : __fswab32(( h ))) ));



}
extern __inline__ __u64 __swab64p(__u64 *x)
{
	return (__builtin_constant_p((__u64)( *( x ) )) ? ((__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) ))  : __fswab64(( *( x ) )))  ;
}
extern __inline__ void __swab64s(__u64 *addr)
{
	do { *( addr ) = __swab64p(( addr )); } while (0) ;
}















# 11 "/usr/include/linux/byteorder/little_endian.h" 2 3











































# 1 "/usr/include/linux/byteorder/generic.h" 1 3



 




































 









































 










































 


















 




extern __u32			ntohl(__u32);
extern __u32			htonl(__u32);




extern unsigned short int	ntohs(unsigned short int);
extern unsigned short int	htons(unsigned short int);























# 54 "/usr/include/linux/byteorder/little_endian.h" 2 3



# 45 "/usr/include/asm/byteorder.h" 2 3



# 165 "/usr/include/linux/fs.h" 2 3



extern void update_atime (struct inode *inode);


extern void buffer_init(unsigned long);
extern void inode_init(void);
extern void file_table_init(void);
extern void dcache_init(void);

typedef char buffer_block[(1<< 10 ) ];

 






 











struct buffer_head {
	 
	struct buffer_head * b_next;	 
	unsigned long b_blocknr;	 
	unsigned long b_size;		 
	kdev_t b_dev;			 
	kdev_t b_rdev;			 
	unsigned long b_rsector;	 
	struct buffer_head * b_this_page;	 
	unsigned long b_state;		 
	struct buffer_head * b_next_free;
	unsigned int b_count;		 

	 
	char * b_data;			 
	unsigned int b_list;		 
	unsigned long b_flushtime;       

	struct wait_queue * b_wait;
	struct buffer_head ** b_pprev;		 
	struct buffer_head * b_prev_free;	 
	struct buffer_head * b_reqnext;		 

	 


	void (*b_end_io)(struct buffer_head *bh, int uptodate);
	void *b_dev_id;
};

typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
void init_buffer(struct buffer_head *bh, kdev_t dev, int block,
		 bh_end_io_t *handler, void *dev_id);

static inline int buffer_uptodate(struct buffer_head * bh)
{
	return (__builtin_constant_p( 0  ) ? __constant_test_bit(( 0  ),(  &bh->b_state )) : __test_bit(( 0  ),(  &bh->b_state ))) ;
}	

static inline int buffer_dirty(struct buffer_head * bh)
{
	return (__builtin_constant_p( 1  ) ? __constant_test_bit(( 1  ),(  &bh->b_state )) : __test_bit(( 1  ),(  &bh->b_state ))) ;
}

static inline int buffer_locked(struct buffer_head * bh)
{
	return (__builtin_constant_p( 2  ) ? __constant_test_bit(( 2  ),(  &bh->b_state )) : __test_bit(( 2  ),(  &bh->b_state ))) ;
}

static inline int buffer_req(struct buffer_head * bh)
{
	return (__builtin_constant_p( 3  ) ? __constant_test_bit(( 3  ),(  &bh->b_state )) : __test_bit(( 3  ),(  &bh->b_state ))) ;
}

static inline int buffer_protected(struct buffer_head * bh)
{
	return (__builtin_constant_p( 6  ) ? __constant_test_bit(( 6  ),(  &bh->b_state )) : __test_bit(( 6  ),(  &bh->b_state ))) ;
}




# 1 "/usr/include/linux/pipe_fs_i.h" 1 3



struct pipe_inode_info {
	struct wait_queue * wait;
	char * base;
	unsigned int start;
	unsigned int lock;
	unsigned int rd_openers;
	unsigned int wr_openers;
	unsigned int readers;
	unsigned int writers;
};





















# 259 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/minix_fs_i.h" 1 3



 


struct minix_inode_info {
	union {
		__u16 i1_data[16];
		__u32 i2_data[16];
	} u;
};


# 260 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ext2_fs_i.h" 1 3
 

















 


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	i_version;
	__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;	 
};


# 261 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hpfs_fs_i.h" 1 3



struct hpfs_inode_info {
	ino_t i_parent_dir;	 
	unsigned i_dno;		 
	unsigned i_dpos;	 
	unsigned i_dsubdno;	 
	unsigned i_file_sec;	 
	unsigned i_disk_sec;	 
	unsigned i_n_secs;	 
	unsigned i_conv : 2;	 
};











# 262 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ntfs_fs_i.h" 1 3



 
struct ntfs_attribute;
struct ntfs_sb_info;

 


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 __kernel_uid_t ntfs_uid_t;



typedef __kernel_gid_t ntfs_gid_t;



typedef __kernel_size_t ntfs_size_t;



typedef __kernel_time_t ntfs_time_t;


 


typedef unsigned short     ntfs_wchar_t;

 


typedef unsigned long long ntfs_offset_t;

 


typedef unsigned long long ntfs_time64_t;

 


typedef unsigned int ntfs_cluster_t;


 
struct ntfs_inode_info{
	struct ntfs_sb_info *vol;
	int i_number;                 
	unsigned sequence_number;
	unsigned char* attr;          
	int attr_count;               
	struct ntfs_attribute *attrs;
	int record_count;             
	 

	int *records;
	union{
		struct{
			int recordsize;
			int clusters_per_record;
		}index;
	} u;	
};


# 263 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/msdos_fs_i.h" 1 3







 



struct msdos_inode_info {
	 













	struct pipe_inode_info reserved;
	int i_start;	 
	int i_logstart;	 
	int i_attrs;	 
	int i_ctime_ms;	 
	int i_binary;	 
	int i_location;	 
	struct inode *i_fat_inode;	 
	struct list_head i_fat_hash;	 
	off_t i_last_pos; 
};


# 264 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/umsdos_fs_i.h" 1 3










 





































struct dir_locking_info {
	struct wait_queue *p;
	short int looking;	 
	short int creating;	 



	long pid;		 
	 
};

struct umsdos_inode_info {
	union {
		struct msdos_inode_info msdos_info;
		struct pipe_inode_info pipe_info;
		struct dir_locking_info dir_info;
	} u;
	int i_patched;			 
	int i_is_hlink;			 
	unsigned long i_emd_owner;	 
	off_t pos;			 
	 
	struct dentry *i_emd_dentry;	 
	unsigned long i_emd_dir;	 
};


# 265 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/iso_fs_i.h" 1 3



 


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;
};


# 266 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/nfs_fs_i.h" 1 3



# 1 "/usr/include/linux/nfs.h" 1 3
 





# 1 "/usr/include/linux/sunrpc/msg_prot.h" 1 3
 












enum rpc_auth_flavor {
	RPC_AUTH_NULL  = 0,
	RPC_AUTH_UNIX  = 1,
	RPC_AUTH_SHORT = 2,
	RPC_AUTH_DES   = 3,
	RPC_AUTH_KRB   = 4,
};

enum rpc_msg_type {
	RPC_CALL = 0,
	RPC_REPLY = 1
};

enum rpc_reply_stat {
	RPC_MSG_ACCEPTED = 0,
	RPC_MSG_DENIED = 1
};

enum rpc_accept_stat {
	RPC_SUCCESS = 0,
	RPC_PROG_UNAVAIL = 1,
	RPC_PROG_MISMATCH = 2,
	RPC_PROC_UNAVAIL = 3,
	RPC_GARBAGE_ARGS = 4,
	RPC_SYSTEM_ERR = 5
};

enum rpc_reject_stat {
	RPC_MISMATCH = 0,
	RPC_AUTH_ERROR = 1
};

enum rpc_auth_stat {
	RPC_AUTH_OK = 0,
	RPC_AUTH_BADCRED = 1,
	RPC_AUTH_REJECTEDCRED = 2,
	RPC_AUTH_BADVERF = 3,
	RPC_AUTH_REJECTEDVERF = 4,
	RPC_AUTH_TOOWEAK = 5
};









# 7 "/usr/include/linux/nfs.h" 2 3



















	
enum nfs_stat {
	NFS_OK = 0,
	NFSERR_PERM = 1,
	NFSERR_NOENT = 2,
	NFSERR_IO = 5,
	NFSERR_NXIO = 6,
	NFSERR_EAGAIN = 11,
	NFSERR_ACCES = 13,
	NFSERR_EXIST = 17,
	NFSERR_XDEV = 18,
	NFSERR_NODEV = 19,
	NFSERR_NOTDIR = 20,
	NFSERR_ISDIR = 21,
	NFSERR_INVAL = 22,	 
	NFSERR_FBIG = 27,
	NFSERR_NOSPC = 28,
	NFSERR_ROFS = 30,
	NFSERR_OPNOTSUPP = 45,
	NFSERR_NAMETOOLONG = 63,
	NFSERR_NOTEMPTY = 66,
	NFSERR_DQUOT = 69,
	NFSERR_STALE = 70,
	NFSERR_WFLUSH = 99
};

enum nfs_ftype {
	NFNON = 0,
	NFREG = 1,
	NFDIR = 2,
	NFBLK = 3,
	NFCHR = 4,
	NFLNK = 5,
	NFSOCK = 6,
	NFBAD = 7,
	NFFIFO = 8
};

struct nfs_fh {
	char			data[32 ];
};






















 










extern struct rpc_program	nfs_program;
extern struct rpc_stat		nfs_rpcstat;

struct nfs_time {
	__u32			seconds;
	__u32			useconds;
};

struct nfs_fattr {
	enum nfs_ftype		type;
	__u32			mode;
	__u32			nlink;
	__u32			uid;
	__u32			gid;
	__u32			size;
	__u32			blocksize;
	__u32			rdev;
	__u32			blocks;
	__u32			fsid;
	__u32			fileid;
	struct nfs_time		atime;
	struct nfs_time		mtime;
	struct nfs_time		ctime;
};

struct nfs_sattr {
	__u32			mode;
	__u32			uid;
	__u32			gid;
	__u32			size;
	struct nfs_time		atime;
	struct nfs_time		mtime;
};

struct nfs_fsinfo {
	__u32			tsize;
	__u32			bsize;
	__u32			blocks;
	__u32			bfree;
	__u32			bavail;
};

struct nfs_writeargs {
	struct nfs_fh *		fh;
	__u32			offset;
	__u32			count;
	const void *		buffer;
};

# 223 "/usr/include/linux/nfs.h" 3




# 4 "/usr/include/linux/nfs_fs_i.h" 2 3



 


struct nfs_inode_info {
	 




	struct pipe_inode_info	pipeinfo;

	 


	unsigned short		flags;

	 
















	unsigned long		read_cache_jiffies;
	unsigned long		read_cache_mtime;
	unsigned long		attrtimeo;

	 




	struct nfs_wreq *	writeback;
};

 





 


struct nfs_lock_info {
	u32		state;
	u32		flags;
};

 





# 267 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/sysv_fs_i.h" 1 3



 


struct sysv_inode_info {
	u32 i_data[10+1+1+1];	 




};



# 268 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/affs_fs_i.h" 1 3



# 1 "/usr/include/linux/a.out.h" 1 3







# 1 "/usr/include/asm/a.out.h" 1 3



struct exec
{
  unsigned long a_info;		 
  unsigned a_text;		 
  unsigned a_data;		 
  unsigned a_bss;		 
  unsigned a_syms;		 
  unsigned a_entry;		 
  unsigned a_trsize;		 
  unsigned a_drsize;		 
};












# 8 "/usr/include/linux/a.out.h" 2 3




 
enum machine_type {



  M_OLDSUN2 = 0,




  M_68010 = 1,




  M_68020 = 2,




  M_SPARC = 3,

   
  M_386 = 100,
  M_MIPS1 = 151,	 
  M_MIPS2 = 152		 
};





















 

 

 

 



 





































 




 





































 





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;
};































 









 










 





 



 




struct relocation_info
{
   
  int r_address;
   
  unsigned int r_symbolnum:24;
   


  unsigned int r_pcrel:1;
   

  unsigned int r_length:2;
   





  unsigned int r_extern:1;
   






  unsigned int r_pad:4;

};




# 4 "/usr/include/linux/affs_fs_i.h" 2 3

# 1 "/usr/include/linux/time.h" 1 3



# 1 "/usr/include/asm/param.h" 1 3




















# 4 "/usr/include/linux/time.h" 2 3





struct timespec {
	time_t	tv_sec;		 
	long	tv_nsec;	 
};


 













static __inline__ unsigned long
timespec_to_jiffies(struct timespec *value)
{
	unsigned long sec = value->tv_sec;
	long nsec = value->tv_nsec;

	if (sec >= (((~0UL >> 1)-1)  / 100 ))
		return ((~0UL >> 1)-1) ;
	nsec += 1000000000L / 100  - 1;
	nsec /= 1000000000L / 100 ;
	return 100  * sec + nsec;
}

static __inline__ void
jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
{
	value->tv_nsec = (jiffies % 100 ) * (1000000000L / 100 );
	value->tv_sec = jiffies / 100 ;
}
 
struct timeval {
	time_t		tv_sec;		 
	suseconds_t	tv_usec;	 
};

struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};




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 *);








 







struct  itimerspec {
        struct  timespec it_interval;     
        struct  timespec it_value;        
};

struct	itimerval {
	struct	timeval it_interval;	 
	struct	timeval it_value;	 
};


# 5 "/usr/include/linux/affs_fs_i.h" 2 3





struct key_cache {
	struct timeval	 kc_lru_time;	 
	s32	 kc_first;		 
	s32	 kc_last;		 
	s32	 kc_this_key;		 
	int	 kc_this_seq;		 
	s32	 kc_next_key;		 
	s32	 kc_keys[73 ];	 
};



struct ext_cache {
	struct key_cache  kc[4];	 
	s32	 ec[((1UL << 12 )  - 4 * sizeof(struct key_cache) - 4) / 4 ];		 
	int	 max_ext;		 
};

 


struct affs_inode_info {
	u32	 i_protect;			 
	s32	 i_parent;			 
	s32	 i_original;			 
	s32	 i_data[16 ];	 
	struct ext_cache *i_ec;			 
	int	 i_cache_users;			 
	int	 i_lastblock;			 
	short	 i_pa_cnt;			 
	short	 i_pa_next;			 
	short	 i_pa_last;			 
	short	 i_zone;			 
	unsigned char i_hlink;			 
	unsigned char i_pad;
};


# 269 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ufs_fs_i.h" 1 3
 














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_uid;
	__u32	i_gid;
	__u32	i_oeftflag;
	__u16	i_osync;
	__u32	i_lastfrag;
};


# 270 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/efs_fs_i.h" 1 3
 










typedef	int32_t		efs_block_t;
typedef uint32_t	efs_ino_t;



 


typedef union extent_u {
	unsigned char raw[8];
	struct extent_s {
		unsigned int	ex_magic:8;	 
		unsigned int	ex_bn:24;	 
		unsigned int	ex_length:8;	 
		unsigned int	ex_offset:24;	 
	} cooked;
} efs_extent;

typedef struct edevs {
	short		odev;
	short		dev_filler;	 
	unsigned int	ndev;		 
} efs_devs;

 



struct	efs_dinode {
	u_short		di_mode;	 
	short		di_nlink;	 
	u_short		di_uid;		 
	u_short		di_gid;		 
	int32_t		di_size;	 
	int32_t		di_atime;	 
	int32_t		di_mtime;	 
	int32_t		di_ctime;	 
	uint32_t	di_gen;		 
	short		di_numextents;	 
	u_char		di_version;	 
	u_char		di_spare;	 
	union di_addr {
		efs_extent	di_extents[12 ];
		efs_devs	di_dev;	 
	} di_u;
};

 
struct efs_inode_info {
	int		numextents;
	int		lastextent;

	efs_extent	extents[12 ];
};



# 271 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/coda_fs_i.h" 1 3
 












# 1 "/usr/include/linux/coda.h" 1 3
 




 
















 




























 











 








# 98 "/usr/include/linux/coda.h" 3











typedef unsigned long long u_quad_t;














typedef signed char	      int8_t;
typedef unsigned char	    u_int8_t;
typedef short		     int16_t;
typedef unsigned short	   u_int16_t;
typedef int		     int32_t;
typedef unsigned int	   u_int32_t;



 






 








  



 










struct venus_dirent {
        unsigned long	d_fileno;		 
        unsigned short	d_reclen;		 
        unsigned char 	d_type;			 
        unsigned char	d_namlen;		 
        char		d_name[255  + 1]; 
};




 












 









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 ) 
		return 0; 
	if (fid->Vnode == 0xfffffffe || fid->Vnode == 0xffffffff)
		return ((fid->Volume << 20) | (fid->Unique & 0xfffff));
	else
		return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20));
}
	








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;  
    vgid_t cr_groupid,     cr_egid, cr_sgid, cr_fsgid;  
};




 


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;	 
	u_short		va_mode;	 
	short		va_nlink;	 
	vuid_t		va_uid;		 
	vgid_t		va_gid;		 
	long		va_fileid;	 
	u_quad_t	va_size;	 
	long		va_blocksize;	 
	struct timespec	va_atime;	 
	struct timespec	va_mtime;	 
	struct timespec	va_ctime;	 
	u_long		va_gen;		 
	u_long		va_flags;	 
	u_quad_t 	        va_rdev;	 
	u_quad_t	va_bytes;	 
	u_quad_t	va_filerev;	 
};



 
struct coda_statfs {
    int32_t f_blocks;
    int32_t f_bfree;
    int32_t f_bavail;
    int32_t f_files;
    int32_t f_ffree;
};

 


















































	 


 


struct coda_in_hdr {
    unsigned long opcode;
    unsigned long unique;	     
    u_short pid;		     
    u_short pgid;		     
    u_short sid;                     
    struct coda_cred cred;	     
};

 
struct coda_out_hdr {
    unsigned long opcode;
    unsigned long unique;	
    unsigned long result;
};

 
struct coda_root_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
};

struct coda_root_in {
    struct coda_in_hdr in;
};

 
 

 
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;
};


 
struct coda_close_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	flags;
};

struct coda_close_out {
    struct coda_out_hdr out;
};

 
struct coda_ioctl_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
    int	cmd;
    int	len;
    int	rwflag;
    char *data;			 
};

struct coda_ioctl_out {
    struct coda_out_hdr oh;
    int	len;
    caddr_t	data;		 
};


 
struct coda_getattr_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

struct coda_getattr_out {
    struct coda_out_hdr oh;
    struct coda_vattr attr;
};


 
struct coda_setattr_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
    struct coda_vattr attr;
};

struct coda_setattr_out {
    struct coda_out_hdr out;
};

 
struct coda_access_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	flags;
};

struct coda_access_out {
    struct coda_out_hdr out;
};


 



 
struct  coda_lookup_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int         name;		 
    int         flags;	
};

struct coda_lookup_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    int	vtype;
};


 
struct coda_create_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
    struct coda_vattr attr;
    int excl;
    int mode;
    int 	name;		 
};

struct coda_create_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    struct coda_vattr attr;
};


 
struct coda_remove_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int name;		 
};

struct coda_remove_out {
    struct coda_out_hdr out;
};

 
struct coda_link_in {
    struct coda_in_hdr ih;
    ViceFid sourceFid;           
    ViceFid destFid;             
    int tname;		 
};

struct coda_link_out {
    struct coda_out_hdr out;
};


 
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;
};

 
struct coda_mkdir_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    struct coda_vattr attr;
    int	   name;		 
};

struct coda_mkdir_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    struct coda_vattr attr;
};


 
struct coda_rmdir_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int name;		 
};

struct coda_rmdir_out {
    struct coda_out_hdr out;
};

 
struct coda_readdir_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	count;
    int	offset;
};

struct coda_readdir_out {
    struct coda_out_hdr oh;
    int	size;
    caddr_t	data;		 
};

 
struct coda_symlink_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;           
    int srcname;
    struct coda_vattr attr;
    int tname;
};

struct coda_symlink_out {
    struct coda_out_hdr out;
};

 
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;		 
};


 
struct coda_fsync_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

struct coda_fsync_out {
    struct coda_out_hdr out;
};

 
struct coda_inactive_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

 
struct coda_vget_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

struct coda_vget_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    int	vtype;
};


 
 
 

 
 
struct coda_purgeuser_out {
    struct coda_out_hdr oh;
    struct coda_cred cred;
};

 
 
struct coda_zapfile_out {  
    struct coda_out_hdr oh;
    ViceFid CodaFid;
};

 
 	
struct coda_zapdir_out {	  
    struct coda_out_hdr oh;
    ViceFid CodaFid;
};

 
 	
struct coda_zapvnode_out { 
    struct coda_out_hdr oh;
    struct coda_cred cred;
    ViceFid VFid;
};

 
 	
struct coda_purgefid_out { 
    struct coda_out_hdr oh;
    ViceFid CodaFid;
};

 
struct coda_rdwr_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	rwflag;
    int	count;
    int	offset;
    int	ioflag;
    caddr_t	data;		 	
};

struct coda_rdwr_out {
    struct coda_out_hdr oh;
    int	rwflag;
    int	count;
    caddr_t	data;	 
};


 
 	
struct coda_replace_out {  
    struct coda_out_hdr oh;
    ViceFid NewFid;
    ViceFid OldFid;
};

 
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;
};

 
struct coda_statfs_in {
    struct coda_in_hdr in;
};

struct coda_statfs_out {
    struct coda_out_hdr oh;
    struct coda_statfs stat;
};

 






union inputArgs {
    struct coda_in_hdr ih;		 
    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_readdir_in coda_readdir;
    struct coda_symlink_in coda_symlink;
    struct coda_readlink_in coda_readlink;
    struct coda_fsync_in coda_fsync;
    struct coda_inactive_in coda_inactive;
    struct coda_vget_in coda_vget;
    struct coda_rdwr_in coda_rdwr;
    struct coda_open_by_path_in coda_open_by_path;
    struct coda_statfs_in coda_statfs;
};

union outputArgs {
    struct coda_out_hdr oh;		 
    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_readdir_out coda_readdir;
    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_rdwr_out coda_rdwr;
    struct coda_replace_out coda_replace;
    struct coda_open_by_path_out coda_open_by_path;
    struct coda_statfs_out coda_statfs;
};    

union coda_downcalls {
     
     
    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;
};


 




struct ViceIoctl {
        caddr_t in, out;         
        short in_size;           
        short out_size;          
};

struct PioctlData {
        const char *path;
        int follow;
        struct ViceIoctl vi;
};















# 14 "/usr/include/linux/coda_fs_i.h" 2 3





 


struct coda_inode_info {
	 




	struct pipe_inode_info  pipeinfo;

        struct ViceFid     c_fid;	 
        u_short	           c_flags;      
        u_short	           c_ocount;     
        u_short            c_owrite;     
        u_short            c_mmcount;    
        struct inode      *c_ovp;        
        struct list_head   c_cnhead;     
	struct list_head   c_volrootlist;  
        struct inode      *c_vnode;      
        int                c_magic;      
};

 







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 *);



# 272 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/romfs_fs_i.h" 1 3



 

struct romfs_inode_info {
	unsigned long i_metasize;	 
	unsigned long i_dataoffset;	 
};


# 273 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/smb_fs_i.h" 1 3
 













 


struct smb_inode_info {

	 



        unsigned int open;	 
	__u16 fileid;		 
	__u16 attr;		 

	__u16 access;		 
	__u16 cache_valid;	 
	unsigned long oldmtime;	 
	unsigned long closed;	 
};



# 274 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hfs_fs_i.h" 1 3
 












 




struct hfs_inode_info {
	int				magic;      

	struct hfs_cat_entry		*entry;

	 
	struct hfs_fork 		*fork;
	int				convert;

	 
	ino_t				file_type;
	char				dir_size;

	 
	const struct hfs_hdr_layout	*default_layout;
	struct hfs_hdr_layout		*layout;

	 
	int                             tz_secondswest;

         
        void (*d_drop_op)(struct dentry *, const ino_t);
};


# 275 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/adfs_fs_i.h" 1 3
 








 


struct adfs_inode_info {
	unsigned long	file_id;		 
};


# 276 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/qnx4_fs_i.h" 1 3
 












# 1 "/usr/include/linux/qnxtypes.h" 1 3
 













typedef unsigned short _nxtnt_t;
typedef unsigned char _ftype_t;

typedef struct {
	long xtnt_blk;
	long xtnt_size;
} _xtnt_t;

typedef unsigned short muid_t;
typedef unsigned short mgid_t;
typedef unsigned long qnx_off_t;
typedef unsigned short qnx_nlink_t;


# 14 "/usr/include/linux/qnx4_fs_i.h" 2 3


 


struct qnx4_inode_info {
	char i_reserved[16];	 
	off_t i_size;		 
	_xtnt_t i_first_xtnt;	 
	long i_xblk;		 
	time_t i_ftime;		 
	time_t i_mtime;		 
	time_t i_atime;		 
	time_t i_ctime;		 
	_nxtnt_t i_num_xtnts;	 
	mode_t i_mode;		 
	muid_t i_uid;		 
	mgid_t i_gid;		 
	nlink_t i_nlink;	 
	char i_zero[4];		 
	_ftype_t i_type;	 
	unsigned char i_status;	 
};


# 277 "/usr/include/linux/fs.h" 2 3


 















 








struct iattr {
	unsigned int	ia_valid;
	umode_t		ia_mode;
	uid_t		ia_uid;
	gid_t		ia_gid;
	off_t		ia_size;
	time_t		ia_atime;
	time_t		ia_mtime;
	time_t		ia_ctime;
	unsigned int	ia_attr_flags;
};

 








 


# 1 "/usr/include/linux/quota.h" 1 3
 








































# 1 "/usr/include/linux/errno.h" 1 3



# 1 "/usr/include/asm/errno.h" 1 3




































































































































# 4 "/usr/include/linux/errno.h" 2 3




 








# 42 "/usr/include/linux/quota.h" 2 3


 





 





 















 











extern int nr_dquots, nr_free_dquots;
extern int max_dquots;
extern int dquot_root_squash;




 



















 




struct dqblk {
	__u32 dqb_bhardlimit;	 
	__u32 dqb_bsoftlimit;	 
	__u32 dqb_curblocks;	 
	__u32 dqb_ihardlimit;	 
	__u32 dqb_isoftlimit;	 
	__u32 dqb_curinodes;	 
	time_t dqb_btime;		 
	time_t dqb_itime;		 
};

 













struct dqstats {
	__u32 lookups;
	__u32 drops;
	__u32 reads;
	__u32 writes;
	__u32 cache_hits;
	__u32 allocated_dquots;
	__u32 free_dquots;
	__u32 syncs;
};



 












struct dquot {
	struct dquot *dq_next;		 
	struct dquot **dq_pprev;
	struct list_head dq_free;	 
	struct dquot *dq_hash_next;	 
	struct dquot **dq_hash_pprev;	 
	struct wait_queue *dq_wait;	 
	int dq_count;			 

	 
	struct vfsmount *dq_mnt;	 
	unsigned int dq_id;		 
	kdev_t dq_dev;			 
	short dq_type;			 
	short dq_flags;			 
	unsigned long dq_referenced;	 

	struct dqblk dq_dqb;		 
};



 










# 208 "/usr/include/linux/quota.h" 3


# 328 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/mount.h" 1 3
 















struct quota_mount_options
{
	unsigned int flags;			 
	struct semaphore dqio_sem;		 
	struct semaphore dqoff_sem;		 
	struct file *files[2 ];		 
	time_t inode_expire[2 ];		 
	time_t block_expire[2 ];		 
	char rsquash[2 ];		 
};

struct vfsmount
{
  kdev_t mnt_dev;			 
  char *mnt_devname;			 
  char *mnt_dirname;			 
  unsigned int mnt_flags;		 
  struct super_block *mnt_sb;		 
  struct quota_mount_options mnt_dquot;	 
  struct vfsmount *mnt_next;		 
};

struct vfsmount *lookup_vfsmnt(kdev_t dev);

 


 



# 329 "/usr/include/linux/fs.h" 2 3


struct inode {
	struct list_head	i_hash;
	struct list_head	i_list;
	struct list_head	i_dentry;

	unsigned long		i_ino;
	unsigned int		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;
	off_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;
	unsigned long		i_nrpages;
	struct semaphore	i_sem;
	struct semaphore	i_atomic_write;
	struct inode_operations	*i_op;
	struct super_block	*i_sb;
	struct wait_queue	*i_wait;
	struct file_lock	*i_flock;
	struct vm_area_struct	*i_mmap;
	struct page		*i_pages;
	struct dquot		*i_dquot[2 ];

	unsigned long		i_state;

	unsigned int		i_flags;
	unsigned char		i_pipe;
	unsigned char		i_sock;

	int			i_writecount;
	unsigned int		i_attr_flags;
	__u32			i_generation;
	union {
		struct pipe_inode_info		pipe_i;
		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 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 socket			socket_i;
		void				*generic_ip;
	} u;
};

 




extern void __mark_inode_dirty(struct inode *);
static inline void mark_inode_dirty(struct inode *inode)
{
	if (!(inode->i_state & 1 ))
		__mark_inode_dirty(inode);
}

struct fown_struct {
	int pid;		 
	uid_t uid, euid;	 
	int signum;		 
};

struct file {
	struct file		*f_next, **f_pprev;
	struct dentry		*f_dentry;
	struct file_operations	*f_op;
	mode_t			f_mode;
	loff_t			f_pos;
	unsigned int 		f_count, f_flags;
	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;

	 
	void			*private_data;
};

extern int init_private_file(struct file *, struct dentry *, int);







 






typedef struct files_struct *fl_owner_t;

struct file_lock {
	struct file_lock *fl_next;	 
	struct file_lock *fl_nextlink;	 
	struct file_lock *fl_prevlink;	 
	struct file_lock *fl_nextblock;  
	struct file_lock *fl_prevblock;
	fl_owner_t fl_owner;
	unsigned int fl_pid;
	struct wait_queue *fl_wait;
	struct file *fl_file;
	unsigned char fl_flags;
	unsigned char fl_type;
	off_t fl_start;
	off_t fl_end;

	void (*fl_notify)(struct file_lock *);	 

	union {
		struct nfs_lock_info	nfs_fl;
	} fl_u;
};

extern struct file_lock			*file_lock_table;

# 1 "/usr/include/linux/fcntl.h" 1 3



# 1 "/usr/include/asm/fcntl.h" 1 3



 

































 


 




 



 






struct flock {
	short l_type;
	short l_whence;
	off_t l_start;
	off_t l_len;
	pid_t l_pid;
};


# 4 "/usr/include/linux/fcntl.h" 2 3



# 473 "/usr/include/linux/fs.h" 2 3


extern int fcntl_getlk(unsigned int fd, struct flock *l);
extern int fcntl_setlk(unsigned int fd, unsigned int cmd, struct flock *l);

 
extern void locks_remove_posix(struct file *, fl_owner_t id);
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 *);

struct fasync_struct {
	int    magic;
	int    fa_fd;
	struct fasync_struct	*fa_next;  
	struct file 		*fa_file;
};



extern int fasync_helper(int, struct file *, int, struct fasync_struct **);

# 1 "/usr/include/linux/minix_fs_sb.h" 1 3



 


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;
};


# 497 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ext2_fs_sb.h" 1 3
 

















# 1 "/usr/include/linux/ext2_fs.h" 1 3
 



















 



 




 





 





 












 









 


 




 




 






























 













 


struct ext2_acl_header	 
{
	__u32	aclh_size;
	__u32	aclh_file_count;
	__u32	aclh_acle_count;
	__u32	aclh_first_acle;
};

struct ext2_acl_entry	 
{
	__u32	acle_size;
	__u16	acle_perms;	 
	__u16	acle_type;	 
	__u16	acle_tag;	 
	__u16	acle_pad1;
	__u32	acle_next;	 
					 
};

 


struct ext2_group_desc
{
	__u32	bg_block_bitmap;		 
	__u32	bg_inode_bitmap;		 
	__u32	bg_inode_table;		 
	__u16	bg_free_blocks_count;	 
	__u16	bg_free_inodes_count;	 
	__u16	bg_used_dirs_count;	 
	__u16	bg_pad;
	__u32	bg_reserved[3];
};

 













 








 










 




 	






 







 


struct ext2_inode {
	__u16	i_mode;		 
	__u16	i_uid;		 
	__u32	i_size;		 
	__u32	i_atime;	 
	__u32	i_ctime;	 
	__u32	i_mtime;	 
	__u32	i_dtime;	 
	__u16	i_gid;		 
	__u16	i_links_count;	 
	__u32	i_blocks;	 
	__u32	i_flags;	 
	union {
		struct {
			__u32  l_i_reserved1;
		} linux1;
		struct {
			__u32  h_i_translator;
		} hurd1;
		struct {
			__u32  m_i_reserved1;
		} masix1;
	} osd1;				 
	__u32	i_block[(((12   + 1)  + 1)  + 1) ]; 
	__u32	i_version;	 
	__u32	i_file_acl;	 
	__u32	i_dir_acl;	 
	__u32	i_faddr;	 
	union {
		struct {
			__u8	l_i_frag;	 
			__u8	l_i_fsize;	 
			__u16	i_pad1;
			__u32	l_i_reserved2[2];
		} linux2;
		struct {
			__u8	h_i_frag;	 
			__u8	h_i_fsize;	 
			__u16	h_i_mode_high;
			__u16	h_i_uid_high;
			__u16	h_i_gid_high;
			__u32	h_i_author;
		} hurd2;
		struct {
			__u8	m_i_frag;	 
			__u8	m_i_fsize;	 
			__u16	m_pad1;
			__u32	m_i_reserved2[2];
		} masix2;
	} osd2;				 
};


























 





 

















 





 







 


struct ext2_super_block {
	__u32	s_inodes_count;		 
	__u32	s_blocks_count;		 
	__u32	s_r_blocks_count;	 
	__u32	s_free_blocks_count;	 
	__u32	s_free_inodes_count;	 
	__u32	s_first_data_block;	 
	__u32	s_log_block_size;	 
	__s32	s_log_frag_size;	 
	__u32	s_blocks_per_group;	 
	__u32	s_frags_per_group;	 
	__u32	s_inodes_per_group;	 
	__u32	s_mtime;		 
	__u32	s_wtime;		 
	__u16	s_mnt_count;		 
	__s16	s_max_mnt_count;	 
	__u16	s_magic;		 
	__u16	s_state;		 
	__u16	s_errors;		 
	__u16	s_minor_rev_level; 	 
	__u32	s_lastcheck;		 
	__u32	s_checkinterval;	 
	__u32	s_creator_os;		 
	__u32	s_rev_level;		 
	__u16	s_def_resuid;		 
	__u16	s_def_resgid;		 
	 












	__u32	s_first_ino; 		 
	__u16   s_inode_size; 		 
	__u16	s_block_group_nr; 	 
	__u32	s_feature_compat; 	 
	__u32	s_feature_incompat; 	 
	__u32	s_feature_ro_compat; 	 
	__u8	s_uuid[16];		 
	char	s_volume_name[16]; 	 
	char	s_last_mounted[64]; 	 
	__u32	s_algorithm_usage_bitmap;  
	 



	__u8	s_prealloc_blocks;	 
	__u8	s_prealloc_dir_blocks;	 
	__u16	s_padding1;
	__u32	s_reserved[204];	 
};










 








 










 

























 





 




struct ext2_dir_entry {
	__u32	inode;			 
	__u16	rec_len;		 
	__u16	name_len;		 
	char	name[255 ];	 
};

 





struct ext2_dir_entry_2 {
	__u32	inode;			 
	__u16	rec_len;		 
	__u8	name_len;		 
	__u8	file_type;
	char	name[255 ];	 
};

 














 











 
extern long long ext2_max_sizes[];

 



 







 
extern int ext2_permission (struct inode *, int);

 
extern int ext2_group_sparse(int group);
extern int ext2_new_block (const struct inode *, unsigned long,
			   __u32 *, __u32 *, int *);
extern void ext2_free_blocks (const struct inode *, unsigned long,
			      unsigned long);
extern unsigned long ext2_count_free_blocks (struct super_block *);
extern void ext2_check_blocks_bitmap (struct super_block *);
extern struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb,
						    unsigned int block_group,
						    struct buffer_head ** bh);

 
extern unsigned long ext2_count_free (struct buffer_head *, unsigned);

 
extern int ext2_check_dir_entry (const char *, struct inode *,
				 struct ext2_dir_entry_2 *, struct buffer_head *,
				 unsigned long);

 
extern int ext2_read (struct inode *, struct file *, char *, int);
extern int ext2_write (struct inode *, struct file *, char *, int);

 
extern int ext2_sync_file (struct file *, struct dentry *);

 
extern struct inode * ext2_new_inode (const struct inode *, int, int *);
extern void ext2_free_inode (struct inode *);
extern unsigned long ext2_count_free_inodes (struct super_block *);
extern void ext2_check_inodes_bitmap (struct super_block *);

 
extern int ext2_bmap (struct inode *, int);

extern struct buffer_head * ext2_getblk (struct inode *, long, int, int *);
extern struct buffer_head * ext2_bread (struct inode *, int, int, int *);

extern int ext2_getcluster (struct inode * inode, long block);
extern void ext2_read_inode (struct inode *);
extern void ext2_write_inode (struct inode *);
extern void ext2_put_inode (struct inode *);
extern void ext2_delete_inode (struct inode *);
extern int ext2_sync_inode (struct inode *);
extern int ext2_notify_change(struct dentry *, struct iattr *);
extern void ext2_discard_prealloc (struct inode *);

 
extern int ext2_ioctl (struct inode *, struct file *, unsigned int,
		       unsigned long);

 
extern void ext2_release (struct inode *, struct file *);
extern struct dentry *ext2_lookup (struct inode *, struct dentry *);
extern int ext2_create (struct inode *,struct dentry *,int);
extern int ext2_mkdir (struct inode *,struct dentry *,int);
extern int ext2_rmdir (struct inode *,struct dentry *);
extern int ext2_unlink (struct inode *,struct dentry *);
extern int ext2_symlink (struct inode *,struct dentry *,const char *);
extern int ext2_link (struct dentry *, struct inode *, struct dentry *);
extern int ext2_mknod (struct inode *, struct dentry *, int, int);
extern int ext2_rename (struct inode *, struct dentry *,
			struct inode *, struct dentry *);

 
extern void ext2_error (struct super_block *, const char *, const char *, ...)
	__attribute__ ((format (printf, 3, 4)));
extern   void ext2_panic (struct super_block *, const char *,
				   const char *, ...)
	__attribute__ ((noreturn,  format (printf, 3, 4)));
extern void ext2_warning (struct super_block *, const char *, const char *, ...)
	__attribute__ ((format (printf, 3, 4)));
extern void ext2_put_super (struct super_block *);
extern void ext2_write_super (struct super_block *);
extern int ext2_remount (struct super_block *, int *, char *);
extern struct super_block * ext2_read_super (struct super_block *,void *,int);
extern int init_ext2_fs(void);
extern int ext2_statfs (struct super_block *, struct statfs *, int);

 
extern void ext2_truncate (struct inode *);

 



 
extern struct inode_operations ext2_dir_inode_operations;

 
extern struct inode_operations ext2_file_inode_operations;

 
extern struct inode_operations ext2_symlink_inode_operations;




# 19 "/usr/include/linux/ext2_fs_sb.h" 2 3


 



 



 


struct ext2_sb_info {
	unsigned long s_frag_size;	 
	unsigned long s_frags_per_block; 
	unsigned long s_inodes_per_block; 
	unsigned long s_frags_per_group; 
	unsigned long s_blocks_per_group; 
	unsigned long s_inodes_per_group; 
	unsigned long s_itb_per_group;	 
	unsigned long s_db_per_group;	 
	unsigned long s_desc_per_block;	 
	unsigned long s_groups_count;	 
	struct buffer_head * s_sbh;	 
	struct ext2_super_block * s_es;	 
	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;
	unsigned short s_resuid;
	unsigned short 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;
	int s_feature_compat;
	int s_feature_incompat;
	int s_feature_ro_compat;
};


# 498 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hpfs_fs_sb.h" 1 3



struct hpfs_sb_info {
	ino_t sb_root;			 
	unsigned sb_fs_size;		 
	unsigned sb_bitmaps;		 
	unsigned sb_dirband_size;	 
	unsigned sb_dmap;		 
	unsigned sb_n_free;		 
	unsigned sb_n_free_dnodes;	 
	uid_t sb_uid;			 
	gid_t sb_gid;			 
	umode_t sb_mode;		 
	unsigned sb_lowercase : 1;	 
	unsigned sb_conv : 2;		 
};















# 499 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ntfs_fs_sb.h" 1 3



struct ntfs_sb_info{
	 
	ntfs_uid_t uid;
	ntfs_gid_t gid;
	ntmode_t umask;
        unsigned int nct;
	void *nls_map;
	unsigned int ngt;
	 
	ntfs_size_t partition_bias;	 
	 
	ntfs_u32 at_standard_information;
	ntfs_u32 at_attribute_list;
	ntfs_u32 at_file_name;
	ntfs_u32 at_security_descriptor;
	ntfs_u32 at_data;
	ntfs_u32 at_index_root;
	ntfs_u32 at_index_allocation;
	ntfs_u32 at_bitmap;
	ntfs_u32 at_symlink;  
	 
	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;
	 
	unsigned char *mft;
	unsigned short *upcase;
	unsigned int upcase_length;
	 
	struct ntfs_inode_info *mft_ino;
	struct ntfs_inode_info *mftmirr;
	struct ntfs_inode_info *bitmap;
	struct super_block *sb;
};


# 500 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/msdos_fs_sb.h" 1 3


# 1 "/usr/include/linux/fat_cvf.h" 1 3





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,
                              int dirty_val);
  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);
  int (*cvf_smap) (struct inode *inode,int sector);
  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/include/linux/msdos_fs_sb.h" 2 3


 



struct fat_mount_options {
	uid_t fs_uid;
	gid_t fs_gid;
	unsigned short fs_umask;
	unsigned short codepage;   
	char *iocharset;           
	unsigned char name_check;  
	unsigned char conversion;  
	unsigned quiet:1,          
		 showexec:1,       
		 sys_immutable:1,  
		 dotsOK:1,         
		 isvfat:1,         
		 utf8:1,	   
		 unicode_xlate:1,  
		 posixfs:1,        
		 numtail:1,        
		 atari:1,          
		 fat32:1;	   
};

struct vfat_unicode {
	unsigned char uni1;
	unsigned char uni2;
};

struct msdos_sb_info {
	unsigned short cluster_size;  
	unsigned char fats,fat_bits;  
	unsigned short fat_start;
	unsigned long fat_length;     
	unsigned long dir_start;
	unsigned short dir_entries;   
	unsigned long data_start;     
	unsigned long clusters;       
	unsigned long root_cluster;   
	unsigned long fsinfo_offset;  
	struct wait_queue *fat_wait;
	int fat_lock;
	int prev_free;                
	int free_clusters;            
	struct fat_mount_options options;
	struct nls_table *nls_disk;   
	struct nls_table *nls_io;     
	struct cvf_format* cvf_format;
	void *dir_ops;		      
	void (*put_super_callback)(struct super_block *);
	void *private_data;	
};


# 501 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/iso_fs_sb.h" 1 3



 


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;
	
	unsigned char s_high_sierra;  
	unsigned char s_mapping;
	unsigned char s_rock;
	unsigned char s_joliet_level;
	unsigned char s_utf8;
	unsigned char s_cruft;  


	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;  
};


# 502 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/nfs_fs_sb.h" 1 3




# 1 "/usr/include/linux/in.h" 1 3
 





















 
enum {
  IPPROTO_IP = 0,		 
  IPPROTO_ICMP = 1,		 
  IPPROTO_IGMP = 2,		 
  IPPROTO_IPIP = 4,		 
  IPPROTO_TCP = 6,		 
  IPPROTO_EGP = 8,		 
  IPPROTO_PUP = 12,		 
  IPPROTO_UDP = 17,		 
  IPPROTO_IDP = 22,		 
  IPPROTO_RSVP = 46,		 
  IPPROTO_GRE = 47,		 

  IPPROTO_IPV6	 = 41,		 

  IPPROTO_PIM    = 103,		 

  IPPROTO_ESP = 50,             
  IPPROTO_AH = 51,              
  IPPROTO_COMP   = 108,                 

  IPPROTO_RAW	 = 255,		 
  IPPROTO_MAX
};


 
struct in_addr {
	__u32	s_addr;
};
















 


 










 



 

struct ip_mreq 
{
	struct in_addr imr_multiaddr;	 
	struct in_addr imr_interface;	 
};

struct ip_mreqn
{
	struct in_addr	imr_multiaddr;		 
	struct in_addr	imr_address;		 
	int		imr_ifindex;		 
};

struct in_pktinfo
{
	int		ipi_ifindex;
	struct in_addr	ipi_spec_dst;
	struct in_addr	ipi_addr;
};

 

struct sockaddr_in {
  sa_family_t		sin_family;	 
  unsigned short int	sin_port;	 
  struct in_addr	sin_addr;	 

   
  unsigned char		__pad[16  - sizeof(short int) -
			sizeof(unsigned short int) - sizeof(struct in_addr)];
};



 




























 


 


 


 


 



 






 



 









# 5 "/usr/include/linux/nfs_fs_sb.h" 2 3


 


struct nfs_server {
	struct rpc_clnt *	client;		 
	int			flags;		 
	int			rsize;		 
	int			wsize;		 
	unsigned int		bsize;		 
	unsigned int		acregmin;	 
	unsigned int		acregmax;
	unsigned int		acdirmin;
	unsigned int		acdirmax;
	char *			hostname;	 
};

 


struct nfs_sb_info {
	struct nfs_server	s_server;
	struct nfs_fh		s_root;
};


# 503 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/sysv_fs_sb.h" 1 3



 








struct sysv_sb_info {
	int	       s_type;		 
	unsigned int   s_block_size;	 
	unsigned int   s_block_size_1;	 
	unsigned int   s_block_size_bits;	 
	unsigned int   s_block_size_inc_bits;	 
	unsigned int   s_block_size_dec_bits;	 
	char	       s_convert;	 
	char	       s_kludge_symlinks;  
	char	       s_truncate;	 
					 
	nlink_t        s_link_max;	 
	unsigned int   s_inodes_per_block;	 
	unsigned int   s_inodes_per_block_1;	 
	unsigned int   s_inodes_per_block_bits;	 
	unsigned int   s_ind_per_block;		 
	unsigned int   s_ind_per_block_1;	 
	unsigned int   s_ind_per_block_bits;	 
	unsigned int   s_ind_per_block_2;	 
	unsigned int   s_ind_per_block_2_1;	 
	unsigned int   s_ind_per_block_2_bits;	 
	unsigned int   s_ind_per_block_3;	 
	unsigned int   s_ind_per_block_block_size_1;	 
	unsigned int   s_ind_per_block_block_size_bits;	 
	unsigned int   s_ind_per_block_2_block_size_1;	 
	unsigned int   s_ind_per_block_2_block_size_bits;  
	unsigned int   s_ind0_size;		 
	unsigned int   s_ind1_size;		 
	unsigned int   s_ind2_size;		 
	unsigned int   s_toobig_block;		 
	unsigned int   s_block_base;	 
	unsigned short s_fic_size;	 
	unsigned short s_flc_size;	 
	 
	struct buffer_head *s_bh1;
	struct buffer_head *s_bh2;
	 

	char *         s_sbd1;		 
	char *         s_sbd2;		 
	u16            *s_sb_fic_count;	 
        u16            *s_sb_fic_inodes;  
	u16            *s_sb_total_free_inodes;  
	u16            *s_sb_flc_count;	 
	u32	       *s_sb_flc_blocks;  
	u32            *s_sb_total_free_blocks; 
	u32            *s_sb_time;	 
	u32            *s_sb_state;	 
	 

	u32            s_firstinodezone;  
	u32            s_firstdatazone;	 
	u32            s_ninodes;	 
	u32            s_ndatazones;	 
	u32            s_nzones;	 
};
 

 



















































# 504 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/affs_fs_sb.h" 1 3



 











struct affs_bm_info {
	struct buffer_head *bm_bh;	 
	s32 bm_firstblk;		 
	s32 bm_key;			 
	int bm_count;			 
};

struct affs_alloc_zone {
	short az_size;			 
	short az_count;			 
	int az_free;			 
};

struct affs_zone {
	unsigned long z_ino;		 
	struct affs_bm_info *z_bm;	 
	int z_start;			 
	int z_end;			 
	int z_az_no;			 
	unsigned long z_lru_time;	 
};

struct affs_sb_info {
	int s_partition_size;		 
	int s_blksize;			 
	s32 s_root_block;		 
	int s_hashsize;			 
	unsigned long s_flags;		 
	s16 s_uid;			 
	s16 s_gid;			 
	umode_t s_mode;			 
	int s_reserved;			 
	struct buffer_head *s_root_bh;	 
	struct affs_bm_info *s_bitmap;	 
	int s_bm_count;			 
	int s_nextzone;			 
	int s_num_az;			 
	struct affs_zone *s_zones;	 
	struct affs_alloc_zone *s_alloc; 
	char *s_zonemap;		 
	char *s_prefix;			 
	int s_prefix_len;		 
	char s_volume[32];		 
};















# 505 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ufs_fs_sb.h" 1 3
 















# 1 "/usr/include/linux/ufs_fs.h" 1 3
 




































































 
 


 







 



 




 





 





 



 



















 













            
 






 










 










 






 










 





















 







struct ufs_timeval {
	__s32	tv_sec;
	__s32	tv_usec;
};

 











   
struct ufs_dir_entry {
	__u32  d_ino;			 
	__u16  d_reclen;		 
	union {
		__u16	d_namlen;		 
		struct {
			__u8	d_type;		 
			__u8	d_namlen;	 
		} d_44;
	} d_u;
	__u8	d_name[255  + 1];	 
};

struct ufs_csum {
	__u32	cs_ndir;	 
	__u32	cs_nbfree;	 
	__u32	cs_nifree;	 
	__u32	cs_nffree;	 
};

 


struct ufs_super_block {
	__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 ];	 
 
	__u32	fs_cgrotor;	 
	__u32	fs_csp[31 ];	 
	__u32	fs_maxcluster;
	__u32	fs_cpc;		 
	__u16	fs_opostbl[16][8];	 	
	union {
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__s32	fs_state;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sun;
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__u32	fs_npsect;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sunx86;
		struct {
			__s32	fs_sparecon[50]; 
			__s32	fs_contigsumsize; 
			__s32	fs_maxsymlinklen; 
			__s32	fs_inodefmt;	 
			__u32	fs_maxfilesize[2];	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
			__s32	fs_state;	 
		} fs_44;
	} fs_u2;
	__s32	fs_postblformat;	 
	__s32	fs_nrpos;		 
	__s32	fs_postbloff;		 
	__s32	fs_rotbloff;		 
	__s32	fs_magic;		 
	__u8	fs_space[1];		 
};

 





 





 





 








 


struct	ufs_cylinder_group {
	__u32	cg_link;		 
	__u32	cg_magic;		 
	__u32	cg_time;		 
	__u32	cg_cgx;			 
	__u16	cg_ncyl;		 
	__u16	cg_niblk;		 
	__u32	cg_ndblk;		 
	struct	ufs_csum cg_cs;		 
	__u32	cg_rotor;		 
	__u32	cg_frotor;		 
	__u32	cg_irotor;		 
	__u32	cg_frsum[(8192  / 1024 ) ];	 
	__u32	cg_btotoff;		 
	__u32	cg_boff;		 
	__u32	cg_iusedoff;		 
	__u32	cg_freeoff;		 
	__u32	cg_nextfreeoff;		 
	union {
		struct {
			__u32	cg_clustersumoff;	 
			__u32	cg_clusteroff;		 
			__u32	cg_nclusterblks;	 
			__u32	cg_sparecon[13];	 
		} cg_44;
		__u32	cg_sparecon[16];	 
	} cg_u;
	__u8	cg_space[1];		 
 
};

 


struct ufs_inode {
	__u16	ui_mode;		 
	__u16	ui_nlink;		 
	union {
		struct {
			__u16	ui_suid;	 
			__u16	ui_sgid;	 
		} oldids;
		__u32	ui_inumber;		 
		__u32	ui_author;		 
	} ui_u1;
	__u64	ui_size;		 
	struct ufs_timeval ui_atime;	 
	struct ufs_timeval ui_mtime;	 
	struct ufs_timeval ui_ctime;	 
	union {
		struct {
			__u32	ui_db[12 ]; 
			__u32	ui_ib[3 ]; 
		} ui_addr;
		__u8	ui_symlink[4*(12 + 3 )]; 
	} ui_u2;
	__u32	ui_flags;		 
	__u32	ui_blocks;		 
	__u32	ui_gen;			 
	union {
		struct {
			__u32	ui_shadow;	 
			__u32	ui_uid;		 
			__u32	ui_gid;		 
			__u32	ui_oeftflag;	 
		} ui_sun;
		struct {
			__u32	ui_uid;		 
			__u32	ui_gid;		 
			__s32	ui_spare[2];	 
		} ui_44;
		struct {
			__u32	ui_uid;		 
			__u32	ui_gid;		 
			__u16	ui_modeh;	 
			__u16	ui_spare;	 
			__u32	ui_trans;	 
		} ui_hurd;
	} ui_u3;
};

 
 






 








 
extern int ufs_permission (struct inode *, int);

 
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 *);

 
extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);
extern void ufs_put_cylinder (struct super_block *, unsigned);

 
extern struct inode_operations ufs_dir_inode_operations;
extern struct file_operations ufs_dir_operations;
extern int ufs_check_dir_entry (const char *, struct inode *, struct ufs_dir_entry *, struct buffer_head *, unsigned long);

 
extern struct inode_operations ufs_file_inode_operations;
extern struct file_operations ufs_file_operations;

 
extern void ufs_free_inode (struct inode *inode);
extern struct inode * ufs_new_inode (const struct inode *, int, int *);

 
extern int ufs_bmap (struct inode *, int);
extern void ufs_read_inode (struct inode *);
extern void ufs_put_inode (struct inode *);
extern void ufs_write_inode (struct inode *);
extern int ufs_sync_inode (struct inode *);
extern void ufs_write_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 *);

 
extern struct dentry *ufs_lookup (struct inode *, struct dentry *);
extern int ufs_mkdir(struct inode *, struct dentry *, int);
extern int ufs_rmdir (struct inode *, struct dentry *);
extern int ufs_unlink (struct inode *, struct dentry *);
extern int ufs_create (struct inode *, struct dentry *, int);
extern int ufs_rename (struct inode *, struct dentry *, struct inode *, struct dentry *);
extern int ufs_mknod (struct inode *, struct dentry *, int, int);
extern int ufs_symlink (struct inode *, struct dentry *, const char *);
extern int ufs_link (struct dentry *, struct inode *, struct dentry *);
        
 
extern struct super_operations ufs_super_ops;
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 int init_ufs_fs(void);
extern void ufs_write_super (struct super_block *);

 
extern struct inode_operations ufs_symlink_inode_operations;

 
extern void ufs_truncate (struct inode *);




# 17 "/usr/include/linux/ufs_fs_sb.h" 2 3


 



struct ufs_buffer_head {
	unsigned fragment;			 
	unsigned count;				 
	struct buffer_head * bh[(8192  / 1024 ) ];	 
};

struct ufs_cg_private_info {
	struct ufs_cylinder_group ucg;
	__u32	c_cgx;		 
	__u16	c_ncyl;		 
	__u16	c_niblk;	 
	__u32	c_ndblk;	 
	__u32	c_rotor;	 
	__u32	c_frotor;	 
	__u32	c_irotor;	 
	__u32	c_btotoff;	 
	__u32	c_boff;		 
	__u32	c_iusedoff;	 
	__u32	c_freeoff;	 
	__u32	c_nextfreeoff;	 
	__u32	c_clustersumoff; 
	__u32	c_clusteroff;	 
	__u32	c_nclusterblks;	 
};	

struct ufs_sb_private_info {
	struct ufs_buffer_head s_ubh;  
	__u32	s_sblkno;	 
	__u32	s_cblkno;	 
	__u32	s_iblkno;	 
	__u32	s_dblkno;	 
	__u32	s_cgoffset;	 
	__u32	s_cgmask;	 
	__u32	s_size;		 
	__u32	s_dsize;	 
	__u32	s_ncg;		 
	__u32	s_bsize;	 
	__u32	s_fsize;	 
	__u32	s_fpb;		 
	__u32	s_minfree;	 
	__u32	s_bmask;	 
	__u32	s_fmask;	 
	__u32	s_bshift;	 
	__u32   s_fshift;	 
	__u32	s_fpbshift;	 
	__u32	s_fsbtodb;	 
	__u32	s_sbsize;	 
	__u32   s_csmask;	 
	__u32	s_csshift;	 
	__u32	s_nindir;	 
	__u32	s_inopb;	 
	__u32	s_nspf;		 
	__u32	s_npsect;	 
	__u32	s_interleave;	 
	__u32	s_trackskew;	 
	__u32	s_csaddr;	 
	__u32	s_cssize;	 
	__u32	s_cgsize;	 
	__u32	s_ntrak;	 
	__u32	s_nsect;	 
	__u32	s_spc;		 
	__u32	s_ipg;		 
	__u32	s_fpg;		 
	__u32	s_cpc;		 
	__s32	s_contigsumsize; 
	__s64	s_qbmask;	 
	__s64	s_qfmask;	 
	__s32	s_postblformat;	 
	__s32	s_nrpos;	 
        __s32	s_postbloff;	 
	__s32	s_rotbloff;	 

	__u32	s_fpbmask;	 
	__u32	s_apb;		 
	__u32	s_2apb;		 
	__u32	s_3apb;		 
	__u32	s_apbmask;	 
	__u32	s_apbshift;	 
	__u32	s_2apbshift;	 
	__u32	s_3apbshift;	 
	__u32	s_nspfshift;	 
	__u32	s_nspb;		 
	__u32	s_inopf;	 
	__u32	s_sbbase;	 
	__u32	s_bpf;		 
	__u32	s_bpfshift;	 
	__u32	s_bpfmask;	 
};





struct ufs_sb_info {
	struct ufs_sb_private_info * s_uspi;	
	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 ]; 
	unsigned s_cgno[8 ];
	unsigned short s_cg_loaded;
	unsigned s_mount_opt;
};

 





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];
};	

struct ufs_super_block_third {
	__u16	fs_opostbl[46];
	union {
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__s32	fs_state;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sun;
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__u32	fs_npsect;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sunx86;
		struct {
			__s32	fs_sparecon[50]; 
			__s32	fs_contigsumsize; 
			__s32	fs_maxsymlinklen; 
			__s32	fs_inodefmt;	 
			__u32	fs_maxfilesize[2];	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
			__s32	fs_state;	 
		} fs_44;
	} fs_u2;
	__s32	fs_postblformat;
	__s32	fs_nrpos;
	__s32	fs_postbloff;
	__s32	fs_rotbloff;
	__s32	fs_magic;
	__u8	fs_space[1];
};


# 506 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/efs_fs_sb.h" 1 3
 










 


 








 
struct efs_super {
	int32_t		fs_size;         
	int32_t		fs_firstcg;      
	int32_t		fs_cgfsize;      
	short		fs_cgisize;      
	short		fs_sectors;      
	short		fs_heads;        
	short		fs_ncg;          
	short		fs_dirty;        
	short		fs_filler;	 
	int32_t		fs_time;         
	int32_t		fs_magic;        
	char		fs_fname[6];     
	char		fs_fpack[6];     
	int32_t		fs_bmsize;       
	int32_t		fs_tfree;        
	int32_t		fs_tinode;       
	int32_t		fs_bmblock;      
	int32_t		fs_replsb;       
	int32_t		fs_lastialloc;   
	char		fs_spare[20];    
	int32_t		fs_checksum;     
};

 
struct efs_sb_info {
	int32_t	fs_magic;	 
	int32_t	fs_start;	 
	int32_t	first_block;	 
	int32_t	total_blocks;	 
	int32_t	group_size;	  
	int32_t	data_free;	 
	int32_t	inode_free;	 
	short	inode_blocks;	 
	short	total_groups;	 
};



# 507 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/romfs_fs_sb.h" 1 3



 

struct romfs_sb_info {
	unsigned long s_maxsize;
};


# 508 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/smb_fs_sb.h" 1 3
 













# 1 "/usr/include/linux/smb.h" 1 3
 












enum smb_protocol { 
	SMB_PROTOCOL_NONE, 
	SMB_PROTOCOL_CORE, 
	SMB_PROTOCOL_COREPLUS, 
	SMB_PROTOCOL_LANMAN1, 
	SMB_PROTOCOL_LANMAN2, 
	SMB_PROTOCOL_NT1 
};

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 {

         
	unsigned int fd;

	enum smb_protocol protocol;
	enum smb_case_hndl case_handling;

	 

	__u32              max_xmit;
	__u16              server_uid;
	__u16              tid;

         
        __u16              secmode;
        __u16              maxmux;
        __u16              maxvcs;
        __u16              rawmode;
        __u32              sesskey;

	 
	__u32              maxraw;
	__u32              capabilities;
	__s16              serverzone;
};






 


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;
};

struct smb_dirent {
	struct smb_fattr attr;

	int f_pos;
	int len;
	__u8 name[255 ];
};

enum smb_conn_state {
        CONN_VALID,              
        CONN_INVALID,            

        CONN_RETRIED             
};

 














 




# 15 "/usr/include/linux/smb_fs_sb.h" 2 3


 




struct smb_sb_info {
        enum smb_conn_state state;
	struct file * sock_file;

        struct smb_mount_data *mnt;
        unsigned char *temp_buf;

	 


	unsigned int generation;
	pid_t conn_pid;
	struct smb_conn_opt opt;

	struct semaphore sem;
	struct wait_queue * wait;

	__u32              packet_size;
	unsigned char *    packet;
        unsigned short     rcls;  
        unsigned short     err;

         
        void *data_ready;
};




# 509 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hfs_fs_sb.h" 1 3
 












 
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);

 




struct hfs_sb_info {
	int			magic;		 
	struct hfs_mdb		*s_mdb;		 
	int			s_quiet;	 

	int			s_lowercase;	 
	int			s_afpd;		 
	int                     s_version;       
	hfs_namein_fn		s_namein;	 


	hfs_nameout_fn		s_nameout;	 


	hfs_ifill_fn		s_ifill;	 

	const struct hfs_name	*s_reserved1;	 
	const struct hfs_name	*s_reserved2;	 
	__u32			s_type;		 
	__u32			s_creator;	 
	umode_t			s_umask;	 

	uid_t			s_uid;		 
	gid_t			s_gid;		 
	char			s_conv;		 
};


# 510 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/adfs_fs_sb.h" 1 3
 








# 1 "/usr/include/linux/adfs_fs.h" 1 3




 



 


struct adfs_discrecord {
    unsigned char  log2secsize;
    unsigned char  secspertrack;
    unsigned char  heads;
    unsigned char  density;
    unsigned char  idlen;
    unsigned char  log2bpmb;
    unsigned char  skew;
    unsigned char  bootoption;
    unsigned char  lowsector;
    unsigned char  nzones;
    unsigned short zone_spare;
    unsigned long  root;
    unsigned long  disc_size;
    unsigned short disc_id;
    unsigned char  disc_name[10];
    unsigned long  disc_type;
    unsigned long  disc_size_high;
    unsigned char  log2sharesize:4;
    unsigned char  unused:4;
    unsigned char  big_flag:1;
};









 


struct adfs_dirheader {
	unsigned char startmasseq;
	unsigned char startname[4];
};





 


struct adfs_direntry {
	char dirobname[10];

	__u8 dirload[4];
	__u8 direxec[4];
	__u8 dirlen[4];
	__u8 dirinddiscadd[3];
	__u8 newdiratts;







};


struct adfs_idir_entry {
	__u32		inode_no;			 
	__u32		file_id;			 
	__u32		name_len;			 
	__u32		size;				 
	__u32		mtime;				 
	__u32		filetype;			 
	__u8		mode;				 
	char		name[255 ];	 
};

 


union adfs_dirtail {
	struct {
		unsigned char dirlastmask;
		char dirname[10];
		unsigned char dirparent[3];
		char dirtitle[19];
		unsigned char reserved[14];
		unsigned char endmasseq;
		unsigned char endname[4];
		unsigned char dircheckbyte;
	} old;
	struct {
		unsigned char dirlastmask;
		unsigned char reserved[2];
		unsigned char dirparent[3];
		char dirtitle[19];
		char dirname[10];
		unsigned char endmasseq;
		unsigned char endname[4];
		unsigned char dircheckbyte;
	} new;
};


 




extern inline int adfs_checkbblk(unsigned char *ptr)
{
	unsigned int result = 0;
	unsigned char *p = ptr + 511;

	do {
	        result = (result & 0xff) + (result >> 8);
        	result = result + *--p;
	} while (p != ptr);

	return (result & 0xff) != ptr[511];
}

 
extern unsigned int adfs_val (unsigned char *p, int len);
extern int adfs_dir_read_parent (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_read (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_check (struct inode *inode, struct buffer_head **bhp,
			   int buffers, union adfs_dirtail *dtp);
extern void adfs_dir_free (struct buffer_head **bhp, int buffers);
extern int adfs_dir_get (struct super_block *sb, struct buffer_head **bhp,
			 int buffers, int pos, unsigned long parent_object_id,
			 struct adfs_idir_entry *ide);
extern int adfs_dir_find_entry (struct super_block *sb, struct buffer_head **bhp,
				int buffers, unsigned int index,
				struct adfs_idir_entry *ide);

 
extern int adfs_inode_validate (struct inode *inode);
extern unsigned long adfs_inode_generate (unsigned long parent_id, int diridx);
extern unsigned long adfs_inode_objid (struct inode *inode);
extern unsigned int adfs_parent_bmap (struct inode *inode, int block);
extern int adfs_bmap (struct inode *inode, int block);
extern void adfs_read_inode (struct inode *inode);

 
extern int adfs_map_lookup (struct super_block *sb, int frag_id, int offset);

 
extern struct dentry *adfs_lookup (struct inode *dir, struct dentry *dentry);

 
extern int init_adfs_fs (void);
extern void adfs_error (struct super_block *, const char *, const char *, ...);

 



 
extern struct inode_operations adfs_dir_inode_operations;

 
extern struct inode_operations adfs_file_inode_operations;



# 10 "/usr/include/linux/adfs_fs_sb.h" 2 3


 


struct adfs_sb_info {
	struct buffer_head *s_sbh;	 
	struct adfs_discrecord *s_dr;	 
	uid_t	s_uid;			 
	gid_t	s_gid;			 
	int	s_owner_mask;		 
	int	s_other_mask;		 
	__u16	s_zone_size;		 
	__u16	s_ids_per_zone;		 
	__u32	s_idlen;		 
	__u32	s_map_size;		 
	__u32	s_zonesize;		 
	__u32	s_map_block;		 
	struct buffer_head **s_map;	 
	__u32	s_root;			 
	__s8	s_map2blk;		 
};


# 511 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/qnx4_fs_sb.h" 1 3
 














 



struct qnx4_sb_info {
	struct buffer_head *sb_buf;	 
	struct qnx4_super_block *sb;	 
	unsigned int Version;	 
	struct qnx4_inode_entry *BitMap;	 
};


# 512 "/usr/include/linux/fs.h" 2 3


extern struct list_head super_blocks;


struct super_block {
	struct list_head	s_list;		 
	kdev_t			s_dev;
	unsigned long		s_blocksize;
	unsigned char		s_blocksize_bits;
	unsigned char		s_lock;
	unsigned char		s_rd_only;
	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;
	unsigned long		s_time;
	struct dentry		*s_root;
	struct wait_queue	*s_wait;

	struct inode		*s_ibasket;
	short int		s_ibasket_count;
	short int		s_ibasket_max;
	struct list_head	s_dirty;	 

	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 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;	   
		void			*generic_sbp;
	} u;
	 



	struct semaphore s_vfs_rename_sem;	 
};

 


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 *);

 





typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t);
	
struct file_operations {
	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 (*fasync) (int, struct file *, int);
	int (*check_media_change) (kdev_t dev);
	int (*revalidate) (kdev_t dev);
	int (*lock) (struct file *, int, struct file_lock *);
};

struct inode_operations {
	struct file_operations * default_file_ops;
	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);
	struct dentry * (*follow_link) (struct dentry *, struct dentry *, unsigned int);
	int (*readpage) (struct file *, struct page *);
	int (*writepage) (struct file *, struct page *);
	int (*bmap) (struct inode *,int);
	void (*truncate) (struct inode *);
	int (*permission) (struct inode *, int);
	int (*smap) (struct inode *,int);
	int (*updatepage) (struct file *, struct page *, unsigned long, unsigned int, int);
	int (*revalidate) (struct dentry *);
};

struct super_operations {
	void (*read_inode) (struct inode *);
	void (*write_inode) (struct inode *);
	void (*put_inode) (struct inode *);
	void (*delete_inode) (struct inode *);
	int (*notify_change) (struct dentry *, struct iattr *);
	void (*put_super) (struct super_block *);
	void (*write_super) (struct super_block *);
	int (*statfs) (struct super_block *, struct statfs *, int);
	int (*remount_fs) (struct super_block *, int *, char *);
	void (*clear_inode) (struct inode *);
	void (*umount_begin) (struct super_block *);
};

struct dquot_operations {
	void (*initialize) (struct inode *, short);
	void (*drop) (struct inode *);
	int (*alloc_block) (const struct inode *, unsigned long, uid_t, char);
	int (*alloc_inode) (const struct inode *, unsigned long, uid_t);
	void (*free_block) (const struct inode *, unsigned long);
	void (*free_inode) (const struct inode *, unsigned long);
	int (*transfer) (struct dentry *, struct iattr *, uid_t);
};

struct file_system_type {
	const char *name;
	int fs_flags;
	struct super_block *(*read_super) (struct super_block *, void *, int);
	struct file_system_type * next;
};

extern int register_filesystem(struct file_system_type *);
extern int unregister_filesystem(struct file_system_type *);

 

 





extern int locks_mandatory_locked(struct inode *inode);
extern int locks_mandatory_area(int read_write, struct inode *inode,
				struct file *filp, loff_t offset,
				size_t count);

extern inline int locks_verify_locked(struct inode *inode)
{
	 


	if ((((  inode  )->i_sb && (  inode  )->i_sb->s_flags & (  64  )) || (  inode  )->i_flags & (  64  ))   &&
	    (inode->i_mode & (0002000  | 00010 )) == 0002000 )
		return (locks_mandatory_locked(inode));
	return (0);
}

extern inline int locks_verify_area(int read_write, struct inode *inode,
				    struct file *filp, loff_t offset,
				    size_t count)
{
	 


	if ((((  inode  )->i_sb && (  inode  )->i_sb->s_flags & (  64  )) || (  inode  )->i_flags & (  64  ))   &&
	    (inode->i_mode & (0002000  | 00010 )) == 0002000 )
		return (locks_mandatory_area(read_write, inode, filp, offset,
					     count));
	return (0);
}


 

  __attribute__((regparm(0)))  int sys_open(const char *, int, int);
  __attribute__((regparm(0)))  int sys_close(unsigned int);		 
extern int do_truncate(struct dentry *, unsigned long);
extern int get_unused_fd(void);
extern void put_unused_fd(unsigned int);

extern struct file *filp_open(const char *, int, int);
extern int filp_close(struct file *, fl_owner_t id);

extern char * getname(const char * filename);



extern void kill_fasync(struct fasync_struct *fa, int sig);
extern int register_blkdev(unsigned int, const char *, struct file_operations *);
extern int unregister_blkdev(unsigned int major, const char * name);
extern int blkdev_open(struct inode * inode, struct file * filp);
extern int blkdev_release (struct inode * inode);
extern struct file_operations def_blk_fops;
extern struct inode_operations blkdev_inode_operations;

 
extern int register_chrdev(unsigned int, const char *, struct file_operations *);
extern int unregister_chrdev(unsigned int major, const char * name);
extern int chrdev_open(struct inode * inode, struct file * filp);
extern struct file_operations def_chr_fops;
extern struct inode_operations chrdev_inode_operations;
extern char * bdevname(kdev_t dev);
extern char * cdevname(kdev_t dev);
extern char * kdevname(kdev_t dev);


extern void init_fifo(struct inode * inode);
extern struct inode_operations fifo_inode_operations;

 
extern void make_bad_inode(struct inode * inode);
extern int is_bad_inode(struct inode * inode);

extern struct file_operations connecting_fifo_fops;
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 struct file_system_type *get_fs_type(const char *name);

extern int fs_may_remount_ro(struct super_block *);
extern int fs_may_mount(kdev_t dev);

extern struct file *inuse_filps;

extern void refile_buffer(struct buffer_head * buf);
extern void set_writetime(struct buffer_head * buf, int flag);
extern int try_to_free_buffers(struct page *);

extern int nr_buffers;
extern long buffermem;
extern int nr_buffer_heads;






void mark_buffer_uptodate(struct buffer_head * bh, int on);

extern inline void mark_buffer_clean(struct buffer_head * bh)
{
	if (test_and_clear_bit(1 , &bh->b_state)) {
		if (bh->b_list == 2 )
			refile_buffer(bh);
	}
}

extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
{
	if (!test_and_set_bit(1 , &bh->b_state)) {
		set_writetime(bh, flag);
		if (bh->b_list != 2 )
			refile_buffer(bh);
	}
}

extern int check_disk_change(kdev_t dev);
extern int invalidate_inodes(struct super_block * sb);
extern void invalidate_inode_pages(struct inode *);


extern void __invalidate_buffers(kdev_t dev, int);
extern int floppy_is_wp(int minor);
extern void sync_inodes(kdev_t dev);
extern void write_inode_now(struct inode *inode);
extern void sync_dev(kdev_t dev);
extern int fsync_dev(kdev_t dev);
extern void sync_supers(kdev_t dev);
extern int bmap(struct inode * inode,int block);
extern int notify_change(struct dentry *, struct iattr *);
extern int permission(struct inode * inode,int mask);
extern int get_write_access(struct inode *inode);
extern void put_write_access(struct inode *inode);
extern struct dentry * open_namei(const char * pathname, int flag, int mode);
extern struct dentry * do_mknod(const char * filename, int mode, dev_t dev);
extern int do_pipe(int *);

 
extern int is_subdir(struct dentry *, struct dentry *);
extern ino_t find_inode_number(struct dentry *, struct qstr *);

 











 











extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int);
extern struct dentry * __namei(const char *, unsigned int);




extern void iput(struct inode *);
extern struct inode * igrab(struct inode *inode);
extern ino_t iunique(struct super_block *, ino_t);
extern struct inode * iget(struct super_block *, unsigned long);
extern struct inode * iget_in_use (struct super_block *, unsigned long);
extern void clear_inode(struct inode *);
extern struct inode * get_empty_inode(void);

extern void insert_inode_hash(struct inode *);
extern void remove_inode_hash(struct inode *);
extern struct file * get_empty_filp(void);
extern struct buffer_head * get_hash_table(kdev_t, int, int);
extern struct buffer_head * getblk(kdev_t, int, int);
extern struct buffer_head * find_buffer(kdev_t dev, int block, int size);
extern void ll_rw_block(int, int, struct buffer_head * bh[]);
extern int is_read_only(kdev_t);
extern void __brelse(struct buffer_head *);
extern inline void brelse(struct buffer_head *buf)
{
	if (buf)
		__brelse(buf);
}
extern void __bforget(struct buffer_head *buf);
extern inline void bforget(struct buffer_head *buf)
{
	if (buf)
		__bforget(buf);
}
extern void set_blocksize(kdev_t dev, int size);
extern unsigned int get_hardblocksize(kdev_t dev);
extern struct buffer_head * bread(kdev_t dev, int block, int size);
extern struct buffer_head * breada(kdev_t dev,int block, int size, 
				   unsigned int pos, unsigned int filesize);

extern int brw_page(int, struct page *, kdev_t, int [], int, int);

extern int generic_readpage(struct file *, struct page *);
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 struct super_block *get_super(kdev_t dev);
extern void put_super(kdev_t dev);
unsigned long generate_cluster(kdev_t dev, int b[], int size);
unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size);
extern kdev_t ROOT_DEV;

extern void show_buffers(void);
extern void mount_root(void);


extern kdev_t real_root_dev;
extern int change_root(kdev_t new_root_dev,const char *put_old);


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 block_fsync(struct file *, struct dentry *dir);
extern int file_fsync(struct file *, struct dentry *dir);

extern int inode_change_ok(struct inode *, struct iattr *);
extern void inode_setattr(struct inode *, struct iattr *);

extern __u32 inode_generation_count;




# 1 "tst3.c" 2



















































 




 























 















































































































 















 





























 

















 










































 













































 

















 



























 

























































 




























 





















































 













 









































 



















 










































 























 








































 
























 










 

























































 



















































 















































































 























 



# 4 "/usr/include/linux/config.h" 2 3



# 9 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/linkage.h" 1 3









































# 52 "/usr/include/linux/linkage.h" 3



# 10 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/limits.h" 1 3



















# 11 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/wait.h" 1 3










# 1 "/usr/include/asm/page.h" 1 3



 













 


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;











# 55 "/usr/include/asm/page.h" 3



 


 





















# 1 "/usr/include/asm/page_offset.h" 1 3








# 83 "/usr/include/asm/page.h" 2 3












# 11 "/usr/include/linux/wait.h" 2 3


struct wait_queue {
	struct task_struct * task;
	struct wait_queue * next;
};



static inline void init_waitqueue(struct wait_queue **q)
{
	*q = ((struct wait_queue *)(( q )-1)) ;
}

static inline int waitqueue_active(struct wait_queue **q)
{
	struct wait_queue *head = *q;
	return head && head != ((struct wait_queue *)(( q )-1)) ;
}




# 12 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/types.h" 1 3



# 1 "/usr/include/linux/posix_types.h" 1 3



# 1 "/usr/include/linux/stddef.h" 1 3














# 4 "/usr/include/linux/posix_types.h" 2 3


 










 


















typedef struct {
	unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)) ) ];
} __kernel_fd_set;

 
typedef void (*__kernel_sighandler_t)(int);

 
typedef int __kernel_key_t;

# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 1 3
 

# 1 "/usr/include/features.h" 1 3
 




















 



























































 



















 





 



 







 
# 138 "/usr/include/features.h" 3


 









 





 



























# 196 "/usr/include/features.h" 3


































 



 








 




 

# 1 "/usr/include/sys/cdefs.h" 1 3
 




















 




 





 








 




# 71 "/usr/include/sys/cdefs.h" 3


 







 



# 103 "/usr/include/sys/cdefs.h" 3



 








 















 








 








 









 







# 250 "/usr/include/features.h" 2 3


 








 





 

 








# 1 "/usr/include/gnu/stubs.h" 1 3
 






































# 278 "/usr/include/features.h" 2 3




# 3 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3

# 1 "/usr/include/asm/posix_types.h" 1 3



 





typedef unsigned short	__kernel_dev_t;
typedef unsigned long	__kernel_ino_t;
typedef unsigned short	__kernel_mode_t;
typedef unsigned short	__kernel_nlink_t;
typedef long		__kernel_off_t;
typedef int		__kernel_pid_t;
typedef unsigned short	__kernel_ipc_pid_t;
typedef unsigned short	__kernel_uid_t;
typedef unsigned short	__kernel_gid_t;
typedef unsigned int	__kernel_size_t;
typedef int		__kernel_ssize_t;
typedef int		__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 long long	__kernel_loff_t;


typedef struct {

	int	val[2];



} __kernel_fsid_t;























# 70 "/usr/include/asm/posix_types.h" 3




# 4 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3


# 16 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 3




# 46 "/usr/include/linux/posix_types.h" 2 3



# 4 "/usr/include/linux/types.h" 2 3

# 1 "/usr/include/asm/types.h" 1 3



typedef unsigned short umode_t;

 




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 long __s64;
typedef unsigned long long __u64;


 




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 long s64;
typedef unsigned long long u64;






# 5 "/usr/include/linux/types.h" 2 3


# 94 "/usr/include/linux/types.h" 3


 




struct ustat {
	__kernel_daddr_t	f_tfree;
	__kernel_ino_t		f_tinode;
	char			f_fname[6];
	char			f_fpack[6];
};


# 13 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/vfs.h" 1 3



# 1 "/usr/include/asm/statfs.h" 1 3











struct statfs {
	long f_type;
	long f_bsize;
	long f_blocks;
	long f_bfree;
	long f_bavail;
	long f_files;
	long f_ffree;
	__kernel_fsid_t f_fsid;
	long f_namelen;
	long f_spare[6];
};


# 4 "/usr/include/linux/vfs.h" 2 3



# 14 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/net.h" 1 3
 



















# 1 "/usr/include/linux/socket.h" 1 3





# 1 "/usr/include/asm/socket.h" 1 3



# 1 "/usr/include/asm/sockios.h" 1 3



 








# 4 "/usr/include/asm/socket.h" 2 3


 
















 







 






 



 

 






					 
					 
					 
					 



# 6 "/usr/include/linux/socket.h" 2 3

# 1 "/usr/include/linux/sockios.h" 1 3
 





















 




 











































 
		     




 




 




 




 

 





 


 


 


# 7 "/usr/include/linux/socket.h" 2 3

# 1 "/usr/include/linux/uio.h" 1 3





 









 


struct iovec
{
	void *iov_base;		 
	__kernel_size_t iov_len;  
};

 


 









# 8 "/usr/include/linux/socket.h" 2 3



typedef unsigned short	sa_family_t;

 


 
struct sockaddr {
	sa_family_t	sa_family;	 
	char		sa_data[14];	 
};

struct linger {
	int		l_onoff;	 
	int		l_linger;	 
};

 




 
struct msghdr {
	void	*	msg_name;	 
	int		msg_namelen;	 
	struct iovec *	msg_iov;	 
	__kernel_size_t	msg_iovlen;	 
	void 	*	msg_control;	 
	__kernel_size_t	msg_controllen;	 
	unsigned	msg_flags;
};

 





struct cmsghdr {
	__kernel_size_t	cmsg_len;	 
        int		cmsg_level;	 
        int		cmsg_type;	 
};

 


















 


 











 











 
extern __inline__  struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
					       struct cmsghdr *__cmsg)
{
	struct cmsghdr * __ptr;

	__ptr = (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;
}

extern __inline__  struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
{
	return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
}

 





struct ucred {
	__u32	pid;
	__u32	uid;
	__u32	gid;
};


 



























 




























 


 


 























 

 

















 


 





extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov, 
				int offset, int len);
extern int csum_partial_copy_fromiovecend(unsigned char *kdata, 
					  struct iovec *iov, 
					  int offset, 
					  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);



# 279 "/usr/include/linux/socket.h" 3


# 21 "/usr/include/linux/net.h" 2 3


struct poll_table_struct;























typedef enum {
  SS_FREE = 0,				 
  SS_UNCONNECTED,			 
  SS_CONNECTING,			 
  SS_CONNECTED,				 
  SS_DISCONNECTING			 
} socket_state;







struct socket
{
	socket_state		state;

	unsigned long		flags;
	struct proto_ops	*ops;
	struct inode		*inode;
	struct fasync_struct	*fasync_list;	 
	struct file		*file;		 
	struct sock		*sk;
	struct wait_queue	*wait;

	short			type;
	unsigned char		passcred;
	unsigned char		tli;
};



struct scm_cookie;

struct proto_ops {
  int	family;

  int	(*dup)		(struct socket *newsock, struct socket *oldsock);
  int	(*release)	(struct socket *sock, struct socket *peer);
  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	(*fcntl)	(struct socket *sock, unsigned int cmd,
			 unsigned long arg);	
  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);
};

struct net_proto_family 
{
	int	family;
	int	(*create)(struct socket *sock, int protocol);
	 

	short	authentication;
	short	encryption;
	short	encrypt_net;
};

struct net_proto 
{
	const char *name;		 
	void (*init_func)(struct net_proto *);	 
};

extern struct net_proto_family *net_families[];
extern int	sock_wake_async(struct socket *sk, int how);
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);



# 15 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/kdev_t.h" 1 3



 























































 






typedef unsigned short kdev_t;








extern char * kdevname(kdev_t);	 

 




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 = (dev >> 8);
	minor = (dev & 0xff);

	return ((( major ) << 8 ) | (  minor )) ;
}

# 113 "/usr/include/linux/kdev_t.h" 3


# 16 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ioctl.h" 1 3



# 1 "/usr/include/asm/ioctl.h" 1 3
 







 









 






















 












 





 





 








# 4 "/usr/include/linux/ioctl.h" 2 3




# 17 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/list.h" 1 3





 









struct list_head {
	struct list_head *next, *prev;
};








 





static __inline__ void __list_add(struct list_head * new,
	struct list_head * prev,
	struct list_head * next)
{
	next->prev = new;
	new->next = next;
	new->prev = prev;
	prev->next = new;
}

 


static __inline__ void list_add(struct list_head *new, struct list_head *head)
{
	__list_add(new, head, head->next);
}

 






static __inline__ void __list_del(struct list_head * prev,
				  struct list_head * next)
{
	next->prev = prev;
	prev->next = next;
}

static __inline__ void list_del(struct list_head *entry)
{
	__list_del(entry->prev, entry->next);
}

static __inline__ int list_empty(struct list_head *head)
{
	return head->next == head;
}

 


static __inline__ void list_splice(struct list_head *list, struct list_head *head)
{
	struct list_head *first = list->next;

	if (first != list) {
		struct list_head *last = list->prev;
		struct list_head *at = head->next;

		first->prev = head;
		head->next = first;

		last->next = at;
		at->prev = last;
	}
}







# 18 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/dcache.h" 1 3





 












 



struct qstr {
	const unsigned char * name;
	unsigned int len;
	unsigned int hash;
};

 


 
static __inline__ unsigned long partial_name_hash(unsigned long c, unsigned long prevhash)
{
	prevhash = (prevhash << 4) | (prevhash >> (8*sizeof(unsigned long)-4));
	return prevhash ^ c;
}

 
static __inline__ unsigned long end_name_hash(unsigned long hash)
{
	if (sizeof(hash) > sizeof(unsigned int))
		hash += hash >> 4*sizeof(hash);
	return (unsigned int) hash;
}

 
static __inline__ unsigned int full_name_hash(const unsigned char * name, unsigned int len)
{
	unsigned long hash = 0 ;
	while (len--)
		hash = partial_name_hash(*name++, hash);
	return end_name_hash(hash);
}



struct dentry {
	int d_count;
	unsigned int d_flags;
	struct inode  * d_inode;	 
	struct dentry * d_parent;	 
	struct dentry * d_mounts;	 
	struct dentry * d_covers;
	struct list_head d_hash;	 
	struct list_head d_lru;		 
	struct list_head d_child;	 
	struct list_head d_subdirs;	 
	struct list_head d_alias;	 
	struct qstr d_name;
	unsigned long d_time;		 
	struct dentry_operations  *d_op;
	struct super_block * d_sb;	 
	unsigned long d_reftime;	 
	void * d_fsdata;		 
	unsigned char d_iname[16 ];  
};

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 *);
	void (*d_delete)(struct dentry *);
	void (*d_release)(struct dentry *);
	void (*d_iput)(struct dentry *, struct inode *);
};

 








 






 












static __inline__ void d_drop(struct dentry * dentry)
{
	list_del(&dentry->d_hash);
	do { ( &dentry->d_hash )->next = ( &dentry->d_hash ); ( &dentry->d_hash )->prev = ( &dentry->d_hash ); } while (0) ;
}

static __inline__ int dname_external(struct dentry *d)
{
	return d->d_name.name != d->d_iname; 
}

 


extern void d_instantiate(struct dentry *, struct inode *);
extern void d_delete(struct dentry *);

 
extern struct dentry * d_alloc(struct dentry * parent, const struct qstr *name);
extern int prune_dcache(int, int);
extern void shrink_dcache_sb(struct super_block *);
extern void shrink_dcache_parent(struct dentry *);
extern int d_invalidate(struct dentry *);



 
extern void shrink_dcache_memory(int, unsigned int);
extern void check_dcache_memory(void);
extern void free_inode_memory(int);	 

 
extern struct dentry * d_alloc_root(struct inode * root_inode, struct dentry * old_root);

 
extern int is_root_busy(struct dentry *);

 
extern int have_submounts(struct dentry *);

 


extern void d_rehash(struct dentry * entry);
 



static __inline__ void d_add(struct dentry * entry, struct inode * inode)
{
	d_rehash(entry);
	d_instantiate(entry, inode);
}

 
extern void d_move(struct dentry * entry, struct dentry * newdentry);

 
extern struct dentry * d_lookup(struct dentry * dir, struct qstr * name);

 
extern int d_validate(struct dentry *dentry, struct dentry *dparent,
		      unsigned int hash, unsigned int len);

 
extern char * d_path(struct dentry * entry, char * buf, int buflen);

 
static __inline__ struct dentry * dget(struct dentry *dentry)
{
	if (dentry)
		dentry->d_count++;
	return dentry;
}

extern void dput(struct dentry *);




# 19 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/stat.h" 1 3





# 1 "/usr/include/asm/stat.h" 1 3



struct __old_kernel_stat {
	unsigned short st_dev;
	unsigned short st_ino;
	unsigned short st_mode;
	unsigned short st_nlink;
	unsigned short st_uid;
	unsigned short st_gid;
	unsigned short st_rdev;
	unsigned long  st_size;
	unsigned long  st_atime;
	unsigned long  st_mtime;
	unsigned long  st_ctime;
};

struct stat {
	unsigned short st_dev;
	unsigned short __pad1;
	unsigned long st_ino;
	unsigned short st_mode;
	unsigned short st_nlink;
	unsigned short st_uid;
	unsigned short st_gid;
	unsigned short st_rdev;
	unsigned short __pad2;
	unsigned long  st_size;
	unsigned long  st_blksize;
	unsigned long  st_blocks;
	unsigned long  st_atime;
	unsigned long  __unused1;
	unsigned long  st_mtime;
	unsigned long  __unused2;
	unsigned long  st_ctime;
	unsigned long  __unused3;
	unsigned long  __unused4;
	unsigned long  __unused5;
};


# 6 "/usr/include/linux/stat.h" 2 3




















































# 20 "/usr/include/linux/fs.h" 2 3


# 1 "/usr/include/asm/atomic.h" 1 3



 










 









typedef struct { int counter; } atomic_t;







static __inline__ void atomic_add(int i, volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "addl %1,%0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ void atomic_sub(int i, volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "subl %1,%0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ void atomic_inc(volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "incl %0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ void atomic_dec(volatile atomic_t *v)
{
	__asm__ __volatile__(
		""  "decl %0"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) )
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}

static __inline__ int atomic_dec_and_test(volatile atomic_t *v)
{
	unsigned char c;

	__asm__ __volatile__(
		""  "decl %0; sete %1"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
	return c != 0;
}

extern __inline__ int atomic_inc_and_test_greater_zero(volatile atomic_t *v)
{
	unsigned char c;

	__asm__ __volatile__(
		""  "incl %0; setg %1"
		:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
		:"m" ((*(volatile struct { int a[100]; } *) v ) ));
	return c;  
}

 









# 22 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/bitops.h" 1 3




 





extern __inline__ int generic_ffs(int x)
{
	int r = 1;

	if (!x)
		return 0;
	if (!(x & 0xffff)) {
		x >>= 16;
		r += 16;
	}
	if (!(x & 0xff)) {
		x >>= 8;
		r += 8;
	}
	if (!(x & 0xf)) {
		x >>= 4;
		r += 4;
	}
	if (!(x & 3)) {
		x >>= 2;
		r += 2;
	}
	if (!(x & 1)) {
		x >>= 1;
		r += 1;
	}
	return r;
}

 




extern __inline__ unsigned int generic_hweight32(unsigned int w)
{
        unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555);
        res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
        res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
        res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
        return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
}

extern __inline__ unsigned int generic_hweight16(unsigned int w)
{
        unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555);
        res = (res & 0x3333) + ((res >> 2) & 0x3333);
        res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
        return (res & 0x00FF) + ((res >> 8) & 0x00FF);
}

extern __inline__ unsigned int generic_hweight8(unsigned int w)
{
        unsigned int res = (w & 0x55) + ((w >> 1) & 0x55);
        res = (res & 0x33) + ((res >> 2) & 0x33);
        return (res & 0x0F) + ((res >> 4) & 0x0F);
}

# 1 "/usr/include/asm/bitops.h" 1 3



 



 













 


extern void set_bit(int nr, volatile void * addr);
extern void clear_bit(int nr, volatile void * addr);
extern void change_bit(int nr, volatile void * addr);
extern int test_and_set_bit(int nr, volatile void * addr);
extern int test_and_clear_bit(int nr, volatile void * addr);
extern int test_and_change_bit(int nr, volatile void * addr);
extern int __constant_test_bit(int nr, const volatile void * addr);
extern int __test_bit(int nr, volatile void * addr);
extern int find_first_zero_bit(void * addr, unsigned size);
extern int find_next_zero_bit (void * addr, int size, int offset);
extern unsigned long ffz(unsigned long word);

 


struct __dummy { unsigned long a[100]; };



extern __inline__ void set_bit(int nr, volatile void * addr)
{
	__asm__ __volatile__( "" 
		"btsl %1,%0"
		:"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
}

extern __inline__ void clear_bit(int nr, volatile void * addr)
{
	__asm__ __volatile__( "" 
		"btrl %1,%0"
		:"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
}

extern __inline__ void change_bit(int nr, volatile void * addr)
{
	__asm__ __volatile__( "" 
		"btcl %1,%0"
		:"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
}

extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__( "" 
		"btsl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
	return oldbit;
}

extern __inline__ int test_and_clear_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__( "" 
		"btrl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
	return oldbit;
}

extern __inline__ int test_and_change_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__( "" 
		"btcl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
		:"Ir" (nr));
	return oldbit;
}

 


extern __inline__ int __constant_test_bit(int nr, const volatile void * addr)
{
	return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
}

extern __inline__ int __test_bit(int nr, volatile void * addr)
{
	int oldbit;

	__asm__ __volatile__(
		"btl %2,%1\n\tsbbl %0,%0"
		:"=r" (oldbit)
		:"m" ((*(volatile struct __dummy *) addr) ),"Ir" (nr));
	return oldbit;
}






 


extern __inline__ int find_first_zero_bit(void * addr, unsigned size)
{
	int d0, d1, d2;
	int res;

	if (!size)
		return 0;
	__asm__("cld\n\t"
		"movl $-1,%%eax\n\t"
		"xorl %%edx,%%edx\n\t"
		"repe; scasl\n\t"
		"je 1f\n\t"
		"xorl -4(%%edi),%%eax\n\t"
		"subl $4,%%edi\n\t"
		"bsfl %%eax,%%edx\n"
		"1:\tsubl %%ebx,%%edi\n\t"
		"shll $3,%%edi\n\t"
		"addl %%edi,%%edx"
		:"=d" (res), "=&c" (d0), "=&D" (d1), "=&a" (d2)
		:"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
	return res;
}

extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
	unsigned long * p = ((unsigned long *) addr) + (offset >> 5);
	int set = 0, bit = offset & 31, res;
	
	if (bit) {
		 


		__asm__("bsfl %1,%0\n\t"
			"jne 1f\n\t"
			"movl $32, %0\n"
			"1:"
			: "=r" (set)
			: "r" (~(*p >> bit)));
		if (set < (32 - bit))
			return set + offset;
		set = 32 - bit;
		p++;
	}
	 


	res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr));
	return (offset + set + res);
}

 



extern __inline__ unsigned long ffz(unsigned long word)
{
	__asm__("bsfl %1,%0"
		:"=r" (word)
		:"r" (~word));
	return word;
}



 





extern __inline__ int ffs(int x)
{
	int r;

	__asm__("bsfl %1,%0\n\t"
		"jnz 1f\n\t"
		"movl $-1,%0\n"
		"1:" : "=r" (r) : "g" (x));
	return r+1;
}

 


















 








# 69 "/usr/include/linux/bitops.h" 2 3




# 23 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/asm/cache.h" 1 3
 





 











# 24 "/usr/include/linux/fs.h" 2 3



struct poll_table_struct;


 









 







 
extern int max_inodes;
extern int max_files, nr_files, nr_free_files;
extern int max_super_blocks, nr_super_blocks;






















 







 



















 




 





 




























 





















# 1 "/usr/include/asm/semaphore.h" 1 3





 
























# 1 "/usr/include/asm/system.h" 1 3



# 1 "/usr/include/linux/kernel.h" 1 3



 





# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 1 3
 
































































 






typedef void *__gnuc_va_list;



 



 

















void va_end (__gnuc_va_list);		 


 



 












 























 
 













# 175 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 3


 




 

 

 

typedef __gnuc_va_list va_list;
























# 10 "/usr/include/linux/kernel.h" 2 3



 
 




























extern void math_error(void);
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)) ;
extern unsigned long simple_strtoul(const char *,char **,unsigned int);
extern long simple_strtol(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);

extern int session_of_pgrp(int pgrp);

  __attribute__((regparm(0)))  int printk(const char * fmt, ...)
	__attribute__ ((format (printf, 1, 2)));












 












struct sysinfo {
	long uptime;			 
	unsigned long loads[3];		 
	unsigned long totalram;		 
	unsigned long freeram;		 
	unsigned long sharedram;	 
	unsigned long bufferram;	 
	unsigned long totalswap;	 
	unsigned long freeswap;		 
	unsigned short procs;		 
	char _f[22];			 
};


# 4 "/usr/include/asm/system.h" 2 3

# 1 "/usr/include/asm/segment.h" 1 3










# 5 "/usr/include/asm/system.h" 2 3




struct task_struct;	 
extern void  __switch_to(struct task_struct *prev, struct task_struct *next)  __attribute__((regparm(3))) ;


# 31 "/usr/include/asm/system.h" 3


# 43 "/usr/include/asm/system.h" 3


# 56 "/usr/include/asm/system.h" 3




static inline unsigned long _get_base(char * addr)
{
	unsigned long __base;
	__asm__("movb %3,%%dh\n\t"
		"movb %2,%%dl\n\t"
		"shll $16,%%edx\n\t"
		"movw %1,%%dx"
		:"=&d" (__base)
		:"m" (*((addr)+2)),
		 "m" (*((addr)+4)),
		 "m" (*((addr)+7)));
	return __base;
}



 




# 96 "/usr/include/asm/system.h" 3

 
















static inline unsigned long get_limit(unsigned long segment)
{
	unsigned long __limit;
	__asm__("lsll %1,%0"
		:"=r" (__limit):"r" (segment));
	return __limit+1;
}






struct __xchg_dummy { unsigned long a[100]; };


 


static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
{
	switch (size) {
		case 1:
			__asm__("xchgb %b0,%1"
				:"=q" (x)
				:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
				:"memory");
			break;
		case 2:
			__asm__("xchgw %w0,%1"
				:"=r" (x)
				:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
				:"memory");
			break;
		case 4:
			__asm__("xchgl %0,%1"
				:"=r" (x)
				:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
				:"memory");
			break;
	}
	return x;
}

 

















 








# 196 "/usr/include/asm/system.h" 3









 



void disable_hlt(void);
void enable_hlt(void);


# 31 "/usr/include/asm/semaphore.h" 2 3


# 1 "/usr/include/asm/spinlock.h" 1 3









 





  typedef struct { } spinlock_t;
  


















# 80 "/usr/include/asm/spinlock.h" 3


 












  typedef struct { } rwlock_t;
  























# 253 "/usr/include/asm/spinlock.h" 3


# 33 "/usr/include/asm/semaphore.h" 2 3


struct semaphore {
	atomic_t count;
	int waking;
	struct wait_queue * wait;
};




  __attribute__((regparm(0)))  void __down_failed(void  );
  __attribute__((regparm(0)))  int  __down_failed_interruptible(void   );
  __attribute__((regparm(0)))  int  __down_failed_trylock(void   );
  __attribute__((regparm(0)))  void __up_wakeup(void  );

  __attribute__((regparm(0)))  void __down(struct semaphore * sem);
  __attribute__((regparm(0)))  int  __down_interruptible(struct semaphore * sem);
  __attribute__((regparm(0)))  int  __down_trylock(struct semaphore * sem);
  __attribute__((regparm(0)))  void __up(struct semaphore * sem);

extern spinlock_t semaphore_wake_lock;



 




extern inline void down(struct semaphore * sem)
{
	__asm__ __volatile__(
		"# atomic down operation\n\t"



		"decl (%0)\n\t"      
		"js 2f\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __down_failed\n\t"
		"jmp 1b\n"
		".previous"
		: 
		:"c" (sem)
		:"memory");
}

extern inline int down_interruptible(struct semaphore * sem)
{
	int result;

	__asm__ __volatile__(
		"# atomic interruptible down operation\n\t"



		"decl (%1)\n\t"      
		"js 2f\n\t"
		"xorl %0,%0\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __down_failed_interruptible\n\t"
		"jmp 1b\n"
		".previous"
		:"=a" (result)
		:"c" (sem)
		:"memory");
	return result;
}

extern inline int down_trylock(struct semaphore * sem)
{
	int result;

	__asm__ __volatile__(
		"# atomic interruptible down operation\n\t"



		"decl (%1)\n\t"      
		"js 2f\n\t"
		"xorl %0,%0\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __down_failed_trylock\n\t"
		"jmp 1b\n"
		".previous"
		:"=a" (result)
		:"c" (sem)
		:"memory");
	return result;
}

 





extern inline void up(struct semaphore * sem)
{
	__asm__ __volatile__(
		"# atomic up operation\n\t"



		"incl (%0)\n\t"      
		"jle 2f\n"
		"1:\n"
		".section .text.lock,\"ax\"\n"
		"2:\tcall __up_wakeup\n\t"
		"jmp 1b\n"
		".previous"
		: 
		:"c" (sem)
		:"memory");
}


# 164 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/asm/byteorder.h" 1 3







 




static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
{

	__asm__("bswap %0" : "=r" (x) : "0" (x));







	return x;
}

static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
{
	__asm__("xchgb %b0,%h0"		  		: "=q" (x) 		:  "0" (x)); 		return x;



}











# 1 "/usr/include/linux/byteorder/little_endian.h" 1 3










# 1 "/usr/include/linux/byteorder/swab.h" 1 3



 













 













# 41 "/usr/include/linux/byteorder/swab.h" 3

 

































 






















extern __inline__ __const__ __u16 __fswab16(__u16 x)
{
	return ___arch__swab16( x ) ;
}
extern __inline__ __u16 __swab16p(__u16 *x)
{
	return (__builtin_constant_p((__u16)( *( x ) )) ? ((__u16)( (((__u16)( ( *( x ) ) ) & (__u16)0x00ffU) << 8) | (((__u16)( ( *( x ) ) ) & (__u16)0xff00U) >> 8) ))  : __fswab16(( *( x ) )))  ;
}
extern __inline__ void __swab16s(__u16 *addr)
{
	do { *( addr ) = __swab16p(( addr )); } while (0) ;
}

extern __inline__ __const__ __u32 __fswab32(__u32 x)
{
	return ___arch__swab32( x ) ;
}
extern __inline__ __u32 __swab32p(__u32 *x)
{
	return (__builtin_constant_p((__u32)( *( x ) )) ? ((__u32)( (((__u32)( ( *( x ) ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( *( x ) ) ) & (__u32)0x0000ff00UL) <<  8) | (((__u32)( ( *( x ) ) ) & (__u32)0x00ff0000UL) >>  8) | (((__u32)( ( *( x ) ) ) & (__u32)0xff000000UL) >> 24) ))  : __fswab32(( *( x ) )))  ;
}
extern __inline__ void __swab32s(__u32 *addr)
{
	do { *( addr ) = __swab32p(( addr )); } while (0) ;
}


extern __inline__ __const__ __u64 __fswab64(__u64 x)
{

	__u32 h = x >> 32;
        __u32 l = x & ((1ULL<<32)-1);
        return (((__u64)(__builtin_constant_p((__u32)( l )) ? ((__u32)( (((__u32)( ( l ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( l ) ) & (__u32)0x0000ff00UL) <<  8) | (((__u32)( ( l ) ) & (__u32)0x00ff0000UL) >>  8) | (((__u32)( ( l ) ) & (__u32)0xff000000UL) >> 24) ))  : __fswab32(( l ))) ) << 32) | ((__u64)((__builtin_constant_p((__u32)( h )) ? ((__u32)( (((__u32)( ( h ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( h ) ) & (__u32)0x0000ff00UL) <<  8) | (((__u32)( ( h ) ) & (__u32)0x00ff0000UL) >>  8) | (((__u32)( ( h ) ) & (__u32)0xff000000UL) >> 24) ))  : __fswab32(( h ))) ));



}
extern __inline__ __u64 __swab64p(__u64 *x)
{
	return (__builtin_constant_p((__u64)( *( x ) )) ? ((__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) ))  : __fswab64(( *( x ) )))  ;
}
extern __inline__ void __swab64s(__u64 *addr)
{
	do { *( addr ) = __swab64p(( addr )); } while (0) ;
}















# 11 "/usr/include/linux/byteorder/little_endian.h" 2 3











































# 1 "/usr/include/linux/byteorder/generic.h" 1 3



 




































 









































 










































 


















 




extern __u32			ntohl(__u32);
extern __u32			htonl(__u32);




extern unsigned short int	ntohs(unsigned short int);
extern unsigned short int	htons(unsigned short int);























# 54 "/usr/include/linux/byteorder/little_endian.h" 2 3



# 45 "/usr/include/asm/byteorder.h" 2 3



# 165 "/usr/include/linux/fs.h" 2 3



extern void update_atime (struct inode *inode);


extern void buffer_init(unsigned long);
extern void inode_init(void);
extern void file_table_init(void);
extern void dcache_init(void);

typedef char buffer_block[(1<< 10 ) ];

 






 











struct buffer_head {
	 
	struct buffer_head * b_next;	 
	unsigned long b_blocknr;	 
	unsigned long b_size;		 
	kdev_t b_dev;			 
	kdev_t b_rdev;			 
	unsigned long b_rsector;	 
	struct buffer_head * b_this_page;	 
	unsigned long b_state;		 
	struct buffer_head * b_next_free;
	unsigned int b_count;		 

	 
	char * b_data;			 
	unsigned int b_list;		 
	unsigned long b_flushtime;       

	struct wait_queue * b_wait;
	struct buffer_head ** b_pprev;		 
	struct buffer_head * b_prev_free;	 
	struct buffer_head * b_reqnext;		 

	 


	void (*b_end_io)(struct buffer_head *bh, int uptodate);
	void *b_dev_id;
};

typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
void init_buffer(struct buffer_head *bh, kdev_t dev, int block,
		 bh_end_io_t *handler, void *dev_id);

static inline int buffer_uptodate(struct buffer_head * bh)
{
	return (__builtin_constant_p( 0  ) ? __constant_test_bit(( 0  ),(  &bh->b_state )) : __test_bit(( 0  ),(  &bh->b_state ))) ;
}	

static inline int buffer_dirty(struct buffer_head * bh)
{
	return (__builtin_constant_p( 1  ) ? __constant_test_bit(( 1  ),(  &bh->b_state )) : __test_bit(( 1  ),(  &bh->b_state ))) ;
}

static inline int buffer_locked(struct buffer_head * bh)
{
	return (__builtin_constant_p( 2  ) ? __constant_test_bit(( 2  ),(  &bh->b_state )) : __test_bit(( 2  ),(  &bh->b_state ))) ;
}

static inline int buffer_req(struct buffer_head * bh)
{
	return (__builtin_constant_p( 3  ) ? __constant_test_bit(( 3  ),(  &bh->b_state )) : __test_bit(( 3  ),(  &bh->b_state ))) ;
}

static inline int buffer_protected(struct buffer_head * bh)
{
	return (__builtin_constant_p( 6  ) ? __constant_test_bit(( 6  ),(  &bh->b_state )) : __test_bit(( 6  ),(  &bh->b_state ))) ;
}




# 1 "/usr/include/linux/pipe_fs_i.h" 1 3



struct pipe_inode_info {
	struct wait_queue * wait;
	char * base;
	unsigned int start;
	unsigned int lock;
	unsigned int rd_openers;
	unsigned int wr_openers;
	unsigned int readers;
	unsigned int writers;
};





















# 259 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/minix_fs_i.h" 1 3



 


struct minix_inode_info {
	union {
		__u16 i1_data[16];
		__u32 i2_data[16];
	} u;
};


# 260 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ext2_fs_i.h" 1 3
 

















 


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	i_version;
	__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;	 
};


# 261 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hpfs_fs_i.h" 1 3



struct hpfs_inode_info {
	ino_t i_parent_dir;	 
	unsigned i_dno;		 
	unsigned i_dpos;	 
	unsigned i_dsubdno;	 
	unsigned i_file_sec;	 
	unsigned i_disk_sec;	 
	unsigned i_n_secs;	 
	unsigned i_conv : 2;	 
};











# 262 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ntfs_fs_i.h" 1 3



 
struct ntfs_attribute;
struct ntfs_sb_info;

 


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 __kernel_uid_t ntfs_uid_t;



typedef __kernel_gid_t ntfs_gid_t;



typedef __kernel_size_t ntfs_size_t;



typedef __kernel_time_t ntfs_time_t;


 


typedef unsigned short     ntfs_wchar_t;

 


typedef unsigned long long ntfs_offset_t;

 


typedef unsigned long long ntfs_time64_t;

 


typedef unsigned int ntfs_cluster_t;


 
struct ntfs_inode_info{
	struct ntfs_sb_info *vol;
	int i_number;                 
	unsigned sequence_number;
	unsigned char* attr;          
	int attr_count;               
	struct ntfs_attribute *attrs;
	int record_count;             
	 

	int *records;
	union{
		struct{
			int recordsize;
			int clusters_per_record;
		}index;
	} u;	
};


# 263 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/msdos_fs_i.h" 1 3







 



struct msdos_inode_info {
	 













	struct pipe_inode_info reserved;
	int i_start;	 
	int i_logstart;	 
	int i_attrs;	 
	int i_ctime_ms;	 
	int i_binary;	 
	int i_location;	 
	struct inode *i_fat_inode;	 
	struct list_head i_fat_hash;	 
	off_t i_last_pos; 
};


# 264 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/umsdos_fs_i.h" 1 3










 





































struct dir_locking_info {
	struct wait_queue *p;
	short int looking;	 
	short int creating;	 



	long pid;		 
	 
};

struct umsdos_inode_info {
	union {
		struct msdos_inode_info msdos_info;
		struct pipe_inode_info pipe_info;
		struct dir_locking_info dir_info;
	} u;
	int i_patched;			 
	int i_is_hlink;			 
	unsigned long i_emd_owner;	 
	off_t pos;			 
	 
	struct dentry *i_emd_dentry;	 
	unsigned long i_emd_dir;	 
};


# 265 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/iso_fs_i.h" 1 3



 


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;
};


# 266 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/nfs_fs_i.h" 1 3



# 1 "/usr/include/linux/nfs.h" 1 3
 





# 1 "/usr/include/linux/sunrpc/msg_prot.h" 1 3
 












enum rpc_auth_flavor {
	RPC_AUTH_NULL  = 0,
	RPC_AUTH_UNIX  = 1,
	RPC_AUTH_SHORT = 2,
	RPC_AUTH_DES   = 3,
	RPC_AUTH_KRB   = 4,
};

enum rpc_msg_type {
	RPC_CALL = 0,
	RPC_REPLY = 1
};

enum rpc_reply_stat {
	RPC_MSG_ACCEPTED = 0,
	RPC_MSG_DENIED = 1
};

enum rpc_accept_stat {
	RPC_SUCCESS = 0,
	RPC_PROG_UNAVAIL = 1,
	RPC_PROG_MISMATCH = 2,
	RPC_PROC_UNAVAIL = 3,
	RPC_GARBAGE_ARGS = 4,
	RPC_SYSTEM_ERR = 5
};

enum rpc_reject_stat {
	RPC_MISMATCH = 0,
	RPC_AUTH_ERROR = 1
};

enum rpc_auth_stat {
	RPC_AUTH_OK = 0,
	RPC_AUTH_BADCRED = 1,
	RPC_AUTH_REJECTEDCRED = 2,
	RPC_AUTH_BADVERF = 3,
	RPC_AUTH_REJECTEDVERF = 4,
	RPC_AUTH_TOOWEAK = 5
};









# 7 "/usr/include/linux/nfs.h" 2 3



















	
enum nfs_stat {
	NFS_OK = 0,
	NFSERR_PERM = 1,
	NFSERR_NOENT = 2,
	NFSERR_IO = 5,
	NFSERR_NXIO = 6,
	NFSERR_EAGAIN = 11,
	NFSERR_ACCES = 13,
	NFSERR_EXIST = 17,
	NFSERR_XDEV = 18,
	NFSERR_NODEV = 19,
	NFSERR_NOTDIR = 20,
	NFSERR_ISDIR = 21,
	NFSERR_INVAL = 22,	 
	NFSERR_FBIG = 27,
	NFSERR_NOSPC = 28,
	NFSERR_ROFS = 30,
	NFSERR_OPNOTSUPP = 45,
	NFSERR_NAMETOOLONG = 63,
	NFSERR_NOTEMPTY = 66,
	NFSERR_DQUOT = 69,
	NFSERR_STALE = 70,
	NFSERR_WFLUSH = 99
};

enum nfs_ftype {
	NFNON = 0,
	NFREG = 1,
	NFDIR = 2,
	NFBLK = 3,
	NFCHR = 4,
	NFLNK = 5,
	NFSOCK = 6,
	NFBAD = 7,
	NFFIFO = 8
};

struct nfs_fh {
	char			data[32 ];
};






















 










extern struct rpc_program	nfs_program;
extern struct rpc_stat		nfs_rpcstat;

struct nfs_time {
	__u32			seconds;
	__u32			useconds;
};

struct nfs_fattr {
	enum nfs_ftype		type;
	__u32			mode;
	__u32			nlink;
	__u32			uid;
	__u32			gid;
	__u32			size;
	__u32			blocksize;
	__u32			rdev;
	__u32			blocks;
	__u32			fsid;
	__u32			fileid;
	struct nfs_time		atime;
	struct nfs_time		mtime;
	struct nfs_time		ctime;
};

struct nfs_sattr {
	__u32			mode;
	__u32			uid;
	__u32			gid;
	__u32			size;
	struct nfs_time		atime;
	struct nfs_time		mtime;
};

struct nfs_fsinfo {
	__u32			tsize;
	__u32			bsize;
	__u32			blocks;
	__u32			bfree;
	__u32			bavail;
};

struct nfs_writeargs {
	struct nfs_fh *		fh;
	__u32			offset;
	__u32			count;
	const void *		buffer;
};

# 223 "/usr/include/linux/nfs.h" 3




# 4 "/usr/include/linux/nfs_fs_i.h" 2 3



 


struct nfs_inode_info {
	 




	struct pipe_inode_info	pipeinfo;

	 


	unsigned short		flags;

	 
















	unsigned long		read_cache_jiffies;
	unsigned long		read_cache_mtime;
	unsigned long		attrtimeo;

	 




	struct nfs_wreq *	writeback;
};

 





 


struct nfs_lock_info {
	u32		state;
	u32		flags;
};

 





# 267 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/sysv_fs_i.h" 1 3



 


struct sysv_inode_info {
	u32 i_data[10+1+1+1];	 




};



# 268 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/affs_fs_i.h" 1 3



# 1 "/usr/include/linux/a.out.h" 1 3







# 1 "/usr/include/asm/a.out.h" 1 3



struct exec
{
  unsigned long a_info;		 
  unsigned a_text;		 
  unsigned a_data;		 
  unsigned a_bss;		 
  unsigned a_syms;		 
  unsigned a_entry;		 
  unsigned a_trsize;		 
  unsigned a_drsize;		 
};












# 8 "/usr/include/linux/a.out.h" 2 3




 
enum machine_type {



  M_OLDSUN2 = 0,




  M_68010 = 1,




  M_68020 = 2,




  M_SPARC = 3,

   
  M_386 = 100,
  M_MIPS1 = 151,	 
  M_MIPS2 = 152		 
};





















 

 

 

 



 





































 




 





































 





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;
};































 









 










 





 



 




struct relocation_info
{
   
  int r_address;
   
  unsigned int r_symbolnum:24;
   


  unsigned int r_pcrel:1;
   

  unsigned int r_length:2;
   





  unsigned int r_extern:1;
   






  unsigned int r_pad:4;

};




# 4 "/usr/include/linux/affs_fs_i.h" 2 3

# 1 "/usr/include/linux/time.h" 1 3



# 1 "/usr/include/asm/param.h" 1 3




















# 4 "/usr/include/linux/time.h" 2 3





struct timespec {
	time_t	tv_sec;		 
	long	tv_nsec;	 
};


 













static __inline__ unsigned long
timespec_to_jiffies(struct timespec *value)
{
	unsigned long sec = value->tv_sec;
	long nsec = value->tv_nsec;

	if (sec >= (((~0UL >> 1)-1)  / 100 ))
		return ((~0UL >> 1)-1) ;
	nsec += 1000000000L / 100  - 1;
	nsec /= 1000000000L / 100 ;
	return 100  * sec + nsec;
}

static __inline__ void
jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
{
	value->tv_nsec = (jiffies % 100 ) * (1000000000L / 100 );
	value->tv_sec = jiffies / 100 ;
}
 
struct timeval {
	time_t		tv_sec;		 
	suseconds_t	tv_usec;	 
};

struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};




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 *);








 







struct  itimerspec {
        struct  timespec it_interval;     
        struct  timespec it_value;        
};

struct	itimerval {
	struct	timeval it_interval;	 
	struct	timeval it_value;	 
};


# 5 "/usr/include/linux/affs_fs_i.h" 2 3





struct key_cache {
	struct timeval	 kc_lru_time;	 
	s32	 kc_first;		 
	s32	 kc_last;		 
	s32	 kc_this_key;		 
	int	 kc_this_seq;		 
	s32	 kc_next_key;		 
	s32	 kc_keys[73 ];	 
};



struct ext_cache {
	struct key_cache  kc[4];	 
	s32	 ec[((1UL << 12 )  - 4 * sizeof(struct key_cache) - 4) / 4 ];		 
	int	 max_ext;		 
};

 


struct affs_inode_info {
	u32	 i_protect;			 
	s32	 i_parent;			 
	s32	 i_original;			 
	s32	 i_data[16 ];	 
	struct ext_cache *i_ec;			 
	int	 i_cache_users;			 
	int	 i_lastblock;			 
	short	 i_pa_cnt;			 
	short	 i_pa_next;			 
	short	 i_pa_last;			 
	short	 i_zone;			 
	unsigned char i_hlink;			 
	unsigned char i_pad;
};


# 269 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ufs_fs_i.h" 1 3
 














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_uid;
	__u32	i_gid;
	__u32	i_oeftflag;
	__u16	i_osync;
	__u32	i_lastfrag;
};


# 270 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/efs_fs_i.h" 1 3
 










typedef	int32_t		efs_block_t;
typedef uint32_t	efs_ino_t;



 


typedef union extent_u {
	unsigned char raw[8];
	struct extent_s {
		unsigned int	ex_magic:8;	 
		unsigned int	ex_bn:24;	 
		unsigned int	ex_length:8;	 
		unsigned int	ex_offset:24;	 
	} cooked;
} efs_extent;

typedef struct edevs {
	short		odev;
	short		dev_filler;	 
	unsigned int	ndev;		 
} efs_devs;

 



struct	efs_dinode {
	u_short		di_mode;	 
	short		di_nlink;	 
	u_short		di_uid;		 
	u_short		di_gid;		 
	int32_t		di_size;	 
	int32_t		di_atime;	 
	int32_t		di_mtime;	 
	int32_t		di_ctime;	 
	uint32_t	di_gen;		 
	short		di_numextents;	 
	u_char		di_version;	 
	u_char		di_spare;	 
	union di_addr {
		efs_extent	di_extents[12 ];
		efs_devs	di_dev;	 
	} di_u;
};

 
struct efs_inode_info {
	int		numextents;
	int		lastextent;

	efs_extent	extents[12 ];
};



# 271 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/coda_fs_i.h" 1 3
 












# 1 "/usr/include/linux/coda.h" 1 3
 




 
















 




























 











 








# 98 "/usr/include/linux/coda.h" 3











typedef unsigned long long u_quad_t;














typedef signed char	      int8_t;
typedef unsigned char	    u_int8_t;
typedef short		     int16_t;
typedef unsigned short	   u_int16_t;
typedef int		     int32_t;
typedef unsigned int	   u_int32_t;



 






 








  



 










struct venus_dirent {
        unsigned long	d_fileno;		 
        unsigned short	d_reclen;		 
        unsigned char 	d_type;			 
        unsigned char	d_namlen;		 
        char		d_name[255  + 1]; 
};




 












 









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 ) 
		return 0; 
	if (fid->Vnode == 0xfffffffe || fid->Vnode == 0xffffffff)
		return ((fid->Volume << 20) | (fid->Unique & 0xfffff));
	else
		return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20));
}
	








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;  
    vgid_t cr_groupid,     cr_egid, cr_sgid, cr_fsgid;  
};




 


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;	 
	u_short		va_mode;	 
	short		va_nlink;	 
	vuid_t		va_uid;		 
	vgid_t		va_gid;		 
	long		va_fileid;	 
	u_quad_t	va_size;	 
	long		va_blocksize;	 
	struct timespec	va_atime;	 
	struct timespec	va_mtime;	 
	struct timespec	va_ctime;	 
	u_long		va_gen;		 
	u_long		va_flags;	 
	u_quad_t 	        va_rdev;	 
	u_quad_t	va_bytes;	 
	u_quad_t	va_filerev;	 
};



 
struct coda_statfs {
    int32_t f_blocks;
    int32_t f_bfree;
    int32_t f_bavail;
    int32_t f_files;
    int32_t f_ffree;
};

 


















































	 


 


struct coda_in_hdr {
    unsigned long opcode;
    unsigned long unique;	     
    u_short pid;		     
    u_short pgid;		     
    u_short sid;                     
    struct coda_cred cred;	     
};

 
struct coda_out_hdr {
    unsigned long opcode;
    unsigned long unique;	
    unsigned long result;
};

 
struct coda_root_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
};

struct coda_root_in {
    struct coda_in_hdr in;
};

 
 

 
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;
};


 
struct coda_close_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	flags;
};

struct coda_close_out {
    struct coda_out_hdr out;
};

 
struct coda_ioctl_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
    int	cmd;
    int	len;
    int	rwflag;
    char *data;			 
};

struct coda_ioctl_out {
    struct coda_out_hdr oh;
    int	len;
    caddr_t	data;		 
};


 
struct coda_getattr_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

struct coda_getattr_out {
    struct coda_out_hdr oh;
    struct coda_vattr attr;
};


 
struct coda_setattr_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
    struct coda_vattr attr;
};

struct coda_setattr_out {
    struct coda_out_hdr out;
};

 
struct coda_access_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	flags;
};

struct coda_access_out {
    struct coda_out_hdr out;
};


 



 
struct  coda_lookup_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int         name;		 
    int         flags;	
};

struct coda_lookup_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    int	vtype;
};


 
struct coda_create_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
    struct coda_vattr attr;
    int excl;
    int mode;
    int 	name;		 
};

struct coda_create_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    struct coda_vattr attr;
};


 
struct coda_remove_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int name;		 
};

struct coda_remove_out {
    struct coda_out_hdr out;
};

 
struct coda_link_in {
    struct coda_in_hdr ih;
    ViceFid sourceFid;           
    ViceFid destFid;             
    int tname;		 
};

struct coda_link_out {
    struct coda_out_hdr out;
};


 
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;
};

 
struct coda_mkdir_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    struct coda_vattr attr;
    int	   name;		 
};

struct coda_mkdir_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    struct coda_vattr attr;
};


 
struct coda_rmdir_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int name;		 
};

struct coda_rmdir_out {
    struct coda_out_hdr out;
};

 
struct coda_readdir_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	count;
    int	offset;
};

struct coda_readdir_out {
    struct coda_out_hdr oh;
    int	size;
    caddr_t	data;		 
};

 
struct coda_symlink_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;           
    int srcname;
    struct coda_vattr attr;
    int tname;
};

struct coda_symlink_out {
    struct coda_out_hdr out;
};

 
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;		 
};


 
struct coda_fsync_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

struct coda_fsync_out {
    struct coda_out_hdr out;
};

 
struct coda_inactive_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

 
struct coda_vget_in {
    struct coda_in_hdr ih;
    ViceFid VFid;
};

struct coda_vget_out {
    struct coda_out_hdr oh;
    ViceFid VFid;
    int	vtype;
};


 
 
 

 
 
struct coda_purgeuser_out {
    struct coda_out_hdr oh;
    struct coda_cred cred;
};

 
 
struct coda_zapfile_out {  
    struct coda_out_hdr oh;
    ViceFid CodaFid;
};

 
 	
struct coda_zapdir_out {	  
    struct coda_out_hdr oh;
    ViceFid CodaFid;
};

 
 	
struct coda_zapvnode_out { 
    struct coda_out_hdr oh;
    struct coda_cred cred;
    ViceFid VFid;
};

 
 	
struct coda_purgefid_out { 
    struct coda_out_hdr oh;
    ViceFid CodaFid;
};

 
struct coda_rdwr_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	rwflag;
    int	count;
    int	offset;
    int	ioflag;
    caddr_t	data;		 	
};

struct coda_rdwr_out {
    struct coda_out_hdr oh;
    int	rwflag;
    int	count;
    caddr_t	data;	 
};


 
 	
struct coda_replace_out {  
    struct coda_out_hdr oh;
    ViceFid NewFid;
    ViceFid OldFid;
};

 
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;
};

 
struct coda_statfs_in {
    struct coda_in_hdr in;
};

struct coda_statfs_out {
    struct coda_out_hdr oh;
    struct coda_statfs stat;
};

 






union inputArgs {
    struct coda_in_hdr ih;		 
    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_readdir_in coda_readdir;
    struct coda_symlink_in coda_symlink;
    struct coda_readlink_in coda_readlink;
    struct coda_fsync_in coda_fsync;
    struct coda_inactive_in coda_inactive;
    struct coda_vget_in coda_vget;
    struct coda_rdwr_in coda_rdwr;
    struct coda_open_by_path_in coda_open_by_path;
    struct coda_statfs_in coda_statfs;
};

union outputArgs {
    struct coda_out_hdr oh;		 
    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_readdir_out coda_readdir;
    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_rdwr_out coda_rdwr;
    struct coda_replace_out coda_replace;
    struct coda_open_by_path_out coda_open_by_path;
    struct coda_statfs_out coda_statfs;
};    

union coda_downcalls {
     
     
    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;
};


 




struct ViceIoctl {
        caddr_t in, out;         
        short in_size;           
        short out_size;          
};

struct PioctlData {
        const char *path;
        int follow;
        struct ViceIoctl vi;
};















# 14 "/usr/include/linux/coda_fs_i.h" 2 3





 


struct coda_inode_info {
	 




	struct pipe_inode_info  pipeinfo;

        struct ViceFid     c_fid;	 
        u_short	           c_flags;      
        u_short	           c_ocount;     
        u_short            c_owrite;     
        u_short            c_mmcount;    
        struct inode      *c_ovp;        
        struct list_head   c_cnhead;     
	struct list_head   c_volrootlist;  
        struct inode      *c_vnode;      
        int                c_magic;      
};

 







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 *);



# 272 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/romfs_fs_i.h" 1 3



 

struct romfs_inode_info {
	unsigned long i_metasize;	 
	unsigned long i_dataoffset;	 
};


# 273 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/smb_fs_i.h" 1 3
 













 


struct smb_inode_info {

	 



        unsigned int open;	 
	__u16 fileid;		 
	__u16 attr;		 

	__u16 access;		 
	__u16 cache_valid;	 
	unsigned long oldmtime;	 
	unsigned long closed;	 
};



# 274 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hfs_fs_i.h" 1 3
 












 




struct hfs_inode_info {
	int				magic;      

	struct hfs_cat_entry		*entry;

	 
	struct hfs_fork 		*fork;
	int				convert;

	 
	ino_t				file_type;
	char				dir_size;

	 
	const struct hfs_hdr_layout	*default_layout;
	struct hfs_hdr_layout		*layout;

	 
	int                             tz_secondswest;

         
        void (*d_drop_op)(struct dentry *, const ino_t);
};


# 275 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/adfs_fs_i.h" 1 3
 








 


struct adfs_inode_info {
	unsigned long	file_id;		 
};


# 276 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/qnx4_fs_i.h" 1 3
 












# 1 "/usr/include/linux/qnxtypes.h" 1 3
 













typedef unsigned short _nxtnt_t;
typedef unsigned char _ftype_t;

typedef struct {
	long xtnt_blk;
	long xtnt_size;
} _xtnt_t;

typedef unsigned short muid_t;
typedef unsigned short mgid_t;
typedef unsigned long qnx_off_t;
typedef unsigned short qnx_nlink_t;


# 14 "/usr/include/linux/qnx4_fs_i.h" 2 3


 


struct qnx4_inode_info {
	char i_reserved[16];	 
	off_t i_size;		 
	_xtnt_t i_first_xtnt;	 
	long i_xblk;		 
	time_t i_ftime;		 
	time_t i_mtime;		 
	time_t i_atime;		 
	time_t i_ctime;		 
	_nxtnt_t i_num_xtnts;	 
	mode_t i_mode;		 
	muid_t i_uid;		 
	mgid_t i_gid;		 
	nlink_t i_nlink;	 
	char i_zero[4];		 
	_ftype_t i_type;	 
	unsigned char i_status;	 
};


# 277 "/usr/include/linux/fs.h" 2 3


 















 








struct iattr {
	unsigned int	ia_valid;
	umode_t		ia_mode;
	uid_t		ia_uid;
	gid_t		ia_gid;
	off_t		ia_size;
	time_t		ia_atime;
	time_t		ia_mtime;
	time_t		ia_ctime;
	unsigned int	ia_attr_flags;
};

 








 


# 1 "/usr/include/linux/quota.h" 1 3
 








































# 1 "/usr/include/linux/errno.h" 1 3



# 1 "/usr/include/asm/errno.h" 1 3




































































































































# 4 "/usr/include/linux/errno.h" 2 3




 








# 42 "/usr/include/linux/quota.h" 2 3


 





 





 















 











extern int nr_dquots, nr_free_dquots;
extern int max_dquots;
extern int dquot_root_squash;




 



















 




struct dqblk {
	__u32 dqb_bhardlimit;	 
	__u32 dqb_bsoftlimit;	 
	__u32 dqb_curblocks;	 
	__u32 dqb_ihardlimit;	 
	__u32 dqb_isoftlimit;	 
	__u32 dqb_curinodes;	 
	time_t dqb_btime;		 
	time_t dqb_itime;		 
};

 













struct dqstats {
	__u32 lookups;
	__u32 drops;
	__u32 reads;
	__u32 writes;
	__u32 cache_hits;
	__u32 allocated_dquots;
	__u32 free_dquots;
	__u32 syncs;
};



 












struct dquot {
	struct dquot *dq_next;		 
	struct dquot **dq_pprev;
	struct list_head dq_free;	 
	struct dquot *dq_hash_next;	 
	struct dquot **dq_hash_pprev;	 
	struct wait_queue *dq_wait;	 
	int dq_count;			 

	 
	struct vfsmount *dq_mnt;	 
	unsigned int dq_id;		 
	kdev_t dq_dev;			 
	short dq_type;			 
	short dq_flags;			 
	unsigned long dq_referenced;	 

	struct dqblk dq_dqb;		 
};



 










# 208 "/usr/include/linux/quota.h" 3


# 328 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/mount.h" 1 3
 















struct quota_mount_options
{
	unsigned int flags;			 
	struct semaphore dqio_sem;		 
	struct semaphore dqoff_sem;		 
	struct file *files[2 ];		 
	time_t inode_expire[2 ];		 
	time_t block_expire[2 ];		 
	char rsquash[2 ];		 
};

struct vfsmount
{
  kdev_t mnt_dev;			 
  char *mnt_devname;			 
  char *mnt_dirname;			 
  unsigned int mnt_flags;		 
  struct super_block *mnt_sb;		 
  struct quota_mount_options mnt_dquot;	 
  struct vfsmount *mnt_next;		 
};

struct vfsmount *lookup_vfsmnt(kdev_t dev);

 


 



# 329 "/usr/include/linux/fs.h" 2 3


struct inode {
	struct list_head	i_hash;
	struct list_head	i_list;
	struct list_head	i_dentry;

	unsigned long		i_ino;
	unsigned int		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;
	off_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;
	unsigned long		i_nrpages;
	struct semaphore	i_sem;
	struct semaphore	i_atomic_write;
	struct inode_operations	*i_op;
	struct super_block	*i_sb;
	struct wait_queue	*i_wait;
	struct file_lock	*i_flock;
	struct vm_area_struct	*i_mmap;
	struct page		*i_pages;
	struct dquot		*i_dquot[2 ];

	unsigned long		i_state;

	unsigned int		i_flags;
	unsigned char		i_pipe;
	unsigned char		i_sock;

	int			i_writecount;
	unsigned int		i_attr_flags;
	__u32			i_generation;
	union {
		struct pipe_inode_info		pipe_i;
		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 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 socket			socket_i;
		void				*generic_ip;
	} u;
};

 




extern void __mark_inode_dirty(struct inode *);
static inline void mark_inode_dirty(struct inode *inode)
{
	if (!(inode->i_state & 1 ))
		__mark_inode_dirty(inode);
}

struct fown_struct {
	int pid;		 
	uid_t uid, euid;	 
	int signum;		 
};

struct file {
	struct file		*f_next, **f_pprev;
	struct dentry		*f_dentry;
	struct file_operations	*f_op;
	mode_t			f_mode;
	loff_t			f_pos;
	unsigned int 		f_count, f_flags;
	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;

	 
	void			*private_data;
};

extern int init_private_file(struct file *, struct dentry *, int);







 






typedef struct files_struct *fl_owner_t;

struct file_lock {
	struct file_lock *fl_next;	 
	struct file_lock *fl_nextlink;	 
	struct file_lock *fl_prevlink;	 
	struct file_lock *fl_nextblock;  
	struct file_lock *fl_prevblock;
	fl_owner_t fl_owner;
	unsigned int fl_pid;
	struct wait_queue *fl_wait;
	struct file *fl_file;
	unsigned char fl_flags;
	unsigned char fl_type;
	off_t fl_start;
	off_t fl_end;

	void (*fl_notify)(struct file_lock *);	 

	union {
		struct nfs_lock_info	nfs_fl;
	} fl_u;
};

extern struct file_lock			*file_lock_table;

# 1 "/usr/include/linux/fcntl.h" 1 3



# 1 "/usr/include/asm/fcntl.h" 1 3



 

































 


 




 



 






struct flock {
	short l_type;
	short l_whence;
	off_t l_start;
	off_t l_len;
	pid_t l_pid;
};


# 4 "/usr/include/linux/fcntl.h" 2 3



# 473 "/usr/include/linux/fs.h" 2 3


extern int fcntl_getlk(unsigned int fd, struct flock *l);
extern int fcntl_setlk(unsigned int fd, unsigned int cmd, struct flock *l);

 
extern void locks_remove_posix(struct file *, fl_owner_t id);
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 *);

struct fasync_struct {
	int    magic;
	int    fa_fd;
	struct fasync_struct	*fa_next;  
	struct file 		*fa_file;
};



extern int fasync_helper(int, struct file *, int, struct fasync_struct **);

# 1 "/usr/include/linux/minix_fs_sb.h" 1 3



 


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;
};


# 497 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ext2_fs_sb.h" 1 3
 

















# 1 "/usr/include/linux/ext2_fs.h" 1 3
 



















 



 




 





 





 












 









 


 




 




 






























 













 


struct ext2_acl_header	 
{
	__u32	aclh_size;
	__u32	aclh_file_count;
	__u32	aclh_acle_count;
	__u32	aclh_first_acle;
};

struct ext2_acl_entry	 
{
	__u32	acle_size;
	__u16	acle_perms;	 
	__u16	acle_type;	 
	__u16	acle_tag;	 
	__u16	acle_pad1;
	__u32	acle_next;	 
					 
};

 


struct ext2_group_desc
{
	__u32	bg_block_bitmap;		 
	__u32	bg_inode_bitmap;		 
	__u32	bg_inode_table;		 
	__u16	bg_free_blocks_count;	 
	__u16	bg_free_inodes_count;	 
	__u16	bg_used_dirs_count;	 
	__u16	bg_pad;
	__u32	bg_reserved[3];
};

 













 








 










 




 	






 







 


struct ext2_inode {
	__u16	i_mode;		 
	__u16	i_uid;		 
	__u32	i_size;		 
	__u32	i_atime;	 
	__u32	i_ctime;	 
	__u32	i_mtime;	 
	__u32	i_dtime;	 
	__u16	i_gid;		 
	__u16	i_links_count;	 
	__u32	i_blocks;	 
	__u32	i_flags;	 
	union {
		struct {
			__u32  l_i_reserved1;
		} linux1;
		struct {
			__u32  h_i_translator;
		} hurd1;
		struct {
			__u32  m_i_reserved1;
		} masix1;
	} osd1;				 
	__u32	i_block[(((12   + 1)  + 1)  + 1) ]; 
	__u32	i_version;	 
	__u32	i_file_acl;	 
	__u32	i_dir_acl;	 
	__u32	i_faddr;	 
	union {
		struct {
			__u8	l_i_frag;	 
			__u8	l_i_fsize;	 
			__u16	i_pad1;
			__u32	l_i_reserved2[2];
		} linux2;
		struct {
			__u8	h_i_frag;	 
			__u8	h_i_fsize;	 
			__u16	h_i_mode_high;
			__u16	h_i_uid_high;
			__u16	h_i_gid_high;
			__u32	h_i_author;
		} hurd2;
		struct {
			__u8	m_i_frag;	 
			__u8	m_i_fsize;	 
			__u16	m_pad1;
			__u32	m_i_reserved2[2];
		} masix2;
	} osd2;				 
};


























 





 

















 





 







 


struct ext2_super_block {
	__u32	s_inodes_count;		 
	__u32	s_blocks_count;		 
	__u32	s_r_blocks_count;	 
	__u32	s_free_blocks_count;	 
	__u32	s_free_inodes_count;	 
	__u32	s_first_data_block;	 
	__u32	s_log_block_size;	 
	__s32	s_log_frag_size;	 
	__u32	s_blocks_per_group;	 
	__u32	s_frags_per_group;	 
	__u32	s_inodes_per_group;	 
	__u32	s_mtime;		 
	__u32	s_wtime;		 
	__u16	s_mnt_count;		 
	__s16	s_max_mnt_count;	 
	__u16	s_magic;		 
	__u16	s_state;		 
	__u16	s_errors;		 
	__u16	s_minor_rev_level; 	 
	__u32	s_lastcheck;		 
	__u32	s_checkinterval;	 
	__u32	s_creator_os;		 
	__u32	s_rev_level;		 
	__u16	s_def_resuid;		 
	__u16	s_def_resgid;		 
	 












	__u32	s_first_ino; 		 
	__u16   s_inode_size; 		 
	__u16	s_block_group_nr; 	 
	__u32	s_feature_compat; 	 
	__u32	s_feature_incompat; 	 
	__u32	s_feature_ro_compat; 	 
	__u8	s_uuid[16];		 
	char	s_volume_name[16]; 	 
	char	s_last_mounted[64]; 	 
	__u32	s_algorithm_usage_bitmap;  
	 



	__u8	s_prealloc_blocks;	 
	__u8	s_prealloc_dir_blocks;	 
	__u16	s_padding1;
	__u32	s_reserved[204];	 
};










 








 










 

























 





 




struct ext2_dir_entry {
	__u32	inode;			 
	__u16	rec_len;		 
	__u16	name_len;		 
	char	name[255 ];	 
};

 





struct ext2_dir_entry_2 {
	__u32	inode;			 
	__u16	rec_len;		 
	__u8	name_len;		 
	__u8	file_type;
	char	name[255 ];	 
};

 














 











 
extern long long ext2_max_sizes[];

 



 







 
extern int ext2_permission (struct inode *, int);

 
extern int ext2_group_sparse(int group);
extern int ext2_new_block (const struct inode *, unsigned long,
			   __u32 *, __u32 *, int *);
extern void ext2_free_blocks (const struct inode *, unsigned long,
			      unsigned long);
extern unsigned long ext2_count_free_blocks (struct super_block *);
extern void ext2_check_blocks_bitmap (struct super_block *);
extern struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb,
						    unsigned int block_group,
						    struct buffer_head ** bh);

 
extern unsigned long ext2_count_free (struct buffer_head *, unsigned);

 
extern int ext2_check_dir_entry (const char *, struct inode *,
				 struct ext2_dir_entry_2 *, struct buffer_head *,
				 unsigned long);

 
extern int ext2_read (struct inode *, struct file *, char *, int);
extern int ext2_write (struct inode *, struct file *, char *, int);

 
extern int ext2_sync_file (struct file *, struct dentry *);

 
extern struct inode * ext2_new_inode (const struct inode *, int, int *);
extern void ext2_free_inode (struct inode *);
extern unsigned long ext2_count_free_inodes (struct super_block *);
extern void ext2_check_inodes_bitmap (struct super_block *);

 
extern int ext2_bmap (struct inode *, int);

extern struct buffer_head * ext2_getblk (struct inode *, long, int, int *);
extern struct buffer_head * ext2_bread (struct inode *, int, int, int *);

extern int ext2_getcluster (struct inode * inode, long block);
extern void ext2_read_inode (struct inode *);
extern void ext2_write_inode (struct inode *);
extern void ext2_put_inode (struct inode *);
extern void ext2_delete_inode (struct inode *);
extern int ext2_sync_inode (struct inode *);
extern int ext2_notify_change(struct dentry *, struct iattr *);
extern void ext2_discard_prealloc (struct inode *);

 
extern int ext2_ioctl (struct inode *, struct file *, unsigned int,
		       unsigned long);

 
extern void ext2_release (struct inode *, struct file *);
extern struct dentry *ext2_lookup (struct inode *, struct dentry *);
extern int ext2_create (struct inode *,struct dentry *,int);
extern int ext2_mkdir (struct inode *,struct dentry *,int);
extern int ext2_rmdir (struct inode *,struct dentry *);
extern int ext2_unlink (struct inode *,struct dentry *);
extern int ext2_symlink (struct inode *,struct dentry *,const char *);
extern int ext2_link (struct dentry *, struct inode *, struct dentry *);
extern int ext2_mknod (struct inode *, struct dentry *, int, int);
extern int ext2_rename (struct inode *, struct dentry *,
			struct inode *, struct dentry *);

 
extern void ext2_error (struct super_block *, const char *, const char *, ...)
	__attribute__ ((format (printf, 3, 4)));
extern   void ext2_panic (struct super_block *, const char *,
				   const char *, ...)
	__attribute__ ((noreturn,  format (printf, 3, 4)));
extern void ext2_warning (struct super_block *, const char *, const char *, ...)
	__attribute__ ((format (printf, 3, 4)));
extern void ext2_put_super (struct super_block *);
extern void ext2_write_super (struct super_block *);
extern int ext2_remount (struct super_block *, int *, char *);
extern struct super_block * ext2_read_super (struct super_block *,void *,int);
extern int init_ext2_fs(void);
extern int ext2_statfs (struct super_block *, struct statfs *, int);

 
extern void ext2_truncate (struct inode *);

 



 
extern struct inode_operations ext2_dir_inode_operations;

 
extern struct inode_operations ext2_file_inode_operations;

 
extern struct inode_operations ext2_symlink_inode_operations;




# 19 "/usr/include/linux/ext2_fs_sb.h" 2 3


 



 



 


struct ext2_sb_info {
	unsigned long s_frag_size;	 
	unsigned long s_frags_per_block; 
	unsigned long s_inodes_per_block; 
	unsigned long s_frags_per_group; 
	unsigned long s_blocks_per_group; 
	unsigned long s_inodes_per_group; 
	unsigned long s_itb_per_group;	 
	unsigned long s_db_per_group;	 
	unsigned long s_desc_per_block;	 
	unsigned long s_groups_count;	 
	struct buffer_head * s_sbh;	 
	struct ext2_super_block * s_es;	 
	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;
	unsigned short s_resuid;
	unsigned short 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;
	int s_feature_compat;
	int s_feature_incompat;
	int s_feature_ro_compat;
};


# 498 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hpfs_fs_sb.h" 1 3



struct hpfs_sb_info {
	ino_t sb_root;			 
	unsigned sb_fs_size;		 
	unsigned sb_bitmaps;		 
	unsigned sb_dirband_size;	 
	unsigned sb_dmap;		 
	unsigned sb_n_free;		 
	unsigned sb_n_free_dnodes;	 
	uid_t sb_uid;			 
	gid_t sb_gid;			 
	umode_t sb_mode;		 
	unsigned sb_lowercase : 1;	 
	unsigned sb_conv : 2;		 
};















# 499 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ntfs_fs_sb.h" 1 3



struct ntfs_sb_info{
	 
	ntfs_uid_t uid;
	ntfs_gid_t gid;
	ntmode_t umask;
        unsigned int nct;
	void *nls_map;
	unsigned int ngt;
	 
	ntfs_size_t partition_bias;	 
	 
	ntfs_u32 at_standard_information;
	ntfs_u32 at_attribute_list;
	ntfs_u32 at_file_name;
	ntfs_u32 at_security_descriptor;
	ntfs_u32 at_data;
	ntfs_u32 at_index_root;
	ntfs_u32 at_index_allocation;
	ntfs_u32 at_bitmap;
	ntfs_u32 at_symlink;  
	 
	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;
	 
	unsigned char *mft;
	unsigned short *upcase;
	unsigned int upcase_length;
	 
	struct ntfs_inode_info *mft_ino;
	struct ntfs_inode_info *mftmirr;
	struct ntfs_inode_info *bitmap;
	struct super_block *sb;
};


# 500 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/msdos_fs_sb.h" 1 3


# 1 "/usr/include/linux/fat_cvf.h" 1 3





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,
                              int dirty_val);
  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);
  int (*cvf_smap) (struct inode *inode,int sector);
  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/include/linux/msdos_fs_sb.h" 2 3


 



struct fat_mount_options {
	uid_t fs_uid;
	gid_t fs_gid;
	unsigned short fs_umask;
	unsigned short codepage;   
	char *iocharset;           
	unsigned char name_check;  
	unsigned char conversion;  
	unsigned quiet:1,          
		 showexec:1,       
		 sys_immutable:1,  
		 dotsOK:1,         
		 isvfat:1,         
		 utf8:1,	   
		 unicode_xlate:1,  
		 posixfs:1,        
		 numtail:1,        
		 atari:1,          
		 fat32:1;	   
};

struct vfat_unicode {
	unsigned char uni1;
	unsigned char uni2;
};

struct msdos_sb_info {
	unsigned short cluster_size;  
	unsigned char fats,fat_bits;  
	unsigned short fat_start;
	unsigned long fat_length;     
	unsigned long dir_start;
	unsigned short dir_entries;   
	unsigned long data_start;     
	unsigned long clusters;       
	unsigned long root_cluster;   
	unsigned long fsinfo_offset;  
	struct wait_queue *fat_wait;
	int fat_lock;
	int prev_free;                
	int free_clusters;            
	struct fat_mount_options options;
	struct nls_table *nls_disk;   
	struct nls_table *nls_io;     
	struct cvf_format* cvf_format;
	void *dir_ops;		      
	void (*put_super_callback)(struct super_block *);
	void *private_data;	
};


# 501 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/iso_fs_sb.h" 1 3



 


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;
	
	unsigned char s_high_sierra;  
	unsigned char s_mapping;
	unsigned char s_rock;
	unsigned char s_joliet_level;
	unsigned char s_utf8;
	unsigned char s_cruft;  


	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;  
};


# 502 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/nfs_fs_sb.h" 1 3




# 1 "/usr/include/linux/in.h" 1 3
 





















 
enum {
  IPPROTO_IP = 0,		 
  IPPROTO_ICMP = 1,		 
  IPPROTO_IGMP = 2,		 
  IPPROTO_IPIP = 4,		 
  IPPROTO_TCP = 6,		 
  IPPROTO_EGP = 8,		 
  IPPROTO_PUP = 12,		 
  IPPROTO_UDP = 17,		 
  IPPROTO_IDP = 22,		 
  IPPROTO_RSVP = 46,		 
  IPPROTO_GRE = 47,		 

  IPPROTO_IPV6	 = 41,		 

  IPPROTO_PIM    = 103,		 

  IPPROTO_ESP = 50,             
  IPPROTO_AH = 51,              
  IPPROTO_COMP   = 108,                 

  IPPROTO_RAW	 = 255,		 
  IPPROTO_MAX
};


 
struct in_addr {
	__u32	s_addr;
};
















 


 










 



 

struct ip_mreq 
{
	struct in_addr imr_multiaddr;	 
	struct in_addr imr_interface;	 
};

struct ip_mreqn
{
	struct in_addr	imr_multiaddr;		 
	struct in_addr	imr_address;		 
	int		imr_ifindex;		 
};

struct in_pktinfo
{
	int		ipi_ifindex;
	struct in_addr	ipi_spec_dst;
	struct in_addr	ipi_addr;
};

 

struct sockaddr_in {
  sa_family_t		sin_family;	 
  unsigned short int	sin_port;	 
  struct in_addr	sin_addr;	 

   
  unsigned char		__pad[16  - sizeof(short int) -
			sizeof(unsigned short int) - sizeof(struct in_addr)];
};



 




























 


 


 


 


 



 






 



 









# 5 "/usr/include/linux/nfs_fs_sb.h" 2 3


 


struct nfs_server {
	struct rpc_clnt *	client;		 
	int			flags;		 
	int			rsize;		 
	int			wsize;		 
	unsigned int		bsize;		 
	unsigned int		acregmin;	 
	unsigned int		acregmax;
	unsigned int		acdirmin;
	unsigned int		acdirmax;
	char *			hostname;	 
};

 


struct nfs_sb_info {
	struct nfs_server	s_server;
	struct nfs_fh		s_root;
};


# 503 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/sysv_fs_sb.h" 1 3



 








struct sysv_sb_info {
	int	       s_type;		 
	unsigned int   s_block_size;	 
	unsigned int   s_block_size_1;	 
	unsigned int   s_block_size_bits;	 
	unsigned int   s_block_size_inc_bits;	 
	unsigned int   s_block_size_dec_bits;	 
	char	       s_convert;	 
	char	       s_kludge_symlinks;  
	char	       s_truncate;	 
					 
	nlink_t        s_link_max;	 
	unsigned int   s_inodes_per_block;	 
	unsigned int   s_inodes_per_block_1;	 
	unsigned int   s_inodes_per_block_bits;	 
	unsigned int   s_ind_per_block;		 
	unsigned int   s_ind_per_block_1;	 
	unsigned int   s_ind_per_block_bits;	 
	unsigned int   s_ind_per_block_2;	 
	unsigned int   s_ind_per_block_2_1;	 
	unsigned int   s_ind_per_block_2_bits;	 
	unsigned int   s_ind_per_block_3;	 
	unsigned int   s_ind_per_block_block_size_1;	 
	unsigned int   s_ind_per_block_block_size_bits;	 
	unsigned int   s_ind_per_block_2_block_size_1;	 
	unsigned int   s_ind_per_block_2_block_size_bits;  
	unsigned int   s_ind0_size;		 
	unsigned int   s_ind1_size;		 
	unsigned int   s_ind2_size;		 
	unsigned int   s_toobig_block;		 
	unsigned int   s_block_base;	 
	unsigned short s_fic_size;	 
	unsigned short s_flc_size;	 
	 
	struct buffer_head *s_bh1;
	struct buffer_head *s_bh2;
	 

	char *         s_sbd1;		 
	char *         s_sbd2;		 
	u16            *s_sb_fic_count;	 
        u16            *s_sb_fic_inodes;  
	u16            *s_sb_total_free_inodes;  
	u16            *s_sb_flc_count;	 
	u32	       *s_sb_flc_blocks;  
	u32            *s_sb_total_free_blocks; 
	u32            *s_sb_time;	 
	u32            *s_sb_state;	 
	 

	u32            s_firstinodezone;  
	u32            s_firstdatazone;	 
	u32            s_ninodes;	 
	u32            s_ndatazones;	 
	u32            s_nzones;	 
};
 

 



















































# 504 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/affs_fs_sb.h" 1 3



 











struct affs_bm_info {
	struct buffer_head *bm_bh;	 
	s32 bm_firstblk;		 
	s32 bm_key;			 
	int bm_count;			 
};

struct affs_alloc_zone {
	short az_size;			 
	short az_count;			 
	int az_free;			 
};

struct affs_zone {
	unsigned long z_ino;		 
	struct affs_bm_info *z_bm;	 
	int z_start;			 
	int z_end;			 
	int z_az_no;			 
	unsigned long z_lru_time;	 
};

struct affs_sb_info {
	int s_partition_size;		 
	int s_blksize;			 
	s32 s_root_block;		 
	int s_hashsize;			 
	unsigned long s_flags;		 
	s16 s_uid;			 
	s16 s_gid;			 
	umode_t s_mode;			 
	int s_reserved;			 
	struct buffer_head *s_root_bh;	 
	struct affs_bm_info *s_bitmap;	 
	int s_bm_count;			 
	int s_nextzone;			 
	int s_num_az;			 
	struct affs_zone *s_zones;	 
	struct affs_alloc_zone *s_alloc; 
	char *s_zonemap;		 
	char *s_prefix;			 
	int s_prefix_len;		 
	char s_volume[32];		 
};















# 505 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/ufs_fs_sb.h" 1 3
 















# 1 "/usr/include/linux/ufs_fs.h" 1 3
 




































































 
 


 







 



 




 





 





 



 



















 













            
 






 










 










 






 










 





















 







struct ufs_timeval {
	__s32	tv_sec;
	__s32	tv_usec;
};

 











   
struct ufs_dir_entry {
	__u32  d_ino;			 
	__u16  d_reclen;		 
	union {
		__u16	d_namlen;		 
		struct {
			__u8	d_type;		 
			__u8	d_namlen;	 
		} d_44;
	} d_u;
	__u8	d_name[255  + 1];	 
};

struct ufs_csum {
	__u32	cs_ndir;	 
	__u32	cs_nbfree;	 
	__u32	cs_nifree;	 
	__u32	cs_nffree;	 
};

 


struct ufs_super_block {
	__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 ];	 
 
	__u32	fs_cgrotor;	 
	__u32	fs_csp[31 ];	 
	__u32	fs_maxcluster;
	__u32	fs_cpc;		 
	__u16	fs_opostbl[16][8];	 	
	union {
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__s32	fs_state;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sun;
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__u32	fs_npsect;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sunx86;
		struct {
			__s32	fs_sparecon[50]; 
			__s32	fs_contigsumsize; 
			__s32	fs_maxsymlinklen; 
			__s32	fs_inodefmt;	 
			__u32	fs_maxfilesize[2];	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
			__s32	fs_state;	 
		} fs_44;
	} fs_u2;
	__s32	fs_postblformat;	 
	__s32	fs_nrpos;		 
	__s32	fs_postbloff;		 
	__s32	fs_rotbloff;		 
	__s32	fs_magic;		 
	__u8	fs_space[1];		 
};

 





 





 





 








 


struct	ufs_cylinder_group {
	__u32	cg_link;		 
	__u32	cg_magic;		 
	__u32	cg_time;		 
	__u32	cg_cgx;			 
	__u16	cg_ncyl;		 
	__u16	cg_niblk;		 
	__u32	cg_ndblk;		 
	struct	ufs_csum cg_cs;		 
	__u32	cg_rotor;		 
	__u32	cg_frotor;		 
	__u32	cg_irotor;		 
	__u32	cg_frsum[(8192  / 1024 ) ];	 
	__u32	cg_btotoff;		 
	__u32	cg_boff;		 
	__u32	cg_iusedoff;		 
	__u32	cg_freeoff;		 
	__u32	cg_nextfreeoff;		 
	union {
		struct {
			__u32	cg_clustersumoff;	 
			__u32	cg_clusteroff;		 
			__u32	cg_nclusterblks;	 
			__u32	cg_sparecon[13];	 
		} cg_44;
		__u32	cg_sparecon[16];	 
	} cg_u;
	__u8	cg_space[1];		 
 
};

 


struct ufs_inode {
	__u16	ui_mode;		 
	__u16	ui_nlink;		 
	union {
		struct {
			__u16	ui_suid;	 
			__u16	ui_sgid;	 
		} oldids;
		__u32	ui_inumber;		 
		__u32	ui_author;		 
	} ui_u1;
	__u64	ui_size;		 
	struct ufs_timeval ui_atime;	 
	struct ufs_timeval ui_mtime;	 
	struct ufs_timeval ui_ctime;	 
	union {
		struct {
			__u32	ui_db[12 ]; 
			__u32	ui_ib[3 ]; 
		} ui_addr;
		__u8	ui_symlink[4*(12 + 3 )]; 
	} ui_u2;
	__u32	ui_flags;		 
	__u32	ui_blocks;		 
	__u32	ui_gen;			 
	union {
		struct {
			__u32	ui_shadow;	 
			__u32	ui_uid;		 
			__u32	ui_gid;		 
			__u32	ui_oeftflag;	 
		} ui_sun;
		struct {
			__u32	ui_uid;		 
			__u32	ui_gid;		 
			__s32	ui_spare[2];	 
		} ui_44;
		struct {
			__u32	ui_uid;		 
			__u32	ui_gid;		 
			__u16	ui_modeh;	 
			__u16	ui_spare;	 
			__u32	ui_trans;	 
		} ui_hurd;
	} ui_u3;
};

 
 






 








 
extern int ufs_permission (struct inode *, int);

 
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 *);

 
extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);
extern void ufs_put_cylinder (struct super_block *, unsigned);

 
extern struct inode_operations ufs_dir_inode_operations;
extern struct file_operations ufs_dir_operations;
extern int ufs_check_dir_entry (const char *, struct inode *, struct ufs_dir_entry *, struct buffer_head *, unsigned long);

 
extern struct inode_operations ufs_file_inode_operations;
extern struct file_operations ufs_file_operations;

 
extern void ufs_free_inode (struct inode *inode);
extern struct inode * ufs_new_inode (const struct inode *, int, int *);

 
extern int ufs_bmap (struct inode *, int);
extern void ufs_read_inode (struct inode *);
extern void ufs_put_inode (struct inode *);
extern void ufs_write_inode (struct inode *);
extern int ufs_sync_inode (struct inode *);
extern void ufs_write_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 *);

 
extern struct dentry *ufs_lookup (struct inode *, struct dentry *);
extern int ufs_mkdir(struct inode *, struct dentry *, int);
extern int ufs_rmdir (struct inode *, struct dentry *);
extern int ufs_unlink (struct inode *, struct dentry *);
extern int ufs_create (struct inode *, struct dentry *, int);
extern int ufs_rename (struct inode *, struct dentry *, struct inode *, struct dentry *);
extern int ufs_mknod (struct inode *, struct dentry *, int, int);
extern int ufs_symlink (struct inode *, struct dentry *, const char *);
extern int ufs_link (struct dentry *, struct inode *, struct dentry *);
        
 
extern struct super_operations ufs_super_ops;
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 int init_ufs_fs(void);
extern void ufs_write_super (struct super_block *);

 
extern struct inode_operations ufs_symlink_inode_operations;

 
extern void ufs_truncate (struct inode *);




# 17 "/usr/include/linux/ufs_fs_sb.h" 2 3


 



struct ufs_buffer_head {
	unsigned fragment;			 
	unsigned count;				 
	struct buffer_head * bh[(8192  / 1024 ) ];	 
};

struct ufs_cg_private_info {
	struct ufs_cylinder_group ucg;
	__u32	c_cgx;		 
	__u16	c_ncyl;		 
	__u16	c_niblk;	 
	__u32	c_ndblk;	 
	__u32	c_rotor;	 
	__u32	c_frotor;	 
	__u32	c_irotor;	 
	__u32	c_btotoff;	 
	__u32	c_boff;		 
	__u32	c_iusedoff;	 
	__u32	c_freeoff;	 
	__u32	c_nextfreeoff;	 
	__u32	c_clustersumoff; 
	__u32	c_clusteroff;	 
	__u32	c_nclusterblks;	 
};	

struct ufs_sb_private_info {
	struct ufs_buffer_head s_ubh;  
	__u32	s_sblkno;	 
	__u32	s_cblkno;	 
	__u32	s_iblkno;	 
	__u32	s_dblkno;	 
	__u32	s_cgoffset;	 
	__u32	s_cgmask;	 
	__u32	s_size;		 
	__u32	s_dsize;	 
	__u32	s_ncg;		 
	__u32	s_bsize;	 
	__u32	s_fsize;	 
	__u32	s_fpb;		 
	__u32	s_minfree;	 
	__u32	s_bmask;	 
	__u32	s_fmask;	 
	__u32	s_bshift;	 
	__u32   s_fshift;	 
	__u32	s_fpbshift;	 
	__u32	s_fsbtodb;	 
	__u32	s_sbsize;	 
	__u32   s_csmask;	 
	__u32	s_csshift;	 
	__u32	s_nindir;	 
	__u32	s_inopb;	 
	__u32	s_nspf;		 
	__u32	s_npsect;	 
	__u32	s_interleave;	 
	__u32	s_trackskew;	 
	__u32	s_csaddr;	 
	__u32	s_cssize;	 
	__u32	s_cgsize;	 
	__u32	s_ntrak;	 
	__u32	s_nsect;	 
	__u32	s_spc;		 
	__u32	s_ipg;		 
	__u32	s_fpg;		 
	__u32	s_cpc;		 
	__s32	s_contigsumsize; 
	__s64	s_qbmask;	 
	__s64	s_qfmask;	 
	__s32	s_postblformat;	 
	__s32	s_nrpos;	 
        __s32	s_postbloff;	 
	__s32	s_rotbloff;	 

	__u32	s_fpbmask;	 
	__u32	s_apb;		 
	__u32	s_2apb;		 
	__u32	s_3apb;		 
	__u32	s_apbmask;	 
	__u32	s_apbshift;	 
	__u32	s_2apbshift;	 
	__u32	s_3apbshift;	 
	__u32	s_nspfshift;	 
	__u32	s_nspb;		 
	__u32	s_inopf;	 
	__u32	s_sbbase;	 
	__u32	s_bpf;		 
	__u32	s_bpfshift;	 
	__u32	s_bpfmask;	 
};





struct ufs_sb_info {
	struct ufs_sb_private_info * s_uspi;	
	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 ]; 
	unsigned s_cgno[8 ];
	unsigned short s_cg_loaded;
	unsigned s_mount_opt;
};

 





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];
};	

struct ufs_super_block_third {
	__u16	fs_opostbl[46];
	union {
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__s32	fs_state;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sun;
		struct {
			__s32	fs_sparecon[53]; 
			__s32	fs_reclaim;
			__s32	fs_sparecon2[1];
			__u32	fs_npsect;	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
		} fs_sunx86;
		struct {
			__s32	fs_sparecon[50]; 
			__s32	fs_contigsumsize; 
			__s32	fs_maxsymlinklen; 
			__s32	fs_inodefmt;	 
			__u32	fs_maxfilesize[2];	 
			__u32	fs_qbmask[2];	 
			__u32	fs_qfmask[2];	 
			__s32	fs_state;	 
		} fs_44;
	} fs_u2;
	__s32	fs_postblformat;
	__s32	fs_nrpos;
	__s32	fs_postbloff;
	__s32	fs_rotbloff;
	__s32	fs_magic;
	__u8	fs_space[1];
};


# 506 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/efs_fs_sb.h" 1 3
 










 


 








 
struct efs_super {
	int32_t		fs_size;         
	int32_t		fs_firstcg;      
	int32_t		fs_cgfsize;      
	short		fs_cgisize;      
	short		fs_sectors;      
	short		fs_heads;        
	short		fs_ncg;          
	short		fs_dirty;        
	short		fs_filler;	 
	int32_t		fs_time;         
	int32_t		fs_magic;        
	char		fs_fname[6];     
	char		fs_fpack[6];     
	int32_t		fs_bmsize;       
	int32_t		fs_tfree;        
	int32_t		fs_tinode;       
	int32_t		fs_bmblock;      
	int32_t		fs_replsb;       
	int32_t		fs_lastialloc;   
	char		fs_spare[20];    
	int32_t		fs_checksum;     
};

 
struct efs_sb_info {
	int32_t	fs_magic;	 
	int32_t	fs_start;	 
	int32_t	first_block;	 
	int32_t	total_blocks;	 
	int32_t	group_size;	  
	int32_t	data_free;	 
	int32_t	inode_free;	 
	short	inode_blocks;	 
	short	total_groups;	 
};



# 507 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/romfs_fs_sb.h" 1 3



 

struct romfs_sb_info {
	unsigned long s_maxsize;
};


# 508 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/smb_fs_sb.h" 1 3
 













# 1 "/usr/include/linux/smb.h" 1 3
 












enum smb_protocol { 
	SMB_PROTOCOL_NONE, 
	SMB_PROTOCOL_CORE, 
	SMB_PROTOCOL_COREPLUS, 
	SMB_PROTOCOL_LANMAN1, 
	SMB_PROTOCOL_LANMAN2, 
	SMB_PROTOCOL_NT1 
};

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 {

         
	unsigned int fd;

	enum smb_protocol protocol;
	enum smb_case_hndl case_handling;

	 

	__u32              max_xmit;
	__u16              server_uid;
	__u16              tid;

         
        __u16              secmode;
        __u16              maxmux;
        __u16              maxvcs;
        __u16              rawmode;
        __u32              sesskey;

	 
	__u32              maxraw;
	__u32              capabilities;
	__s16              serverzone;
};






 


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;
};

struct smb_dirent {
	struct smb_fattr attr;

	int f_pos;
	int len;
	__u8 name[255 ];
};

enum smb_conn_state {
        CONN_VALID,              
        CONN_INVALID,            

        CONN_RETRIED             
};

 














 




# 15 "/usr/include/linux/smb_fs_sb.h" 2 3


 




struct smb_sb_info {
        enum smb_conn_state state;
	struct file * sock_file;

        struct smb_mount_data *mnt;
        unsigned char *temp_buf;

	 


	unsigned int generation;
	pid_t conn_pid;
	struct smb_conn_opt opt;

	struct semaphore sem;
	struct wait_queue * wait;

	__u32              packet_size;
	unsigned char *    packet;
        unsigned short     rcls;  
        unsigned short     err;

         
        void *data_ready;
};




# 509 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/hfs_fs_sb.h" 1 3
 












 
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);

 




struct hfs_sb_info {
	int			magic;		 
	struct hfs_mdb		*s_mdb;		 
	int			s_quiet;	 

	int			s_lowercase;	 
	int			s_afpd;		 
	int                     s_version;       
	hfs_namein_fn		s_namein;	 


	hfs_nameout_fn		s_nameout;	 


	hfs_ifill_fn		s_ifill;	 

	const struct hfs_name	*s_reserved1;	 
	const struct hfs_name	*s_reserved2;	 
	__u32			s_type;		 
	__u32			s_creator;	 
	umode_t			s_umask;	 

	uid_t			s_uid;		 
	gid_t			s_gid;		 
	char			s_conv;		 
};


# 510 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/adfs_fs_sb.h" 1 3
 








# 1 "/usr/include/linux/adfs_fs.h" 1 3




 



 


struct adfs_discrecord {
    unsigned char  log2secsize;
    unsigned char  secspertrack;
    unsigned char  heads;
    unsigned char  density;
    unsigned char  idlen;
    unsigned char  log2bpmb;
    unsigned char  skew;
    unsigned char  bootoption;
    unsigned char  lowsector;
    unsigned char  nzones;
    unsigned short zone_spare;
    unsigned long  root;
    unsigned long  disc_size;
    unsigned short disc_id;
    unsigned char  disc_name[10];
    unsigned long  disc_type;
    unsigned long  disc_size_high;
    unsigned char  log2sharesize:4;
    unsigned char  unused:4;
    unsigned char  big_flag:1;
};









 


struct adfs_dirheader {
	unsigned char startmasseq;
	unsigned char startname[4];
};





 


struct adfs_direntry {
	char dirobname[10];

	__u8 dirload[4];
	__u8 direxec[4];
	__u8 dirlen[4];
	__u8 dirinddiscadd[3];
	__u8 newdiratts;







};


struct adfs_idir_entry {
	__u32		inode_no;			 
	__u32		file_id;			 
	__u32		name_len;			 
	__u32		size;				 
	__u32		mtime;				 
	__u32		filetype;			 
	__u8		mode;				 
	char		name[255 ];	 
};

 


union adfs_dirtail {
	struct {
		unsigned char dirlastmask;
		char dirname[10];
		unsigned char dirparent[3];
		char dirtitle[19];
		unsigned char reserved[14];
		unsigned char endmasseq;
		unsigned char endname[4];
		unsigned char dircheckbyte;
	} old;
	struct {
		unsigned char dirlastmask;
		unsigned char reserved[2];
		unsigned char dirparent[3];
		char dirtitle[19];
		char dirname[10];
		unsigned char endmasseq;
		unsigned char endname[4];
		unsigned char dircheckbyte;
	} new;
};


 




extern inline int adfs_checkbblk(unsigned char *ptr)
{
	unsigned int result = 0;
	unsigned char *p = ptr + 511;

	do {
	        result = (result & 0xff) + (result >> 8);
        	result = result + *--p;
	} while (p != ptr);

	return (result & 0xff) != ptr[511];
}

 
extern unsigned int adfs_val (unsigned char *p, int len);
extern int adfs_dir_read_parent (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_read (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_check (struct inode *inode, struct buffer_head **bhp,
			   int buffers, union adfs_dirtail *dtp);
extern void adfs_dir_free (struct buffer_head **bhp, int buffers);
extern int adfs_dir_get (struct super_block *sb, struct buffer_head **bhp,
			 int buffers, int pos, unsigned long parent_object_id,
			 struct adfs_idir_entry *ide);
extern int adfs_dir_find_entry (struct super_block *sb, struct buffer_head **bhp,
				int buffers, unsigned int index,
				struct adfs_idir_entry *ide);

 
extern int adfs_inode_validate (struct inode *inode);
extern unsigned long adfs_inode_generate (unsigned long parent_id, int diridx);
extern unsigned long adfs_inode_objid (struct inode *inode);
extern unsigned int adfs_parent_bmap (struct inode *inode, int block);
extern int adfs_bmap (struct inode *inode, int block);
extern void adfs_read_inode (struct inode *inode);

 
extern int adfs_map_lookup (struct super_block *sb, int frag_id, int offset);

 
extern struct dentry *adfs_lookup (struct inode *dir, struct dentry *dentry);

 
extern int init_adfs_fs (void);
extern void adfs_error (struct super_block *, const char *, const char *, ...);

 



 
extern struct inode_operations adfs_dir_inode_operations;

 
extern struct inode_operations adfs_file_inode_operations;



# 10 "/usr/include/linux/adfs_fs_sb.h" 2 3


 


struct adfs_sb_info {
	struct buffer_head *s_sbh;	 
	struct adfs_discrecord *s_dr;	 
	uid_t	s_uid;			 
	gid_t	s_gid;			 
	int	s_owner_mask;		 
	int	s_other_mask;		 
	__u16	s_zone_size;		 
	__u16	s_ids_per_zone;		 
	__u32	s_idlen;		 
	__u32	s_map_size;		 
	__u32	s_zonesize;		 
	__u32	s_map_block;		 
	struct buffer_head **s_map;	 
	__u32	s_root;			 
	__s8	s_map2blk;		 
};


# 511 "/usr/include/linux/fs.h" 2 3

# 1 "/usr/include/linux/qnx4_fs_sb.h" 1 3
 














 



struct qnx4_sb_info {
	struct buffer_head *sb_buf;	 
	struct qnx4_super_block *sb;	 
	unsigned int Version;	 
	struct qnx4_inode_entry *BitMap;	 
};


# 512 "/usr/include/linux/fs.h" 2 3


extern struct list_head super_blocks;


struct super_block {
	struct list_head	s_list;		 
	kdev_t			s_dev;
	unsigned long		s_blocksize;
	unsigned char		s_blocksize_bits;
	unsigned char		s_lock;
	unsigned char		s_rd_only;
	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;
	unsigned long		s_time;
	struct dentry		*s_root;
	struct wait_queue	*s_wait;

	struct inode		*s_ibasket;
	short int		s_ibasket_count;
	short int		s_ibasket_max;
	struct list_head	s_dirty;	 

	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 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;	   
		void			*generic_sbp;
	} u;
	 



	struct semaphore s_vfs_rename_sem;	 
};

 


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 *);

 





typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t);
	
struct file_operations {
	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 (*fasync) (int, struct file *, int);
	int (*check_media_change) (kdev_t dev);
	int (*revalidate) (kdev_t dev);
	int (*lock) (struct file *, int, struct file_lock *);
};

struct inode_operations {
	struct file_operations * default_file_ops;
	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);
	struct dentry * (*follow_link) (struct dentry *, struct dentry *, unsigned int);
	int (*readpage) (struct file *, struct page *);
	int (*writepage) (struct file *, struct page *);
	int (*bmap) (struct inode *,int);
	void (*truncate) (struct inode *);
	int (*permission) (struct inode *, int);
	int (*smap) (struct inode *,int);
	int (*updatepage) (struct file *, struct page *, unsigned long, unsigned int, int);
	int (*revalidate) (struct dentry *);
};

struct super_operations {
	void (*read_inode) (struct inode *);
	void (*write_inode) (struct inode *);
	void (*put_inode) (struct inode *);
	void (*delete_inode) (struct inode *);
	int (*notify_change) (struct dentry *, struct iattr *);
	void (*put_super) (struct super_block *);
	void (*write_super) (struct super_block *);
	int (*statfs) (struct super_block *, struct statfs *, int);
	int (*remount_fs) (struct super_block *, int *, char *);
	void (*clear_inode) (struct inode *);
	void (*umount_begin) (struct super_block *);
};

struct dquot_operations {
	void (*initialize) (struct inode *, short);
	void (*drop) (struct inode *);
	int (*alloc_block) (const struct inode *, unsigned long, uid_t, char);
	int (*alloc_inode) (const struct inode *, unsigned long, uid_t);
	void (*free_block) (const struct inode *, unsigned long);
	void (*free_inode) (const struct inode *, unsigned long);
	int (*transfer) (struct dentry *, struct iattr *, uid_t);
};

struct file_system_type {
	const char *name;
	int fs_flags;
	struct super_block *(*read_super) (struct super_block *, void *, int);
	struct file_system_type * next;
};

extern int register_filesystem(struct file_system_type *);
extern int unregister_filesystem(struct file_system_type *);

 

 





extern int locks_mandatory_locked(struct inode *inode);
extern int locks_mandatory_area(int read_write, struct inode *inode,
				struct file *filp, loff_t offset,
				size_t count);

extern inline int locks_verify_locked(struct inode *inode)
{
	 


	if ((((  inode  )->i_sb && (  inode  )->i_sb->s_flags & (  64  )) || (  inode  )->i_flags & (  64  ))   &&
	    (inode->i_mode & (0002000  | 00010 )) == 0002000 )
		return (locks_mandatory_locked(inode));
	return (0);
}

extern inline int locks_verify_area(int read_write, struct inode *inode,
				    struct file *filp, loff_t offset,
				    size_t count)
{
	 


	if ((((  inode  )->i_sb && (  inode  )->i_sb->s_flags & (  64  )) || (  inode  )->i_flags & (  64  ))   &&
	    (inode->i_mode & (0002000  | 00010 )) == 0002000 )
		return (locks_mandatory_area(read_write, inode, filp, offset,
					     count));
	return (0);
}


 

  __attribute__((regparm(0)))  int sys_open(const char *, int, int);
  __attribute__((regparm(0)))  int sys_close(unsigned int);		 
extern int do_truncate(struct dentry *, unsigned long);
extern int get_unused_fd(void);
extern void put_unused_fd(unsigned int);

extern struct file *filp_open(const char *, int, int);
extern int filp_close(struct file *, fl_owner_t id);

extern char * getname(const char * filename);



extern void kill_fasync(struct fasync_struct *fa, int sig);
extern int register_blkdev(unsigned int, const char *, struct file_operations *);
extern int unregister_blkdev(unsigned int major, const char * name);
extern int blkdev_open(struct inode * inode, struct file * filp);
extern int blkdev_release (struct inode * inode);
extern struct file_operations def_blk_fops;
extern struct inode_operations blkdev_inode_operations;

 
extern int register_chrdev(unsigned int, const char *, struct file_operations *);
extern int unregister_chrdev(unsigned int major, const char * name);
extern int chrdev_open(struct inode * inode, struct file * filp);
extern struct file_operations def_chr_fops;
extern struct inode_operations chrdev_inode_operations;
extern char * bdevname(kdev_t dev);
extern char * cdevname(kdev_t dev);
extern char * kdevname(kdev_t dev);


extern void init_fifo(struct inode * inode);
extern struct inode_operations fifo_inode_operations;

 
extern void make_bad_inode(struct inode * inode);
extern int is_bad_inode(struct inode * inode);

extern struct file_operations connecting_fifo_fops;
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 struct file_system_type *get_fs_type(const char *name);

extern int fs_may_remount_ro(struct super_block *);
extern int fs_may_mount(kdev_t dev);

extern struct file *inuse_filps;

extern void refile_buffer(struct buffer_head * buf);
extern void set_writetime(struct buffer_head * buf, int flag);
extern int try_to_free_buffers(struct page *);

extern int nr_buffers;
extern long buffermem;
extern int nr_buffer_heads;






void mark_buffer_uptodate(struct buffer_head * bh, int on);

extern inline void mark_buffer_clean(struct buffer_head * bh)
{
	if (test_and_clear_bit(1 , &bh->b_state)) {
		if (bh->b_list == 2 )
			refile_buffer(bh);
	}
}

extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
{
	if (!test_and_set_bit(1 , &bh->b_state)) {
		set_writetime(bh, flag);
		if (bh->b_list != 2 )
			refile_buffer(bh);
	}
}

extern int check_disk_change(kdev_t dev);
extern int invalidate_inodes(struct super_block * sb);
extern void invalidate_inode_pages(struct inode *);


extern void __invalidate_buffers(kdev_t dev, int);
extern int floppy_is_wp(int minor);
extern void sync_inodes(kdev_t dev);
extern void write_inode_now(struct inode *inode);
extern void sync_dev(kdev_t dev);
extern int fsync_dev(kdev_t dev);
extern void sync_supers(kdev_t dev);
extern int bmap(struct inode * inode,int block);
extern int notify_change(struct dentry *, struct iattr *);
extern int permission(struct inode * inode,int mask);
extern int get_write_access(struct inode *inode);
extern void put_write_access(struct inode *inode);
extern struct dentry * open_namei(const char * pathname, int flag, int mode);
extern struct dentry * do_mknod(const char * filename, int mode, dev_t dev);
extern int do_pipe(int *);

 
extern int is_subdir(struct dentry *, struct dentry *);
extern ino_t find_inode_number(struct dentry *, struct qstr *);

 











 











extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int);
extern struct dentry * __namei(const char *, unsigned int);




extern void iput(struct inode *);
extern struct inode * igrab(struct inode *inode);
extern ino_t iunique(struct super_block *, ino_t);
extern struct inode * iget(struct super_block *, unsigned long);
extern struct inode * iget_in_use (struct super_block *, unsigned long);
extern void clear_inode(struct inode *);
extern struct inode * get_empty_inode(void);

extern void insert_inode_hash(struct inode *);
extern void remove_inode_hash(struct inode *);
extern struct file * get_empty_filp(void);
extern struct buffer_head * get_hash_table(kdev_t, int, int);
extern struct buffer_head * getblk(kdev_t, int, int);
extern struct buffer_head * find_buffer(kdev_t dev, int block, int size);
extern void ll_rw_block(int, int, struct buffer_head * bh[]);
extern int is_read_only(kdev_t);
extern void __brelse(struct buffer_head *);
extern inline void brelse(struct buffer_head *buf)
{
	if (buf)
		__brelse(buf);
}
extern void __bforget(struct buffer_head *buf);
extern inline void bforget(struct buffer_head *buf)
{
	if (buf)
		__bforget(buf);
}
extern void set_blocksize(kdev_t dev, int size);
extern unsigned int get_hardblocksize(kdev_t dev);
extern struct buffer_head * bread(kdev_t dev, int block, int size);
extern struct buffer_head * breada(kdev_t dev,int block, int size, 
				   unsigned int pos, unsigned int filesize);

extern int brw_page(int, struct page *, kdev_t, int [], int, int);

extern int generic_readpage(struct file *, struct page *);
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 struct super_block *get_super(kdev_t dev);
extern void put_super(kdev_t dev);
unsigned long generate_cluster(kdev_t dev, int b[], int size);
unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size);
extern kdev_t ROOT_DEV;

extern void show_buffers(void);
extern void mount_root(void);


extern kdev_t real_root_dev;
extern int change_root(kdev_t new_root_dev,const char *put_old);


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 block_fsync(struct file *, struct dentry *dir);
extern int file_fsync(struct file *, struct dentry *dir);

extern int inode_change_ok(struct inode *, struct iattr *);
extern void inode_setattr(struct inode *, struct iattr *);

extern __u32 inode_generation_count;




# 1 "tst3.c" 2




More information about the Gcc-bugs mailing list