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


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

AW: c/2788: Can't compile linux-2.4.2 kernel on alpha ev5


Hi,
I have updated to bintuils-2.11; seems not to be an assembler
bug:

  gcc version 2.95.3 20010315 (release)
  GNU assembler version 2.11 (alphaev5-bruli-linux-gnu)
    using BFD version 2.11
  GNU ld version 2.11 (with BFD 2.11)



gcc -D__KERNEL__ -I/usr/src/linux-2.4.2/include -Wall -Wstrict-prototypes -O
2 -f


omit-frame-pointer -fno-strict-aliasing -mcpu=ev5 -pipe -mno-fp-regs -ffixed
-8 -
  Wa,-mev5,-m21164 -c -o core_cia.o core_cia.c

still results in:

  {standard input}: Assembler messages:
  {standard input}:2812: Error: macro requires $at register while noat in
effect
  {standard input}:2826: Error: macro requires $at register while noat in
effect
  {standard input}:2840: Error: macro requires $at register while noat in
effect
  {standard input}:2854: Error: macro requires $at register while noat in
effect
  {standard input}:3023: Error: macro requires $at register while noat in
effect
  {standard input}:3034: Error: macro requires $at register while noat in
effect
  {standard input}:3066: Error: macro requires $at register while noat in
effect
  {standard input}:3076: Error: macro requires $at register while noat in
effect
  make[1]: *** [core_cia.o] Error 1
  make[1]: Leaving directory `/usr/src/linux-2.4.2/arch/alpha/kernel'
  make: *** [_dir_arch/alpha/kernel] Error 2

Find core_cia.i inlined here:
START core_cia.i
----------------------------------------------------------------------------
---------
# 1 "core_cia.c"













# 1 "/usr/src/linux-2.4.2/include/linux/kernel.h" 1









# 1 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 1 3



































# 1 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/va-alpha.h" 1
3


















typedef struct {
  char *__base;
  int __offset;
} __gnuc_va_list;













typedef __gnuc_va_list va_list;

# 49 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/va-alpha.h" 3























enum {
  __no_type_class = -1,
  __void_type_class,
  __integer_type_class,
  __char_type_class,
  __enumeral_type_class,
  __boolean_type_class,
  __pointer_type_class,
  __reference_type_class,
  __offset_type_class,
  __real_type_class,
  __complex_type_class,
  __function_type_class,
  __method_type_class,
  __record_type_class,
  __union_type_class,
  __array_type_class,
  __string_type_class,
  __set_type_class,
  __file_type_class,
  __lang_type_class
};



































# 36 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 2 3

# 133 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 3

























# 175 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 3






# 205 "/usr/lib/gcc-lib/alphaev5-bruli-linux-gnu/2.95.3/include/stdarg.h" 3








# 10 "/usr/src/linux-2.4.2/include/linux/kernel.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/linkage.h" 1



# 1 "/usr/src/linux-2.4.2/include/linux/config.h" 1



# 1 "/usr/src/linux-2.4.2/include/linux/autoconf.h" 1



















































































































































































































































































































































































































































































































































































































































































































# 4 "/usr/src/linux-2.4.2/include/linux/config.h" 2



# 4 "/usr/src/linux-2.4.2/include/linux/linkage.h" 2















































# 61 "/usr/src/linux-2.4.2/include/linux/linkage.h"



# 11 "/usr/src/linux-2.4.2/include/linux/kernel.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/stddef.h" 1














# 12 "/usr/src/linux-2.4.2/include/linux/kernel.h" 2




































struct semaphore;

extern struct notifier_block *panic_notifier_list;
  void panic(const char * fmt, ...)
	__attribute__ ((noreturn,  format (printf, 1, 2)));
  void do_exit(long error_code)
	__attribute__((noreturn)) ;
  void up_and_exit(struct semaphore *, long)
	__attribute__((noreturn)) ;
extern unsigned long simple_strtoul(const char *,char **,unsigned int);
extern long simple_strtol(const char *,char **,unsigned int);
extern unsigned long long simple_strtoull(const char *,char **,unsigned
int);
extern long long simple_strtoll(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);
extern int get_option(char **str, int *pint);
extern char *get_options(char *str, int nints, int *ints);
extern unsigned long memparse(char *ptr, char **retptr);
extern void dev_probe_lock(void);
extern void dev_probe_unlock(void);

extern int session_of_pgrp(int pgrp);

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

extern int console_loglevel;

static inline void console_silent(void)
{
	console_loglevel = 0;
}

static inline void console_verbose(void)
{
	if (console_loglevel)
		console_loglevel = 15;
}































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;
	unsigned long totalhigh;
	unsigned long freehigh;
	unsigned int mem_unit;
	char _f[20-2*sizeof(long)-sizeof(int)];
};


# 14 "core_cia.c" 2

# 1 "/usr/src/linux-2.4.2/include/linux/types.h" 1







# 1 "/usr/src/linux-2.4.2/include/linux/posix_types.h" 1



































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/src/linux-2.4.2/include/asm/posix_types.h" 1









typedef unsigned int	__kernel_dev_t;
typedef unsigned int	__kernel_ino_t;
typedef unsigned int	__kernel_mode_t;
typedef unsigned int	__kernel_nlink_t;
typedef long		__kernel_off_t;
typedef long		__kernel_loff_t;
typedef int		__kernel_pid_t;
typedef int		__kernel_ipc_pid_t;
typedef unsigned int	__kernel_uid_t;
typedef unsigned int	__kernel_gid_t;
typedef unsigned long	__kernel_size_t;
typedef long		__kernel_ssize_t;
typedef long		__kernel_ptrdiff_t;
typedef long		__kernel_time_t;
typedef long		__kernel_suseconds_t;
typedef long		__kernel_clock_t;
typedef int		__kernel_daddr_t;
typedef char *		__kernel_caddr_t;
typedef unsigned long	__kernel_sigset_t;
typedef unsigned short	__kernel_uid16_t;
typedef unsigned short	__kernel_gid16_t;

typedef struct {
	int	val[2];
} __kernel_fsid_t;

typedef __kernel_uid_t __kernel_old_uid_t;
typedef __kernel_gid_t __kernel_old_gid_t;
typedef __kernel_uid_t __kernel_uid32_t;
typedef __kernel_gid_t __kernel_gid32_t;



# 51 "/usr/src/linux-2.4.2/include/asm/posix_types.h"





static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp)
{
	unsigned long _tmp = fd / (8 * sizeof(unsigned long)) ;
	unsigned long _rem = fd % (8 * sizeof(unsigned long)) ;
	fdsetp->fds_bits[_tmp] |= (1UL<<_rem);
}


static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp)
{
	unsigned long _tmp = fd / (8 * sizeof(unsigned long)) ;
	unsigned long _rem = fd % (8 * sizeof(unsigned long)) ;
	fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem);
}


static __inline__ int __FD_ISSET(unsigned long fd, const __kernel_fd_set *p)
{
	unsigned long _tmp = fd / (8 * sizeof(unsigned long)) ;
	unsigned long _rem = fd % (8 * sizeof(unsigned long)) ;
	return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0;
}






static __inline__ void __FD_ZERO(__kernel_fd_set *p)
{
	unsigned long *tmp = p->fds_bits;
	int i;

	if (__builtin_constant_p((1024 / (8 * sizeof(unsigned long)) ) )) {
		switch ((1024 / (8 * sizeof(unsigned long)) ) ) {
		      case 16:
			tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
			tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
			tmp[ 8] = 0; tmp[ 9] = 0; tmp[10] = 0; tmp[11] = 0;
			tmp[12] = 0; tmp[13] = 0; tmp[14] = 0; tmp[15] = 0;
			return;

		      case 8:
			tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
			tmp[ 4] = 0; tmp[ 5] = 0; tmp[ 6] = 0; tmp[ 7] = 0;
			return;

		      case 4:
			tmp[ 0] = 0; tmp[ 1] = 0; tmp[ 2] = 0; tmp[ 3] = 0;
			return;
		}
	}
	i = (1024 / (8 * sizeof(unsigned long)) ) ;
	while (i) {
		i--;
		*tmp = 0;
		tmp++;
	}
}






# 46 "/usr/src/linux-2.4.2/include/linux/posix_types.h" 2



# 8 "/usr/src/linux-2.4.2/include/linux/types.h" 2

# 1 "/usr/src/linux-2.4.2/include/asm/types.h" 1











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






typedef u32 dma_addr_t;



# 9 "/usr/src/linux-2.4.2/include/linux/types.h" 2




typedef __kernel_fd_set		fd_set;
typedef __kernel_dev_t		dev_t;
typedef __kernel_ino_t		ino_t;
typedef __kernel_mode_t		mode_t;
typedef __kernel_nlink_t	nlink_t;
typedef __kernel_off_t		off_t;
typedef __kernel_pid_t		pid_t;
typedef __kernel_daddr_t	daddr_t;
typedef __kernel_key_t		key_t;
typedef __kernel_suseconds_t	suseconds_t;


typedef __kernel_uid32_t	uid_t;
typedef __kernel_gid32_t	gid_t;
typedef __kernel_uid16_t        uid16_t;
typedef __kernel_gid16_t        gid16_t;
















typedef __kernel_loff_t		loff_t;








typedef __kernel_size_t		size_t;




typedef __kernel_ssize_t	ssize_t;




typedef __kernel_ptrdiff_t	ptrdiff_t;




typedef __kernel_time_t		time_t;




typedef __kernel_clock_t	clock_t;




typedef __kernel_caddr_t	caddr_t;



typedef unsigned char		u_char;
typedef unsigned short		u_short;
typedef unsigned int		u_int;
typedef unsigned long		u_long;


typedef unsigned char		unchar;
typedef unsigned short		ushort;
typedef unsigned int		uint;
typedef unsigned long		ulong;




typedef		__u8		u_int8_t;
typedef		__s8		int8_t;
typedef		__u16		u_int16_t;
typedef		__s16		int16_t;
typedef		__u32		u_int32_t;
typedef		__s32		int32_t;



typedef		__u8		uint8_t;
typedef		__u16		uint16_t;
typedef		__u32		uint32_t;


typedef		__u64		uint64_t;
typedef		__u64		u_int64_t;
typedef		__s64		int64_t;









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


# 15 "core_cia.c" 2

# 1 "/usr/src/linux-2.4.2/include/linux/pci.h" 1











































































































































































































































































# 1 "/usr/src/linux-2.4.2/include/linux/pci_ids.h" 1






















































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































# 268 "/usr/src/linux-2.4.2/include/linux/pci.h" 2


















# 1 "/usr/src/linux-2.4.2/include/linux/ioport.h" 1














struct resource {
	const char *name;
	unsigned long start, end;
	unsigned long flags;
	struct resource *parent, *sibling, *child;
};

struct resource_list {
	struct resource_list *next;
	struct resource *res;
	struct pci_dev *dev;
};
























































extern struct resource ioport_resource;
extern struct resource iomem_resource;

extern int get_resource_list(struct resource *, char *buf, int size);

extern int check_resource(struct resource *root, unsigned long, unsigned
long);
extern int request_resource(struct resource *root, struct resource *new);
extern int release_resource(struct resource *new);
extern int allocate_resource(struct resource *root, struct resource *new,
			     unsigned long size,
			     unsigned long min, unsigned long max,
			     unsigned long align,
			     void (*alignf)(void *, struct resource *, unsigned long),
			     void *alignf_data);





extern struct resource * __request_region(struct resource *, unsigned long
start, unsigned long n, const char *name);







extern int __check_region(struct resource *, unsigned long, unsigned long);
extern void __release_region(struct resource *, unsigned long, unsigned
long);





extern void autoirq_setup(int waittime);
extern int autoirq_report(int waittime);


# 286 "/usr/src/linux-2.4.2/include/linux/pci.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/list.h" 1















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_add_tail(struct list_head *new, struct list_head
*head)
{
	__list_add(new, head->prev, head);
}








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__ void list_del_init(struct list_head *entry)
{
	__list_del(entry->prev, entry->next);
	do { ( entry )->next = ( entry ); ( entry )->prev = ( entry ); } while (0)
;
}





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





















# 287 "/usr/src/linux-2.4.2/include/linux/pci.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/errno.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/errno.h" 1














































































































































# 4 "/usr/src/linux-2.4.2/include/linux/errno.h" 2























# 288 "/usr/src/linux-2.4.2/include/linux/pci.h" 2


























struct pci_dev {
	struct list_head global_list;
	struct list_head bus_list;
	struct pci_bus	*bus;
	struct pci_bus	*subordinate;

	void		*sysdata;
	struct proc_dir_entry *procent;

	unsigned int	devfn;
	unsigned short	vendor;
	unsigned short	device;
	unsigned short	subsystem_vendor;
	unsigned short	subsystem_device;
	unsigned int	class;
	u8		hdr_type;
	u8		rom_base_reg;

	struct pci_driver *driver;
	void		*driver_data;
	dma_addr_t	dma_mask;






	unsigned short vendor_compatible[4 ];
	unsigned short device_compatible[4 ];





	unsigned int	irq;
	struct resource resource[12 ];
	struct resource dma_resource[2 ];
	struct resource irq_resource[2 ];

	char		name[80];
	char		slot_name[8];
	int		active;
	int		ro;
	unsigned short	regs;

	int (*prepare)(struct pci_dev *dev);
	int (*activate)(struct pci_dev *dev);
	int (*deactivate)(struct pci_dev *dev);
};


















struct pci_bus {
	struct list_head node;
	struct pci_bus	*parent;
	struct list_head children;
	struct list_head devices;
	struct pci_dev	*self;
	struct resource	*resource[4];

	struct pci_ops	*ops;
	void		*sysdata;
	struct proc_dir_entry *procdir;

	unsigned char	number;
	unsigned char	primary;
	unsigned char	secondary;
	unsigned char	subordinate;

	char		name[48];
	unsigned short	vendor;
	unsigned short	device;
	unsigned int	serial;
	unsigned char	pnpver;
	unsigned char	productver;
	unsigned char	checksum;
	unsigned char	pad1;
};



extern struct list_head pci_root_buses;
extern struct list_head pci_devices;














struct pci_ops {
	int (*read_byte)(struct pci_dev *, int where, u8 *val);
	int (*read_word)(struct pci_dev *, int where, u16 *val);
	int (*read_dword)(struct pci_dev *, int where, u32 *val);
	int (*write_byte)(struct pci_dev *, int where, u8 val);
	int (*write_word)(struct pci_dev *, int where, u16 val);
	int (*write_dword)(struct pci_dev *, int where, u32 val);
};

struct pbus_set_ranges_data
{
	int found_vga;
	unsigned long io_start, io_end;
	unsigned long mem_start, mem_end;
};

struct pci_device_id {
	unsigned int vendor, device;
	unsigned int subvendor, subdevice;
	unsigned int class, class_mask;
	unsigned long driver_data;
};

struct pci_driver {
	struct list_head node;
	char *name;
	const struct pci_device_id *id_table;
	int (*probe)(struct pci_dev *dev, const struct pci_device_id *id);
	void (*remove)(struct pci_dev *dev);
	void (*suspend)(struct pci_dev *dev);
	void (*resume)(struct pci_dev *dev);
};





void pcibios_init(void);
void pcibios_fixup_bus(struct pci_bus *);
int pcibios_enable_device(struct pci_dev *);
char *pcibios_setup (char *str);


void pcibios_align_resource(void *, struct resource *, unsigned long);
void pcibios_update_resource(struct pci_dev *, struct resource *,
			     struct resource *, int);
void pcibios_update_irq(struct pci_dev *, int irq);
void pcibios_fixup_pbus_ranges(struct pci_bus *, struct pbus_set_ranges_data
*);



int pcibios_present(void);
int pcibios_read_config_byte (unsigned char bus, unsigned char dev_fn,
			      unsigned char where, unsigned char *val);
int pcibios_read_config_word (unsigned char bus, unsigned char dev_fn,
			      unsigned char where, unsigned short *val);
int pcibios_read_config_dword (unsigned char bus, unsigned char dev_fn,
			       unsigned char where, unsigned int *val);
int pcibios_write_config_byte (unsigned char bus, unsigned char dev_fn,
			       unsigned char where, unsigned char val);
int pcibios_write_config_word (unsigned char bus, unsigned char dev_fn,
			       unsigned char where, unsigned short val);
int pcibios_write_config_dword (unsigned char bus, unsigned char dev_fn,
				unsigned char where, unsigned int val);
int pcibios_find_class (unsigned int class_code, unsigned short index,
unsigned char *bus, unsigned char *dev_fn);
int pcibios_find_device (unsigned short vendor, unsigned short dev_id,
			 unsigned short index, unsigned char *bus,
			 unsigned char *dev_fn);



void pci_init(void);
int pci_bus_exists(const struct list_head *list, int nr);
struct pci_bus *pci_scan_bus(int bus, struct pci_ops *ops, void *sysdata);
struct pci_bus *pci_alloc_primary_bus(int bus);
struct pci_dev *pci_scan_slot(struct pci_dev *temp);
int pci_proc_attach_device(struct pci_dev *dev);
int pci_proc_detach_device(struct pci_dev *dev);
void pci_name_device(struct pci_dev *dev);
char *pci_class_name(u32 class);
void pci_read_bridge_bases(struct pci_bus *child);
struct resource *pci_find_parent_resource(const struct pci_dev *dev, struct
resource *res);
int pci_setup_device(struct pci_dev *dev);
int pci_get_interrupt_pin(struct pci_dev *dev, struct pci_dev **bridge);



struct pci_dev *pci_find_device (unsigned int vendor, unsigned int device,
const struct pci_dev *from);
struct pci_dev *pci_find_subsys (unsigned int vendor, unsigned int device,
				 unsigned int ss_vendor, unsigned int ss_device,
				 const struct pci_dev *from);
struct pci_dev *pci_find_class (unsigned int class, const struct pci_dev
*from);
struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
int pci_find_capability (struct pci_dev *dev, int cap);

int pci_read_config_byte(struct pci_dev *dev, int where, u8 *val);
int pci_read_config_word(struct pci_dev *dev, int where, u16 *val);
int pci_read_config_dword(struct pci_dev *dev, int where, u32 *val);
int pci_write_config_byte(struct pci_dev *dev, int where, u8 val);
int pci_write_config_word(struct pci_dev *dev, int where, u16 val);
int pci_write_config_dword(struct pci_dev *dev, int where, u32 val);

int pci_enable_device(struct pci_dev *dev);
void pci_set_master(struct pci_dev *dev);
int pci_set_power_state(struct pci_dev *dev, int state);
int pci_assign_resource(struct pci_dev *dev, int i);



int pci_claim_resource(struct pci_dev *, int);
void pci_assign_unassigned_resources(void);
void pdev_enable_device(struct pci_dev *);
void pdev_sort_resources(struct pci_dev *, struct resource_list *, u32);
unsigned long pci_bridge_check_io(struct pci_dev *);
void pci_fixup_irqs(u8 (*)(struct pci_dev *, u8 *),
		    int (*)(struct pci_dev *, u8, u8));


int pci_register_driver(struct pci_driver *);
void pci_unregister_driver(struct pci_driver *);
void pci_insert_device(struct pci_dev *, struct pci_bus *);
void pci_remove_device(struct pci_dev *);
struct pci_driver *pci_dev_driver(const struct pci_dev *);
const struct pci_device_id *pci_match_device(const struct pci_device_id
*ids, const struct pci_dev *dev);





# 1 "/usr/src/linux-2.4.2/include/asm/pci.h" 1





# 1 "/usr/src/linux-2.4.2/include/linux/spinlock.h" 1





















































  typedef struct { int gcc_is_buggy; } spinlock_t;










# 99 "/usr/src/linux-2.4.2/include/linux/spinlock.h"


















  typedef struct { int gcc_is_buggy; } rwlock_t;


















# 6 "/usr/src/linux-2.4.2/include/asm/pci.h" 2

# 1 "/usr/src/linux-2.4.2/include/asm/scatterlist.h" 1





struct scatterlist {
	char *address;
	char *alt_address;

	dma_addr_t dma_address;
	unsigned int length;
	unsigned int dma_length;
};







# 7 "/usr/src/linux-2.4.2/include/asm/pci.h" 2

# 1 "/usr/src/linux-2.4.2/include/asm/machvec.h" 1
















struct task_struct;
struct mm_struct;
struct pt_regs;
struct vm_area_struct;
struct linux_hose_info;
struct pci_dev;
struct pci_ops;
struct pci_controler;

struct alpha_machine_vector
{



	unsigned long hae_cache;
	unsigned long *hae_register;

	int nr_irqs;
	int rtc_port;
	int max_asn;
	unsigned long max_dma_address;
	unsigned long irq_probe_mask;
	unsigned long iack_sc;
	unsigned long min_io_address;
	unsigned long min_mem_address;

	void (*mv_pci_tbi)(struct pci_controler *hose,
			   dma_addr_t start, dma_addr_t end);

	unsigned int (*mv_inb)(unsigned long);
	unsigned int (*mv_inw)(unsigned long);
	unsigned int (*mv_inl)(unsigned long);

	void (*mv_outb)(unsigned char, unsigned long);
	void (*mv_outw)(unsigned short, unsigned long);
	void (*mv_outl)(unsigned int, unsigned long);

	unsigned long (*mv_readb)(unsigned long);
	unsigned long (*mv_readw)(unsigned long);
	unsigned long (*mv_readl)(unsigned long);
	unsigned long (*mv_readq)(unsigned long);

	void (*mv_writeb)(unsigned char, unsigned long);
	void (*mv_writew)(unsigned short, unsigned long);
	void (*mv_writel)(unsigned int, unsigned long);
	void (*mv_writeq)(unsigned long, unsigned long);

	unsigned long (*mv_ioremap)(unsigned long);
	int (*mv_is_ioaddr)(unsigned long);

	void (*mv_switch_mm)(struct mm_struct *, struct mm_struct *,
			     struct task_struct *, long);
	void (*mv_activate_mm)(struct mm_struct *, struct mm_struct *);

	void (*mv_flush_tlb_current)(struct mm_struct *);
	void (*mv_flush_tlb_current_page)(struct mm_struct * mm,
					  struct vm_area_struct *vma,
					  unsigned long addr);

	void (*update_irq_hw)(unsigned long, unsigned long, int);
	void (*ack_irq)(unsigned long);
	void (*device_interrupt)(unsigned long vector, struct pt_regs *regs);
	void (*machine_check)(u64 vector, u64 la, struct pt_regs *regs);

	void (*init_arch)(void);
	void (*init_irq)(void);
	void (*init_rtc)(void);
	void (*init_pci)(void);
	void (*kill_arch)(int);

	u8 (*pci_swizzle)(struct pci_dev *, u8 *);
	int (*pci_map_irq)(struct pci_dev *, u8, u8);
	struct pci_ops *pci_ops;

	const char *vector_name;


	union {
	    struct {
		unsigned long gru_int_req_bits;
	    } cia;

	    struct {
		unsigned long gamma_bias;
	    } t2;

	    struct {
		unsigned int route_tab;
	    } sio;
	} sys;
};

extern struct alpha_machine_vector alpha_mv;













# 8 "/usr/src/linux-2.4.2/include/asm/pci.h" 2






struct pci_dev;
struct pci_bus;
struct resource;
struct pci_iommu_arena;



struct pci_controler {
	struct pci_controler *next;
        struct pci_bus *bus;
	struct resource *io_space;
	struct resource *mem_space;




	unsigned long sparse_mem_base;
	unsigned long dense_mem_base;
	unsigned long sparse_io_base;
	unsigned long dense_io_base;


	unsigned long config_space_base;

	unsigned int index;
	unsigned int first_busno;
	unsigned int last_busno;

	struct pci_iommu_arena *sg_pci;
	struct pci_iommu_arena *sg_isa;
};









extern void pcibios_set_master(struct pci_dev *dev);

extern inline void pcibios_penalize_isa_irq(int irq)
{

}








extern void *pci_alloc_consistent(struct pci_dev *, long, dma_addr_t *);







extern void pci_free_consistent(struct pci_dev *, long, void *, dma_addr_t);






extern dma_addr_t pci_map_single(struct pci_dev *, void *, long, int);







extern void pci_unmap_single(struct pci_dev *, dma_addr_t, long, int);















extern int pci_map_sg(struct pci_dev *, struct scatterlist *, int, int);





extern void pci_unmap_sg(struct pci_dev *, struct scatterlist *, int, int);










extern inline void
pci_dma_sync_single(struct pci_dev *dev, dma_addr_t dma_addr, long size,
		    int direction)
{

}





extern inline void
pci_dma_sync_sg(struct pci_dev *dev, struct scatterlist *sg, int nents,
	        int direction)
{

}






extern int pci_dma_supported(struct pci_dev *hwdev, dma_addr_t mask);













# 555 "/usr/src/linux-2.4.2/include/linux/pci.h" 2







# 600 "/usr/src/linux-2.4.2/include/linux/pci.h"








static inline int pci_module_init(struct pci_driver *drv)
{
	int rc = pci_register_driver (drv);

	if (rc > 0)
		return 0;












	pci_unregister_driver (drv);

	return - 19 ;
}




















static inline void *pci_get_drvdata (struct pci_dev *pdev)
{
	return pdev->driver_data;
}

static inline void pci_set_drvdata (struct pci_dev *pdev, void *data)
{
	pdev->driver_data = data;
}








struct pci_fixup {
	int pass;
	u16 vendor, device;
	void (*hook)(struct pci_dev *dev);
};

extern struct pci_fixup pcibios_fixups[];




void pci_fixup_device(int pass, struct pci_dev *dev);

extern int pci_pci_problems;







# 16 "core_cia.c" 2

# 1 "/usr/src/linux-2.4.2/include/linux/sched.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/param.h" 1


































# 4 "/usr/src/linux-2.4.2/include/linux/sched.h" 2


extern unsigned long event;


# 1 "/usr/src/linux-2.4.2/include/linux/binfmts.h" 1



# 1 "/usr/src/linux-2.4.2/include/linux/ptrace.h" 1























# 1 "/usr/src/linux-2.4.2/include/asm/ptrace.h" 1


















struct pt_regs {
	unsigned long r0;
	unsigned long r1;
	unsigned long r2;
	unsigned long r3;
	unsigned long r4;
	unsigned long r5;
	unsigned long r6;
	unsigned long r7;
	unsigned long r8;
	unsigned long r19;
	unsigned long r20;
	unsigned long r21;
	unsigned long r22;
	unsigned long r23;
	unsigned long r24;
	unsigned long r25;
	unsigned long r26;
	unsigned long r27;
	unsigned long r28;
	unsigned long hae;

	unsigned long trap_a0;
	unsigned long trap_a1;
	unsigned long trap_a2;

	unsigned long ps;
	unsigned long pc;
	unsigned long gp;
	unsigned long r16;
	unsigned long r17;
	unsigned long r18;
};





struct switch_stack {
	unsigned long r9;
	unsigned long r10;
	unsigned long r11;
	unsigned long r12;
	unsigned long r13;
	unsigned long r14;
	unsigned long r15;
	unsigned long r26;
	unsigned long fp[32];
};




extern void show_regs(struct pt_regs *);



# 24 "/usr/src/linux-2.4.2/include/linux/ptrace.h" 2



# 4 "/usr/src/linux-2.4.2/include/linux/binfmts.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/capability.h" 1
















# 1 "/usr/src/linux-2.4.2/include/linux/fs.h" 1










# 1 "/usr/src/linux-2.4.2/include/linux/limits.h" 1



















# 11 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/wait.h" 1

















# 1 "/usr/src/linux-2.4.2/include/asm/page.h" 1














extern void clear_page(void *page);


extern void copy_page(void * _to, void * _from);






typedef struct { unsigned long pte; } pte_t;
typedef struct { unsigned long pmd; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;










# 57 "/usr/src/linux-2.4.2/include/asm/page.h"






extern __inline__ int get_order(unsigned long size)
{
	int order;

	size = (size-1) >> (13 -1);
	order = -1;
	do {
		size >>= 1;
		order++;
	} while (size);
	return order;
}




















# 18 "/usr/src/linux-2.4.2/include/linux/wait.h" 2

# 1 "/usr/src/linux-2.4.2/include/asm/processor.h" 1


































typedef struct {
	unsigned long seg;
} mm_segment_t;

struct thread_struct {

	unsigned long ksp;
	unsigned long usp;
	unsigned long ptbr;
	unsigned int pcc;
	unsigned int asn;
	unsigned long unique;




	unsigned long pal_flags;
	unsigned long res1, res2;









	unsigned long flags;


	mm_segment_t fs;


	unsigned long bpt_addr[2];
	unsigned int bpt_insn[2];
	int bpt_nsaved;
};





























extern inline unsigned long thread_saved_pc(struct thread_struct *t)
{
	unsigned long fp, sp = t->ksp, base = (unsigned long)t;

	if (sp > base && sp+6*8 < base + 16*1024) {
		fp = ((unsigned long*)sp)[6];
		if (fp > sp && fp < base + 16*1024)
			return *(unsigned long *)fp;
	}

	return 0;
}


extern void start_thread(struct pt_regs *, unsigned long, unsigned long);

struct task_struct;


extern void release_thread(struct task_struct *);


extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long
flags);




unsigned long get_wchan(struct task_struct *p);
























# 19 "/usr/src/linux-2.4.2/include/linux/wait.h" 2







struct __wait_queue {
	unsigned int flags;

	struct task_struct * task;
	struct list_head task_list;




};
typedef struct __wait_queue wait_queue_t;









# 58 "/usr/src/linux-2.4.2/include/linux/wait.h"














struct __wait_queue_head {
	spinlock_t  lock;
	struct list_head task_list;




};
typedef struct __wait_queue_head wait_queue_head_t;






# 114 "/usr/src/linux-2.4.2/include/linux/wait.h"




































static inline void init_waitqueue_head(wait_queue_head_t *q)
{




	q->lock = (spinlock_t) { 0 }  ;
	do { ( &q->task_list )->next = ( &q->task_list ); ( &q->task_list )->prev =
( &q->task_list ); } while (0) ;




}

static inline void init_waitqueue_entry(wait_queue_t *q, struct task_struct
*p)
{




	q->flags = 0;
	q->task = p;



}

static inline int waitqueue_active(wait_queue_head_t *q)
{






	return !list_empty(&q->task_list);
}

static inline void __add_wait_queue(wait_queue_head_t *head, wait_queue_t
*new)
{








	list_add(&new->task_list, &head->task_list);
}




static inline void __add_wait_queue_tail(wait_queue_head_t *head,
						wait_queue_t *new)
{








	list_add_tail(&new->task_list, &head->task_list);
}

static inline void __remove_wait_queue(wait_queue_head_t *head,
							wait_queue_t *old)
{





	list_del(&old->task_list);
}




# 12 "/usr/src/linux-2.4.2/include/linux/fs.h" 2


# 1 "/usr/src/linux-2.4.2/include/linux/vfs.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/statfs.h" 1







typedef __kernel_fsid_t	fsid_t;



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


# 4 "/usr/src/linux-2.4.2/include/linux/vfs.h" 2



# 14 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/net.h" 1





















# 1 "/usr/src/linux-2.4.2/include/linux/socket.h" 1





# 1 "/usr/src/linux-2.4.2/include/asm/socket.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/sockios.h" 1















# 4 "/usr/src/linux-2.4.2/include/asm/socket.h" 2




































































# 6 "/usr/src/linux-2.4.2/include/linux/socket.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/sockios.h" 1





















































































































# 7 "/usr/src/linux-2.4.2/include/linux/socket.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/uio.h" 1


















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














# 8 "/usr/src/linux-2.4.2/include/linux/socket.h" 2



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
















































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

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



# 22 "/usr/src/linux-2.4.2/include/linux/net.h" 2



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;
	wait_queue_head_t	wait;

	short			type;
	unsigned char		passcred;
};



struct scm_cookie;
struct vm_area_struct;

struct proto_ops {
  int	family;

  int	(*release)	(struct socket *sock);
  int	(*bind)		(struct socket *sock, struct sockaddr *umyaddr,
			 int sockaddr_len);
  int	(*connect)	(struct socket *sock, struct sockaddr *uservaddr,
			 int sockaddr_len, int flags);
  int	(*socketpair)	(struct socket *sock1, struct socket *sock2);
  int	(*accept)	(struct socket *sock, struct socket *newsock,
			 int flags);
  int	(*getname)	(struct socket *sock, struct sockaddr *uaddr,
			 int *usockaddr_len, int peer);
  unsigned int (*poll)	(struct file *file, struct socket *sock, struct
poll_table_struct *wait);
  int	(*ioctl)	(struct socket *sock, unsigned int cmd,
			 unsigned long arg);
  int	(*listen)	(struct socket *sock, int len);
  int	(*shutdown)	(struct socket *sock, int flags);
  int	(*setsockopt)	(struct socket *sock, int level, int optname,
			 char *optval, int optlen);
  int	(*getsockopt)	(struct socket *sock, int level, int optname,
			 char *optval, int *optlen);
  int   (*sendmsg)	(struct socket *sock, struct msghdr *m, int total_len,
struct scm_cookie *scm);
  int   (*recvmsg)	(struct socket *sock, struct msghdr *m, int total_len,
int flags, struct scm_cookie *scm);
  int	(*mmap)		(struct file *file, struct socket *sock, struct
vm_area_struct * vma);
};

struct net_proto_family
{
	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 int	sock_wake_async(struct socket *sk, int how, int band);
extern int	sock_register(struct net_proto_family *fam);
extern int	sock_unregister(int family);
extern struct socket *sock_alloc(void);
extern int	sock_create(int family, int type, int proto, struct socket **);
extern void	sock_release(struct socket *);
extern int   	sock_sendmsg(struct socket *, struct msghdr *m, int len);
extern int	sock_recvmsg(struct socket *, struct msghdr *m, int len, int
flags);
extern int	sock_readv_writev(int type, struct inode * inode, struct file *
file,
				  const struct iovec * iov, long count, long size);

extern int	net_ratelimit(void);
extern unsigned long net_random(void);
extern void net_srandom(unsigned long);




# 222 "/usr/src/linux-2.4.2/include/linux/net.h"





# 15 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/kdev_t.h" 1


































































typedef unsigned short kdev_t;








extern const 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/src/linux-2.4.2/include/linux/kdev_t.h"


# 16 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ioctl.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/ioctl.h" 1


































































# 4 "/usr/src/linux-2.4.2/include/linux/ioctl.h" 2




# 17 "/usr/src/linux-2.4.2/include/linux/fs.h" 2


# 1 "/usr/src/linux-2.4.2/include/linux/dcache.h" 1





# 1 "/usr/src/linux-2.4.2/include/asm/atomic.h" 1

















typedef struct { volatile int counter; } atomic_t;












static __inline__ void atomic_add(int i, atomic_t * v)
{
	unsigned long temp;
	__asm__ __volatile__(
	"1:	ldl_l %0,%1\n"
	"	addl %0,%2,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (v->counter)
	:"Ir" (i), "m" (v->counter));
}

static __inline__ void atomic_sub(int i, atomic_t * v)
{
	unsigned long temp;
	__asm__ __volatile__(
	"1:	ldl_l %0,%1\n"
	"	subl %0,%2,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (v->counter)
	:"Ir" (i), "m" (v->counter));
}




static __inline__ long atomic_add_return(int i, atomic_t * v)
{
	long temp, result;
	__asm__ __volatile__(
	"1:	ldl_l %0,%1\n"
	"	addl %0,%3,%2\n"
	"	addl %0,%3,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	"	mb\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (v->counter), "=&r" (result)
	:"Ir" (i), "m" (v->counter) : "memory");
	return result;
}

static __inline__ long atomic_sub_return(int i, atomic_t * v)
{
	long temp, result;
	__asm__ __volatile__(
	"1:	ldl_l %0,%1\n"
	"	subl %0,%3,%2\n"
	"	subl %0,%3,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	"	mb\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (v->counter), "=&r" (result)
	:"Ir" (i), "m" (v->counter) : "memory");
	return result;
}











# 6 "/usr/src/linux-2.4.2/include/linux/dcache.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/mount.h" 1
















struct vfsmount
{
	struct dentry *mnt_mountpoint;
	struct dentry *mnt_root;
	struct vfsmount *mnt_parent;
	struct list_head mnt_instances;
	struct list_head mnt_clash;

	struct super_block *mnt_sb;
	struct list_head mnt_mounts;
	struct list_head mnt_child;
	atomic_t mnt_count;
	int mnt_flags;
	char *mnt_devname;
	struct list_head mnt_list;
	uid_t mnt_owner;
};

static inline struct vfsmount *mntget(struct vfsmount *mnt)
{
	if (mnt)
		atomic_add(1,( &mnt->mnt_count )) ;
	return mnt;
}

static inline void mntput(struct vfsmount *mnt)
{
	if (mnt) {
		if ((atomic_sub_return(1, ( &mnt->mnt_count )) == 0) )
			__asm__ __volatile__("call_pal 129 # bugchk") ;
	}
}



# 7 "/usr/src/linux-2.4.2/include/linux/dcache.h" 2

















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

struct dentry_stat_t {
	int nr_dentry;
	int nr_unused;
	int age_limit;
	int want_pages;
	int dummy[2];
};
extern struct dentry_stat_t dentry_stat;






static __inline__ unsigned long partial_name_hash(unsigned long c, unsigned
long prevhash)
{
	return (prevhash + (c << 4) + (c >> 4)) * 11;
}


static __inline__ unsigned long end_name_hash(unsigned long 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 {
	atomic_t d_count;
	unsigned int d_flags;
	struct inode  * d_inode;
	struct dentry * d_parent;
	struct list_head d_vfsmnt;
	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 *);
	int (*d_delete)(struct dentry *);
	void (*d_release)(struct dentry *);
	void (*d_iput)(struct dentry *, struct inode *);
};

































extern spinlock_t dcache_lock;


















static __inline__ void d_drop(struct dentry * dentry)
{
	(void)( &dcache_lock ) ;
	list_del(&dentry->d_hash);
	do { ( &dentry->d_hash )->next = ( &dentry->d_hash ); (
&dentry->d_hash )->prev = ( &dentry->d_hash ); } while (0) ;
	do { } 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 *, const struct qstr *);
extern void shrink_dcache_sb(struct super_block *);
extern void shrink_dcache_parent(struct dentry *);
extern int d_invalidate(struct dentry *);


struct zone_struct;

extern void shrink_dcache_memory(int, unsigned int);
extern void prune_dcache(int);


extern void shrink_icache_memory(int, int);
extern void prune_icache(int);


extern struct dentry * d_alloc_root(struct inode *);


extern void d_genocide(struct dentry *);

extern struct dentry *d_find_alias(struct inode *);
extern void d_prune_aliases(struct inode *);


extern int have_submounts(struct dentry *);




extern void d_rehash(struct dentry *);










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


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


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


extern int d_validate(struct dentry *, struct dentry *, unsigned int,
unsigned int);

extern char * __d_path(struct dentry *, struct vfsmount *, struct dentry *,
	struct vfsmount *, char *, int);
















static __inline__ struct dentry * dget(struct dentry *dentry)
{
	if (dentry) {
		if (! (( &dentry->d_count )->counter) )
			__asm__ __volatile__("call_pal 129 # bugchk") ;
		atomic_add(1,( &dentry->d_count )) ;
	}
	return dentry;
}

extern struct dentry * dget_locked(struct dentry *);








static __inline__ int d_unhashed(struct dentry *dentry)
{
	return list_empty(&dentry->d_hash);
}

extern void dput(struct dentry *);

static __inline__ int d_mountpoint(struct dentry *dentry)
{
	return !list_empty(&dentry->d_vfsmnt);
}




# 19 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/stat.h" 1





# 1 "/usr/src/linux-2.4.2/include/asm/stat.h" 1



struct __old_kernel_stat {
	unsigned int	st_dev;
	unsigned int	st_ino;
	unsigned int	st_mode;
	unsigned int	st_nlink;
	unsigned int	st_uid;
	unsigned int	st_gid;
	unsigned int	st_rdev;
	long		st_size;
	unsigned long	st_atime;
	unsigned long	st_mtime;
	unsigned long	st_ctime;
	unsigned int	st_blksize;
	int		st_blocks;
	unsigned int	st_flags;
	unsigned int	st_gen;
};

struct stat {
	unsigned int	st_dev;
	unsigned int	st_ino;
	unsigned int	st_mode;
	unsigned int	st_nlink;
	unsigned int	st_uid;
	unsigned int	st_gid;
	unsigned int	st_rdev;
	long		st_size;
	unsigned long	st_atime;
	unsigned long	st_mtime;
	unsigned long	st_ctime;
	unsigned int	st_blksize;
	int		st_blocks;
	unsigned int	st_flags;
	unsigned int	st_gen;
};


# 6 "/usr/src/linux-2.4.2/include/linux/stat.h" 2




















































# 20 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/cache.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/cache.h" 1
























# 4 "/usr/src/linux-2.4.2/include/linux/cache.h" 2

























# 21 "/usr/src/linux-2.4.2/include/linux/fs.h" 2


# 1 "/usr/src/linux-2.4.2/include/linux/string.h" 1










extern char * ___strtok;
extern char * strpbrk(const char *,const char *);
extern char * strtok(char *,const char *);
extern char * strsep(char **,const char *);
extern __kernel_size_t strspn(const char *,const char *);





# 1 "/usr/src/linux-2.4.2/include/asm/string.h" 1













extern void * memcpy(void *, const void *, size_t);

extern void * memmove(void *, const void *, size_t);


extern void * __memcpy(void *, const void *, size_t);




extern void * __constant_c_memset(void *, unsigned long, size_t);
extern void * __memset(void *, int, size_t);
extern void * memset(void *, int, size_t);









extern char * strcpy(char *,const char *);

extern char * strncpy(char *, const char *, size_t);

extern char * strcat(char *, const char *);

extern char * strncat(char *, const char *, size_t);

extern char * strchr(const char *,int);

extern char * strrchr(const char *,int);

extern size_t strlen(const char *);

extern void * memchr(const void *, int, size_t);






extern void * __memsetw(void *dest, unsigned short, size_t count);






extern int strcasecmp(const char *, const char *);




# 21 "/usr/src/linux-2.4.2/include/linux/string.h" 2















extern int strcmp(const char *,const char *);


extern int strncmp(const char *,const char *,__kernel_size_t);


extern int strnicmp(const char *, const char *, __kernel_size_t);








extern char * strstr(const char *,const char *);





extern __kernel_size_t strnlen(const char *,__kernel_size_t);












extern void * memscan(void *,int,__kernel_size_t);


extern int memcmp(const void *,const void *,__kernel_size_t);










# 23 "/usr/src/linux-2.4.2/include/linux/fs.h" 2



# 1 "/usr/src/linux-2.4.2/include/asm/bitops.h" 1






















extern __inline__ void
set_bit(unsigned long nr, volatile void * addr)
{
	unsigned long temp;
	int *m = ((int *) addr) + (nr >> 5);

	__asm__ __volatile__(
	"1:	ldl_l %0,%3\n"
	"	bis %0,%2,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (*m)
	:"Ir" (1UL << (nr & 31)), "m" (*m));
}




extern __inline__ void
__set_bit(unsigned long nr, volatile void * addr)
{
	int *m = ((int *) addr) + (nr >> 5);

	*m |= 1UL << (nr & 31);
}




extern __inline__ void
clear_bit(unsigned long nr, volatile void * addr)
{
	unsigned long temp;
	int *m = ((int *) addr) + (nr >> 5);

	__asm__ __volatile__(
	"1:	ldl_l %0,%3\n"
	"	and %0,%2,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (*m)
	:"Ir" (~(1UL << (nr & 31))), "m" (*m));
}

extern __inline__ void
change_bit(unsigned long nr, volatile void * addr)
{
	unsigned long temp;
	int *m = ((int *) addr) + (nr >> 5);

	__asm__ __volatile__(
	"1:	ldl_l %0,%3\n"
	"	xor %0,%2,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,2f\n"
	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (*m)
	:"Ir" (1UL << (nr & 31)), "m" (*m));
}

extern __inline__ int
test_and_set_bit(unsigned long nr, volatile void *addr)
{
	unsigned long oldbit;
	unsigned long temp;
	int *m = ((int *) addr) + (nr >> 5);

	__asm__ __volatile__(
	"1:	ldl_l %0,%4\n"
	"	and %0,%3,%2\n"
	"	bne %2,2f\n"
	"	xor %0,%3,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,3f\n"
	"2:\n"



	".subsection 2\n"
	"3:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (*m), "=&r" (oldbit)
	:"Ir" (1UL << (nr & 31)), "m" (*m) : "memory");

	return oldbit != 0;
}




extern __inline__ int
__test_and_set_bit(unsigned long nr, volatile void * addr)
{
	unsigned long mask = 1 << (nr & 0x1f);
	int *m = ((int *) addr) + (nr >> 5);
	int old = *m;

	*m = old | mask;
	return (old & mask) != 0;
}

extern __inline__ int
test_and_clear_bit(unsigned long nr, volatile void * addr)
{
	unsigned long oldbit;
	unsigned long temp;
	int *m = ((int *) addr) + (nr >> 5);

	__asm__ __volatile__(
	"1:	ldl_l %0,%4\n"
	"	and %0,%3,%2\n"
	"	beq %2,2f\n"
	"	xor %0,%3,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,3f\n"
	"2:\n"



	".subsection 2\n"
	"3:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (*m), "=&r" (oldbit)
	:"Ir" (1UL << (nr & 31)), "m" (*m) : "memory");

	return oldbit != 0;
}




extern __inline__ int
__test_and_clear_bit(unsigned long nr, volatile void * addr)
{
	unsigned long mask = 1 << (nr & 0x1f);
	int *m = ((int *) addr) + (nr >> 5);
	int old = *m;

	*m = old & ~mask;
	return (old & mask) != 0;
}

extern __inline__ int
test_and_change_bit(unsigned long nr, volatile void * addr)
{
	unsigned long oldbit;
	unsigned long temp;
	int *m = ((int *) addr) + (nr >> 5);

	__asm__ __volatile__(
	"1:	ldl_l %0,%4\n"
	"	and %0,%3,%2\n"
	"	xor %0,%3,%0\n"
	"	stl_c %0,%1\n"
	"	beq %0,3f\n"



	".subsection 2\n"
	"3:	br 1b\n"
	".previous"
	:"=&r" (temp), "=m" (*m), "=&r" (oldbit)
	:"Ir" (1UL << (nr & 31)), "m" (*m) : "memory");

	return oldbit != 0;
}

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








extern inline unsigned long ffz_b(unsigned long x)
{
	unsigned long sum = 0;

	x = ~x & -~x;
	if (x & 0xF0) sum += 4;
	if (x & 0xCC) sum += 2;
	if (x & 0xAA) sum += 1;

	return sum;
}

extern inline unsigned long ffz(unsigned long word)
{






	unsigned long bits, qofs, bofs;

	__asm__("cmpbge %1,%2,%0" : "=r"(bits) : "r"(word), "r"(~0UL));
	qofs = ffz_b(bits);
	__asm__("extbl %1,%2,%0" : "=r"(bits) : "r"(word), "r"(qofs));
	bofs = ffz_b(bits);

	return qofs*8 + bofs;

}









extern inline int ffs(int word)
{
	int result = ffz(~word);
	return word ? result+1 : 0;
}






# 273 "/usr/src/linux-2.4.2/include/asm/bitops.h"











extern inline unsigned long
find_next_zero_bit(void * addr, unsigned long size, unsigned long offset)
{
	unsigned long * p = ((unsigned long *) addr) + (offset >> 6);
	unsigned long result = offset & ~63UL;
	unsigned long tmp;

	if (offset >= size)
		return size;
	size -= result;
	offset &= 63UL;
	if (offset) {
		tmp = *(p++);
		tmp |= ~0UL >> (64-offset);
		if (size < 64)
			goto found_first;
		if (~tmp)
			goto found_middle;
		size -= 64;
		result += 64;
	}
	while (size & ~63UL) {
		if (~(tmp = *(p++)))
			goto found_middle;
		result += 64;
		size -= 64;
	}
	if (!size)
		return result;
	tmp = *p;
found_first:
	tmp |= ~0UL << size;
	if (tmp == ~0UL)
		return result + size;
found_middle:
	return result + ffz(tmp);
}

























# 26 "/usr/src/linux-2.4.2/include/linux/fs.h" 2


struct poll_table_struct;





















struct files_stat_struct {
	int nr_files;
	int nr_free_files;
	int max_files;
};
extern struct files_stat_struct files_stat;

struct inodes_stat_t {
	int nr_inodes;
	int nr_unused;
	int dummy[5];
};
extern struct inodes_stat_t inodes_stat;

extern int max_super_blocks, nr_super_blocks;
extern int leases_enable, dir_notify_enable, lease_break_time;





































































































































# 1 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 1










# 1 "/usr/src/linux-2.4.2/include/asm/current.h" 1



register struct task_struct *current __asm__("$8");


# 11 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 2

# 1 "/usr/src/linux-2.4.2/include/asm/system.h" 1




# 1 "/usr/src/linux-2.4.2/include/asm/pal.h" 1



















































# 5 "/usr/src/linux-2.4.2/include/asm/system.h" 2








































struct el_common {
	unsigned int	size;
	int		sbz1	: 30;
	int		err2	:  1;
	int		retry	:  1;
	unsigned int	proc_offset;
	unsigned int	sys_offset;
	unsigned long	code;
};






struct el_common_EV5_uncorrectable_mcheck {
        unsigned long   shadow[8];
        unsigned long   paltemp[24];
        unsigned long   exc_addr;
        unsigned long   exc_sum;
        unsigned long   exc_mask;
        unsigned long   pal_base;
        unsigned long   isr;
        unsigned long   icsr;
        unsigned long   ic_perr_stat;

        unsigned long   dc_perr_stat;




        unsigned long   va;
        unsigned long   mm_stat;

        unsigned long   sc_addr;


        unsigned long   sc_stat;

        unsigned long   bc_tag_addr;
        unsigned long   ei_addr;

        unsigned long   fill_syndrome;
        unsigned long   ei_stat;


        unsigned long   ld_lock;
};

struct el_common_EV6_mcheck {
	unsigned int FrameSize;
	unsigned int FrameFlags;
	unsigned int CpuOffset;
	unsigned int SystemOffset;
	unsigned int MCHK_Code;
	unsigned int MCHK_Frame_Rev;
	unsigned long I_STAT;
	unsigned long DC_STAT;
	unsigned long C_ADDR;
	unsigned long DC1_SYNDROME;
	unsigned long DC0_SYNDROME;
	unsigned long C_STAT;
	unsigned long C_STS;
	unsigned long RESERVED0;
	unsigned long EXC_ADDR;
	unsigned long IER_CM;
	unsigned long ISUM;
	unsigned long MM_STAT;
	unsigned long PAL_BASE;
	unsigned long I_CTL;
	unsigned long PCTX;
};

extern void halt(void) __attribute__((noreturn));












extern struct task_struct* alpha_switch_to(unsigned long, struct
task_struct*);
































enum implver_enum {
	IMPLVER_EV4,
	IMPLVER_EV5,
	IMPLVER_EV6
};



















enum amask_enum {
	AMASK_BWX = (1UL << 0),
	AMASK_FIX = (1UL << 1),
	AMASK_MAX = (1UL << 8),
	AMASK_PRECISE_TRAP = (1UL << 9),
};







# 211 "/usr/src/linux-2.4.2/include/asm/system.h"


# 222 "/usr/src/linux-2.4.2/include/asm/system.h"


# 234 "/usr/src/linux-2.4.2/include/asm/system.h"


# 247 "/usr/src/linux-2.4.2/include/asm/system.h"


# 261 "/usr/src/linux-2.4.2/include/asm/system.h"

static inline void  cflush (  unsigned long  arg0)	{	register   unsigned
long  __r16 __asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %1 #
""cflush"	: "=r"(__r16)	: "i"(1  ), "0"(__r16)	: "$1", "$22", "$23", "$24",
"$25");	} ;
static inline   unsigned long   rdmces (void)	{	register   unsigned long
__r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "rdmces"	:"=r"
(__r0)	:"i" (16  )	:"$1", "$16", "$22", "$23", "$24", "$25");	return __r0;	}
;
static inline   unsigned long   rdps (void)	{	register   unsigned long  __r0
__asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "rdps"	:"=r" (__r0)
:"i" (54  )	:"$1", "$16", "$22", "$23", "$24", "$25");	return __r0;	} ;
static inline   unsigned long   rdusp (void)	{	register   unsigned long
__r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "rdusp"	:"=r"
(__r0)	:"i" (58  )	:"$1", "$16", "$22", "$23", "$24", "$25");	return __r0;	}
;
static inline   unsigned long   swpipl (  unsigned long  arg0)	{	register
unsigned long  __r0 __asm__("$0");	register   unsigned long  __r16
__asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %2 # ""swpipl"	:
"=r"(__r16), "=r"(__r0)	: "i"(53  ), "0"(__r16)	: "$1", "$22", "$23", "$24",
"$25");	return __r0;	} ;
static inline   unsigned long   whami (void)	{	register   unsigned long
__r0 __asm__("$0");	__asm__ __volatile__(	"call_pal %1 # " "whami"	:"=r"
(__r0)	:"i" (60  )	:"$1", "$16", "$22", "$23", "$24", "$25");	return __r0;	}
;
static inline void  wrent (  void*  arg0,   unsigned long  arg1)	{	register
void*  __r16 __asm__("$16") = arg0;	register   unsigned long  __r17
__asm__("$17") = arg1;	__asm__ __volatile__(	"call_pal %2 # ""wrent"	:
"=r"(__r16), "=r"(__r17)	: "i"(52  ), "0"(__r16), "1"(__r17)	: "$1", "$22",
"$23", "$24", "$25");	} ;
static inline void  wripir (  unsigned long  arg0)	{	register   unsigned
long  __r16 __asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %1 #
""wripir"	: "=r"(__r16)	: "i"(13  ), "0"(__r16)	: "$1", "$22", "$23", "$24",
"$25");	} ;
static inline void  wrkgp (  unsigned long  arg0)	{	register   unsigned long
__r16 __asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %1 # ""wrkgp"	:
"=r"(__r16)	: "i"(55  ), "0"(__r16)	: "$1", "$22", "$23", "$24", "$25");	} ;
static inline void  wrmces (  unsigned long  arg0)	{	register   unsigned
long  __r16 __asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %1 #
""wrmces"	: "=r"(__r16)	: "i"(17  ), "0"(__r16)	: "$1", "$22", "$23", "$24",
"$25");	} ;
static inline   unsigned long   wrperfmon (  unsigned long  arg0,   unsigned
long  arg1)	{	register   unsigned long  __r0 __asm__("$0");	register
unsigned long  __r16 __asm__("$16") = arg0;	register   unsigned long  __r17
__asm__("$17") = arg1;	__asm__ __volatile__(	"call_pal %3 # ""wrperfmon"	:
"=r"(__r16), "=r"(__r17), "=r"(__r0)	: "i"(57  ), "0"(__r16), "1"(__r17)	:
"$1", "$22", "$23", "$24", "$25");	return __r0;	} ;
static inline void  wrusp (  unsigned long  arg0)	{	register   unsigned long
__r16 __asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %1 # ""wrusp"	:
"=r"(__r16)	: "i"(56  ), "0"(__r16)	: "$1", "$22", "$23", "$24", "$25");	} ;
static inline void  wrvptptr (  unsigned long  arg0)	{	register   unsigned
long  __r16 __asm__("$16") = arg0;	__asm__ __volatile__(	"call_pal %1 #
""wrvptptr"	: "=r"(__r16)	: "i"(45  ), "0"(__r16)	: "$1", "$22", "$23",
"$24", "$25");	} ;
































# 323 "/usr/src/linux-2.4.2/include/asm/system.h"














# 346 "/usr/src/linux-2.4.2/include/asm/system.h"














extern __inline__ unsigned long
__xchg_u32(volatile int *m, unsigned long val)
{
	unsigned long dummy;

	__asm__ __volatile__(
	"1:	ldl_l %0,%4\n"
	"	bis $31,%3,%1\n"
	"	stl_c %1,%2\n"
	"	beq %1,2f\n"



	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	: "=&r" (val), "=&r" (dummy), "=m" (*m)
	: "rI" (val), "m" (*m) : "memory");

	return val;
}

extern __inline__ unsigned long
__xchg_u64(volatile long *m, unsigned long val)
{
	unsigned long dummy;

	__asm__ __volatile__(
	"1:	ldq_l %0,%4\n"
	"	bis $31,%3,%1\n"
	"	stq_c %1,%2\n"
	"	beq %1,2f\n"



	".subsection 2\n"
	"2:	br 1b\n"
	".previous"
	: "=&r" (val), "=&r" (dummy), "=m" (*m)
	: "rI" (val), "m" (*m) : "memory");

	return val;
}



extern void __xchg_called_with_bad_pointer(void);

static __inline__ unsigned long
__xchg(volatile void *ptr, unsigned long x, int size)
{
	switch (size) {
		case 4:
			return __xchg_u32(ptr, x);
		case 8:
			return __xchg_u64(ptr, x);
	}
	__xchg_called_with_bad_pointer();
	return x;
}























extern __inline__ unsigned long
__cmpxchg_u32(volatile int *m, int old, int new)
{
	unsigned long prev, cmp;

	__asm__ __volatile__(
	"1:	ldl_l %0,%5\n"
	"	cmpeq %0,%3,%1\n"
	"	beq %1,2f\n"
	"	mov %4,%1\n"
	"	stl_c %1,%2\n"
	"	beq %1,3f\n"



	"2:\n"
	".subsection 2\n"
	"3:	br 1b\n"
	".previous"
	: "=&r"(prev), "=&r"(cmp), "=m"(*m)
	: "r"((long) old), "r"(new), "m"(*m) : "memory");

	return prev;
}

extern __inline__ unsigned long
__cmpxchg_u64(volatile long *m, unsigned long old, unsigned long new)
{
	unsigned long prev, cmp;

	__asm__ __volatile__(
	"1:	ldq_l %0,%5\n"
	"	cmpeq %0,%3,%1\n"
	"	beq %1,2f\n"
	"	mov %4,%1\n"
	"	stq_c %1,%2\n"
	"	beq %1,3f\n"



	"2:\n"
	".subsection 2\n"
	"3:	br 1b\n"
	".previous"
	: "=&r"(prev), "=&r"(cmp), "=m"(*m)
	: "r"((long) old), "r"(new), "m"(*m) : "memory");

	return prev;
}



extern void __cmpxchg_called_with_bad_pointer(void);

static __inline__ unsigned long
__cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int
size)
{
	switch (size) {
		case 4:
			return __cmpxchg_u32(ptr, old, new);
		case 8:
			return __cmpxchg_u64(ptr, old, new);
	}
	__cmpxchg_called_with_bad_pointer();
	return old;
}












# 12 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 2


# 1 "/usr/src/linux-2.4.2/include/asm/compiler.h" 1




















































































# 14 "/usr/src/linux-2.4.2/include/asm/semaphore.h" 2





struct semaphore {

	atomic_t count __attribute__((aligned(8)));
	atomic_t waking;

	wait_queue_head_t wait;



};





















static inline void sema_init(struct semaphore *sem, int val)
{






	(( &sem->count )->counter = (  val )) ;
	(( &sem->waking )->counter = (  -1 )) ;
	init_waitqueue_head(&sem->wait);



}

static inline void init_MUTEX (struct semaphore *sem)
{
	sema_init(sem, 1);
}

static inline void init_MUTEX_LOCKED (struct semaphore *sem)
{
	sema_init(sem, 0);
}

extern void down(struct semaphore *);
extern void __down_failed(struct semaphore *);
extern int  down_interruptible(struct semaphore *);
extern int  __down_failed_interruptible(struct semaphore *);
extern int  down_trylock(struct semaphore *);
extern void up(struct semaphore *);
extern void __up_wakeup(struct semaphore *);







static inline void __down(struct semaphore *sem)
{
	long count = atomic_sub_return(1,( &sem->count )) ;
	if (( count < 0 ) )
		__down_failed(sem);
}

static inline int __down_interruptible(struct semaphore *sem)
{
	long count = atomic_sub_return(1,( &sem->count )) ;
	if (( count < 0 ) )
		return __down_failed_interruptible(sem);
	return 0;
}








static inline int __down_trylock(struct semaphore * sem)
{
	long ret, tmp, tmp2, sub;




















	__asm__ __volatile__(
		"1:	ldq_l	%1,%4\n"
		"	lda	%3,1\n"
		"	addl	%1,0,%2\n"
		"	sll	%3,32,%3\n"
		"	cmple	%2,0,%0\n"
		"	cmovge	%2,0,%3\n"
		"	cmplt	%1,0,%2\n"
		"	addq	%3,1,%3\n"
		"	and	%0,%2,%0\n"
		"	bne	%0,2f\n"
		"	subq	%1,%3,%1\n"
		"	stq_c	%1,%4\n"
		"	beq	%1,3f\n"
		"2:	mb\n"
		".subsection 2\n"
		"3:	br	1b\n"
		".previous"
		: "=&r"(ret), "=&r"(tmp), "=&r"(tmp2), "=&r"(sub)
		: "m"(*sem)
		: "memory");

	return ret;
}

static inline void __up(struct semaphore *sem)
{
	long ret, tmp, tmp2, tmp3;




















	__asm__ __volatile__(
		"	mb\n"
		"1:	ldq_l	%1,%4\n"
		"	addl	%1,1,%0\n"
		"	zapnot	%1,0xf0,%2\n"
		"	addq	%2,%5,%3\n"
		"	cmovle	%0,%3,%2\n"
		"	zapnot	%0,0x0f,%1\n"
		"	bis	%1,%2,%1\n"
		"	stq_c	%1,%4\n"
		"	beq	%1,3f\n"
		"2:\n"
		".subsection 2\n"
		"3:	br	1b\n"
		".previous"
		: "=&r"(ret), "=&r"(tmp), "=&r"(tmp2), "=&r"(tmp3)
		: "m"(*sem), "r"(0x0000000100000000)
		: "memory");

	if (( ret <= 0 ) )
		__up_wakeup(sem);
}


extern inline void down(struct semaphore *sem)
{
	__down(sem);
}
extern inline int down_interruptible(struct semaphore *sem)
{
	return __down_interruptible(sem);
}
extern inline int down_trylock(struct semaphore *sem)
{
	return __down_trylock(sem);
}
extern inline void up(struct semaphore *sem)
{
	__up(sem);
}
































struct rw_semaphore {
	atomic_t		count;


	unsigned		granted;
	wait_queue_head_t	wait;
	wait_queue_head_t	write_bias_wait;





};






















static inline void init_rwsem(struct rw_semaphore *sem)
{
	(( &sem->count )->counter = (  0x01000000  )) ;
	sem->granted = 0;
	init_waitqueue_head(&sem->wait);
	init_waitqueue_head(&sem->write_bias_wait);





}

extern void down_read(struct rw_semaphore *);
extern void down_write(struct rw_semaphore *);
extern void up_read(struct rw_semaphore *);
extern void up_write(struct rw_semaphore *);
extern void __down_read_failed(struct rw_semaphore *, int);
extern void __down_write_failed(struct rw_semaphore *, int);
extern void __rwsem_wake(struct rw_semaphore *, int);

static inline void __down_read(struct rw_semaphore *sem)
{
	long count = atomic_sub_return(1,( &sem->count )) ;
	if (( count < 0 ) )
		__down_read_failed(sem, count);
}

static inline void __down_write(struct rw_semaphore *sem)
{
	long count = atomic_sub_return(0x01000000 , &sem->count);
	if (( count != 0 ) )
		__down_write_failed(sem, count);
}





static inline void __up_read(struct rw_semaphore *sem)
{
	long count;
	__asm__ __volatile__("mb": : :"memory") ;
	count = atomic_add_return(1,( &sem->count )) ;
	if (( count == 0 ) )
		__rwsem_wake(sem, 0);
}




static inline void __up_write(struct rw_semaphore *sem)
{
	long count, wake;
	__asm__ __volatile__("mb": : :"memory") ;
	count = atomic_add_return(0x01000000 , &sem->count);


	wake = ((int)(count - 0x01000000 ) < 0) && count >= 0;
	if (( wake ) )
		__rwsem_wake(sem, count);
}


extern inline void down_read(struct rw_semaphore *sem)
{
	__down_read(sem);
}
extern inline void down_write(struct rw_semaphore *sem)
{
	__down_write(sem);
}
extern inline void up_read(struct rw_semaphore *sem)
{
	__up_read(sem);
}
extern inline void up_write(struct rw_semaphore *sem)
{
	__up_write(sem);
}



# 199 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/asm/byteorder.h" 1







static __inline __u32 __attribute__((__const)) __arch__swab32(__u32 x)
{














	__u64 t0, t1, t2, t3;

	__asm__("inslh %1, 7, %0"
		: "=r"(t0) : "r"(x));
	__asm__("inswl %1, 3, %0"
		: "=r"(t1) : "r"(x));

	t1 |= t0;
	t2 = t1 >> 16;
	t0 = t1 & 0xFF00FF00;
	t3 = t2 & 0x00FF00FF;
	t1 = t0 + t3;

	return t1;
}







# 1 "/usr/src/linux-2.4.2/include/linux/byteorder/little_endian.h" 1










# 1 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h" 1





























# 38 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h"


# 52 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h"












# 73 "/usr/src/linux-2.4.2/include/linux/byteorder/swab.h"


























































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

extern __inline__ __const__ __u32 __fswab32(__u32 x)
{
	return __arch__swab32 (x);
}
extern __inline__ __u32 __swab32p(__u32 *x)
{
	return __arch__swab32 (*( x )) ;
}
extern __inline__ void __swab32s(__u32 *addr)
{
	do { *( addr ) = __arch__swab32 (*( ( addr ) )) ; } while (0) ;
}


extern __inline__ __const__ __u64 __fswab64(__u64 x)
{





	return ({ __u64 __tmp = ( x ) ; ({ __u64 __x = ( __tmp ); ((__u64)(
(__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) |
(__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) |
(__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) |
(__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) <<  8) |
(__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >>  8) |
(__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) |
(__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) |
(__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }) ; }) ;

}
extern __inline__ __u64 __swab64p(__u64 *x)
{
	return ({ __u64 __tmp = ( *( x ) ) ; ({ __u64 __x = ( __tmp ); ((__u64)(
(__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) |
(__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) |
(__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) |
(__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) <<  8) |
(__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >>  8) |
(__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) |
(__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) |
(__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }) ; })  ;
}
extern __inline__ void __swab64s(__u64 *addr)
{
	do { *( addr ) = ({ __u64 __tmp = ( *( ( addr ) ) ) ; ({ __u64 __x = (
__tmp ); ((__u64)( (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) <<
56) | (__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) |
(__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) |
(__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) <<  8) |
(__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >>  8) |
(__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) |
(__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) |
(__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }) ; })
 ; } while (0) ;
}















# 11 "/usr/src/linux-2.4.2/include/linux/byteorder/little_endian.h" 2























































# 1 "/usr/src/linux-2.4.2/include/linux/byteorder/generic.h" 1





















































































































































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




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























# 66 "/usr/src/linux-2.4.2/include/linux/byteorder/little_endian.h" 2



# 46 "/usr/src/linux-2.4.2/include/asm/byteorder.h" 2



# 200 "/usr/src/linux-2.4.2/include/linux/fs.h" 2


extern void update_atime (struct inode *);


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





















struct buffer_head {

	struct buffer_head *b_next;
	unsigned long b_blocknr;
	unsigned short b_size;
	unsigned short b_list;
	kdev_t b_dev;

	atomic_t b_count;
	kdev_t b_rdev;
	unsigned long b_state;
	unsigned long b_flushtime;

	struct buffer_head *b_next_free;
	struct buffer_head *b_prev_free;
	struct buffer_head *b_this_page;
	struct buffer_head *b_reqnext;

	struct buffer_head **b_pprev;
	char * b_data;
	struct page *b_page;
	void (*b_end_io)(struct buffer_head *bh, int uptodate);
 	void *b_private;

	unsigned long b_rsector;
	wait_queue_head_t b_wait;

	struct inode *	     b_inode;
	struct list_head     b_inode_buffers;
};

typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
void init_buffer(struct buffer_head *, bh_end_io_t *, void *);













extern void set_bh_page(struct buffer_head *bh, struct page *page, unsigned
long offset);




# 1 "/usr/src/linux-2.4.2/include/linux/pipe_fs_i.h" 1




struct pipe_inode_info {
	wait_queue_head_t wait;
	char *base;
	unsigned int start;
	unsigned int readers;
	unsigned int writers;
	unsigned int waiting_readers;
	unsigned int waiting_writers;
	unsigned int r_counter;
	unsigned int w_counter;
};

























void pipe_wait(struct inode * inode);

struct inode* pipe_new(struct inode* inode);


# 279 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/minix_fs_i.h" 1






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


# 280 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ext2_fs_i.h" 1





















struct ext2_inode_info {
	__u32	i_data[15];
	__u32	i_flags;
	__u32	i_faddr;
	__u8	i_frag_no;
	__u8	i_frag_size;
	__u16	i_osync;
	__u32	i_file_acl;
	__u32	i_dir_acl;
	__u32	i_dtime;
	__u32	not_used_1;
	__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;
};


# 281 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/hpfs_fs_i.h" 1



struct hpfs_inode_info {
	unsigned long mmu_private;
	ino_t i_parent_dir;
	unsigned i_dno;
	unsigned i_dpos;
	unsigned i_dsubdno;
	unsigned i_file_sec;
	unsigned i_disk_sec;
	unsigned i_n_secs;
	unsigned i_ea_size;
	unsigned i_conv : 2;
	unsigned i_ea_mode : 1;
	unsigned i_ea_uid : 1;
	unsigned i_ea_gid : 1;
	unsigned i_dirty : 1;
	struct semaphore i_sem;
	loff_t **i_rddir_off;
};




















# 282 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ntfs_fs_i.h" 1




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



typedef gid_t ntfs_gid_t;



typedef __kernel_size_t ntfs_size_t;



typedef __kernel_time_t ntfs_time_t;





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{
	unsigned long mmu_private;
	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;
};


# 283 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/msdos_fs_i.h" 1







struct msdos_inode_info {
	unsigned long mmu_private;
	int i_start;
	int i_logstart;
	int i_attrs;
	int i_ctime_ms;
	int i_location;
	struct inode *i_fat_inode;
	struct list_head i_fat_hash;
};


# 284 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/umsdos_fs_i.h" 1






































struct dir_locking_info {
	wait_queue_head_t p;
	short int looking;
	short int creating;



	long pid;

};

struct umsdos_inode_info {
	struct msdos_inode_info msdos_info;
	struct dir_locking_info dir_info;
	int i_patched;
	int i_is_hlink;
	off_t pos;
};


# 285 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/iso_fs_i.h" 1






struct iso_inode_info {
	unsigned int i_first_extent;
	unsigned char i_file_format;
	unsigned long i_next_section_ino;
	off_t i_section_size;
};


# 286 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/nfs_fs_i.h" 1





# 1 "/usr/src/linux-2.4.2/include/linux/nfs.h" 1









# 1 "/usr/src/linux-2.4.2/include/linux/sunrpc/msg_prot.h" 1













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









# 10 "/usr/src/linux-2.4.2/include/linux/nfs.h" 2































 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_MLINK = 31,
	NFSERR_OPNOTSUPP = 45,
	NFSERR_NAMETOOLONG = 63,
	NFSERR_NOTEMPTY = 66,
	NFSERR_DQUOT = 69,
	NFSERR_STALE = 70,
	NFSERR_REMOTE = 71,
	NFSERR_WFLUSH = 99,
	NFSERR_BADHANDLE = 10001,
	NFSERR_NOT_SYNC = 10002,
	NFSERR_BAD_COOKIE = 10003,
	NFSERR_NOTSUPP = 10004,
	NFSERR_TOOSMALL = 10005,
	NFSERR_SERVERFAULT = 10006,
	NFSERR_BADTYPE = 10007,
	NFSERR_JUKEBOX = 10008
 };



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






struct nfs_fh {
	unsigned short		size;
	unsigned char		data[64 ];
};








enum nfs3_stable_how {
	NFS_UNSTABLE = 0,
	NFS_DATA_SYNC = 1,
	NFS_FILE_SYNC = 2
};


# 6 "/usr/src/linux-2.4.2/include/linux/nfs_fs_i.h" 2





struct nfs_inode_info {



	__u64 fsid;
	__u64 fileid;




	struct nfs_fh		fh;




	unsigned short		flags;


















	unsigned long		read_cache_jiffies;
	__u64			read_cache_ctime;
	__u64			read_cache_mtime;
	__u64			read_cache_atime;
	__u64			read_cache_isize;
	unsigned long		attrtimeo;
	unsigned long		attrtimeo_timestamp;





	__u32			cookieverf[2];




	struct list_head	read;
	struct list_head	dirty;
	struct list_head	commit;
	struct list_head	writeback;

	unsigned int		nread,
				ndirty,
				ncommit,
				npages;


	struct inode		*hash_next,
				*hash_prev;
	unsigned long		nextscan;
};













struct nfs_lock_info {
	u32		state;
	u32		flags;
	struct nlm_host	*host;
};







# 287 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/sysv_fs_i.h" 1






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




};



# 288 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/affs_fs_i.h" 1



# 1 "/usr/src/linux-2.4.2/include/linux/a.out.h" 1







# 1 "/usr/src/linux-2.4.2/include/asm/a.out.h" 1














struct filehdr
{

	__u16 f_magic, f_nscns;
	__u32 f_timdat;
	__u64 f_symptr;
	__u32 f_nsyms;
	__u16 f_opthdr, f_flags;
};

struct aouthdr
{
	__u64 info;
	__u64 tsize;
	__u64 dsize;
	__u64 bsize;
	__u64 entry;
	__u64 text_start;
	__u64 data_start;
	__u64 bss_start;
	__u32 gprmask, fprmask;
	__u64 gpvalue;
};

struct scnhdr
{
	char	s_name[8];
	__u64	s_paddr;
	__u64	s_vaddr;
	__u64	s_size;
	__u64	s_scnptr;
	__u64	s_relptr;
	__u64	s_lnnoptr;
	__u16	s_nreloc;
	__u16	s_nlnno;
	__u32	s_flags;
};

struct exec
{

	struct filehdr		fh;
	struct aouthdr		ah;
};








































# 8 "/usr/src/linux-2.4.2/include/linux/a.out.h" 2





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/src/linux-2.4.2/include/linux/affs_fs_i.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/time.h" 1








struct timespec {
	time_t	tv_sec;
	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)  / 1024 ))
		return ((~0UL >> 1)-1) ;
	nsec += 1000000000L / 1024  - 1;
	nsec /= 1000000000L / 1024 ;
	return 1024  * sec + nsec;
}

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

















static inline unsigned long
mktime (unsigned int year, unsigned int mon,
	unsigned int day, unsigned int hour,
	unsigned int min, unsigned int sec)
{
	if (0 >= (int) (mon -= 2)) {
		mon += 12;
		year -= 1;
	}

	return (((
		(unsigned long) (year/4 - year/100 + year/400 + 367*mon/12 + day) +
			year*365 - 719499
	    )*24 + hour
	  )*60 + min
	)*60 + sec;
}




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/src/linux-2.4.2/include/linux/affs_fs_i.h" 2





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 << 13 )  - 4 * sizeof(struct key_cache) - 4) / 4 ];
	int	 max_ext;
};




struct affs_inode_info {
	unsigned long mmu_private;
	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;
};


# 289 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ufs_fs_i.h" 1















struct ufs_inode_info {
	union {
		__u32	i_data[15];
		__u8	i_symlink[4*15];
	} i_u1;
	__u64	i_size;
	__u32	i_flags;
	__u32	i_gen;
	__u32	i_shadow;
	__u32	i_unused1;
	__u32	i_unused2;
	__u32	i_oeftflag;
	__u16	i_osync;
	__u32	i_lastfrag;
};


# 290 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/efs_fs_i.h" 1











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



# 291 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/coda_fs_i.h" 1













# 1 "/usr/src/linux-2.4.2/include/linux/coda.h" 1









































































# 98 "/usr/src/linux-2.4.2/include/linux/coda.h"











typedef unsigned long long u_quad_t;












# 130 "/usr/src/linux-2.4.2/include/linux/coda.h"


































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_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_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_replace_out {
    struct coda_out_hdr oh;
    ViceFid NewFid;
    ViceFid OldFid;
};


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

struct coda_open_by_fd_out {
    struct coda_out_hdr oh;
    int fd;
};


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_symlink_in coda_symlink;
    struct coda_readlink_in coda_readlink;
    struct coda_fsync_in coda_fsync;
    struct coda_vget_in coda_vget;
    struct coda_open_by_fd_in coda_open_by_fd;
    struct coda_open_by_path_in coda_open_by_path;
    struct coda_statfs_in coda_statfs;
};

union outputArgs {
    struct coda_out_hdr oh;
    struct coda_root_out coda_root;
    struct coda_open_out coda_open;
    struct coda_ioctl_out coda_ioctl;
    struct coda_getattr_out coda_getattr;
    struct coda_lookup_out coda_lookup;
    struct coda_create_out coda_create;
    struct coda_mkdir_out coda_mkdir;
    struct coda_readlink_out coda_readlink;
    struct coda_vget_out coda_vget;
    struct coda_purgeuser_out coda_purgeuser;
    struct coda_zapfile_out coda_zapfile;
    struct coda_zapdir_out coda_zapdir;
    struct coda_zapvnode_out coda_zapvnode;
    struct coda_purgefid_out coda_purgefid;
    struct coda_replace_out coda_replace;
    struct coda_open_by_fd_out coda_open_by_fd;
    struct coda_open_by_path_out coda_open_by_path;
    struct coda_statfs_out coda_statfs;
};

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


















struct coda_mount_data {
	int		version;
	int		fd;
};



# 14 "/usr/src/linux-2.4.2/include/linux/coda_fs_i.h" 2






struct coda_inode_info {
        struct ViceFid     c_fid;
        u_short	           c_flags;
	struct list_head   c_volrootlist;
	struct list_head   c_cilist;
        struct inode      *c_vnode;
        unsigned int       c_contcount;
        struct coda_cred   c_cached_cred;
        unsigned int       c_cached_perm;
        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 *);



# 292 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/romfs_fs_i.h" 1





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


# 293 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/shmem_fs.h" 1















typedef struct {
	unsigned long val;
} swp_entry_t;

struct shmem_inode_info {
	spinlock_t	lock;
	swp_entry_t	i_direct[16 ];
	swp_entry_t   **i_indirect;
	unsigned long	swapped;
	int		locked;
	struct list_head	list;
};

struct shmem_sb_info {
	unsigned long max_blocks;
	unsigned long free_blocks;
	unsigned long max_inodes;
	unsigned long free_inodes;
	spinlock_t    stat_lock;
};


# 294 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/smb_fs_i.h" 1

















struct smb_inode_info {





        unsigned int open;
	__u16 fileid;
	__u16 attr;

	__u16 access;
	__u16 flags;
	unsigned long oldmtime;
	unsigned long closed;
	unsigned openers;
};



# 295 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/hfs_fs_i.h" 1


















struct hfs_inode_info {
	int				magic;

	unsigned long			mmu_private;
	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);
};


# 296 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/adfs_fs_i.h" 1












struct adfs_inode_info {
	unsigned long	mmu_private;
	unsigned long	parent_id;
	__u32		loadaddr;
	__u32		execaddr;
	unsigned int	filetype;
	unsigned int	attr;
	int		stamped:1;
};


# 297 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/qnx4_fs_i.h" 1













# 1 "/usr/src/linux-2.4.2/include/linux/qnxtypes.h" 1














typedef __u16 qnx4_nxtnt_t;
typedef __u8  qnx4_ftype_t;

typedef struct {
	__u32 xtnt_blk;
	__u32 xtnt_size;
} qnx4_xtnt_t;

typedef __u16 qnx4_mode_t;
typedef __u16 qnx4_muid_t;
typedef __u16 qnx4_mgid_t;
typedef __u32 qnx4_off_t;
typedef __u16 qnx4_nlink_t;


# 14 "/usr/src/linux-2.4.2/include/linux/qnx4_fs_i.h" 2





struct qnx4_inode_info {
	char		i_reserved[16];
	qnx4_off_t	i_size;
	qnx4_xtnt_t	i_first_xtnt;
	__u32		i_xblk;
	__s32		i_ftime;
	__s32		i_mtime;
	__s32		i_atime;
	__s32		i_ctime;
	qnx4_nxtnt_t	i_num_xtnts;
	qnx4_mode_t	i_mode;
	qnx4_muid_t	i_uid;
	qnx4_mgid_t	i_gid;
	qnx4_nlink_t	i_nlink;
	__u8		i_zero[4];
	qnx4_ftype_t	i_type;
	__u8		i_status;
	unsigned long	mmu_private;
};


# 298 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/reiserfs_fs_i.h" 1






struct reiserfs_page_list ;

struct reiserfs_inode_info {
  __u32 i_key [4];






  int i_version;

  int i_pack_on_close ;

  __u32 i_first_direct_byte;







  struct reiserfs_page_list *i_converted_page ;






  int i_conversion_trans_id ;
















  int i_prealloc_block;
  int i_prealloc_count;




  int nopack;
};



# 299 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/bfs_fs_i.h" 1











struct bfs_inode_info {
	unsigned long i_dsk_ino;
	unsigned long i_sblock;
	unsigned long i_eblock;
};


# 300 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/udf_fs_i.h" 1























typedef struct
{
	__u32 logicalBlockNum;
	__u16 partitionReferenceNum;
} lb_addr;


struct udf_inode_info
{
	long i_uatime;
	long i_umtime;
	long i_uctime;

	lb_addr i_location;
	__u64 i_unique;
	__u32 i_lenEAttr;
	__u32 i_lenAlloc;
	__u32 i_next_alloc_block;
	__u32 i_next_alloc_goal;
	unsigned i_alloc_type : 3;
	unsigned i_extended_fe : 1;
	unsigned i_strat_4096 : 1;
	unsigned i_new_inode : 1;
	unsigned reserved : 26;
};










# 301 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ncp_fs_i.h" 1
















struct ncp_inode_info {
	__u32	dirEntNum __attribute__((packed));
	__u32	DosDirNum __attribute__((packed));
	__u32	volNumber __attribute__((packed));
	__u32	nwattr;
	struct semaphore open_sem;
	atomic_t	opened;
	int	access;
	__u32	server_file_handle __attribute__((packed));
	__u8	open_create_action __attribute__((packed));
	__u8	file_handle[6] __attribute__((packed));
};




# 302 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/proc_fs_i.h" 1
struct proc_inode_info {
	struct task_struct *task;
	int type;
	union {
		int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount
**);
		int (*proc_read)(struct task_struct *task, char *page);
	} op;
	struct file *file;
};
# 303 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/usbdev_fs_i.h" 1
struct usb_device;
struct usb_bus;

struct usbdev_inode_info {
	struct list_head dlist;
	struct list_head slist;
	union {
		struct usb_device *dev;
		struct usb_bus *bus;
	} p;
};
# 304 "/usr/src/linux-2.4.2/include/linux/fs.h" 2



























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













# 1 "/usr/src/linux-2.4.2/include/linux/quota.h" 1



















































































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;
	wait_queue_head_t dq_wait;
	int dq_count;


	struct super_block *dq_sb;
	unsigned int dq_id;
	kdev_t dq_dev;
	short dq_type;
	short dq_flags;
	unsigned long dq_referenced;

	struct dqblk dq_dqb;
};














# 208 "/usr/src/linux-2.4.2/include/linux/quota.h"


# 355 "/usr/src/linux-2.4.2/include/linux/fs.h" 2






struct page;
struct address_space;

struct address_space_operations {
	int (*writepage)(struct page *);
	int (*readpage)(struct file *, struct page *);
	int (*sync_page)(struct page *);
	int (*prepare_write)(struct file *, struct page *, unsigned, unsigned);
	int (*commit_write)(struct file *, struct page *, unsigned, unsigned);

	int (*bmap)(struct address_space *, long);
};

struct address_space {
	struct list_head	clean_pages;
	struct list_head	dirty_pages;
	struct list_head	locked_pages;
	unsigned long		nrpages;
	struct address_space_operations *a_ops;
	struct inode		*host;
	struct vm_area_struct	*i_mmap;
	struct vm_area_struct	*i_mmap_shared;
	spinlock_t		i_shared_lock;
};

struct block_device {
	struct list_head	bd_hash;
	atomic_t		bd_count;

	dev_t			bd_dev;
	atomic_t		bd_openers;
	const struct block_device_operations *bd_op;
	struct semaphore	bd_sem;
};

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

	struct list_head	i_dirty_buffers;

	unsigned long		i_ino;
	atomic_t		i_count;
	kdev_t			i_dev;
	umode_t			i_mode;
	nlink_t			i_nlink;
	uid_t			i_uid;
	gid_t			i_gid;
	kdev_t			i_rdev;
	loff_t			i_size;
	time_t			i_atime;
	time_t			i_mtime;
	time_t			i_ctime;
	unsigned long		i_blksize;
	unsigned long		i_blocks;
	unsigned long		i_version;
	struct semaphore	i_sem;
	struct semaphore	i_zombie;
	struct inode_operations	*i_op;
	struct file_operations	*i_fop;
	struct super_block	*i_sb;
	wait_queue_head_t	i_wait;
	struct file_lock	*i_flock;
	struct address_space	*i_mapping;
	struct address_space	i_data;
	struct dquot		*i_dquot[2 ];
	struct pipe_inode_info	*i_pipe;
	struct block_device	*i_bdev;

	unsigned long		i_dnotify_mask;
	struct dnotify_struct	*i_dnotify;

	unsigned long		i_state;

	unsigned int		i_flags;
	unsigned char		i_sock;

	atomic_t		i_writecount;
	unsigned int		i_attr_flags;
	__u32			i_generation;
	union {
		struct minix_inode_info		minix_i;
		struct ext2_inode_info		ext2_i;
		struct hpfs_inode_info		hpfs_i;
		struct ntfs_inode_info		ntfs_i;
		struct msdos_inode_info		msdos_i;
		struct umsdos_inode_info	umsdos_i;
		struct iso_inode_info		isofs_i;
		struct nfs_inode_info		nfs_i;
		struct sysv_inode_info		sysv_i;
		struct affs_inode_info		affs_i;
		struct ufs_inode_info		ufs_i;
		struct efs_inode_info		efs_i;
		struct romfs_inode_info		romfs_i;
		struct shmem_inode_info		shmem_i;
		struct coda_inode_info		coda_i;
		struct smb_inode_info		smbfs_i;
		struct hfs_inode_info		hfs_i;
		struct adfs_inode_info		adfs_i;
		struct qnx4_inode_info		qnx4_i;
		struct reiserfs_inode_info	reiserfs_i;
		struct bfs_inode_info		bfs_i;
		struct udf_inode_info		udf_i;
		struct ncp_inode_info		ncpfs_i;
		struct proc_inode_info		proc_i;
		struct socket			socket_i;
		struct usbdev_inode_info        usbdev_i;
		void				*generic_ip;
	} u;
};

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

struct file {
	struct list_head	f_list;
	struct dentry		*f_dentry;
	struct vfsmount         *f_vfsmnt;
	struct file_operations	*f_op;
	atomic_t		f_count;
	unsigned int 		f_flags;
	mode_t			f_mode;
	loff_t			f_pos;
	unsigned long 		f_reada, f_ramax, f_raend, f_ralen, f_rawin;
	struct fown_struct	f_owner;
	unsigned int		f_uid, f_gid;
	int			f_error;

	unsigned long		f_version;


	void			*private_data;
};
extern spinlock_t files_lock;






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 list_head fl_link;
	struct list_head fl_block;
	fl_owner_t fl_owner;
	unsigned int fl_pid;
	wait_queue_head_t fl_wait;
	struct file *fl_file;
	unsigned char fl_flags;
	unsigned char fl_type;
	loff_t fl_start;
	loff_t fl_end;

	void (*fl_notify)(struct file_lock *);
	void (*fl_insert)(struct file_lock *);
	void (*fl_remove)(struct file_lock *);

	struct fasync_struct *	fl_fasync;

	union {
		struct nfs_lock_info	nfs_fl;
	} fl_u;
};








extern struct list_head file_lock_list;

# 1 "/usr/src/linux-2.4.2/include/linux/fcntl.h" 1



# 1 "/usr/src/linux-2.4.2/include/asm/fcntl.h" 1































































struct flock {
	short l_type;
	short l_whence;
	__kernel_off_t l_start;
	__kernel_off_t l_len;
	__kernel_pid_t l_pid;
};







# 4 "/usr/src/linux-2.4.2/include/linux/fcntl.h" 2























# 556 "/usr/src/linux-2.4.2/include/linux/fs.h" 2


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

extern int fcntl_getlk64(unsigned int, struct flock  *);
extern int fcntl_setlk64(unsigned int, unsigned int, struct flock  *);


extern void locks_init_lock(struct file_lock *);
extern void locks_copy_lock(struct file_lock *, struct file_lock *);
extern void locks_remove_posix(struct file *, fl_owner_t);
extern void locks_remove_flock(struct file *);
extern struct file_lock *posix_test_lock(struct file *, struct file_lock *);
extern int posix_lock_file(struct file *, struct file_lock *, unsigned int);
extern void posix_block_lock(struct file_lock *, struct file_lock *);
extern void posix_unblock_lock(struct file_lock *);
extern int __get_lease(struct inode *inode, unsigned int flags);
extern time_t lease_get_mtime(struct inode *);
extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
extern int lock_may_write(struct inode *, loff_t start, unsigned long
count);

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




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

extern void kill_fasync(struct fasync_struct **, int, int);

extern void __kill_fasync(struct fasync_struct *, int, int);

struct nameidata {
	struct dentry *dentry;
	struct vfsmount *mnt;
	struct qstr last;
	unsigned int flags;
	int last_type;
};




struct quota_mount_options
{
	unsigned int flags;
	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 ];
};







# 1 "/usr/src/linux-2.4.2/include/linux/minix_fs_sb.h" 1






struct minix_sb_info {
			unsigned long s_ninodes;
			unsigned long s_nzones;
			unsigned long s_imap_blocks;
			unsigned long s_zmap_blocks;
			unsigned long s_firstdatazone;
			unsigned long s_log_zone_size;
			unsigned long s_max_size;
			int s_dirsize;
			int s_namelen;
			int s_link_max;
			struct buffer_head ** s_imap;
			struct buffer_head ** s_zmap;
			struct buffer_head * s_sbh;
			struct minix_super_block * s_ms;
			unsigned short s_mount_state;
			unsigned short s_version;
};


# 622 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ext2_fs_sb.h" 1





























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_gdb_count;
	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;
	uid_t s_resuid;
	gid_t s_resgid;
	unsigned short s_mount_state;
	unsigned short s_pad;
	int s_addr_per_block_bits;
	int s_desc_per_block_bits;
	int s_inode_size;
	int s_first_ino;
};


# 623 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/hpfs_fs_sb.h" 1



struct hpfs_sb_info {
	ino_t sb_root;
	unsigned sb_fs_size;
	unsigned sb_bitmaps;
	unsigned sb_dirband_start;
	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_conv : 2;
	unsigned sb_eas : 2;
	unsigned sb_err : 2;
	unsigned sb_chk : 2;
	unsigned sb_lowercase : 1;
	unsigned sb_was_error : 1;
	unsigned sb_chkdsk : 2;
	unsigned sb_rd_fnode : 2;
	unsigned sb_rd_inode : 2;


	wait_queue_head_t sb_iget_q;
	unsigned char *sb_cp_table;


	unsigned *sb_bmp_dir;
	unsigned sb_c_bitmap;
	wait_queue_head_t sb_creation_de;

	unsigned sb_creation_de_lock : 1;

	int sb_timeshift;
};































# 624 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ntfs_fs_sb.h" 1



struct ntfs_sb_info{

	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_volume_version;
	ntfs_u32 at_security_descriptor;
	ntfs_u32 at_volume_name;
	ntfs_u32 at_volume_information;
	ntfs_u32 at_data;
	ntfs_u32 at_index_root;
	ntfs_u32 at_index_allocation;
	ntfs_u32 at_bitmap;
	ntfs_u32 at_symlink;

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


# 625 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/msdos_fs_sb.h" 1


# 1 "/usr/src/linux-2.4.2/include/linux/fat_cvf.h" 1





struct cvf_format
{ int cvf_version;
  char* cvf_version_text;
  unsigned long flags;
  int (*detect_cvf) (struct super_block*sb);
  int (*mount_cvf) (struct super_block*sb,char*options);
  int (*unmount_cvf) (struct super_block*sb);
  struct buffer_head* (*cvf_bread) (struct super_block*sb,int block);
  struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block);
  void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh);
  void (*cvf_mark_buffer_dirty) (struct super_block *sb,
                              struct buffer_head *bh);
  void (*cvf_set_uptodate) (struct super_block *sb,
                         struct buffer_head *bh,
                         int val);
  int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh);
  void (*cvf_ll_rw_block) (struct super_block *sb,
                        int opr,
                        int nbreq,
                        struct buffer_head *bh[32]);
  int (*fat_access) (struct super_block *sb,int nr,int new_value);
  int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsiz);
  int (*cvf_bmap) (struct inode *inode,int block);
  ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
  ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t
*);
  int (*cvf_mmap) (struct file *, struct vm_area_struct *);
  int (*cvf_readpage) (struct inode *, struct page *);
  int (*cvf_writepage) (struct inode *, struct page *);
  int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
                        unsigned int cmd, unsigned long arg);
  void (*zero_out_cluster) (struct inode*, int clusternr);
};

int register_cvf_format(struct cvf_format*cvf_format);
int unregister_cvf_format(struct cvf_format*cvf_format);
void dec_cvf_format_use_count_by_version(int version);
int detect_cvf(struct super_block*sb,char*force);

extern struct cvf_format *cvf_formats[];
extern int cvf_format_use_count[];


# 3 "/usr/src/linux-2.4.2/include/linux/msdos_fs_sb.h" 2






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,
		 nocase:1;
};

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

struct msdos_sb_info {
	unsigned short cluster_size;
	unsigned short cluster_bits;
	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;
	wait_queue_head_t fat_wait;
	struct semaphore 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 *private_data;
};


# 626 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/iso_fs_sb.h" 1






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


# 627 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/nfs_fs_sb.h" 1






struct nfs_server {
	struct rpc_clnt *	client;
	struct nfs_rpc_ops *	rpc_ops;
	int			flags;
	unsigned int		rsize;
	unsigned int		rpages;
	unsigned int		wsize;
	unsigned int		wpages;
	unsigned int		dtsize;
	unsigned int		bsize;
	unsigned int		acregmin;
	unsigned int		acregmax;
	unsigned int		acdirmin;
	unsigned int		acdirmax;
	unsigned int		namelen;
	char *			hostname;
	struct nfs_reqlist *	rw_requests;
};




struct nfs_sb_info {
	struct nfs_server	s_server;
};


# 628 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/sysv_fs_sb.h" 1












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






















































# 629 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/affs_fs_sb.h" 1















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















# 630 "/usr/src/linux-2.4.2/include/linux/fs.h" 2

# 1 "/usr/src/linux-2.4.2/include/linux/ufs_fs_sb.h" 1
















# 1 "/usr/src/linux-2.4.2/include/linux/ufs_fs.h" 1























































































































































































































































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 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 int ufs_check_dir_e