2.95.3 destruction in Linux header
Stephen L Moshier
moshier@mediaone.net
Fri Mar 23 14:39:00 GMT 2001
gcc-2.95.2 and egcs-2.91.66 do not complain about this program
but 2.95.3 generates hundreds of failure messages.
----start of source code ---
#include <linux/fs.h>
-----end of source code ---
(The linux version happens to be 2.2.14.)
> i486-linux-gcc -v
Reading specs from /usr/lib/gcc-lib/i486-linux/2.95.3/specs
gcc version 2.95.3 20010312 (prerelease)
i486-linux-gcc -Wall -DDEBUG -D__KERNEL__ -DMODULE -c tst.i
In file included from /usr/include/linux/fs.h:262,
from tst3.c:1:
/usr/include/linux/hpfs_fs_i.h:5: parse error before `ino_t'
/usr/include/linux/hpfs_fs_i.h:5: warning: no semicolon at end of struct or union
/usr/include/linux/hpfs_fs_i.h:12: parse error before `:'
... 500-odd more lines of failure messages
------------
---- start of .i file ---
# 1 "tst3.c"
# 1 "/usr/include/linux/fs.h" 1 3
# 1 "/usr/include/linux/config.h" 1 3
# 1 "/usr/include/linux/autoconf.h" 1 3
# 4 "/usr/include/linux/config.h" 2 3
# 9 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/linkage.h" 1 3
# 52 "/usr/include/linux/linkage.h" 3
# 10 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/limits.h" 1 3
# 11 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/wait.h" 1 3
# 1 "/usr/include/asm/page.h" 1 3
typedef struct { unsigned long pte; } pte_t;
typedef struct { unsigned long pmd; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
# 55 "/usr/include/asm/page.h" 3
# 1 "/usr/include/asm/page_offset.h" 1 3
# 83 "/usr/include/asm/page.h" 2 3
# 11 "/usr/include/linux/wait.h" 2 3
struct wait_queue {
struct task_struct * task;
struct wait_queue * next;
};
static inline void init_waitqueue(struct wait_queue **q)
{
*q = ((struct wait_queue *)(( q )-1)) ;
}
static inline int waitqueue_active(struct wait_queue **q)
{
struct wait_queue *head = *q;
return head && head != ((struct wait_queue *)(( q )-1)) ;
}
# 12 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/types.h" 1 3
# 1 "/usr/include/linux/posix_types.h" 1 3
# 1 "/usr/include/linux/stddef.h" 1 3
# 4 "/usr/include/linux/posix_types.h" 2 3
typedef struct {
unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)) ) ];
} __kernel_fd_set;
typedef void (*__kernel_sighandler_t)(int);
typedef int __kernel_key_t;
# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 1 3
# 1 "/usr/include/features.h" 1 3
# 138 "/usr/include/features.h" 3
# 196 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 71 "/usr/include/sys/cdefs.h" 3
# 103 "/usr/include/sys/cdefs.h" 3
# 250 "/usr/include/features.h" 2 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 278 "/usr/include/features.h" 2 3
# 3 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3
# 1 "/usr/include/asm/posix_types.h" 1 3
typedef unsigned short __kernel_dev_t;
typedef unsigned long __kernel_ino_t;
typedef unsigned short __kernel_mode_t;
typedef unsigned short __kernel_nlink_t;
typedef long __kernel_off_t;
typedef int __kernel_pid_t;
typedef unsigned short __kernel_ipc_pid_t;
typedef unsigned short __kernel_uid_t;
typedef unsigned short __kernel_gid_t;
typedef unsigned int __kernel_size_t;
typedef int __kernel_ssize_t;
typedef int __kernel_ptrdiff_t;
typedef long __kernel_time_t;
typedef long __kernel_suseconds_t;
typedef long __kernel_clock_t;
typedef int __kernel_daddr_t;
typedef char * __kernel_caddr_t;
typedef long long __kernel_loff_t;
typedef struct {
int val[2];
} __kernel_fsid_t;
# 70 "/usr/include/asm/posix_types.h" 3
# 4 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3
# 16 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 3
# 46 "/usr/include/linux/posix_types.h" 2 3
# 4 "/usr/include/linux/types.h" 2 3
# 1 "/usr/include/asm/types.h" 1 3
typedef unsigned short umode_t;
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
# 5 "/usr/include/linux/types.h" 2 3
# 94 "/usr/include/linux/types.h" 3
struct ustat {
__kernel_daddr_t f_tfree;
__kernel_ino_t f_tinode;
char f_fname[6];
char f_fpack[6];
};
# 13 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/vfs.h" 1 3
# 1 "/usr/include/asm/statfs.h" 1 3
struct statfs {
long f_type;
long f_bsize;
long f_blocks;
long f_bfree;
long f_bavail;
long f_files;
long f_ffree;
__kernel_fsid_t f_fsid;
long f_namelen;
long f_spare[6];
};
# 4 "/usr/include/linux/vfs.h" 2 3
# 14 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/net.h" 1 3
# 1 "/usr/include/linux/socket.h" 1 3
# 1 "/usr/include/asm/socket.h" 1 3
# 1 "/usr/include/asm/sockios.h" 1 3
# 4 "/usr/include/asm/socket.h" 2 3
# 6 "/usr/include/linux/socket.h" 2 3
# 1 "/usr/include/linux/sockios.h" 1 3
# 7 "/usr/include/linux/socket.h" 2 3
# 1 "/usr/include/linux/uio.h" 1 3
struct iovec
{
void *iov_base;
__kernel_size_t iov_len;
};
# 8 "/usr/include/linux/socket.h" 2 3
typedef unsigned short sa_family_t;
struct sockaddr {
sa_family_t sa_family;
char sa_data[14];
};
struct linger {
int l_onoff;
int l_linger;
};
struct msghdr {
void * msg_name;
int msg_namelen;
struct iovec * msg_iov;
__kernel_size_t msg_iovlen;
void * msg_control;
__kernel_size_t msg_controllen;
unsigned msg_flags;
};
struct cmsghdr {
__kernel_size_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
extern __inline__ struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
struct cmsghdr *__cmsg)
{
struct cmsghdr * __ptr;
__ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) + ( (( __cmsg->cmsg_len )+sizeof(long)-1) & ~(sizeof(long)-1) ) );
if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
return (struct cmsghdr*)0;
return __ptr;
}
extern __inline__ struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
{
return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
}
struct ucred {
__u32 pid;
__u32 uid;
__u32 gid;
};
extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov,
int offset, int len);
extern int csum_partial_copy_fromiovecend(unsigned char *kdata,
struct iovec *iov,
int offset,
unsigned int len, int *csump);
extern int verify_iovec(struct msghdr *m, struct iovec *iov, char *address, int mode);
extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
extern void memcpy_tokerneliovec(struct iovec *iov, unsigned char *kdata, int len);
extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int *ulen);
extern int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr);
extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
# 279 "/usr/include/linux/socket.h" 3
# 21 "/usr/include/linux/net.h" 2 3
struct poll_table_struct;
typedef enum {
SS_FREE = 0,
SS_UNCONNECTED,
SS_CONNECTING,
SS_CONNECTED,
SS_DISCONNECTING
} socket_state;
struct socket
{
socket_state state;
unsigned long flags;
struct proto_ops *ops;
struct inode *inode;
struct fasync_struct *fasync_list;
struct file *file;
struct sock *sk;
struct wait_queue *wait;
short type;
unsigned char passcred;
unsigned char tli;
};
struct scm_cookie;
struct proto_ops {
int family;
int (*dup) (struct socket *newsock, struct socket *oldsock);
int (*release) (struct socket *sock, struct socket *peer);
int (*bind) (struct socket *sock, struct sockaddr *umyaddr,
int sockaddr_len);
int (*connect) (struct socket *sock, struct sockaddr *uservaddr,
int sockaddr_len, int flags);
int (*socketpair) (struct socket *sock1, struct socket *sock2);
int (*accept) (struct socket *sock, struct socket *newsock,
int flags);
int (*getname) (struct socket *sock, struct sockaddr *uaddr,
int *usockaddr_len, int peer);
unsigned int (*poll) (struct file *file, struct socket *sock, struct poll_table_struct *wait);
int (*ioctl) (struct socket *sock, unsigned int cmd,
unsigned long arg);
int (*listen) (struct socket *sock, int len);
int (*shutdown) (struct socket *sock, int flags);
int (*setsockopt) (struct socket *sock, int level, int optname,
char *optval, int optlen);
int (*getsockopt) (struct socket *sock, int level, int optname,
char *optval, int *optlen);
int (*fcntl) (struct socket *sock, unsigned int cmd,
unsigned long arg);
int (*sendmsg) (struct socket *sock, struct msghdr *m, int total_len, struct scm_cookie *scm);
int (*recvmsg) (struct socket *sock, struct msghdr *m, int total_len, int flags, struct scm_cookie *scm);
};
struct net_proto_family
{
int family;
int (*create)(struct socket *sock, int protocol);
short authentication;
short encryption;
short encrypt_net;
};
struct net_proto
{
const char *name;
void (*init_func)(struct net_proto *);
};
extern struct net_proto_family *net_families[];
extern int sock_wake_async(struct socket *sk, int how);
extern int sock_register(struct net_proto_family *fam);
extern int sock_unregister(int family);
extern struct socket *sock_alloc(void);
extern int sock_create(int family, int type, int proto, struct socket **);
extern void sock_release(struct socket *);
extern int sock_sendmsg(struct socket *, struct msghdr *m, int len);
extern int sock_recvmsg(struct socket *, struct msghdr *m, int len, int flags);
extern int sock_readv_writev(int type, struct inode * inode, struct file * file,
const struct iovec * iov, long count, long size);
extern int net_ratelimit(void);
extern unsigned long net_random(void);
extern void net_srandom(unsigned long);
# 15 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/kdev_t.h" 1 3
typedef unsigned short kdev_t;
extern char * kdevname(kdev_t);
static inline unsigned int kdev_t_to_nr(kdev_t dev) {
return (((unsigned int) (( dev ) >> 8 )) <<8) | ((unsigned int) (( dev ) & ((1U << 8 ) - 1) )) ;
}
static inline kdev_t to_kdev_t(int dev)
{
int major, minor;
major = (dev >> 8);
minor = (dev & 0xff);
return ((( major ) << 8 ) | ( minor )) ;
}
# 113 "/usr/include/linux/kdev_t.h" 3
# 16 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ioctl.h" 1 3
# 1 "/usr/include/asm/ioctl.h" 1 3
# 4 "/usr/include/linux/ioctl.h" 2 3
# 17 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/list.h" 1 3
struct list_head {
struct list_head *next, *prev;
};
static __inline__ void __list_add(struct list_head * new,
struct list_head * prev,
struct list_head * next)
{
next->prev = new;
new->next = next;
new->prev = prev;
prev->next = new;
}
static __inline__ void list_add(struct list_head *new, struct list_head *head)
{
__list_add(new, head, head->next);
}
static __inline__ void __list_del(struct list_head * prev,
struct list_head * next)
{
next->prev = prev;
prev->next = next;
}
static __inline__ void list_del(struct list_head *entry)
{
__list_del(entry->prev, entry->next);
}
static __inline__ int list_empty(struct list_head *head)
{
return head->next == head;
}
static __inline__ void list_splice(struct list_head *list, struct list_head *head)
{
struct list_head *first = list->next;
if (first != list) {
struct list_head *last = list->prev;
struct list_head *at = head->next;
first->prev = head;
head->next = first;
last->next = at;
at->prev = last;
}
}
# 18 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/dcache.h" 1 3
struct qstr {
const unsigned char * name;
unsigned int len;
unsigned int hash;
};
static __inline__ unsigned long partial_name_hash(unsigned long c, unsigned long prevhash)
{
prevhash = (prevhash << 4) | (prevhash >> (8*sizeof(unsigned long)-4));
return prevhash ^ c;
}
static __inline__ unsigned long end_name_hash(unsigned long hash)
{
if (sizeof(hash) > sizeof(unsigned int))
hash += hash >> 4*sizeof(hash);
return (unsigned int) hash;
}
static __inline__ unsigned int full_name_hash(const unsigned char * name, unsigned int len)
{
unsigned long hash = 0 ;
while (len--)
hash = partial_name_hash(*name++, hash);
return end_name_hash(hash);
}
struct dentry {
int d_count;
unsigned int d_flags;
struct inode * d_inode;
struct dentry * d_parent;
struct dentry * d_mounts;
struct dentry * d_covers;
struct list_head d_hash;
struct list_head d_lru;
struct list_head d_child;
struct list_head d_subdirs;
struct list_head d_alias;
struct qstr d_name;
unsigned long d_time;
struct dentry_operations *d_op;
struct super_block * d_sb;
unsigned long d_reftime;
void * d_fsdata;
unsigned char d_iname[16 ];
};
struct dentry_operations {
int (*d_revalidate)(struct dentry *, int);
int (*d_hash) (struct dentry *, struct qstr *);
int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
void (*d_delete)(struct dentry *);
void (*d_release)(struct dentry *);
void (*d_iput)(struct dentry *, struct inode *);
};
static __inline__ void d_drop(struct dentry * dentry)
{
list_del(&dentry->d_hash);
do { ( &dentry->d_hash )->next = ( &dentry->d_hash ); ( &dentry->d_hash )->prev = ( &dentry->d_hash ); } while (0) ;
}
static __inline__ int dname_external(struct dentry *d)
{
return d->d_name.name != d->d_iname;
}
extern void d_instantiate(struct dentry *, struct inode *);
extern void d_delete(struct dentry *);
extern struct dentry * d_alloc(struct dentry * parent, const struct qstr *name);
extern int prune_dcache(int, int);
extern void shrink_dcache_sb(struct super_block *);
extern void shrink_dcache_parent(struct dentry *);
extern int d_invalidate(struct dentry *);
extern void shrink_dcache_memory(int, unsigned int);
extern void check_dcache_memory(void);
extern void free_inode_memory(int);
extern struct dentry * d_alloc_root(struct inode * root_inode, struct dentry * old_root);
extern int is_root_busy(struct dentry *);
extern int have_submounts(struct dentry *);
extern void d_rehash(struct dentry * entry);
static __inline__ void d_add(struct dentry * entry, struct inode * inode)
{
d_rehash(entry);
d_instantiate(entry, inode);
}
extern void d_move(struct dentry * entry, struct dentry * newdentry);
extern struct dentry * d_lookup(struct dentry * dir, struct qstr * name);
extern int d_validate(struct dentry *dentry, struct dentry *dparent,
unsigned int hash, unsigned int len);
extern char * d_path(struct dentry * entry, char * buf, int buflen);
static __inline__ struct dentry * dget(struct dentry *dentry)
{
if (dentry)
dentry->d_count++;
return dentry;
}
extern void dput(struct dentry *);
# 19 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/stat.h" 1 3
# 1 "/usr/include/asm/stat.h" 1 3
struct __old_kernel_stat {
unsigned short st_dev;
unsigned short st_ino;
unsigned short st_mode;
unsigned short st_nlink;
unsigned short st_uid;
unsigned short st_gid;
unsigned short st_rdev;
unsigned long st_size;
unsigned long st_atime;
unsigned long st_mtime;
unsigned long st_ctime;
};
struct stat {
unsigned short st_dev;
unsigned short __pad1;
unsigned long st_ino;
unsigned short st_mode;
unsigned short st_nlink;
unsigned short st_uid;
unsigned short st_gid;
unsigned short st_rdev;
unsigned short __pad2;
unsigned long st_size;
unsigned long st_blksize;
unsigned long st_blocks;
unsigned long st_atime;
unsigned long __unused1;
unsigned long st_mtime;
unsigned long __unused2;
unsigned long st_ctime;
unsigned long __unused3;
unsigned long __unused4;
unsigned long __unused5;
};
# 6 "/usr/include/linux/stat.h" 2 3
# 20 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/asm/atomic.h" 1 3
typedef struct { int counter; } atomic_t;
static __inline__ void atomic_add(int i, volatile atomic_t *v)
{
__asm__ __volatile__(
"" "addl %1,%0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ void atomic_sub(int i, volatile atomic_t *v)
{
__asm__ __volatile__(
"" "subl %1,%0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ void atomic_inc(volatile atomic_t *v)
{
__asm__ __volatile__(
"" "incl %0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ void atomic_dec(volatile atomic_t *v)
{
__asm__ __volatile__(
"" "decl %0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ int atomic_dec_and_test(volatile atomic_t *v)
{
unsigned char c;
__asm__ __volatile__(
"" "decl %0; sete %1"
:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
return c != 0;
}
extern __inline__ int atomic_inc_and_test_greater_zero(volatile atomic_t *v)
{
unsigned char c;
__asm__ __volatile__(
"" "incl %0; setg %1"
:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
return c;
}
# 22 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/bitops.h" 1 3
extern __inline__ int generic_ffs(int x)
{
int r = 1;
if (!x)
return 0;
if (!(x & 0xffff)) {
x >>= 16;
r += 16;
}
if (!(x & 0xff)) {
x >>= 8;
r += 8;
}
if (!(x & 0xf)) {
x >>= 4;
r += 4;
}
if (!(x & 3)) {
x >>= 2;
r += 2;
}
if (!(x & 1)) {
x >>= 1;
r += 1;
}
return r;
}
extern __inline__ unsigned int generic_hweight32(unsigned int w)
{
unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555);
res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
}
extern __inline__ unsigned int generic_hweight16(unsigned int w)
{
unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555);
res = (res & 0x3333) + ((res >> 2) & 0x3333);
res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
return (res & 0x00FF) + ((res >> 8) & 0x00FF);
}
extern __inline__ unsigned int generic_hweight8(unsigned int w)
{
unsigned int res = (w & 0x55) + ((w >> 1) & 0x55);
res = (res & 0x33) + ((res >> 2) & 0x33);
return (res & 0x0F) + ((res >> 4) & 0x0F);
}
# 1 "/usr/include/asm/bitops.h" 1 3
extern void set_bit(int nr, volatile void * addr);
extern void clear_bit(int nr, volatile void * addr);
extern void change_bit(int nr, volatile void * addr);
extern int test_and_set_bit(int nr, volatile void * addr);
extern int test_and_clear_bit(int nr, volatile void * addr);
extern int test_and_change_bit(int nr, volatile void * addr);
extern int __constant_test_bit(int nr, const volatile void * addr);
extern int __test_bit(int nr, volatile void * addr);
extern int find_first_zero_bit(void * addr, unsigned size);
extern int find_next_zero_bit (void * addr, int size, int offset);
extern unsigned long ffz(unsigned long word);
struct __dummy { unsigned long a[100]; };
extern __inline__ void set_bit(int nr, volatile void * addr)
{
__asm__ __volatile__( ""
"btsl %1,%0"
:"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
}
extern __inline__ void clear_bit(int nr, volatile void * addr)
{
__asm__ __volatile__( ""
"btrl %1,%0"
:"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
}
extern __inline__ void change_bit(int nr, volatile void * addr)
{
__asm__ __volatile__( ""
"btcl %1,%0"
:"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
}
extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__( ""
"btsl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
return oldbit;
}
extern __inline__ int test_and_clear_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__( ""
"btrl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
return oldbit;
}
extern __inline__ int test_and_change_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__( ""
"btcl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
return oldbit;
}
extern __inline__ int __constant_test_bit(int nr, const volatile void * addr)
{
return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
}
extern __inline__ int __test_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__(
"btl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit)
:"m" ((*(volatile struct __dummy *) addr) ),"Ir" (nr));
return oldbit;
}
extern __inline__ int find_first_zero_bit(void * addr, unsigned size)
{
int d0, d1, d2;
int res;
if (!size)
return 0;
__asm__("cld\n\t"
"movl $-1,%%eax\n\t"
"xorl %%edx,%%edx\n\t"
"repe; scasl\n\t"
"je 1f\n\t"
"xorl -4(%%edi),%%eax\n\t"
"subl $4,%%edi\n\t"
"bsfl %%eax,%%edx\n"
"1:\tsubl %%ebx,%%edi\n\t"
"shll $3,%%edi\n\t"
"addl %%edi,%%edx"
:"=d" (res), "=&c" (d0), "=&D" (d1), "=&a" (d2)
:"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
return res;
}
extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
unsigned long * p = ((unsigned long *) addr) + (offset >> 5);
int set = 0, bit = offset & 31, res;
if (bit) {
__asm__("bsfl %1,%0\n\t"
"jne 1f\n\t"
"movl $32, %0\n"
"1:"
: "=r" (set)
: "r" (~(*p >> bit)));
if (set < (32 - bit))
return set + offset;
set = 32 - bit;
p++;
}
res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr));
return (offset + set + res);
}
extern __inline__ unsigned long ffz(unsigned long word)
{
__asm__("bsfl %1,%0"
:"=r" (word)
:"r" (~word));
return word;
}
extern __inline__ int ffs(int x)
{
int r;
__asm__("bsfl %1,%0\n\t"
"jnz 1f\n\t"
"movl $-1,%0\n"
"1:" : "=r" (r) : "g" (x));
return r+1;
}
# 69 "/usr/include/linux/bitops.h" 2 3
# 23 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/asm/cache.h" 1 3
# 24 "/usr/include/linux/fs.h" 2 3
struct poll_table_struct;
extern int max_inodes;
extern int max_files, nr_files, nr_free_files;
extern int max_super_blocks, nr_super_blocks;
# 1 "/usr/include/asm/semaphore.h" 1 3
# 1 "/usr/include/asm/system.h" 1 3
# 1 "/usr/include/linux/kernel.h" 1 3
# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 1 3
typedef void *__gnuc_va_list;
void va_end (__gnuc_va_list);
# 175 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 10 "/usr/include/linux/kernel.h" 2 3
extern void math_error(void);
extern struct notifier_block *panic_notifier_list;
void panic(const char * fmt, ...)
__attribute__ ((noreturn, format (printf, 1, 2)));
void do_exit(long error_code)
__attribute__((noreturn)) ;
extern unsigned long simple_strtoul(const char *,char **,unsigned int);
extern long simple_strtol(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);
extern int session_of_pgrp(int pgrp);
__attribute__((regparm(0))) int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
struct sysinfo {
long uptime;
unsigned long loads[3];
unsigned long totalram;
unsigned long freeram;
unsigned long sharedram;
unsigned long bufferram;
unsigned long totalswap;
unsigned long freeswap;
unsigned short procs;
char _f[22];
};
# 4 "/usr/include/asm/system.h" 2 3
# 1 "/usr/include/asm/segment.h" 1 3
# 5 "/usr/include/asm/system.h" 2 3
struct task_struct;
extern void __switch_to(struct task_struct *prev, struct task_struct *next) __attribute__((regparm(3))) ;
# 31 "/usr/include/asm/system.h" 3
# 43 "/usr/include/asm/system.h" 3
# 56 "/usr/include/asm/system.h" 3
static inline unsigned long _get_base(char * addr)
{
unsigned long __base;
__asm__("movb %3,%%dh\n\t"
"movb %2,%%dl\n\t"
"shll $16,%%edx\n\t"
"movw %1,%%dx"
:"=&d" (__base)
:"m" (*((addr)+2)),
"m" (*((addr)+4)),
"m" (*((addr)+7)));
return __base;
}
# 96 "/usr/include/asm/system.h" 3
static inline unsigned long get_limit(unsigned long segment)
{
unsigned long __limit;
__asm__("lsll %1,%0"
:"=r" (__limit):"r" (segment));
return __limit+1;
}
struct __xchg_dummy { unsigned long a[100]; };
static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
{
switch (size) {
case 1:
__asm__("xchgb %b0,%1"
:"=q" (x)
:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
:"memory");
break;
case 2:
__asm__("xchgw %w0,%1"
:"=r" (x)
:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
:"memory");
break;
case 4:
__asm__("xchgl %0,%1"
:"=r" (x)
:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
:"memory");
break;
}
return x;
}
# 196 "/usr/include/asm/system.h" 3
void disable_hlt(void);
void enable_hlt(void);
# 31 "/usr/include/asm/semaphore.h" 2 3
# 1 "/usr/include/asm/spinlock.h" 1 3
typedef struct { } spinlock_t;
# 80 "/usr/include/asm/spinlock.h" 3
typedef struct { } rwlock_t;
# 253 "/usr/include/asm/spinlock.h" 3
# 33 "/usr/include/asm/semaphore.h" 2 3
struct semaphore {
atomic_t count;
int waking;
struct wait_queue * wait;
};
__attribute__((regparm(0))) void __down_failed(void );
__attribute__((regparm(0))) int __down_failed_interruptible(void );
__attribute__((regparm(0))) int __down_failed_trylock(void );
__attribute__((regparm(0))) void __up_wakeup(void );
__attribute__((regparm(0))) void __down(struct semaphore * sem);
__attribute__((regparm(0))) int __down_interruptible(struct semaphore * sem);
__attribute__((regparm(0))) int __down_trylock(struct semaphore * sem);
__attribute__((regparm(0))) void __up(struct semaphore * sem);
extern spinlock_t semaphore_wake_lock;
extern inline void down(struct semaphore * sem)
{
__asm__ __volatile__(
"# atomic down operation\n\t"
"decl (%0)\n\t"
"js 2f\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __down_failed\n\t"
"jmp 1b\n"
".previous"
:
:"c" (sem)
:"memory");
}
extern inline int down_interruptible(struct semaphore * sem)
{
int result;
__asm__ __volatile__(
"# atomic interruptible down operation\n\t"
"decl (%1)\n\t"
"js 2f\n\t"
"xorl %0,%0\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __down_failed_interruptible\n\t"
"jmp 1b\n"
".previous"
:"=a" (result)
:"c" (sem)
:"memory");
return result;
}
extern inline int down_trylock(struct semaphore * sem)
{
int result;
__asm__ __volatile__(
"# atomic interruptible down operation\n\t"
"decl (%1)\n\t"
"js 2f\n\t"
"xorl %0,%0\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __down_failed_trylock\n\t"
"jmp 1b\n"
".previous"
:"=a" (result)
:"c" (sem)
:"memory");
return result;
}
extern inline void up(struct semaphore * sem)
{
__asm__ __volatile__(
"# atomic up operation\n\t"
"incl (%0)\n\t"
"jle 2f\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __up_wakeup\n\t"
"jmp 1b\n"
".previous"
:
:"c" (sem)
:"memory");
}
# 164 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/asm/byteorder.h" 1 3
static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
{
__asm__("bswap %0" : "=r" (x) : "0" (x));
return x;
}
static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
{
__asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); return x;
}
# 1 "/usr/include/linux/byteorder/little_endian.h" 1 3
# 1 "/usr/include/linux/byteorder/swab.h" 1 3
# 41 "/usr/include/linux/byteorder/swab.h" 3
extern __inline__ __const__ __u16 __fswab16(__u16 x)
{
return ___arch__swab16( x ) ;
}
extern __inline__ __u16 __swab16p(__u16 *x)
{
return (__builtin_constant_p((__u16)( *( x ) )) ? ((__u16)( (((__u16)( ( *( x ) ) ) & (__u16)0x00ffU) << 8) | (((__u16)( ( *( x ) ) ) & (__u16)0xff00U) >> 8) )) : __fswab16(( *( x ) ))) ;
}
extern __inline__ void __swab16s(__u16 *addr)
{
do { *( addr ) = __swab16p(( addr )); } while (0) ;
}
extern __inline__ __const__ __u32 __fswab32(__u32 x)
{
return ___arch__swab32( x ) ;
}
extern __inline__ __u32 __swab32p(__u32 *x)
{
return (__builtin_constant_p((__u32)( *( x ) )) ? ((__u32)( (((__u32)( ( *( x ) ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( *( x ) ) ) & (__u32)0x0000ff00UL) << 8) | (((__u32)( ( *( x ) ) ) & (__u32)0x00ff0000UL) >> 8) | (((__u32)( ( *( x ) ) ) & (__u32)0xff000000UL) >> 24) )) : __fswab32(( *( x ) ))) ;
}
extern __inline__ void __swab32s(__u32 *addr)
{
do { *( addr ) = __swab32p(( addr )); } while (0) ;
}
extern __inline__ __const__ __u64 __fswab64(__u64 x)
{
__u32 h = x >> 32;
__u32 l = x & ((1ULL<<32)-1);
return (((__u64)(__builtin_constant_p((__u32)( l )) ? ((__u32)( (((__u32)( ( l ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( l ) ) & (__u32)0x0000ff00UL) << 8) | (((__u32)( ( l ) ) & (__u32)0x00ff0000UL) >> 8) | (((__u32)( ( l ) ) & (__u32)0xff000000UL) >> 24) )) : __fswab32(( l ))) ) << 32) | ((__u64)((__builtin_constant_p((__u32)( h )) ? ((__u32)( (((__u32)( ( h ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( h ) ) & (__u32)0x0000ff00UL) << 8) | (((__u32)( ( h ) ) & (__u32)0x00ff0000UL) >> 8) | (((__u32)( ( h ) ) & (__u32)0xff000000UL) >> 24) )) : __fswab32(( h ))) ));
}
extern __inline__ __u64 __swab64p(__u64 *x)
{
return (__builtin_constant_p((__u64)( *( x ) )) ? ((__u64)( (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64(( *( x ) ))) ;
}
extern __inline__ void __swab64s(__u64 *addr)
{
do { *( addr ) = __swab64p(( addr )); } while (0) ;
}
# 11 "/usr/include/linux/byteorder/little_endian.h" 2 3
# 1 "/usr/include/linux/byteorder/generic.h" 1 3
extern __u32 ntohl(__u32);
extern __u32 htonl(__u32);
extern unsigned short int ntohs(unsigned short int);
extern unsigned short int htons(unsigned short int);
# 54 "/usr/include/linux/byteorder/little_endian.h" 2 3
# 45 "/usr/include/asm/byteorder.h" 2 3
# 165 "/usr/include/linux/fs.h" 2 3
extern void update_atime (struct inode *inode);
extern void buffer_init(unsigned long);
extern void inode_init(void);
extern void file_table_init(void);
extern void dcache_init(void);
typedef char buffer_block[(1<< 10 ) ];
struct buffer_head {
struct buffer_head * b_next;
unsigned long b_blocknr;
unsigned long b_size;
kdev_t b_dev;
kdev_t b_rdev;
unsigned long b_rsector;
struct buffer_head * b_this_page;
unsigned long b_state;
struct buffer_head * b_next_free;
unsigned int b_count;
char * b_data;
unsigned int b_list;
unsigned long b_flushtime;
struct wait_queue * b_wait;
struct buffer_head ** b_pprev;
struct buffer_head * b_prev_free;
struct buffer_head * b_reqnext;
void (*b_end_io)(struct buffer_head *bh, int uptodate);
void *b_dev_id;
};
typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
void init_buffer(struct buffer_head *bh, kdev_t dev, int block,
bh_end_io_t *handler, void *dev_id);
static inline int buffer_uptodate(struct buffer_head * bh)
{
return (__builtin_constant_p( 0 ) ? __constant_test_bit(( 0 ),( &bh->b_state )) : __test_bit(( 0 ),( &bh->b_state ))) ;
}
static inline int buffer_dirty(struct buffer_head * bh)
{
return (__builtin_constant_p( 1 ) ? __constant_test_bit(( 1 ),( &bh->b_state )) : __test_bit(( 1 ),( &bh->b_state ))) ;
}
static inline int buffer_locked(struct buffer_head * bh)
{
return (__builtin_constant_p( 2 ) ? __constant_test_bit(( 2 ),( &bh->b_state )) : __test_bit(( 2 ),( &bh->b_state ))) ;
}
static inline int buffer_req(struct buffer_head * bh)
{
return (__builtin_constant_p( 3 ) ? __constant_test_bit(( 3 ),( &bh->b_state )) : __test_bit(( 3 ),( &bh->b_state ))) ;
}
static inline int buffer_protected(struct buffer_head * bh)
{
return (__builtin_constant_p( 6 ) ? __constant_test_bit(( 6 ),( &bh->b_state )) : __test_bit(( 6 ),( &bh->b_state ))) ;
}
# 1 "/usr/include/linux/pipe_fs_i.h" 1 3
struct pipe_inode_info {
struct wait_queue * wait;
char * base;
unsigned int start;
unsigned int lock;
unsigned int rd_openers;
unsigned int wr_openers;
unsigned int readers;
unsigned int writers;
};
# 259 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/minix_fs_i.h" 1 3
struct minix_inode_info {
union {
__u16 i1_data[16];
__u32 i2_data[16];
} u;
};
# 260 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ext2_fs_i.h" 1 3
struct ext2_inode_info {
__u32 i_data[15];
__u32 i_flags;
__u32 i_faddr;
__u8 i_frag_no;
__u8 i_frag_size;
__u16 i_osync;
__u32 i_file_acl;
__u32 i_dir_acl;
__u32 i_dtime;
__u32 i_version;
__u32 i_block_group;
__u32 i_next_alloc_block;
__u32 i_next_alloc_goal;
__u32 i_prealloc_block;
__u32 i_prealloc_count;
__u32 i_high_size;
int i_new_inode:1;
};
# 261 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hpfs_fs_i.h" 1 3
struct hpfs_inode_info {
ino_t i_parent_dir;
unsigned i_dno;
unsigned i_dpos;
unsigned i_dsubdno;
unsigned i_file_sec;
unsigned i_disk_sec;
unsigned i_n_secs;
unsigned i_conv : 2;
};
# 262 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ntfs_fs_i.h" 1 3
struct ntfs_attribute;
struct ntfs_sb_info;
typedef u8 ntfs_u8;
typedef u16 ntfs_u16;
typedef u32 ntfs_u32;
typedef u64 ntfs_u64;
typedef s8 ntfs_s8;
typedef s16 ntfs_s16;
typedef s32 ntfs_s32;
typedef s64 ntfs_s64;
typedef __kernel_mode_t ntmode_t;
typedef __kernel_uid_t ntfs_uid_t;
typedef __kernel_gid_t ntfs_gid_t;
typedef __kernel_size_t ntfs_size_t;
typedef __kernel_time_t ntfs_time_t;
typedef unsigned short ntfs_wchar_t;
typedef unsigned long long ntfs_offset_t;
typedef unsigned long long ntfs_time64_t;
typedef unsigned int ntfs_cluster_t;
struct ntfs_inode_info{
struct ntfs_sb_info *vol;
int i_number;
unsigned sequence_number;
unsigned char* attr;
int attr_count;
struct ntfs_attribute *attrs;
int record_count;
int *records;
union{
struct{
int recordsize;
int clusters_per_record;
}index;
} u;
};
# 263 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/msdos_fs_i.h" 1 3
struct msdos_inode_info {
struct pipe_inode_info reserved;
int i_start;
int i_logstart;
int i_attrs;
int i_ctime_ms;
int i_binary;
int i_location;
struct inode *i_fat_inode;
struct list_head i_fat_hash;
off_t i_last_pos;
};
# 264 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/umsdos_fs_i.h" 1 3
struct dir_locking_info {
struct wait_queue *p;
short int looking;
short int creating;
long pid;
};
struct umsdos_inode_info {
union {
struct msdos_inode_info msdos_info;
struct pipe_inode_info pipe_info;
struct dir_locking_info dir_info;
} u;
int i_patched;
int i_is_hlink;
unsigned long i_emd_owner;
off_t pos;
struct dentry *i_emd_dentry;
unsigned long i_emd_dir;
};
# 265 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/iso_fs_i.h" 1 3
struct iso_inode_info {
unsigned int i_first_extent;
unsigned char i_file_format;
unsigned long i_next_section_ino;
off_t i_section_size;
};
# 266 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/nfs_fs_i.h" 1 3
# 1 "/usr/include/linux/nfs.h" 1 3
# 1 "/usr/include/linux/sunrpc/msg_prot.h" 1 3
enum rpc_auth_flavor {
RPC_AUTH_NULL = 0,
RPC_AUTH_UNIX = 1,
RPC_AUTH_SHORT = 2,
RPC_AUTH_DES = 3,
RPC_AUTH_KRB = 4,
};
enum rpc_msg_type {
RPC_CALL = 0,
RPC_REPLY = 1
};
enum rpc_reply_stat {
RPC_MSG_ACCEPTED = 0,
RPC_MSG_DENIED = 1
};
enum rpc_accept_stat {
RPC_SUCCESS = 0,
RPC_PROG_UNAVAIL = 1,
RPC_PROG_MISMATCH = 2,
RPC_PROC_UNAVAIL = 3,
RPC_GARBAGE_ARGS = 4,
RPC_SYSTEM_ERR = 5
};
enum rpc_reject_stat {
RPC_MISMATCH = 0,
RPC_AUTH_ERROR = 1
};
enum rpc_auth_stat {
RPC_AUTH_OK = 0,
RPC_AUTH_BADCRED = 1,
RPC_AUTH_REJECTEDCRED = 2,
RPC_AUTH_BADVERF = 3,
RPC_AUTH_REJECTEDVERF = 4,
RPC_AUTH_TOOWEAK = 5
};
# 7 "/usr/include/linux/nfs.h" 2 3
enum nfs_stat {
NFS_OK = 0,
NFSERR_PERM = 1,
NFSERR_NOENT = 2,
NFSERR_IO = 5,
NFSERR_NXIO = 6,
NFSERR_EAGAIN = 11,
NFSERR_ACCES = 13,
NFSERR_EXIST = 17,
NFSERR_XDEV = 18,
NFSERR_NODEV = 19,
NFSERR_NOTDIR = 20,
NFSERR_ISDIR = 21,
NFSERR_INVAL = 22,
NFSERR_FBIG = 27,
NFSERR_NOSPC = 28,
NFSERR_ROFS = 30,
NFSERR_OPNOTSUPP = 45,
NFSERR_NAMETOOLONG = 63,
NFSERR_NOTEMPTY = 66,
NFSERR_DQUOT = 69,
NFSERR_STALE = 70,
NFSERR_WFLUSH = 99
};
enum nfs_ftype {
NFNON = 0,
NFREG = 1,
NFDIR = 2,
NFBLK = 3,
NFCHR = 4,
NFLNK = 5,
NFSOCK = 6,
NFBAD = 7,
NFFIFO = 8
};
struct nfs_fh {
char data[32 ];
};
extern struct rpc_program nfs_program;
extern struct rpc_stat nfs_rpcstat;
struct nfs_time {
__u32 seconds;
__u32 useconds;
};
struct nfs_fattr {
enum nfs_ftype type;
__u32 mode;
__u32 nlink;
__u32 uid;
__u32 gid;
__u32 size;
__u32 blocksize;
__u32 rdev;
__u32 blocks;
__u32 fsid;
__u32 fileid;
struct nfs_time atime;
struct nfs_time mtime;
struct nfs_time ctime;
};
struct nfs_sattr {
__u32 mode;
__u32 uid;
__u32 gid;
__u32 size;
struct nfs_time atime;
struct nfs_time mtime;
};
struct nfs_fsinfo {
__u32 tsize;
__u32 bsize;
__u32 blocks;
__u32 bfree;
__u32 bavail;
};
struct nfs_writeargs {
struct nfs_fh * fh;
__u32 offset;
__u32 count;
const void * buffer;
};
# 223 "/usr/include/linux/nfs.h" 3
# 4 "/usr/include/linux/nfs_fs_i.h" 2 3
struct nfs_inode_info {
struct pipe_inode_info pipeinfo;
unsigned short flags;
unsigned long read_cache_jiffies;
unsigned long read_cache_mtime;
unsigned long attrtimeo;
struct nfs_wreq * writeback;
};
struct nfs_lock_info {
u32 state;
u32 flags;
};
# 267 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/sysv_fs_i.h" 1 3
struct sysv_inode_info {
u32 i_data[10+1+1+1];
};
# 268 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/affs_fs_i.h" 1 3
# 1 "/usr/include/linux/a.out.h" 1 3
# 1 "/usr/include/asm/a.out.h" 1 3
struct exec
{
unsigned long a_info;
unsigned a_text;
unsigned a_data;
unsigned a_bss;
unsigned a_syms;
unsigned a_entry;
unsigned a_trsize;
unsigned a_drsize;
};
# 8 "/usr/include/linux/a.out.h" 2 3
enum machine_type {
M_OLDSUN2 = 0,
M_68010 = 1,
M_68020 = 2,
M_SPARC = 3,
M_386 = 100,
M_MIPS1 = 151,
M_MIPS2 = 152
};
struct nlist {
union {
char *n_name;
struct nlist *n_next;
long n_strx;
} n_un;
unsigned char n_type;
char n_other;
short n_desc;
unsigned long n_value;
};
struct relocation_info
{
int r_address;
unsigned int r_symbolnum:24;
unsigned int r_pcrel:1;
unsigned int r_length:2;
unsigned int r_extern:1;
unsigned int r_pad:4;
};
# 4 "/usr/include/linux/affs_fs_i.h" 2 3
# 1 "/usr/include/linux/time.h" 1 3
# 1 "/usr/include/asm/param.h" 1 3
# 4 "/usr/include/linux/time.h" 2 3
struct timespec {
time_t tv_sec;
long tv_nsec;
};
static __inline__ unsigned long
timespec_to_jiffies(struct timespec *value)
{
unsigned long sec = value->tv_sec;
long nsec = value->tv_nsec;
if (sec >= (((~0UL >> 1)-1) / 100 ))
return ((~0UL >> 1)-1) ;
nsec += 1000000000L / 100 - 1;
nsec /= 1000000000L / 100 ;
return 100 * sec + nsec;
}
static __inline__ void
jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
{
value->tv_nsec = (jiffies % 100 ) * (1000000000L / 100 );
value->tv_sec = jiffies / 100 ;
}
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
extern void do_gettimeofday(struct timeval *tv);
extern void do_settimeofday(struct timeval *tv);
extern void get_fast_time(struct timeval *tv);
extern void (*do_get_fast_time)(struct timeval *);
struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
};
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
# 5 "/usr/include/linux/affs_fs_i.h" 2 3
struct key_cache {
struct timeval kc_lru_time;
s32 kc_first;
s32 kc_last;
s32 kc_this_key;
int kc_this_seq;
s32 kc_next_key;
s32 kc_keys[73 ];
};
struct ext_cache {
struct key_cache kc[4];
s32 ec[((1UL << 12 ) - 4 * sizeof(struct key_cache) - 4) / 4 ];
int max_ext;
};
struct affs_inode_info {
u32 i_protect;
s32 i_parent;
s32 i_original;
s32 i_data[16 ];
struct ext_cache *i_ec;
int i_cache_users;
int i_lastblock;
short i_pa_cnt;
short i_pa_next;
short i_pa_last;
short i_zone;
unsigned char i_hlink;
unsigned char i_pad;
};
# 269 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ufs_fs_i.h" 1 3
struct ufs_inode_info {
union {
__u32 i_data[15];
__u8 i_symlink[4*15];
} i_u1;
__u64 i_size;
__u32 i_flags;
__u32 i_gen;
__u32 i_shadow;
__u32 i_uid;
__u32 i_gid;
__u32 i_oeftflag;
__u16 i_osync;
__u32 i_lastfrag;
};
# 270 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/efs_fs_i.h" 1 3
typedef int32_t efs_block_t;
typedef uint32_t efs_ino_t;
typedef union extent_u {
unsigned char raw[8];
struct extent_s {
unsigned int ex_magic:8;
unsigned int ex_bn:24;
unsigned int ex_length:8;
unsigned int ex_offset:24;
} cooked;
} efs_extent;
typedef struct edevs {
short odev;
short dev_filler;
unsigned int ndev;
} efs_devs;
struct efs_dinode {
u_short di_mode;
short di_nlink;
u_short di_uid;
u_short di_gid;
int32_t di_size;
int32_t di_atime;
int32_t di_mtime;
int32_t di_ctime;
uint32_t di_gen;
short di_numextents;
u_char di_version;
u_char di_spare;
union di_addr {
efs_extent di_extents[12 ];
efs_devs di_dev;
} di_u;
};
struct efs_inode_info {
int numextents;
int lastextent;
efs_extent extents[12 ];
};
# 271 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/coda_fs_i.h" 1 3
# 1 "/usr/include/linux/coda.h" 1 3
# 98 "/usr/include/linux/coda.h" 3
typedef unsigned long long u_quad_t;
typedef signed char int8_t;
typedef unsigned char u_int8_t;
typedef short int16_t;
typedef unsigned short u_int16_t;
typedef int int32_t;
typedef unsigned int u_int32_t;
struct venus_dirent {
unsigned long d_fileno;
unsigned short d_reclen;
unsigned char d_type;
unsigned char d_namlen;
char d_name[255 + 1];
};
typedef u_long VolumeId;
typedef u_long VnodeId;
typedef u_long Unique_t;
typedef u_long FileVersion;
typedef struct ViceFid {
VolumeId Volume;
VnodeId Vnode;
Unique_t Unique;
} ViceFid;
static __inline__ ino_t coda_f2i(struct ViceFid *fid)
{
if ( ! fid )
return 0;
if (fid->Vnode == 0xfffffffe || fid->Vnode == 0xffffffff)
return ((fid->Volume << 20) | (fid->Unique & 0xfffff));
else
return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20));
}
typedef u_int32_t vuid_t;
typedef u_int32_t vgid_t;
struct coda_cred {
vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid;
vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid;
};
enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
struct coda_vattr {
long va_type;
u_short va_mode;
short va_nlink;
vuid_t va_uid;
vgid_t va_gid;
long va_fileid;
u_quad_t va_size;
long va_blocksize;
struct timespec va_atime;
struct timespec va_mtime;
struct timespec va_ctime;
u_long va_gen;
u_long va_flags;
u_quad_t va_rdev;
u_quad_t va_bytes;
u_quad_t va_filerev;
};
struct coda_statfs {
int32_t f_blocks;
int32_t f_bfree;
int32_t f_bavail;
int32_t f_files;
int32_t f_ffree;
};
struct coda_in_hdr {
unsigned long opcode;
unsigned long unique;
u_short pid;
u_short pgid;
u_short sid;
struct coda_cred cred;
};
struct coda_out_hdr {
unsigned long opcode;
unsigned long unique;
unsigned long result;
};
struct coda_root_out {
struct coda_out_hdr oh;
ViceFid VFid;
};
struct coda_root_in {
struct coda_in_hdr in;
};
struct coda_open_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_open_out {
struct coda_out_hdr oh;
u_quad_t dev;
ino_t inode;
};
struct coda_close_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_close_out {
struct coda_out_hdr out;
};
struct coda_ioctl_in {
struct coda_in_hdr ih;
ViceFid VFid;
int cmd;
int len;
int rwflag;
char *data;
};
struct coda_ioctl_out {
struct coda_out_hdr oh;
int len;
caddr_t data;
};
struct coda_getattr_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_getattr_out {
struct coda_out_hdr oh;
struct coda_vattr attr;
};
struct coda_setattr_in {
struct coda_in_hdr ih;
ViceFid VFid;
struct coda_vattr attr;
};
struct coda_setattr_out {
struct coda_out_hdr out;
};
struct coda_access_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_access_out {
struct coda_out_hdr out;
};
struct coda_lookup_in {
struct coda_in_hdr ih;
ViceFid VFid;
int name;
int flags;
};
struct coda_lookup_out {
struct coda_out_hdr oh;
ViceFid VFid;
int vtype;
};
struct coda_create_in {
struct coda_in_hdr ih;
ViceFid VFid;
struct coda_vattr attr;
int excl;
int mode;
int name;
};
struct coda_create_out {
struct coda_out_hdr oh;
ViceFid VFid;
struct coda_vattr attr;
};
struct coda_remove_in {
struct coda_in_hdr ih;
ViceFid VFid;
int name;
};
struct coda_remove_out {
struct coda_out_hdr out;
};
struct coda_link_in {
struct coda_in_hdr ih;
ViceFid sourceFid;
ViceFid destFid;
int tname;
};
struct coda_link_out {
struct coda_out_hdr out;
};
struct coda_rename_in {
struct coda_in_hdr ih;
ViceFid sourceFid;
int srcname;
ViceFid destFid;
int destname;
};
struct coda_rename_out {
struct coda_out_hdr out;
};
struct coda_mkdir_in {
struct coda_in_hdr ih;
ViceFid VFid;
struct coda_vattr attr;
int name;
};
struct coda_mkdir_out {
struct coda_out_hdr oh;
ViceFid VFid;
struct coda_vattr attr;
};
struct coda_rmdir_in {
struct coda_in_hdr ih;
ViceFid VFid;
int name;
};
struct coda_rmdir_out {
struct coda_out_hdr out;
};
struct coda_readdir_in {
struct coda_in_hdr ih;
ViceFid VFid;
int count;
int offset;
};
struct coda_readdir_out {
struct coda_out_hdr oh;
int size;
caddr_t data;
};
struct coda_symlink_in {
struct coda_in_hdr ih;
ViceFid VFid;
int srcname;
struct coda_vattr attr;
int tname;
};
struct coda_symlink_out {
struct coda_out_hdr out;
};
struct coda_readlink_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_readlink_out {
struct coda_out_hdr oh;
int count;
caddr_t data;
};
struct coda_fsync_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_fsync_out {
struct coda_out_hdr out;
};
struct coda_inactive_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_vget_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_vget_out {
struct coda_out_hdr oh;
ViceFid VFid;
int vtype;
};
struct coda_purgeuser_out {
struct coda_out_hdr oh;
struct coda_cred cred;
};
struct coda_zapfile_out {
struct coda_out_hdr oh;
ViceFid CodaFid;
};
struct coda_zapdir_out {
struct coda_out_hdr oh;
ViceFid CodaFid;
};
struct coda_zapvnode_out {
struct coda_out_hdr oh;
struct coda_cred cred;
ViceFid VFid;
};
struct coda_purgefid_out {
struct coda_out_hdr oh;
ViceFid CodaFid;
};
struct coda_rdwr_in {
struct coda_in_hdr ih;
ViceFid VFid;
int rwflag;
int count;
int offset;
int ioflag;
caddr_t data;
};
struct coda_rdwr_out {
struct coda_out_hdr oh;
int rwflag;
int count;
caddr_t data;
};
struct coda_replace_out {
struct coda_out_hdr oh;
ViceFid NewFid;
ViceFid OldFid;
};
struct coda_open_by_path_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_open_by_path_out {
struct coda_out_hdr oh;
int path;
};
struct coda_statfs_in {
struct coda_in_hdr in;
};
struct coda_statfs_out {
struct coda_out_hdr oh;
struct coda_statfs stat;
};
union inputArgs {
struct coda_in_hdr ih;
struct coda_open_in coda_open;
struct coda_close_in coda_close;
struct coda_ioctl_in coda_ioctl;
struct coda_getattr_in coda_getattr;
struct coda_setattr_in coda_setattr;
struct coda_access_in coda_access;
struct coda_lookup_in coda_lookup;
struct coda_create_in coda_create;
struct coda_remove_in coda_remove;
struct coda_link_in coda_link;
struct coda_rename_in coda_rename;
struct coda_mkdir_in coda_mkdir;
struct coda_rmdir_in coda_rmdir;
struct coda_readdir_in coda_readdir;
struct coda_symlink_in coda_symlink;
struct coda_readlink_in coda_readlink;
struct coda_fsync_in coda_fsync;
struct coda_inactive_in coda_inactive;
struct coda_vget_in coda_vget;
struct coda_rdwr_in coda_rdwr;
struct coda_open_by_path_in coda_open_by_path;
struct coda_statfs_in coda_statfs;
};
union outputArgs {
struct coda_out_hdr oh;
struct coda_root_out coda_root;
struct coda_open_out coda_open;
struct coda_ioctl_out coda_ioctl;
struct coda_getattr_out coda_getattr;
struct coda_lookup_out coda_lookup;
struct coda_create_out coda_create;
struct coda_mkdir_out coda_mkdir;
struct coda_readdir_out coda_readdir;
struct coda_readlink_out coda_readlink;
struct coda_vget_out coda_vget;
struct coda_purgeuser_out coda_purgeuser;
struct coda_zapfile_out coda_zapfile;
struct coda_zapdir_out coda_zapdir;
struct coda_zapvnode_out coda_zapvnode;
struct coda_purgefid_out coda_purgefid;
struct coda_rdwr_out coda_rdwr;
struct coda_replace_out coda_replace;
struct coda_open_by_path_out coda_open_by_path;
struct coda_statfs_out coda_statfs;
};
union coda_downcalls {
struct coda_purgeuser_out purgeuser;
struct coda_zapfile_out zapfile;
struct coda_zapdir_out zapdir;
struct coda_zapvnode_out zapvnode;
struct coda_purgefid_out purgefid;
struct coda_replace_out replace;
};
struct ViceIoctl {
caddr_t in, out;
short in_size;
short out_size;
};
struct PioctlData {
const char *path;
int follow;
struct ViceIoctl vi;
};
# 14 "/usr/include/linux/coda_fs_i.h" 2 3
struct coda_inode_info {
struct pipe_inode_info pipeinfo;
struct ViceFid c_fid;
u_short c_flags;
u_short c_ocount;
u_short c_owrite;
u_short c_mmcount;
struct inode *c_ovp;
struct list_head c_cnhead;
struct list_head c_volrootlist;
struct inode *c_vnode;
int c_magic;
};
int coda_cnode_make(struct inode **, struct ViceFid *, struct super_block *);
int coda_cnode_makectl(struct inode **inode, struct super_block *sb);
struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb);
void coda_replace_fid(struct inode *, ViceFid *, ViceFid *);
# 272 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/romfs_fs_i.h" 1 3
struct romfs_inode_info {
unsigned long i_metasize;
unsigned long i_dataoffset;
};
# 273 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/smb_fs_i.h" 1 3
struct smb_inode_info {
unsigned int open;
__u16 fileid;
__u16 attr;
__u16 access;
__u16 cache_valid;
unsigned long oldmtime;
unsigned long closed;
};
# 274 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hfs_fs_i.h" 1 3
struct hfs_inode_info {
int magic;
struct hfs_cat_entry *entry;
struct hfs_fork *fork;
int convert;
ino_t file_type;
char dir_size;
const struct hfs_hdr_layout *default_layout;
struct hfs_hdr_layout *layout;
int tz_secondswest;
void (*d_drop_op)(struct dentry *, const ino_t);
};
# 275 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/adfs_fs_i.h" 1 3
struct adfs_inode_info {
unsigned long file_id;
};
# 276 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/qnx4_fs_i.h" 1 3
# 1 "/usr/include/linux/qnxtypes.h" 1 3
typedef unsigned short _nxtnt_t;
typedef unsigned char _ftype_t;
typedef struct {
long xtnt_blk;
long xtnt_size;
} _xtnt_t;
typedef unsigned short muid_t;
typedef unsigned short mgid_t;
typedef unsigned long qnx_off_t;
typedef unsigned short qnx_nlink_t;
# 14 "/usr/include/linux/qnx4_fs_i.h" 2 3
struct qnx4_inode_info {
char i_reserved[16];
off_t i_size;
_xtnt_t i_first_xtnt;
long i_xblk;
time_t i_ftime;
time_t i_mtime;
time_t i_atime;
time_t i_ctime;
_nxtnt_t i_num_xtnts;
mode_t i_mode;
muid_t i_uid;
mgid_t i_gid;
nlink_t i_nlink;
char i_zero[4];
_ftype_t i_type;
unsigned char i_status;
};
# 277 "/usr/include/linux/fs.h" 2 3
struct iattr {
unsigned int ia_valid;
umode_t ia_mode;
uid_t ia_uid;
gid_t ia_gid;
off_t ia_size;
time_t ia_atime;
time_t ia_mtime;
time_t ia_ctime;
unsigned int ia_attr_flags;
};
# 1 "/usr/include/linux/quota.h" 1 3
# 1 "/usr/include/linux/errno.h" 1 3
# 1 "/usr/include/asm/errno.h" 1 3
# 4 "/usr/include/linux/errno.h" 2 3
# 42 "/usr/include/linux/quota.h" 2 3
extern int nr_dquots, nr_free_dquots;
extern int max_dquots;
extern int dquot_root_squash;
struct dqblk {
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u32 dqb_curblocks;
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
time_t dqb_btime;
time_t dqb_itime;
};
struct dqstats {
__u32 lookups;
__u32 drops;
__u32 reads;
__u32 writes;
__u32 cache_hits;
__u32 allocated_dquots;
__u32 free_dquots;
__u32 syncs;
};
struct dquot {
struct dquot *dq_next;
struct dquot **dq_pprev;
struct list_head dq_free;
struct dquot *dq_hash_next;
struct dquot **dq_hash_pprev;
struct wait_queue *dq_wait;
int dq_count;
struct vfsmount *dq_mnt;
unsigned int dq_id;
kdev_t dq_dev;
short dq_type;
short dq_flags;
unsigned long dq_referenced;
struct dqblk dq_dqb;
};
# 208 "/usr/include/linux/quota.h" 3
# 328 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/mount.h" 1 3
struct quota_mount_options
{
unsigned int flags;
struct semaphore dqio_sem;
struct semaphore dqoff_sem;
struct file *files[2 ];
time_t inode_expire[2 ];
time_t block_expire[2 ];
char rsquash[2 ];
};
struct vfsmount
{
kdev_t mnt_dev;
char *mnt_devname;
char *mnt_dirname;
unsigned int mnt_flags;
struct super_block *mnt_sb;
struct quota_mount_options mnt_dquot;
struct vfsmount *mnt_next;
};
struct vfsmount *lookup_vfsmnt(kdev_t dev);
# 329 "/usr/include/linux/fs.h" 2 3
struct inode {
struct list_head i_hash;
struct list_head i_list;
struct list_head i_dentry;
unsigned long i_ino;
unsigned int i_count;
kdev_t i_dev;
umode_t i_mode;
nlink_t i_nlink;
uid_t i_uid;
gid_t i_gid;
kdev_t i_rdev;
off_t i_size;
time_t i_atime;
time_t i_mtime;
time_t i_ctime;
unsigned long i_blksize;
unsigned long i_blocks;
unsigned long i_version;
unsigned long i_nrpages;
struct semaphore i_sem;
struct semaphore i_atomic_write;
struct inode_operations *i_op;
struct super_block *i_sb;
struct wait_queue *i_wait;
struct file_lock *i_flock;
struct vm_area_struct *i_mmap;
struct page *i_pages;
struct dquot *i_dquot[2 ];
unsigned long i_state;
unsigned int i_flags;
unsigned char i_pipe;
unsigned char i_sock;
int i_writecount;
unsigned int i_attr_flags;
__u32 i_generation;
union {
struct pipe_inode_info pipe_i;
struct minix_inode_info minix_i;
struct ext2_inode_info ext2_i;
struct hpfs_inode_info hpfs_i;
struct ntfs_inode_info ntfs_i;
struct msdos_inode_info msdos_i;
struct umsdos_inode_info umsdos_i;
struct iso_inode_info isofs_i;
struct nfs_inode_info nfs_i;
struct sysv_inode_info sysv_i;
struct affs_inode_info affs_i;
struct ufs_inode_info ufs_i;
struct efs_inode_info efs_i;
struct romfs_inode_info romfs_i;
struct coda_inode_info coda_i;
struct smb_inode_info smbfs_i;
struct hfs_inode_info hfs_i;
struct adfs_inode_info adfs_i;
struct qnx4_inode_info qnx4_i;
struct socket socket_i;
void *generic_ip;
} u;
};
extern void __mark_inode_dirty(struct inode *);
static inline void mark_inode_dirty(struct inode *inode)
{
if (!(inode->i_state & 1 ))
__mark_inode_dirty(inode);
}
struct fown_struct {
int pid;
uid_t uid, euid;
int signum;
};
struct file {
struct file *f_next, **f_pprev;
struct dentry *f_dentry;
struct file_operations *f_op;
mode_t f_mode;
loff_t f_pos;
unsigned int f_count, f_flags;
unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin;
struct fown_struct f_owner;
unsigned int f_uid, f_gid;
int f_error;
unsigned long f_version;
void *private_data;
};
extern int init_private_file(struct file *, struct dentry *, int);
typedef struct files_struct *fl_owner_t;
struct file_lock {
struct file_lock *fl_next;
struct file_lock *fl_nextlink;
struct file_lock *fl_prevlink;
struct file_lock *fl_nextblock;
struct file_lock *fl_prevblock;
fl_owner_t fl_owner;
unsigned int fl_pid;
struct wait_queue *fl_wait;
struct file *fl_file;
unsigned char fl_flags;
unsigned char fl_type;
off_t fl_start;
off_t fl_end;
void (*fl_notify)(struct file_lock *);
union {
struct nfs_lock_info nfs_fl;
} fl_u;
};
extern struct file_lock *file_lock_table;
# 1 "/usr/include/linux/fcntl.h" 1 3
# 1 "/usr/include/asm/fcntl.h" 1 3
struct flock {
short l_type;
short l_whence;
off_t l_start;
off_t l_len;
pid_t l_pid;
};
# 4 "/usr/include/linux/fcntl.h" 2 3
# 473 "/usr/include/linux/fs.h" 2 3
extern int fcntl_getlk(unsigned int fd, struct flock *l);
extern int fcntl_setlk(unsigned int fd, unsigned int cmd, struct flock *l);
extern void locks_remove_posix(struct file *, fl_owner_t id);
extern void locks_remove_flock(struct file *);
extern struct file_lock *posix_test_lock(struct file *, struct file_lock *);
extern int posix_lock_file(struct file *, struct file_lock *, unsigned int);
extern void posix_block_lock(struct file_lock *, struct file_lock *);
extern void posix_unblock_lock(struct file_lock *);
struct fasync_struct {
int magic;
int fa_fd;
struct fasync_struct *fa_next;
struct file *fa_file;
};
extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
# 1 "/usr/include/linux/minix_fs_sb.h" 1 3
struct minix_sb_info {
unsigned long s_ninodes;
unsigned long s_nzones;
unsigned long s_imap_blocks;
unsigned long s_zmap_blocks;
unsigned long s_firstdatazone;
unsigned long s_log_zone_size;
unsigned long s_max_size;
int s_dirsize;
int s_namelen;
int s_link_max;
struct buffer_head ** s_imap;
struct buffer_head ** s_zmap;
struct buffer_head * s_sbh;
struct minix_super_block * s_ms;
unsigned short s_mount_state;
unsigned short s_version;
};
# 497 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ext2_fs_sb.h" 1 3
# 1 "/usr/include/linux/ext2_fs.h" 1 3
struct ext2_acl_header
{
__u32 aclh_size;
__u32 aclh_file_count;
__u32 aclh_acle_count;
__u32 aclh_first_acle;
};
struct ext2_acl_entry
{
__u32 acle_size;
__u16 acle_perms;
__u16 acle_type;
__u16 acle_tag;
__u16 acle_pad1;
__u32 acle_next;
};
struct ext2_group_desc
{
__u32 bg_block_bitmap;
__u32 bg_inode_bitmap;
__u32 bg_inode_table;
__u16 bg_free_blocks_count;
__u16 bg_free_inodes_count;
__u16 bg_used_dirs_count;
__u16 bg_pad;
__u32 bg_reserved[3];
};
struct ext2_inode {
__u16 i_mode;
__u16 i_uid;
__u32 i_size;
__u32 i_atime;
__u32 i_ctime;
__u32 i_mtime;
__u32 i_dtime;
__u16 i_gid;
__u16 i_links_count;
__u32 i_blocks;
__u32 i_flags;
union {
struct {
__u32 l_i_reserved1;
} linux1;
struct {
__u32 h_i_translator;
} hurd1;
struct {
__u32 m_i_reserved1;
} masix1;
} osd1;
__u32 i_block[(((12 + 1) + 1) + 1) ];
__u32 i_version;
__u32 i_file_acl;
__u32 i_dir_acl;
__u32 i_faddr;
union {
struct {
__u8 l_i_frag;
__u8 l_i_fsize;
__u16 i_pad1;
__u32 l_i_reserved2[2];
} linux2;
struct {
__u8 h_i_frag;
__u8 h_i_fsize;
__u16 h_i_mode_high;
__u16 h_i_uid_high;
__u16 h_i_gid_high;
__u32 h_i_author;
} hurd2;
struct {
__u8 m_i_frag;
__u8 m_i_fsize;
__u16 m_pad1;
__u32 m_i_reserved2[2];
} masix2;
} osd2;
};
struct ext2_super_block {
__u32 s_inodes_count;
__u32 s_blocks_count;
__u32 s_r_blocks_count;
__u32 s_free_blocks_count;
__u32 s_free_inodes_count;
__u32 s_first_data_block;
__u32 s_log_block_size;
__s32 s_log_frag_size;
__u32 s_blocks_per_group;
__u32 s_frags_per_group;
__u32 s_inodes_per_group;
__u32 s_mtime;
__u32 s_wtime;
__u16 s_mnt_count;
__s16 s_max_mnt_count;
__u16 s_magic;
__u16 s_state;
__u16 s_errors;
__u16 s_minor_rev_level;
__u32 s_lastcheck;
__u32 s_checkinterval;
__u32 s_creator_os;
__u32 s_rev_level;
__u16 s_def_resuid;
__u16 s_def_resgid;
__u32 s_first_ino;
__u16 s_inode_size;
__u16 s_block_group_nr;
__u32 s_feature_compat;
__u32 s_feature_incompat;
__u32 s_feature_ro_compat;
__u8 s_uuid[16];
char s_volume_name[16];
char s_last_mounted[64];
__u32 s_algorithm_usage_bitmap;
__u8 s_prealloc_blocks;
__u8 s_prealloc_dir_blocks;
__u16 s_padding1;
__u32 s_reserved[204];
};
struct ext2_dir_entry {
__u32 inode;
__u16 rec_len;
__u16 name_len;
char name[255 ];
};
struct ext2_dir_entry_2 {
__u32 inode;
__u16 rec_len;
__u8 name_len;
__u8 file_type;
char name[255 ];
};
extern long long ext2_max_sizes[];
extern int ext2_permission (struct inode *, int);
extern int ext2_group_sparse(int group);
extern int ext2_new_block (const struct inode *, unsigned long,
__u32 *, __u32 *, int *);
extern void ext2_free_blocks (const struct inode *, unsigned long,
unsigned long);
extern unsigned long ext2_count_free_blocks (struct super_block *);
extern void ext2_check_blocks_bitmap (struct super_block *);
extern struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb,
unsigned int block_group,
struct buffer_head ** bh);
extern unsigned long ext2_count_free (struct buffer_head *, unsigned);
extern int ext2_check_dir_entry (const char *, struct inode *,
struct ext2_dir_entry_2 *, struct buffer_head *,
unsigned long);
extern int ext2_read (struct inode *, struct file *, char *, int);
extern int ext2_write (struct inode *, struct file *, char *, int);
extern int ext2_sync_file (struct file *, struct dentry *);
extern struct inode * ext2_new_inode (const struct inode *, int, int *);
extern void ext2_free_inode (struct inode *);
extern unsigned long ext2_count_free_inodes (struct super_block *);
extern void ext2_check_inodes_bitmap (struct super_block *);
extern int ext2_bmap (struct inode *, int);
extern struct buffer_head * ext2_getblk (struct inode *, long, int, int *);
extern struct buffer_head * ext2_bread (struct inode *, int, int, int *);
extern int ext2_getcluster (struct inode * inode, long block);
extern void ext2_read_inode (struct inode *);
extern void ext2_write_inode (struct inode *);
extern void ext2_put_inode (struct inode *);
extern void ext2_delete_inode (struct inode *);
extern int ext2_sync_inode (struct inode *);
extern int ext2_notify_change(struct dentry *, struct iattr *);
extern void ext2_discard_prealloc (struct inode *);
extern int ext2_ioctl (struct inode *, struct file *, unsigned int,
unsigned long);
extern void ext2_release (struct inode *, struct file *);
extern struct dentry *ext2_lookup (struct inode *, struct dentry *);
extern int ext2_create (struct inode *,struct dentry *,int);
extern int ext2_mkdir (struct inode *,struct dentry *,int);
extern int ext2_rmdir (struct inode *,struct dentry *);
extern int ext2_unlink (struct inode *,struct dentry *);
extern int ext2_symlink (struct inode *,struct dentry *,const char *);
extern int ext2_link (struct dentry *, struct inode *, struct dentry *);
extern int ext2_mknod (struct inode *, struct dentry *, int, int);
extern int ext2_rename (struct inode *, struct dentry *,
struct inode *, struct dentry *);
extern void ext2_error (struct super_block *, const char *, const char *, ...)
__attribute__ ((format (printf, 3, 4)));
extern void ext2_panic (struct super_block *, const char *,
const char *, ...)
__attribute__ ((noreturn, format (printf, 3, 4)));
extern void ext2_warning (struct super_block *, const char *, const char *, ...)
__attribute__ ((format (printf, 3, 4)));
extern void ext2_put_super (struct super_block *);
extern void ext2_write_super (struct super_block *);
extern int ext2_remount (struct super_block *, int *, char *);
extern struct super_block * ext2_read_super (struct super_block *,void *,int);
extern int init_ext2_fs(void);
extern int ext2_statfs (struct super_block *, struct statfs *, int);
extern void ext2_truncate (struct inode *);
extern struct inode_operations ext2_dir_inode_operations;
extern struct inode_operations ext2_file_inode_operations;
extern struct inode_operations ext2_symlink_inode_operations;
# 19 "/usr/include/linux/ext2_fs_sb.h" 2 3
struct ext2_sb_info {
unsigned long s_frag_size;
unsigned long s_frags_per_block;
unsigned long s_inodes_per_block;
unsigned long s_frags_per_group;
unsigned long s_blocks_per_group;
unsigned long s_inodes_per_group;
unsigned long s_itb_per_group;
unsigned long s_db_per_group;
unsigned long s_desc_per_block;
unsigned long s_groups_count;
struct buffer_head * s_sbh;
struct ext2_super_block * s_es;
struct buffer_head ** s_group_desc;
unsigned short s_loaded_inode_bitmaps;
unsigned short s_loaded_block_bitmaps;
unsigned long s_inode_bitmap_number[8 ];
struct buffer_head * s_inode_bitmap[8 ];
unsigned long s_block_bitmap_number[8 ];
struct buffer_head * s_block_bitmap[8 ];
unsigned long s_mount_opt;
unsigned short s_resuid;
unsigned short s_resgid;
unsigned short s_mount_state;
unsigned short s_pad;
int s_addr_per_block_bits;
int s_desc_per_block_bits;
int s_inode_size;
int s_first_ino;
int s_feature_compat;
int s_feature_incompat;
int s_feature_ro_compat;
};
# 498 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hpfs_fs_sb.h" 1 3
struct hpfs_sb_info {
ino_t sb_root;
unsigned sb_fs_size;
unsigned sb_bitmaps;
unsigned sb_dirband_size;
unsigned sb_dmap;
unsigned sb_n_free;
unsigned sb_n_free_dnodes;
uid_t sb_uid;
gid_t sb_gid;
umode_t sb_mode;
unsigned sb_lowercase : 1;
unsigned sb_conv : 2;
};
# 499 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ntfs_fs_sb.h" 1 3
struct ntfs_sb_info{
ntfs_uid_t uid;
ntfs_gid_t gid;
ntmode_t umask;
unsigned int nct;
void *nls_map;
unsigned int ngt;
ntfs_size_t partition_bias;
ntfs_u32 at_standard_information;
ntfs_u32 at_attribute_list;
ntfs_u32 at_file_name;
ntfs_u32 at_security_descriptor;
ntfs_u32 at_data;
ntfs_u32 at_index_root;
ntfs_u32 at_index_allocation;
ntfs_u32 at_bitmap;
ntfs_u32 at_symlink;
int blocksize;
int clusterfactor;
int clustersize;
int mft_recordsize;
int mft_clusters_per_record;
int index_recordsize;
int index_clusters_per_record;
int mft_cluster;
unsigned char *mft;
unsigned short *upcase;
unsigned int upcase_length;
struct ntfs_inode_info *mft_ino;
struct ntfs_inode_info *mftmirr;
struct ntfs_inode_info *bitmap;
struct super_block *sb;
};
# 500 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/msdos_fs_sb.h" 1 3
# 1 "/usr/include/linux/fat_cvf.h" 1 3
struct cvf_format
{ int cvf_version;
char* cvf_version_text;
unsigned long flags;
int (*detect_cvf) (struct super_block*sb);
int (*mount_cvf) (struct super_block*sb,char*options);
int (*unmount_cvf) (struct super_block*sb);
struct buffer_head* (*cvf_bread) (struct super_block*sb,int block);
struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block);
void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh);
void (*cvf_mark_buffer_dirty) (struct super_block *sb,
struct buffer_head *bh,
int dirty_val);
void (*cvf_set_uptodate) (struct super_block *sb,
struct buffer_head *bh,
int val);
int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh);
void (*cvf_ll_rw_block) (struct super_block *sb,
int opr,
int nbreq,
struct buffer_head *bh[32]);
int (*fat_access) (struct super_block *sb,int nr,int new_value);
int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsiz);
int (*cvf_bmap) (struct inode *inode,int block);
int (*cvf_smap) (struct inode *inode,int sector);
ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t *);
int (*cvf_mmap) (struct file *, struct vm_area_struct *);
int (*cvf_readpage) (struct inode *, struct page *);
int (*cvf_writepage) (struct inode *, struct page *);
int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
unsigned int cmd, unsigned long arg);
void (*zero_out_cluster) (struct inode*, int clusternr);
};
int register_cvf_format(struct cvf_format*cvf_format);
int unregister_cvf_format(struct cvf_format*cvf_format);
void dec_cvf_format_use_count_by_version(int version);
int detect_cvf(struct super_block*sb,char*force);
extern struct cvf_format *cvf_formats[];
extern int cvf_format_use_count[];
# 3 "/usr/include/linux/msdos_fs_sb.h" 2 3
struct fat_mount_options {
uid_t fs_uid;
gid_t fs_gid;
unsigned short fs_umask;
unsigned short codepage;
char *iocharset;
unsigned char name_check;
unsigned char conversion;
unsigned quiet:1,
showexec:1,
sys_immutable:1,
dotsOK:1,
isvfat:1,
utf8:1,
unicode_xlate:1,
posixfs:1,
numtail:1,
atari:1,
fat32:1;
};
struct vfat_unicode {
unsigned char uni1;
unsigned char uni2;
};
struct msdos_sb_info {
unsigned short cluster_size;
unsigned char fats,fat_bits;
unsigned short fat_start;
unsigned long fat_length;
unsigned long dir_start;
unsigned short dir_entries;
unsigned long data_start;
unsigned long clusters;
unsigned long root_cluster;
unsigned long fsinfo_offset;
struct wait_queue *fat_wait;
int fat_lock;
int prev_free;
int free_clusters;
struct fat_mount_options options;
struct nls_table *nls_disk;
struct nls_table *nls_io;
struct cvf_format* cvf_format;
void *dir_ops;
void (*put_super_callback)(struct super_block *);
void *private_data;
};
# 501 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/iso_fs_sb.h" 1 3
struct isofs_sb_info {
unsigned long s_ninodes;
unsigned long s_nzones;
unsigned long s_firstdatazone;
unsigned long s_log_zone_size;
unsigned long s_max_size;
unsigned char s_high_sierra;
unsigned char s_mapping;
unsigned char s_rock;
unsigned char s_joliet_level;
unsigned char s_utf8;
unsigned char s_cruft;
unsigned char s_unhide;
unsigned char s_nosuid;
unsigned char s_nodev;
mode_t s_mode;
gid_t s_gid;
uid_t s_uid;
struct nls_table *s_nls_iocharset;
};
# 502 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/nfs_fs_sb.h" 1 3
# 1 "/usr/include/linux/in.h" 1 3
enum {
IPPROTO_IP = 0,
IPPROTO_ICMP = 1,
IPPROTO_IGMP = 2,
IPPROTO_IPIP = 4,
IPPROTO_TCP = 6,
IPPROTO_EGP = 8,
IPPROTO_PUP = 12,
IPPROTO_UDP = 17,
IPPROTO_IDP = 22,
IPPROTO_RSVP = 46,
IPPROTO_GRE = 47,
IPPROTO_IPV6 = 41,
IPPROTO_PIM = 103,
IPPROTO_ESP = 50,
IPPROTO_AH = 51,
IPPROTO_COMP = 108,
IPPROTO_RAW = 255,
IPPROTO_MAX
};
struct in_addr {
__u32 s_addr;
};
struct ip_mreq
{
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
struct ip_mreqn
{
struct in_addr imr_multiaddr;
struct in_addr imr_address;
int imr_ifindex;
};
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
struct sockaddr_in {
sa_family_t sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
unsigned char __pad[16 - sizeof(short int) -
sizeof(unsigned short int) - sizeof(struct in_addr)];
};
# 5 "/usr/include/linux/nfs_fs_sb.h" 2 3
struct nfs_server {
struct rpc_clnt * client;
int flags;
int rsize;
int wsize;
unsigned int bsize;
unsigned int acregmin;
unsigned int acregmax;
unsigned int acdirmin;
unsigned int acdirmax;
char * hostname;
};
struct nfs_sb_info {
struct nfs_server s_server;
struct nfs_fh s_root;
};
# 503 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/sysv_fs_sb.h" 1 3
struct sysv_sb_info {
int s_type;
unsigned int s_block_size;
unsigned int s_block_size_1;
unsigned int s_block_size_bits;
unsigned int s_block_size_inc_bits;
unsigned int s_block_size_dec_bits;
char s_convert;
char s_kludge_symlinks;
char s_truncate;
nlink_t s_link_max;
unsigned int s_inodes_per_block;
unsigned int s_inodes_per_block_1;
unsigned int s_inodes_per_block_bits;
unsigned int s_ind_per_block;
unsigned int s_ind_per_block_1;
unsigned int s_ind_per_block_bits;
unsigned int s_ind_per_block_2;
unsigned int s_ind_per_block_2_1;
unsigned int s_ind_per_block_2_bits;
unsigned int s_ind_per_block_3;
unsigned int s_ind_per_block_block_size_1;
unsigned int s_ind_per_block_block_size_bits;
unsigned int s_ind_per_block_2_block_size_1;
unsigned int s_ind_per_block_2_block_size_bits;
unsigned int s_ind0_size;
unsigned int s_ind1_size;
unsigned int s_ind2_size;
unsigned int s_toobig_block;
unsigned int s_block_base;
unsigned short s_fic_size;
unsigned short s_flc_size;
struct buffer_head *s_bh1;
struct buffer_head *s_bh2;
char * s_sbd1;
char * s_sbd2;
u16 *s_sb_fic_count;
u16 *s_sb_fic_inodes;
u16 *s_sb_total_free_inodes;
u16 *s_sb_flc_count;
u32 *s_sb_flc_blocks;
u32 *s_sb_total_free_blocks;
u32 *s_sb_time;
u32 *s_sb_state;
u32 s_firstinodezone;
u32 s_firstdatazone;
u32 s_ninodes;
u32 s_ndatazones;
u32 s_nzones;
};
# 504 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/affs_fs_sb.h" 1 3
struct affs_bm_info {
struct buffer_head *bm_bh;
s32 bm_firstblk;
s32 bm_key;
int bm_count;
};
struct affs_alloc_zone {
short az_size;
short az_count;
int az_free;
};
struct affs_zone {
unsigned long z_ino;
struct affs_bm_info *z_bm;
int z_start;
int z_end;
int z_az_no;
unsigned long z_lru_time;
};
struct affs_sb_info {
int s_partition_size;
int s_blksize;
s32 s_root_block;
int s_hashsize;
unsigned long s_flags;
s16 s_uid;
s16 s_gid;
umode_t s_mode;
int s_reserved;
struct buffer_head *s_root_bh;
struct affs_bm_info *s_bitmap;
int s_bm_count;
int s_nextzone;
int s_num_az;
struct affs_zone *s_zones;
struct affs_alloc_zone *s_alloc;
char *s_zonemap;
char *s_prefix;
int s_prefix_len;
char s_volume[32];
};
# 505 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ufs_fs_sb.h" 1 3
# 1 "/usr/include/linux/ufs_fs.h" 1 3
struct ufs_timeval {
__s32 tv_sec;
__s32 tv_usec;
};
struct ufs_dir_entry {
__u32 d_ino;
__u16 d_reclen;
union {
__u16 d_namlen;
struct {
__u8 d_type;
__u8 d_namlen;
} d_44;
} d_u;
__u8 d_name[255 + 1];
};
struct ufs_csum {
__u32 cs_ndir;
__u32 cs_nbfree;
__u32 cs_nifree;
__u32 cs_nffree;
};
struct ufs_super_block {
__u32 fs_link;
__u32 fs_rlink;
__u32 fs_sblkno;
__u32 fs_cblkno;
__u32 fs_iblkno;
__u32 fs_dblkno;
__u32 fs_cgoffset;
__u32 fs_cgmask;
__u32 fs_time;
__u32 fs_size;
__u32 fs_dsize;
__u32 fs_ncg;
__u32 fs_bsize;
__u32 fs_fsize;
__u32 fs_frag;
__u32 fs_minfree;
__u32 fs_rotdelay;
__u32 fs_rps;
__u32 fs_bmask;
__u32 fs_fmask;
__u32 fs_bshift;
__u32 fs_fshift;
__u32 fs_maxcontig;
__u32 fs_maxbpg;
__u32 fs_fragshift;
__u32 fs_fsbtodb;
__u32 fs_sbsize;
__u32 fs_csmask;
__u32 fs_csshift;
__u32 fs_nindir;
__u32 fs_inopb;
__u32 fs_nspf;
__u32 fs_optim;
union {
struct {
__u32 fs_npsect;
} fs_sun;
struct {
__s32 fs_state;
} fs_sunx86;
} fs_u1;
__u32 fs_interleave;
__u32 fs_trackskew;
__u32 fs_id[2];
__u32 fs_csaddr;
__u32 fs_cssize;
__u32 fs_cgsize;
__u32 fs_ntrak;
__u32 fs_nsect;
__u32 fs_spc;
__u32 fs_ncyl;
__u32 fs_cpg;
__u32 fs_ipg;
__u32 fs_fpg;
struct ufs_csum fs_cstotal;
__s8 fs_fmod;
__s8 fs_clean;
__s8 fs_ronly;
__s8 fs_flags;
__s8 fs_fsmnt[512 ];
__u32 fs_cgrotor;
__u32 fs_csp[31 ];
__u32 fs_maxcluster;
__u32 fs_cpc;
__u16 fs_opostbl[16][8];
union {
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__s32 fs_state;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sun;
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__u32 fs_npsect;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sunx86;
struct {
__s32 fs_sparecon[50];
__s32 fs_contigsumsize;
__s32 fs_maxsymlinklen;
__s32 fs_inodefmt;
__u32 fs_maxfilesize[2];
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
__s32 fs_state;
} fs_44;
} fs_u2;
__s32 fs_postblformat;
__s32 fs_nrpos;
__s32 fs_postbloff;
__s32 fs_rotbloff;
__s32 fs_magic;
__u8 fs_space[1];
};
struct ufs_cylinder_group {
__u32 cg_link;
__u32 cg_magic;
__u32 cg_time;
__u32 cg_cgx;
__u16 cg_ncyl;
__u16 cg_niblk;
__u32 cg_ndblk;
struct ufs_csum cg_cs;
__u32 cg_rotor;
__u32 cg_frotor;
__u32 cg_irotor;
__u32 cg_frsum[(8192 / 1024 ) ];
__u32 cg_btotoff;
__u32 cg_boff;
__u32 cg_iusedoff;
__u32 cg_freeoff;
__u32 cg_nextfreeoff;
union {
struct {
__u32 cg_clustersumoff;
__u32 cg_clusteroff;
__u32 cg_nclusterblks;
__u32 cg_sparecon[13];
} cg_44;
__u32 cg_sparecon[16];
} cg_u;
__u8 cg_space[1];
};
struct ufs_inode {
__u16 ui_mode;
__u16 ui_nlink;
union {
struct {
__u16 ui_suid;
__u16 ui_sgid;
} oldids;
__u32 ui_inumber;
__u32 ui_author;
} ui_u1;
__u64 ui_size;
struct ufs_timeval ui_atime;
struct ufs_timeval ui_mtime;
struct ufs_timeval ui_ctime;
union {
struct {
__u32 ui_db[12 ];
__u32 ui_ib[3 ];
} ui_addr;
__u8 ui_symlink[4*(12 + 3 )];
} ui_u2;
__u32 ui_flags;
__u32 ui_blocks;
__u32 ui_gen;
union {
struct {
__u32 ui_shadow;
__u32 ui_uid;
__u32 ui_gid;
__u32 ui_oeftflag;
} ui_sun;
struct {
__u32 ui_uid;
__u32 ui_gid;
__s32 ui_spare[2];
} ui_44;
struct {
__u32 ui_uid;
__u32 ui_gid;
__u16 ui_modeh;
__u16 ui_spare;
__u32 ui_trans;
} ui_hurd;
} ui_u3;
};
extern int ufs_permission (struct inode *, int);
extern void ufs_free_fragments (struct inode *, unsigned, unsigned);
extern void ufs_free_blocks (struct inode *, unsigned, unsigned);
extern unsigned ufs_new_fragments (struct inode *, u32 *, unsigned, unsigned, unsigned, int *);
extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);
extern void ufs_put_cylinder (struct super_block *, unsigned);
extern struct inode_operations ufs_dir_inode_operations;
extern struct file_operations ufs_dir_operations;
extern int ufs_check_dir_entry (const char *, struct inode *, struct ufs_dir_entry *, struct buffer_head *, unsigned long);
extern struct inode_operations ufs_file_inode_operations;
extern struct file_operations ufs_file_operations;
extern void ufs_free_inode (struct inode *inode);
extern struct inode * ufs_new_inode (const struct inode *, int, int *);
extern int ufs_bmap (struct inode *, int);
extern void ufs_read_inode (struct inode *);
extern void ufs_put_inode (struct inode *);
extern void ufs_write_inode (struct inode *);
extern int ufs_sync_inode (struct inode *);
extern void ufs_write_inode (struct inode *);
extern void ufs_delete_inode (struct inode *);
extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *);
extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
extern struct dentry *ufs_lookup (struct inode *, struct dentry *);
extern int ufs_mkdir(struct inode *, struct dentry *, int);
extern int ufs_rmdir (struct inode *, struct dentry *);
extern int ufs_unlink (struct inode *, struct dentry *);
extern int ufs_create (struct inode *, struct dentry *, int);
extern int ufs_rename (struct inode *, struct dentry *, struct inode *, struct dentry *);
extern int ufs_mknod (struct inode *, struct dentry *, int, int);
extern int ufs_symlink (struct inode *, struct dentry *, const char *);
extern int ufs_link (struct dentry *, struct inode *, struct dentry *);
extern struct super_operations ufs_super_ops;
extern struct file_system_type ufs_fs_type;
extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern int init_ufs_fs(void);
extern void ufs_write_super (struct super_block *);
extern struct inode_operations ufs_symlink_inode_operations;
extern void ufs_truncate (struct inode *);
# 17 "/usr/include/linux/ufs_fs_sb.h" 2 3
struct ufs_buffer_head {
unsigned fragment;
unsigned count;
struct buffer_head * bh[(8192 / 1024 ) ];
};
struct ufs_cg_private_info {
struct ufs_cylinder_group ucg;
__u32 c_cgx;
__u16 c_ncyl;
__u16 c_niblk;
__u32 c_ndblk;
__u32 c_rotor;
__u32 c_frotor;
__u32 c_irotor;
__u32 c_btotoff;
__u32 c_boff;
__u32 c_iusedoff;
__u32 c_freeoff;
__u32 c_nextfreeoff;
__u32 c_clustersumoff;
__u32 c_clusteroff;
__u32 c_nclusterblks;
};
struct ufs_sb_private_info {
struct ufs_buffer_head s_ubh;
__u32 s_sblkno;
__u32 s_cblkno;
__u32 s_iblkno;
__u32 s_dblkno;
__u32 s_cgoffset;
__u32 s_cgmask;
__u32 s_size;
__u32 s_dsize;
__u32 s_ncg;
__u32 s_bsize;
__u32 s_fsize;
__u32 s_fpb;
__u32 s_minfree;
__u32 s_bmask;
__u32 s_fmask;
__u32 s_bshift;
__u32 s_fshift;
__u32 s_fpbshift;
__u32 s_fsbtodb;
__u32 s_sbsize;
__u32 s_csmask;
__u32 s_csshift;
__u32 s_nindir;
__u32 s_inopb;
__u32 s_nspf;
__u32 s_npsect;
__u32 s_interleave;
__u32 s_trackskew;
__u32 s_csaddr;
__u32 s_cssize;
__u32 s_cgsize;
__u32 s_ntrak;
__u32 s_nsect;
__u32 s_spc;
__u32 s_ipg;
__u32 s_fpg;
__u32 s_cpc;
__s32 s_contigsumsize;
__s64 s_qbmask;
__s64 s_qfmask;
__s32 s_postblformat;
__s32 s_nrpos;
__s32 s_postbloff;
__s32 s_rotbloff;
__u32 s_fpbmask;
__u32 s_apb;
__u32 s_2apb;
__u32 s_3apb;
__u32 s_apbmask;
__u32 s_apbshift;
__u32 s_2apbshift;
__u32 s_3apbshift;
__u32 s_nspfshift;
__u32 s_nspb;
__u32 s_inopf;
__u32 s_sbbase;
__u32 s_bpf;
__u32 s_bpfshift;
__u32 s_bpfmask;
};
struct ufs_sb_info {
struct ufs_sb_private_info * s_uspi;
struct ufs_csum * s_csp[31 ];
unsigned s_swab;
unsigned s_flags;
struct buffer_head ** s_ucg;
struct ufs_cg_private_info * s_ucpi[8 ];
unsigned s_cgno[8 ];
unsigned short s_cg_loaded;
unsigned s_mount_opt;
};
struct ufs_super_block_first {
__u32 fs_link;
__u32 fs_rlink;
__u32 fs_sblkno;
__u32 fs_cblkno;
__u32 fs_iblkno;
__u32 fs_dblkno;
__u32 fs_cgoffset;
__u32 fs_cgmask;
__u32 fs_time;
__u32 fs_size;
__u32 fs_dsize;
__u32 fs_ncg;
__u32 fs_bsize;
__u32 fs_fsize;
__u32 fs_frag;
__u32 fs_minfree;
__u32 fs_rotdelay;
__u32 fs_rps;
__u32 fs_bmask;
__u32 fs_fmask;
__u32 fs_bshift;
__u32 fs_fshift;
__u32 fs_maxcontig;
__u32 fs_maxbpg;
__u32 fs_fragshift;
__u32 fs_fsbtodb;
__u32 fs_sbsize;
__u32 fs_csmask;
__u32 fs_csshift;
__u32 fs_nindir;
__u32 fs_inopb;
__u32 fs_nspf;
__u32 fs_optim;
union {
struct {
__u32 fs_npsect;
} fs_sun;
struct {
__s32 fs_state;
} fs_sunx86;
} fs_u1;
__u32 fs_interleave;
__u32 fs_trackskew;
__u32 fs_id[2];
__u32 fs_csaddr;
__u32 fs_cssize;
__u32 fs_cgsize;
__u32 fs_ntrak;
__u32 fs_nsect;
__u32 fs_spc;
__u32 fs_ncyl;
__u32 fs_cpg;
__u32 fs_ipg;
__u32 fs_fpg;
struct ufs_csum fs_cstotal;
__s8 fs_fmod;
__s8 fs_clean;
__s8 fs_ronly;
__s8 fs_flags;
__s8 fs_fsmnt[512 - 212];
};
struct ufs_super_block_second {
__s8 fs_fsmnt[212];
__u32 fs_cgrotor;
__u32 fs_csp[31 ];
__u32 fs_maxcluster;
__u32 fs_cpc;
__u16 fs_opostbl[82];
};
struct ufs_super_block_third {
__u16 fs_opostbl[46];
union {
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__s32 fs_state;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sun;
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__u32 fs_npsect;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sunx86;
struct {
__s32 fs_sparecon[50];
__s32 fs_contigsumsize;
__s32 fs_maxsymlinklen;
__s32 fs_inodefmt;
__u32 fs_maxfilesize[2];
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
__s32 fs_state;
} fs_44;
} fs_u2;
__s32 fs_postblformat;
__s32 fs_nrpos;
__s32 fs_postbloff;
__s32 fs_rotbloff;
__s32 fs_magic;
__u8 fs_space[1];
};
# 506 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/efs_fs_sb.h" 1 3
struct efs_super {
int32_t fs_size;
int32_t fs_firstcg;
int32_t fs_cgfsize;
short fs_cgisize;
short fs_sectors;
short fs_heads;
short fs_ncg;
short fs_dirty;
short fs_filler;
int32_t fs_time;
int32_t fs_magic;
char fs_fname[6];
char fs_fpack[6];
int32_t fs_bmsize;
int32_t fs_tfree;
int32_t fs_tinode;
int32_t fs_bmblock;
int32_t fs_replsb;
int32_t fs_lastialloc;
char fs_spare[20];
int32_t fs_checksum;
};
struct efs_sb_info {
int32_t fs_magic;
int32_t fs_start;
int32_t first_block;
int32_t total_blocks;
int32_t group_size;
int32_t data_free;
int32_t inode_free;
short inode_blocks;
short total_groups;
};
# 507 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/romfs_fs_sb.h" 1 3
struct romfs_sb_info {
unsigned long s_maxsize;
};
# 508 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/smb_fs_sb.h" 1 3
# 1 "/usr/include/linux/smb.h" 1 3
enum smb_protocol {
SMB_PROTOCOL_NONE,
SMB_PROTOCOL_CORE,
SMB_PROTOCOL_COREPLUS,
SMB_PROTOCOL_LANMAN1,
SMB_PROTOCOL_LANMAN2,
SMB_PROTOCOL_NT1
};
enum smb_case_hndl {
SMB_CASE_DEFAULT,
SMB_CASE_LOWER,
SMB_CASE_UPPER
};
struct smb_dskattr {
__u16 total;
__u16 allocblocks;
__u16 blocksize;
__u16 free;
};
struct smb_conn_opt {
unsigned int fd;
enum smb_protocol protocol;
enum smb_case_hndl case_handling;
__u32 max_xmit;
__u16 server_uid;
__u16 tid;
__u16 secmode;
__u16 maxmux;
__u16 maxvcs;
__u16 rawmode;
__u32 sesskey;
__u32 maxraw;
__u32 capabilities;
__s16 serverzone;
};
struct smb_fattr {
__u16 attr;
unsigned long f_ino;
umode_t f_mode;
nlink_t f_nlink;
uid_t f_uid;
gid_t f_gid;
kdev_t f_rdev;
off_t f_size;
time_t f_atime;
time_t f_mtime;
time_t f_ctime;
unsigned long f_blksize;
unsigned long f_blocks;
};
struct smb_dirent {
struct smb_fattr attr;
int f_pos;
int len;
__u8 name[255 ];
};
enum smb_conn_state {
CONN_VALID,
CONN_INVALID,
CONN_RETRIED
};
# 15 "/usr/include/linux/smb_fs_sb.h" 2 3
struct smb_sb_info {
enum smb_conn_state state;
struct file * sock_file;
struct smb_mount_data *mnt;
unsigned char *temp_buf;
unsigned int generation;
pid_t conn_pid;
struct smb_conn_opt opt;
struct semaphore sem;
struct wait_queue * wait;
__u32 packet_size;
unsigned char * packet;
unsigned short rcls;
unsigned short err;
void *data_ready;
};
# 509 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hfs_fs_sb.h" 1 3
struct hfs_name;
typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);
struct hfs_sb_info {
int magic;
struct hfs_mdb *s_mdb;
int s_quiet;
int s_lowercase;
int s_afpd;
int s_version;
hfs_namein_fn s_namein;
hfs_nameout_fn s_nameout;
hfs_ifill_fn s_ifill;
const struct hfs_name *s_reserved1;
const struct hfs_name *s_reserved2;
__u32 s_type;
__u32 s_creator;
umode_t s_umask;
uid_t s_uid;
gid_t s_gid;
char s_conv;
};
# 510 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/adfs_fs_sb.h" 1 3
# 1 "/usr/include/linux/adfs_fs.h" 1 3
struct adfs_discrecord {
unsigned char log2secsize;
unsigned char secspertrack;
unsigned char heads;
unsigned char density;
unsigned char idlen;
unsigned char log2bpmb;
unsigned char skew;
unsigned char bootoption;
unsigned char lowsector;
unsigned char nzones;
unsigned short zone_spare;
unsigned long root;
unsigned long disc_size;
unsigned short disc_id;
unsigned char disc_name[10];
unsigned long disc_type;
unsigned long disc_size_high;
unsigned char log2sharesize:4;
unsigned char unused:4;
unsigned char big_flag:1;
};
struct adfs_dirheader {
unsigned char startmasseq;
unsigned char startname[4];
};
struct adfs_direntry {
char dirobname[10];
__u8 dirload[4];
__u8 direxec[4];
__u8 dirlen[4];
__u8 dirinddiscadd[3];
__u8 newdiratts;
};
struct adfs_idir_entry {
__u32 inode_no;
__u32 file_id;
__u32 name_len;
__u32 size;
__u32 mtime;
__u32 filetype;
__u8 mode;
char name[255 ];
};
union adfs_dirtail {
struct {
unsigned char dirlastmask;
char dirname[10];
unsigned char dirparent[3];
char dirtitle[19];
unsigned char reserved[14];
unsigned char endmasseq;
unsigned char endname[4];
unsigned char dircheckbyte;
} old;
struct {
unsigned char dirlastmask;
unsigned char reserved[2];
unsigned char dirparent[3];
char dirtitle[19];
char dirname[10];
unsigned char endmasseq;
unsigned char endname[4];
unsigned char dircheckbyte;
} new;
};
extern inline int adfs_checkbblk(unsigned char *ptr)
{
unsigned int result = 0;
unsigned char *p = ptr + 511;
do {
result = (result & 0xff) + (result >> 8);
result = result + *--p;
} while (p != ptr);
return (result & 0xff) != ptr[511];
}
extern unsigned int adfs_val (unsigned char *p, int len);
extern int adfs_dir_read_parent (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_read (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_check (struct inode *inode, struct buffer_head **bhp,
int buffers, union adfs_dirtail *dtp);
extern void adfs_dir_free (struct buffer_head **bhp, int buffers);
extern int adfs_dir_get (struct super_block *sb, struct buffer_head **bhp,
int buffers, int pos, unsigned long parent_object_id,
struct adfs_idir_entry *ide);
extern int adfs_dir_find_entry (struct super_block *sb, struct buffer_head **bhp,
int buffers, unsigned int index,
struct adfs_idir_entry *ide);
extern int adfs_inode_validate (struct inode *inode);
extern unsigned long adfs_inode_generate (unsigned long parent_id, int diridx);
extern unsigned long adfs_inode_objid (struct inode *inode);
extern unsigned int adfs_parent_bmap (struct inode *inode, int block);
extern int adfs_bmap (struct inode *inode, int block);
extern void adfs_read_inode (struct inode *inode);
extern int adfs_map_lookup (struct super_block *sb, int frag_id, int offset);
extern struct dentry *adfs_lookup (struct inode *dir, struct dentry *dentry);
extern int init_adfs_fs (void);
extern void adfs_error (struct super_block *, const char *, const char *, ...);
extern struct inode_operations adfs_dir_inode_operations;
extern struct inode_operations adfs_file_inode_operations;
# 10 "/usr/include/linux/adfs_fs_sb.h" 2 3
struct adfs_sb_info {
struct buffer_head *s_sbh;
struct adfs_discrecord *s_dr;
uid_t s_uid;
gid_t s_gid;
int s_owner_mask;
int s_other_mask;
__u16 s_zone_size;
__u16 s_ids_per_zone;
__u32 s_idlen;
__u32 s_map_size;
__u32 s_zonesize;
__u32 s_map_block;
struct buffer_head **s_map;
__u32 s_root;
__s8 s_map2blk;
};
# 511 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/qnx4_fs_sb.h" 1 3
struct qnx4_sb_info {
struct buffer_head *sb_buf;
struct qnx4_super_block *sb;
unsigned int Version;
struct qnx4_inode_entry *BitMap;
};
# 512 "/usr/include/linux/fs.h" 2 3
extern struct list_head super_blocks;
struct super_block {
struct list_head s_list;
kdev_t s_dev;
unsigned long s_blocksize;
unsigned char s_blocksize_bits;
unsigned char s_lock;
unsigned char s_rd_only;
unsigned char s_dirt;
struct file_system_type *s_type;
struct super_operations *s_op;
struct dquot_operations *dq_op;
unsigned long s_flags;
unsigned long s_magic;
unsigned long s_time;
struct dentry *s_root;
struct wait_queue *s_wait;
struct inode *s_ibasket;
short int s_ibasket_count;
short int s_ibasket_max;
struct list_head s_dirty;
union {
struct minix_sb_info minix_sb;
struct ext2_sb_info ext2_sb;
struct hpfs_sb_info hpfs_sb;
struct ntfs_sb_info ntfs_sb;
struct msdos_sb_info msdos_sb;
struct isofs_sb_info isofs_sb;
struct nfs_sb_info nfs_sb;
struct sysv_sb_info sysv_sb;
struct affs_sb_info affs_sb;
struct ufs_sb_info ufs_sb;
struct efs_sb_info efs_sb;
struct romfs_sb_info romfs_sb;
struct smb_sb_info smbfs_sb;
struct hfs_sb_info hfs_sb;
struct adfs_sb_info adfs_sb;
struct qnx4_sb_info qnx4_sb;
void *generic_sbp;
} u;
struct semaphore s_vfs_rename_sem;
};
extern int vfs_rmdir(struct inode *, struct dentry *);
extern int vfs_unlink(struct inode *, struct dentry *);
extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t);
struct file_operations {
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
int (*readdir) (struct file *, void *, filldir_t);
unsigned int (*poll) (struct file *, struct poll_table_struct *);
int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
int (*mmap) (struct file *, struct vm_area_struct *);
int (*open) (struct inode *, struct file *);
int (*flush) (struct file *);
int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, struct dentry *);
int (*fasync) (int, struct file *, int);
int (*check_media_change) (kdev_t dev);
int (*revalidate) (kdev_t dev);
int (*lock) (struct file *, int, struct file_lock *);
};
struct inode_operations {
struct file_operations * default_file_ops;
int (*create) (struct inode *,struct dentry *,int);
struct dentry * (*lookup) (struct inode *,struct dentry *);
int (*link) (struct dentry *,struct inode *,struct dentry *);
int (*unlink) (struct inode *,struct dentry *);
int (*symlink) (struct inode *,struct dentry *,const char *);
int (*mkdir) (struct inode *,struct dentry *,int);
int (*rmdir) (struct inode *,struct dentry *);
int (*mknod) (struct inode *,struct dentry *,int,int);
int (*rename) (struct inode *, struct dentry *,
struct inode *, struct dentry *);
int (*readlink) (struct dentry *, char *,int);
struct dentry * (*follow_link) (struct dentry *, struct dentry *, unsigned int);
int (*readpage) (struct file *, struct page *);
int (*writepage) (struct file *, struct page *);
int (*bmap) (struct inode *,int);
void (*truncate) (struct inode *);
int (*permission) (struct inode *, int);
int (*smap) (struct inode *,int);
int (*updatepage) (struct file *, struct page *, unsigned long, unsigned int, int);
int (*revalidate) (struct dentry *);
};
struct super_operations {
void (*read_inode) (struct inode *);
void (*write_inode) (struct inode *);
void (*put_inode) (struct inode *);
void (*delete_inode) (struct inode *);
int (*notify_change) (struct dentry *, struct iattr *);
void (*put_super) (struct super_block *);
void (*write_super) (struct super_block *);
int (*statfs) (struct super_block *, struct statfs *, int);
int (*remount_fs) (struct super_block *, int *, char *);
void (*clear_inode) (struct inode *);
void (*umount_begin) (struct super_block *);
};
struct dquot_operations {
void (*initialize) (struct inode *, short);
void (*drop) (struct inode *);
int (*alloc_block) (const struct inode *, unsigned long, uid_t, char);
int (*alloc_inode) (const struct inode *, unsigned long, uid_t);
void (*free_block) (const struct inode *, unsigned long);
void (*free_inode) (const struct inode *, unsigned long);
int (*transfer) (struct dentry *, struct iattr *, uid_t);
};
struct file_system_type {
const char *name;
int fs_flags;
struct super_block *(*read_super) (struct super_block *, void *, int);
struct file_system_type * next;
};
extern int register_filesystem(struct file_system_type *);
extern int unregister_filesystem(struct file_system_type *);
extern int locks_mandatory_locked(struct inode *inode);
extern int locks_mandatory_area(int read_write, struct inode *inode,
struct file *filp, loff_t offset,
size_t count);
extern inline int locks_verify_locked(struct inode *inode)
{
if (((( inode )->i_sb && ( inode )->i_sb->s_flags & ( 64 )) || ( inode )->i_flags & ( 64 )) &&
(inode->i_mode & (0002000 | 00010 )) == 0002000 )
return (locks_mandatory_locked(inode));
return (0);
}
extern inline int locks_verify_area(int read_write, struct inode *inode,
struct file *filp, loff_t offset,
size_t count)
{
if (((( inode )->i_sb && ( inode )->i_sb->s_flags & ( 64 )) || ( inode )->i_flags & ( 64 )) &&
(inode->i_mode & (0002000 | 00010 )) == 0002000 )
return (locks_mandatory_area(read_write, inode, filp, offset,
count));
return (0);
}
__attribute__((regparm(0))) int sys_open(const char *, int, int);
__attribute__((regparm(0))) int sys_close(unsigned int);
extern int do_truncate(struct dentry *, unsigned long);
extern int get_unused_fd(void);
extern void put_unused_fd(unsigned int);
extern struct file *filp_open(const char *, int, int);
extern int filp_close(struct file *, fl_owner_t id);
extern char * getname(const char * filename);
extern void kill_fasync(struct fasync_struct *fa, int sig);
extern int register_blkdev(unsigned int, const char *, struct file_operations *);
extern int unregister_blkdev(unsigned int major, const char * name);
extern int blkdev_open(struct inode * inode, struct file * filp);
extern int blkdev_release (struct inode * inode);
extern struct file_operations def_blk_fops;
extern struct inode_operations blkdev_inode_operations;
extern int register_chrdev(unsigned int, const char *, struct file_operations *);
extern int unregister_chrdev(unsigned int major, const char * name);
extern int chrdev_open(struct inode * inode, struct file * filp);
extern struct file_operations def_chr_fops;
extern struct inode_operations chrdev_inode_operations;
extern char * bdevname(kdev_t dev);
extern char * cdevname(kdev_t dev);
extern char * kdevname(kdev_t dev);
extern void init_fifo(struct inode * inode);
extern struct inode_operations fifo_inode_operations;
extern void make_bad_inode(struct inode * inode);
extern int is_bad_inode(struct inode * inode);
extern struct file_operations connecting_fifo_fops;
extern struct file_operations read_fifo_fops;
extern struct file_operations write_fifo_fops;
extern struct file_operations rdwr_fifo_fops;
extern struct file_operations read_pipe_fops;
extern struct file_operations write_pipe_fops;
extern struct file_operations rdwr_pipe_fops;
extern struct file_system_type *get_fs_type(const char *name);
extern int fs_may_remount_ro(struct super_block *);
extern int fs_may_mount(kdev_t dev);
extern struct file *inuse_filps;
extern void refile_buffer(struct buffer_head * buf);
extern void set_writetime(struct buffer_head * buf, int flag);
extern int try_to_free_buffers(struct page *);
extern int nr_buffers;
extern long buffermem;
extern int nr_buffer_heads;
void mark_buffer_uptodate(struct buffer_head * bh, int on);
extern inline void mark_buffer_clean(struct buffer_head * bh)
{
if (test_and_clear_bit(1 , &bh->b_state)) {
if (bh->b_list == 2 )
refile_buffer(bh);
}
}
extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
{
if (!test_and_set_bit(1 , &bh->b_state)) {
set_writetime(bh, flag);
if (bh->b_list != 2 )
refile_buffer(bh);
}
}
extern int check_disk_change(kdev_t dev);
extern int invalidate_inodes(struct super_block * sb);
extern void invalidate_inode_pages(struct inode *);
extern void __invalidate_buffers(kdev_t dev, int);
extern int floppy_is_wp(int minor);
extern void sync_inodes(kdev_t dev);
extern void write_inode_now(struct inode *inode);
extern void sync_dev(kdev_t dev);
extern int fsync_dev(kdev_t dev);
extern void sync_supers(kdev_t dev);
extern int bmap(struct inode * inode,int block);
extern int notify_change(struct dentry *, struct iattr *);
extern int permission(struct inode * inode,int mask);
extern int get_write_access(struct inode *inode);
extern void put_write_access(struct inode *inode);
extern struct dentry * open_namei(const char * pathname, int flag, int mode);
extern struct dentry * do_mknod(const char * filename, int mode, dev_t dev);
extern int do_pipe(int *);
extern int is_subdir(struct dentry *, struct dentry *);
extern ino_t find_inode_number(struct dentry *, struct qstr *);
extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int);
extern struct dentry * __namei(const char *, unsigned int);
extern void iput(struct inode *);
extern struct inode * igrab(struct inode *inode);
extern ino_t iunique(struct super_block *, ino_t);
extern struct inode * iget(struct super_block *, unsigned long);
extern struct inode * iget_in_use (struct super_block *, unsigned long);
extern void clear_inode(struct inode *);
extern struct inode * get_empty_inode(void);
extern void insert_inode_hash(struct inode *);
extern void remove_inode_hash(struct inode *);
extern struct file * get_empty_filp(void);
extern struct buffer_head * get_hash_table(kdev_t, int, int);
extern struct buffer_head * getblk(kdev_t, int, int);
extern struct buffer_head * find_buffer(kdev_t dev, int block, int size);
extern void ll_rw_block(int, int, struct buffer_head * bh[]);
extern int is_read_only(kdev_t);
extern void __brelse(struct buffer_head *);
extern inline void brelse(struct buffer_head *buf)
{
if (buf)
__brelse(buf);
}
extern void __bforget(struct buffer_head *buf);
extern inline void bforget(struct buffer_head *buf)
{
if (buf)
__bforget(buf);
}
extern void set_blocksize(kdev_t dev, int size);
extern unsigned int get_hardblocksize(kdev_t dev);
extern struct buffer_head * bread(kdev_t dev, int block, int size);
extern struct buffer_head * breada(kdev_t dev,int block, int size,
unsigned int pos, unsigned int filesize);
extern int brw_page(int, struct page *, kdev_t, int [], int, int);
extern int generic_readpage(struct file *, struct page *);
extern int generic_file_mmap(struct file *, struct vm_area_struct *);
extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *);
extern ssize_t generic_file_write(struct file *, const char*, size_t, loff_t*);
extern struct super_block *get_super(kdev_t dev);
extern void put_super(kdev_t dev);
unsigned long generate_cluster(kdev_t dev, int b[], int size);
unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size);
extern kdev_t ROOT_DEV;
extern void show_buffers(void);
extern void mount_root(void);
extern kdev_t real_root_dev;
extern int change_root(kdev_t new_root_dev,const char *put_old);
extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
extern ssize_t block_read(struct file *, char *, size_t, loff_t *);
extern int read_ahead[];
extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);
extern int block_fsync(struct file *, struct dentry *dir);
extern int file_fsync(struct file *, struct dentry *dir);
extern int inode_change_ok(struct inode *, struct iattr *);
extern void inode_setattr(struct inode *, struct iattr *);
extern __u32 inode_generation_count;
# 1 "tst3.c" 2
# 4 "/usr/include/linux/config.h" 2 3
# 9 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/linkage.h" 1 3
# 52 "/usr/include/linux/linkage.h" 3
# 10 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/limits.h" 1 3
# 11 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/wait.h" 1 3
# 1 "/usr/include/asm/page.h" 1 3
typedef struct { unsigned long pte; } pte_t;
typedef struct { unsigned long pmd; } pmd_t;
typedef struct { unsigned long pgd; } pgd_t;
typedef struct { unsigned long pgprot; } pgprot_t;
# 55 "/usr/include/asm/page.h" 3
# 1 "/usr/include/asm/page_offset.h" 1 3
# 83 "/usr/include/asm/page.h" 2 3
# 11 "/usr/include/linux/wait.h" 2 3
struct wait_queue {
struct task_struct * task;
struct wait_queue * next;
};
static inline void init_waitqueue(struct wait_queue **q)
{
*q = ((struct wait_queue *)(( q )-1)) ;
}
static inline int waitqueue_active(struct wait_queue **q)
{
struct wait_queue *head = *q;
return head && head != ((struct wait_queue *)(( q )-1)) ;
}
# 12 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/types.h" 1 3
# 1 "/usr/include/linux/posix_types.h" 1 3
# 1 "/usr/include/linux/stddef.h" 1 3
# 4 "/usr/include/linux/posix_types.h" 2 3
typedef struct {
unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)) ) ];
} __kernel_fd_set;
typedef void (*__kernel_sighandler_t)(int);
typedef int __kernel_key_t;
# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 1 3
# 1 "/usr/include/features.h" 1 3
# 138 "/usr/include/features.h" 3
# 196 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 71 "/usr/include/sys/cdefs.h" 3
# 103 "/usr/include/sys/cdefs.h" 3
# 250 "/usr/include/features.h" 2 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 278 "/usr/include/features.h" 2 3
# 3 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3
# 1 "/usr/include/asm/posix_types.h" 1 3
typedef unsigned short __kernel_dev_t;
typedef unsigned long __kernel_ino_t;
typedef unsigned short __kernel_mode_t;
typedef unsigned short __kernel_nlink_t;
typedef long __kernel_off_t;
typedef int __kernel_pid_t;
typedef unsigned short __kernel_ipc_pid_t;
typedef unsigned short __kernel_uid_t;
typedef unsigned short __kernel_gid_t;
typedef unsigned int __kernel_size_t;
typedef int __kernel_ssize_t;
typedef int __kernel_ptrdiff_t;
typedef long __kernel_time_t;
typedef long __kernel_suseconds_t;
typedef long __kernel_clock_t;
typedef int __kernel_daddr_t;
typedef char * __kernel_caddr_t;
typedef long long __kernel_loff_t;
typedef struct {
int val[2];
} __kernel_fsid_t;
# 70 "/usr/include/asm/posix_types.h" 3
# 4 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 2 3
# 16 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/asm/posix_types.h" 3
# 46 "/usr/include/linux/posix_types.h" 2 3
# 4 "/usr/include/linux/types.h" 2 3
# 1 "/usr/include/asm/types.h" 1 3
typedef unsigned short umode_t;
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
# 5 "/usr/include/linux/types.h" 2 3
# 94 "/usr/include/linux/types.h" 3
struct ustat {
__kernel_daddr_t f_tfree;
__kernel_ino_t f_tinode;
char f_fname[6];
char f_fpack[6];
};
# 13 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/vfs.h" 1 3
# 1 "/usr/include/asm/statfs.h" 1 3
struct statfs {
long f_type;
long f_bsize;
long f_blocks;
long f_bfree;
long f_bavail;
long f_files;
long f_ffree;
__kernel_fsid_t f_fsid;
long f_namelen;
long f_spare[6];
};
# 4 "/usr/include/linux/vfs.h" 2 3
# 14 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/net.h" 1 3
# 1 "/usr/include/linux/socket.h" 1 3
# 1 "/usr/include/asm/socket.h" 1 3
# 1 "/usr/include/asm/sockios.h" 1 3
# 4 "/usr/include/asm/socket.h" 2 3
# 6 "/usr/include/linux/socket.h" 2 3
# 1 "/usr/include/linux/sockios.h" 1 3
# 7 "/usr/include/linux/socket.h" 2 3
# 1 "/usr/include/linux/uio.h" 1 3
struct iovec
{
void *iov_base;
__kernel_size_t iov_len;
};
# 8 "/usr/include/linux/socket.h" 2 3
typedef unsigned short sa_family_t;
struct sockaddr {
sa_family_t sa_family;
char sa_data[14];
};
struct linger {
int l_onoff;
int l_linger;
};
struct msghdr {
void * msg_name;
int msg_namelen;
struct iovec * msg_iov;
__kernel_size_t msg_iovlen;
void * msg_control;
__kernel_size_t msg_controllen;
unsigned msg_flags;
};
struct cmsghdr {
__kernel_size_t cmsg_len;
int cmsg_level;
int cmsg_type;
};
extern __inline__ struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
struct cmsghdr *__cmsg)
{
struct cmsghdr * __ptr;
__ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) + ( (( __cmsg->cmsg_len )+sizeof(long)-1) & ~(sizeof(long)-1) ) );
if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
return (struct cmsghdr*)0;
return __ptr;
}
extern __inline__ struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
{
return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
}
struct ucred {
__u32 pid;
__u32 uid;
__u32 gid;
};
extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov,
int offset, int len);
extern int csum_partial_copy_fromiovecend(unsigned char *kdata,
struct iovec *iov,
int offset,
unsigned int len, int *csump);
extern int verify_iovec(struct msghdr *m, struct iovec *iov, char *address, int mode);
extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
extern void memcpy_tokerneliovec(struct iovec *iov, unsigned char *kdata, int len);
extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int *ulen);
extern int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr);
extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);
# 279 "/usr/include/linux/socket.h" 3
# 21 "/usr/include/linux/net.h" 2 3
struct poll_table_struct;
typedef enum {
SS_FREE = 0,
SS_UNCONNECTED,
SS_CONNECTING,
SS_CONNECTED,
SS_DISCONNECTING
} socket_state;
struct socket
{
socket_state state;
unsigned long flags;
struct proto_ops *ops;
struct inode *inode;
struct fasync_struct *fasync_list;
struct file *file;
struct sock *sk;
struct wait_queue *wait;
short type;
unsigned char passcred;
unsigned char tli;
};
struct scm_cookie;
struct proto_ops {
int family;
int (*dup) (struct socket *newsock, struct socket *oldsock);
int (*release) (struct socket *sock, struct socket *peer);
int (*bind) (struct socket *sock, struct sockaddr *umyaddr,
int sockaddr_len);
int (*connect) (struct socket *sock, struct sockaddr *uservaddr,
int sockaddr_len, int flags);
int (*socketpair) (struct socket *sock1, struct socket *sock2);
int (*accept) (struct socket *sock, struct socket *newsock,
int flags);
int (*getname) (struct socket *sock, struct sockaddr *uaddr,
int *usockaddr_len, int peer);
unsigned int (*poll) (struct file *file, struct socket *sock, struct poll_table_struct *wait);
int (*ioctl) (struct socket *sock, unsigned int cmd,
unsigned long arg);
int (*listen) (struct socket *sock, int len);
int (*shutdown) (struct socket *sock, int flags);
int (*setsockopt) (struct socket *sock, int level, int optname,
char *optval, int optlen);
int (*getsockopt) (struct socket *sock, int level, int optname,
char *optval, int *optlen);
int (*fcntl) (struct socket *sock, unsigned int cmd,
unsigned long arg);
int (*sendmsg) (struct socket *sock, struct msghdr *m, int total_len, struct scm_cookie *scm);
int (*recvmsg) (struct socket *sock, struct msghdr *m, int total_len, int flags, struct scm_cookie *scm);
};
struct net_proto_family
{
int family;
int (*create)(struct socket *sock, int protocol);
short authentication;
short encryption;
short encrypt_net;
};
struct net_proto
{
const char *name;
void (*init_func)(struct net_proto *);
};
extern struct net_proto_family *net_families[];
extern int sock_wake_async(struct socket *sk, int how);
extern int sock_register(struct net_proto_family *fam);
extern int sock_unregister(int family);
extern struct socket *sock_alloc(void);
extern int sock_create(int family, int type, int proto, struct socket **);
extern void sock_release(struct socket *);
extern int sock_sendmsg(struct socket *, struct msghdr *m, int len);
extern int sock_recvmsg(struct socket *, struct msghdr *m, int len, int flags);
extern int sock_readv_writev(int type, struct inode * inode, struct file * file,
const struct iovec * iov, long count, long size);
extern int net_ratelimit(void);
extern unsigned long net_random(void);
extern void net_srandom(unsigned long);
# 15 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/kdev_t.h" 1 3
typedef unsigned short kdev_t;
extern char * kdevname(kdev_t);
static inline unsigned int kdev_t_to_nr(kdev_t dev) {
return (((unsigned int) (( dev ) >> 8 )) <<8) | ((unsigned int) (( dev ) & ((1U << 8 ) - 1) )) ;
}
static inline kdev_t to_kdev_t(int dev)
{
int major, minor;
major = (dev >> 8);
minor = (dev & 0xff);
return ((( major ) << 8 ) | ( minor )) ;
}
# 113 "/usr/include/linux/kdev_t.h" 3
# 16 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ioctl.h" 1 3
# 1 "/usr/include/asm/ioctl.h" 1 3
# 4 "/usr/include/linux/ioctl.h" 2 3
# 17 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/list.h" 1 3
struct list_head {
struct list_head *next, *prev;
};
static __inline__ void __list_add(struct list_head * new,
struct list_head * prev,
struct list_head * next)
{
next->prev = new;
new->next = next;
new->prev = prev;
prev->next = new;
}
static __inline__ void list_add(struct list_head *new, struct list_head *head)
{
__list_add(new, head, head->next);
}
static __inline__ void __list_del(struct list_head * prev,
struct list_head * next)
{
next->prev = prev;
prev->next = next;
}
static __inline__ void list_del(struct list_head *entry)
{
__list_del(entry->prev, entry->next);
}
static __inline__ int list_empty(struct list_head *head)
{
return head->next == head;
}
static __inline__ void list_splice(struct list_head *list, struct list_head *head)
{
struct list_head *first = list->next;
if (first != list) {
struct list_head *last = list->prev;
struct list_head *at = head->next;
first->prev = head;
head->next = first;
last->next = at;
at->prev = last;
}
}
# 18 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/dcache.h" 1 3
struct qstr {
const unsigned char * name;
unsigned int len;
unsigned int hash;
};
static __inline__ unsigned long partial_name_hash(unsigned long c, unsigned long prevhash)
{
prevhash = (prevhash << 4) | (prevhash >> (8*sizeof(unsigned long)-4));
return prevhash ^ c;
}
static __inline__ unsigned long end_name_hash(unsigned long hash)
{
if (sizeof(hash) > sizeof(unsigned int))
hash += hash >> 4*sizeof(hash);
return (unsigned int) hash;
}
static __inline__ unsigned int full_name_hash(const unsigned char * name, unsigned int len)
{
unsigned long hash = 0 ;
while (len--)
hash = partial_name_hash(*name++, hash);
return end_name_hash(hash);
}
struct dentry {
int d_count;
unsigned int d_flags;
struct inode * d_inode;
struct dentry * d_parent;
struct dentry * d_mounts;
struct dentry * d_covers;
struct list_head d_hash;
struct list_head d_lru;
struct list_head d_child;
struct list_head d_subdirs;
struct list_head d_alias;
struct qstr d_name;
unsigned long d_time;
struct dentry_operations *d_op;
struct super_block * d_sb;
unsigned long d_reftime;
void * d_fsdata;
unsigned char d_iname[16 ];
};
struct dentry_operations {
int (*d_revalidate)(struct dentry *, int);
int (*d_hash) (struct dentry *, struct qstr *);
int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
void (*d_delete)(struct dentry *);
void (*d_release)(struct dentry *);
void (*d_iput)(struct dentry *, struct inode *);
};
static __inline__ void d_drop(struct dentry * dentry)
{
list_del(&dentry->d_hash);
do { ( &dentry->d_hash )->next = ( &dentry->d_hash ); ( &dentry->d_hash )->prev = ( &dentry->d_hash ); } while (0) ;
}
static __inline__ int dname_external(struct dentry *d)
{
return d->d_name.name != d->d_iname;
}
extern void d_instantiate(struct dentry *, struct inode *);
extern void d_delete(struct dentry *);
extern struct dentry * d_alloc(struct dentry * parent, const struct qstr *name);
extern int prune_dcache(int, int);
extern void shrink_dcache_sb(struct super_block *);
extern void shrink_dcache_parent(struct dentry *);
extern int d_invalidate(struct dentry *);
extern void shrink_dcache_memory(int, unsigned int);
extern void check_dcache_memory(void);
extern void free_inode_memory(int);
extern struct dentry * d_alloc_root(struct inode * root_inode, struct dentry * old_root);
extern int is_root_busy(struct dentry *);
extern int have_submounts(struct dentry *);
extern void d_rehash(struct dentry * entry);
static __inline__ void d_add(struct dentry * entry, struct inode * inode)
{
d_rehash(entry);
d_instantiate(entry, inode);
}
extern void d_move(struct dentry * entry, struct dentry * newdentry);
extern struct dentry * d_lookup(struct dentry * dir, struct qstr * name);
extern int d_validate(struct dentry *dentry, struct dentry *dparent,
unsigned int hash, unsigned int len);
extern char * d_path(struct dentry * entry, char * buf, int buflen);
static __inline__ struct dentry * dget(struct dentry *dentry)
{
if (dentry)
dentry->d_count++;
return dentry;
}
extern void dput(struct dentry *);
# 19 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/stat.h" 1 3
# 1 "/usr/include/asm/stat.h" 1 3
struct __old_kernel_stat {
unsigned short st_dev;
unsigned short st_ino;
unsigned short st_mode;
unsigned short st_nlink;
unsigned short st_uid;
unsigned short st_gid;
unsigned short st_rdev;
unsigned long st_size;
unsigned long st_atime;
unsigned long st_mtime;
unsigned long st_ctime;
};
struct stat {
unsigned short st_dev;
unsigned short __pad1;
unsigned long st_ino;
unsigned short st_mode;
unsigned short st_nlink;
unsigned short st_uid;
unsigned short st_gid;
unsigned short st_rdev;
unsigned short __pad2;
unsigned long st_size;
unsigned long st_blksize;
unsigned long st_blocks;
unsigned long st_atime;
unsigned long __unused1;
unsigned long st_mtime;
unsigned long __unused2;
unsigned long st_ctime;
unsigned long __unused3;
unsigned long __unused4;
unsigned long __unused5;
};
# 6 "/usr/include/linux/stat.h" 2 3
# 20 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/asm/atomic.h" 1 3
typedef struct { int counter; } atomic_t;
static __inline__ void atomic_add(int i, volatile atomic_t *v)
{
__asm__ __volatile__(
"" "addl %1,%0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ void atomic_sub(int i, volatile atomic_t *v)
{
__asm__ __volatile__(
"" "subl %1,%0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"ir" (i), "m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ void atomic_inc(volatile atomic_t *v)
{
__asm__ __volatile__(
"" "incl %0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ void atomic_dec(volatile atomic_t *v)
{
__asm__ __volatile__(
"" "decl %0"
:"=m" ((*(volatile struct { int a[100]; } *) v ) )
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
}
static __inline__ int atomic_dec_and_test(volatile atomic_t *v)
{
unsigned char c;
__asm__ __volatile__(
"" "decl %0; sete %1"
:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
return c != 0;
}
extern __inline__ int atomic_inc_and_test_greater_zero(volatile atomic_t *v)
{
unsigned char c;
__asm__ __volatile__(
"" "incl %0; setg %1"
:"=m" ((*(volatile struct { int a[100]; } *) v ) ), "=qm" (c)
:"m" ((*(volatile struct { int a[100]; } *) v ) ));
return c;
}
# 22 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/bitops.h" 1 3
extern __inline__ int generic_ffs(int x)
{
int r = 1;
if (!x)
return 0;
if (!(x & 0xffff)) {
x >>= 16;
r += 16;
}
if (!(x & 0xff)) {
x >>= 8;
r += 8;
}
if (!(x & 0xf)) {
x >>= 4;
r += 4;
}
if (!(x & 3)) {
x >>= 2;
r += 2;
}
if (!(x & 1)) {
x >>= 1;
r += 1;
}
return r;
}
extern __inline__ unsigned int generic_hweight32(unsigned int w)
{
unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555);
res = (res & 0x33333333) + ((res >> 2) & 0x33333333);
res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F);
res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF);
return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF);
}
extern __inline__ unsigned int generic_hweight16(unsigned int w)
{
unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555);
res = (res & 0x3333) + ((res >> 2) & 0x3333);
res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F);
return (res & 0x00FF) + ((res >> 8) & 0x00FF);
}
extern __inline__ unsigned int generic_hweight8(unsigned int w)
{
unsigned int res = (w & 0x55) + ((w >> 1) & 0x55);
res = (res & 0x33) + ((res >> 2) & 0x33);
return (res & 0x0F) + ((res >> 4) & 0x0F);
}
# 1 "/usr/include/asm/bitops.h" 1 3
extern void set_bit(int nr, volatile void * addr);
extern void clear_bit(int nr, volatile void * addr);
extern void change_bit(int nr, volatile void * addr);
extern int test_and_set_bit(int nr, volatile void * addr);
extern int test_and_clear_bit(int nr, volatile void * addr);
extern int test_and_change_bit(int nr, volatile void * addr);
extern int __constant_test_bit(int nr, const volatile void * addr);
extern int __test_bit(int nr, volatile void * addr);
extern int find_first_zero_bit(void * addr, unsigned size);
extern int find_next_zero_bit (void * addr, int size, int offset);
extern unsigned long ffz(unsigned long word);
struct __dummy { unsigned long a[100]; };
extern __inline__ void set_bit(int nr, volatile void * addr)
{
__asm__ __volatile__( ""
"btsl %1,%0"
:"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
}
extern __inline__ void clear_bit(int nr, volatile void * addr)
{
__asm__ __volatile__( ""
"btrl %1,%0"
:"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
}
extern __inline__ void change_bit(int nr, volatile void * addr)
{
__asm__ __volatile__( ""
"btcl %1,%0"
:"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
}
extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__( ""
"btsl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
return oldbit;
}
extern __inline__ int test_and_clear_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__( ""
"btrl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
return oldbit;
}
extern __inline__ int test_and_change_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__( ""
"btcl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit),"=m" ((*(volatile struct __dummy *) addr) )
:"Ir" (nr));
return oldbit;
}
extern __inline__ int __constant_test_bit(int nr, const volatile void * addr)
{
return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
}
extern __inline__ int __test_bit(int nr, volatile void * addr)
{
int oldbit;
__asm__ __volatile__(
"btl %2,%1\n\tsbbl %0,%0"
:"=r" (oldbit)
:"m" ((*(volatile struct __dummy *) addr) ),"Ir" (nr));
return oldbit;
}
extern __inline__ int find_first_zero_bit(void * addr, unsigned size)
{
int d0, d1, d2;
int res;
if (!size)
return 0;
__asm__("cld\n\t"
"movl $-1,%%eax\n\t"
"xorl %%edx,%%edx\n\t"
"repe; scasl\n\t"
"je 1f\n\t"
"xorl -4(%%edi),%%eax\n\t"
"subl $4,%%edi\n\t"
"bsfl %%eax,%%edx\n"
"1:\tsubl %%ebx,%%edi\n\t"
"shll $3,%%edi\n\t"
"addl %%edi,%%edx"
:"=d" (res), "=&c" (d0), "=&D" (d1), "=&a" (d2)
:"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
return res;
}
extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
{
unsigned long * p = ((unsigned long *) addr) + (offset >> 5);
int set = 0, bit = offset & 31, res;
if (bit) {
__asm__("bsfl %1,%0\n\t"
"jne 1f\n\t"
"movl $32, %0\n"
"1:"
: "=r" (set)
: "r" (~(*p >> bit)));
if (set < (32 - bit))
return set + offset;
set = 32 - bit;
p++;
}
res = find_first_zero_bit (p, size - 32 * (p - (unsigned long *) addr));
return (offset + set + res);
}
extern __inline__ unsigned long ffz(unsigned long word)
{
__asm__("bsfl %1,%0"
:"=r" (word)
:"r" (~word));
return word;
}
extern __inline__ int ffs(int x)
{
int r;
__asm__("bsfl %1,%0\n\t"
"jnz 1f\n\t"
"movl $-1,%0\n"
"1:" : "=r" (r) : "g" (x));
return r+1;
}
# 69 "/usr/include/linux/bitops.h" 2 3
# 23 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/asm/cache.h" 1 3
# 24 "/usr/include/linux/fs.h" 2 3
struct poll_table_struct;
extern int max_inodes;
extern int max_files, nr_files, nr_free_files;
extern int max_super_blocks, nr_super_blocks;
# 1 "/usr/include/asm/semaphore.h" 1 3
# 1 "/usr/include/asm/system.h" 1 3
# 1 "/usr/include/linux/kernel.h" 1 3
# 1 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 1 3
typedef void *__gnuc_va_list;
void va_end (__gnuc_va_list);
# 175 "/usr/lib/gcc-lib/i486-linux/2.95.3/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 10 "/usr/include/linux/kernel.h" 2 3
extern void math_error(void);
extern struct notifier_block *panic_notifier_list;
void panic(const char * fmt, ...)
__attribute__ ((noreturn, format (printf, 1, 2)));
void do_exit(long error_code)
__attribute__((noreturn)) ;
extern unsigned long simple_strtoul(const char *,char **,unsigned int);
extern long simple_strtol(const char *,char **,unsigned int);
extern int sprintf(char * buf, const char * fmt, ...);
extern int vsprintf(char *buf, const char *, va_list);
extern int session_of_pgrp(int pgrp);
__attribute__((regparm(0))) int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
struct sysinfo {
long uptime;
unsigned long loads[3];
unsigned long totalram;
unsigned long freeram;
unsigned long sharedram;
unsigned long bufferram;
unsigned long totalswap;
unsigned long freeswap;
unsigned short procs;
char _f[22];
};
# 4 "/usr/include/asm/system.h" 2 3
# 1 "/usr/include/asm/segment.h" 1 3
# 5 "/usr/include/asm/system.h" 2 3
struct task_struct;
extern void __switch_to(struct task_struct *prev, struct task_struct *next) __attribute__((regparm(3))) ;
# 31 "/usr/include/asm/system.h" 3
# 43 "/usr/include/asm/system.h" 3
# 56 "/usr/include/asm/system.h" 3
static inline unsigned long _get_base(char * addr)
{
unsigned long __base;
__asm__("movb %3,%%dh\n\t"
"movb %2,%%dl\n\t"
"shll $16,%%edx\n\t"
"movw %1,%%dx"
:"=&d" (__base)
:"m" (*((addr)+2)),
"m" (*((addr)+4)),
"m" (*((addr)+7)));
return __base;
}
# 96 "/usr/include/asm/system.h" 3
static inline unsigned long get_limit(unsigned long segment)
{
unsigned long __limit;
__asm__("lsll %1,%0"
:"=r" (__limit):"r" (segment));
return __limit+1;
}
struct __xchg_dummy { unsigned long a[100]; };
static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
{
switch (size) {
case 1:
__asm__("xchgb %b0,%1"
:"=q" (x)
:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
:"memory");
break;
case 2:
__asm__("xchgw %w0,%1"
:"=r" (x)
:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
:"memory");
break;
case 4:
__asm__("xchgl %0,%1"
:"=r" (x)
:"m" (* ((struct __xchg_dummy *)( ptr )) ), "0" (x)
:"memory");
break;
}
return x;
}
# 196 "/usr/include/asm/system.h" 3
void disable_hlt(void);
void enable_hlt(void);
# 31 "/usr/include/asm/semaphore.h" 2 3
# 1 "/usr/include/asm/spinlock.h" 1 3
typedef struct { } spinlock_t;
# 80 "/usr/include/asm/spinlock.h" 3
typedef struct { } rwlock_t;
# 253 "/usr/include/asm/spinlock.h" 3
# 33 "/usr/include/asm/semaphore.h" 2 3
struct semaphore {
atomic_t count;
int waking;
struct wait_queue * wait;
};
__attribute__((regparm(0))) void __down_failed(void );
__attribute__((regparm(0))) int __down_failed_interruptible(void );
__attribute__((regparm(0))) int __down_failed_trylock(void );
__attribute__((regparm(0))) void __up_wakeup(void );
__attribute__((regparm(0))) void __down(struct semaphore * sem);
__attribute__((regparm(0))) int __down_interruptible(struct semaphore * sem);
__attribute__((regparm(0))) int __down_trylock(struct semaphore * sem);
__attribute__((regparm(0))) void __up(struct semaphore * sem);
extern spinlock_t semaphore_wake_lock;
extern inline void down(struct semaphore * sem)
{
__asm__ __volatile__(
"# atomic down operation\n\t"
"decl (%0)\n\t"
"js 2f\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __down_failed\n\t"
"jmp 1b\n"
".previous"
:
:"c" (sem)
:"memory");
}
extern inline int down_interruptible(struct semaphore * sem)
{
int result;
__asm__ __volatile__(
"# atomic interruptible down operation\n\t"
"decl (%1)\n\t"
"js 2f\n\t"
"xorl %0,%0\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __down_failed_interruptible\n\t"
"jmp 1b\n"
".previous"
:"=a" (result)
:"c" (sem)
:"memory");
return result;
}
extern inline int down_trylock(struct semaphore * sem)
{
int result;
__asm__ __volatile__(
"# atomic interruptible down operation\n\t"
"decl (%1)\n\t"
"js 2f\n\t"
"xorl %0,%0\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __down_failed_trylock\n\t"
"jmp 1b\n"
".previous"
:"=a" (result)
:"c" (sem)
:"memory");
return result;
}
extern inline void up(struct semaphore * sem)
{
__asm__ __volatile__(
"# atomic up operation\n\t"
"incl (%0)\n\t"
"jle 2f\n"
"1:\n"
".section .text.lock,\"ax\"\n"
"2:\tcall __up_wakeup\n\t"
"jmp 1b\n"
".previous"
:
:"c" (sem)
:"memory");
}
# 164 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/asm/byteorder.h" 1 3
static __inline__ __const__ __u32 ___arch__swab32(__u32 x)
{
__asm__("bswap %0" : "=r" (x) : "0" (x));
return x;
}
static __inline__ __const__ __u16 ___arch__swab16(__u16 x)
{
__asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); return x;
}
# 1 "/usr/include/linux/byteorder/little_endian.h" 1 3
# 1 "/usr/include/linux/byteorder/swab.h" 1 3
# 41 "/usr/include/linux/byteorder/swab.h" 3
extern __inline__ __const__ __u16 __fswab16(__u16 x)
{
return ___arch__swab16( x ) ;
}
extern __inline__ __u16 __swab16p(__u16 *x)
{
return (__builtin_constant_p((__u16)( *( x ) )) ? ((__u16)( (((__u16)( ( *( x ) ) ) & (__u16)0x00ffU) << 8) | (((__u16)( ( *( x ) ) ) & (__u16)0xff00U) >> 8) )) : __fswab16(( *( x ) ))) ;
}
extern __inline__ void __swab16s(__u16 *addr)
{
do { *( addr ) = __swab16p(( addr )); } while (0) ;
}
extern __inline__ __const__ __u32 __fswab32(__u32 x)
{
return ___arch__swab32( x ) ;
}
extern __inline__ __u32 __swab32p(__u32 *x)
{
return (__builtin_constant_p((__u32)( *( x ) )) ? ((__u32)( (((__u32)( ( *( x ) ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( *( x ) ) ) & (__u32)0x0000ff00UL) << 8) | (((__u32)( ( *( x ) ) ) & (__u32)0x00ff0000UL) >> 8) | (((__u32)( ( *( x ) ) ) & (__u32)0xff000000UL) >> 24) )) : __fswab32(( *( x ) ))) ;
}
extern __inline__ void __swab32s(__u32 *addr)
{
do { *( addr ) = __swab32p(( addr )); } while (0) ;
}
extern __inline__ __const__ __u64 __fswab64(__u64 x)
{
__u32 h = x >> 32;
__u32 l = x & ((1ULL<<32)-1);
return (((__u64)(__builtin_constant_p((__u32)( l )) ? ((__u32)( (((__u32)( ( l ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( l ) ) & (__u32)0x0000ff00UL) << 8) | (((__u32)( ( l ) ) & (__u32)0x00ff0000UL) >> 8) | (((__u32)( ( l ) ) & (__u32)0xff000000UL) >> 24) )) : __fswab32(( l ))) ) << 32) | ((__u64)((__builtin_constant_p((__u32)( h )) ? ((__u32)( (((__u32)( ( h ) ) & (__u32)0x000000ffUL) << 24) | (((__u32)( ( h ) ) & (__u32)0x0000ff00UL) << 8) | (((__u32)( ( h ) ) & (__u32)0x00ff0000UL) >> 8) | (((__u32)( ( h ) ) & (__u32)0xff000000UL) >> 24) )) : __fswab32(( h ))) ));
}
extern __inline__ __u64 __swab64p(__u64 *x)
{
return (__builtin_constant_p((__u64)( *( x ) )) ? ((__u64)( (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)( ( *( x ) ) ) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64(( *( x ) ))) ;
}
extern __inline__ void __swab64s(__u64 *addr)
{
do { *( addr ) = __swab64p(( addr )); } while (0) ;
}
# 11 "/usr/include/linux/byteorder/little_endian.h" 2 3
# 1 "/usr/include/linux/byteorder/generic.h" 1 3
extern __u32 ntohl(__u32);
extern __u32 htonl(__u32);
extern unsigned short int ntohs(unsigned short int);
extern unsigned short int htons(unsigned short int);
# 54 "/usr/include/linux/byteorder/little_endian.h" 2 3
# 45 "/usr/include/asm/byteorder.h" 2 3
# 165 "/usr/include/linux/fs.h" 2 3
extern void update_atime (struct inode *inode);
extern void buffer_init(unsigned long);
extern void inode_init(void);
extern void file_table_init(void);
extern void dcache_init(void);
typedef char buffer_block[(1<< 10 ) ];
struct buffer_head {
struct buffer_head * b_next;
unsigned long b_blocknr;
unsigned long b_size;
kdev_t b_dev;
kdev_t b_rdev;
unsigned long b_rsector;
struct buffer_head * b_this_page;
unsigned long b_state;
struct buffer_head * b_next_free;
unsigned int b_count;
char * b_data;
unsigned int b_list;
unsigned long b_flushtime;
struct wait_queue * b_wait;
struct buffer_head ** b_pprev;
struct buffer_head * b_prev_free;
struct buffer_head * b_reqnext;
void (*b_end_io)(struct buffer_head *bh, int uptodate);
void *b_dev_id;
};
typedef void (bh_end_io_t)(struct buffer_head *bh, int uptodate);
void init_buffer(struct buffer_head *bh, kdev_t dev, int block,
bh_end_io_t *handler, void *dev_id);
static inline int buffer_uptodate(struct buffer_head * bh)
{
return (__builtin_constant_p( 0 ) ? __constant_test_bit(( 0 ),( &bh->b_state )) : __test_bit(( 0 ),( &bh->b_state ))) ;
}
static inline int buffer_dirty(struct buffer_head * bh)
{
return (__builtin_constant_p( 1 ) ? __constant_test_bit(( 1 ),( &bh->b_state )) : __test_bit(( 1 ),( &bh->b_state ))) ;
}
static inline int buffer_locked(struct buffer_head * bh)
{
return (__builtin_constant_p( 2 ) ? __constant_test_bit(( 2 ),( &bh->b_state )) : __test_bit(( 2 ),( &bh->b_state ))) ;
}
static inline int buffer_req(struct buffer_head * bh)
{
return (__builtin_constant_p( 3 ) ? __constant_test_bit(( 3 ),( &bh->b_state )) : __test_bit(( 3 ),( &bh->b_state ))) ;
}
static inline int buffer_protected(struct buffer_head * bh)
{
return (__builtin_constant_p( 6 ) ? __constant_test_bit(( 6 ),( &bh->b_state )) : __test_bit(( 6 ),( &bh->b_state ))) ;
}
# 1 "/usr/include/linux/pipe_fs_i.h" 1 3
struct pipe_inode_info {
struct wait_queue * wait;
char * base;
unsigned int start;
unsigned int lock;
unsigned int rd_openers;
unsigned int wr_openers;
unsigned int readers;
unsigned int writers;
};
# 259 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/minix_fs_i.h" 1 3
struct minix_inode_info {
union {
__u16 i1_data[16];
__u32 i2_data[16];
} u;
};
# 260 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ext2_fs_i.h" 1 3
struct ext2_inode_info {
__u32 i_data[15];
__u32 i_flags;
__u32 i_faddr;
__u8 i_frag_no;
__u8 i_frag_size;
__u16 i_osync;
__u32 i_file_acl;
__u32 i_dir_acl;
__u32 i_dtime;
__u32 i_version;
__u32 i_block_group;
__u32 i_next_alloc_block;
__u32 i_next_alloc_goal;
__u32 i_prealloc_block;
__u32 i_prealloc_count;
__u32 i_high_size;
int i_new_inode:1;
};
# 261 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hpfs_fs_i.h" 1 3
struct hpfs_inode_info {
ino_t i_parent_dir;
unsigned i_dno;
unsigned i_dpos;
unsigned i_dsubdno;
unsigned i_file_sec;
unsigned i_disk_sec;
unsigned i_n_secs;
unsigned i_conv : 2;
};
# 262 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ntfs_fs_i.h" 1 3
struct ntfs_attribute;
struct ntfs_sb_info;
typedef u8 ntfs_u8;
typedef u16 ntfs_u16;
typedef u32 ntfs_u32;
typedef u64 ntfs_u64;
typedef s8 ntfs_s8;
typedef s16 ntfs_s16;
typedef s32 ntfs_s32;
typedef s64 ntfs_s64;
typedef __kernel_mode_t ntmode_t;
typedef __kernel_uid_t ntfs_uid_t;
typedef __kernel_gid_t ntfs_gid_t;
typedef __kernel_size_t ntfs_size_t;
typedef __kernel_time_t ntfs_time_t;
typedef unsigned short ntfs_wchar_t;
typedef unsigned long long ntfs_offset_t;
typedef unsigned long long ntfs_time64_t;
typedef unsigned int ntfs_cluster_t;
struct ntfs_inode_info{
struct ntfs_sb_info *vol;
int i_number;
unsigned sequence_number;
unsigned char* attr;
int attr_count;
struct ntfs_attribute *attrs;
int record_count;
int *records;
union{
struct{
int recordsize;
int clusters_per_record;
}index;
} u;
};
# 263 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/msdos_fs_i.h" 1 3
struct msdos_inode_info {
struct pipe_inode_info reserved;
int i_start;
int i_logstart;
int i_attrs;
int i_ctime_ms;
int i_binary;
int i_location;
struct inode *i_fat_inode;
struct list_head i_fat_hash;
off_t i_last_pos;
};
# 264 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/umsdos_fs_i.h" 1 3
struct dir_locking_info {
struct wait_queue *p;
short int looking;
short int creating;
long pid;
};
struct umsdos_inode_info {
union {
struct msdos_inode_info msdos_info;
struct pipe_inode_info pipe_info;
struct dir_locking_info dir_info;
} u;
int i_patched;
int i_is_hlink;
unsigned long i_emd_owner;
off_t pos;
struct dentry *i_emd_dentry;
unsigned long i_emd_dir;
};
# 265 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/iso_fs_i.h" 1 3
struct iso_inode_info {
unsigned int i_first_extent;
unsigned char i_file_format;
unsigned long i_next_section_ino;
off_t i_section_size;
};
# 266 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/nfs_fs_i.h" 1 3
# 1 "/usr/include/linux/nfs.h" 1 3
# 1 "/usr/include/linux/sunrpc/msg_prot.h" 1 3
enum rpc_auth_flavor {
RPC_AUTH_NULL = 0,
RPC_AUTH_UNIX = 1,
RPC_AUTH_SHORT = 2,
RPC_AUTH_DES = 3,
RPC_AUTH_KRB = 4,
};
enum rpc_msg_type {
RPC_CALL = 0,
RPC_REPLY = 1
};
enum rpc_reply_stat {
RPC_MSG_ACCEPTED = 0,
RPC_MSG_DENIED = 1
};
enum rpc_accept_stat {
RPC_SUCCESS = 0,
RPC_PROG_UNAVAIL = 1,
RPC_PROG_MISMATCH = 2,
RPC_PROC_UNAVAIL = 3,
RPC_GARBAGE_ARGS = 4,
RPC_SYSTEM_ERR = 5
};
enum rpc_reject_stat {
RPC_MISMATCH = 0,
RPC_AUTH_ERROR = 1
};
enum rpc_auth_stat {
RPC_AUTH_OK = 0,
RPC_AUTH_BADCRED = 1,
RPC_AUTH_REJECTEDCRED = 2,
RPC_AUTH_BADVERF = 3,
RPC_AUTH_REJECTEDVERF = 4,
RPC_AUTH_TOOWEAK = 5
};
# 7 "/usr/include/linux/nfs.h" 2 3
enum nfs_stat {
NFS_OK = 0,
NFSERR_PERM = 1,
NFSERR_NOENT = 2,
NFSERR_IO = 5,
NFSERR_NXIO = 6,
NFSERR_EAGAIN = 11,
NFSERR_ACCES = 13,
NFSERR_EXIST = 17,
NFSERR_XDEV = 18,
NFSERR_NODEV = 19,
NFSERR_NOTDIR = 20,
NFSERR_ISDIR = 21,
NFSERR_INVAL = 22,
NFSERR_FBIG = 27,
NFSERR_NOSPC = 28,
NFSERR_ROFS = 30,
NFSERR_OPNOTSUPP = 45,
NFSERR_NAMETOOLONG = 63,
NFSERR_NOTEMPTY = 66,
NFSERR_DQUOT = 69,
NFSERR_STALE = 70,
NFSERR_WFLUSH = 99
};
enum nfs_ftype {
NFNON = 0,
NFREG = 1,
NFDIR = 2,
NFBLK = 3,
NFCHR = 4,
NFLNK = 5,
NFSOCK = 6,
NFBAD = 7,
NFFIFO = 8
};
struct nfs_fh {
char data[32 ];
};
extern struct rpc_program nfs_program;
extern struct rpc_stat nfs_rpcstat;
struct nfs_time {
__u32 seconds;
__u32 useconds;
};
struct nfs_fattr {
enum nfs_ftype type;
__u32 mode;
__u32 nlink;
__u32 uid;
__u32 gid;
__u32 size;
__u32 blocksize;
__u32 rdev;
__u32 blocks;
__u32 fsid;
__u32 fileid;
struct nfs_time atime;
struct nfs_time mtime;
struct nfs_time ctime;
};
struct nfs_sattr {
__u32 mode;
__u32 uid;
__u32 gid;
__u32 size;
struct nfs_time atime;
struct nfs_time mtime;
};
struct nfs_fsinfo {
__u32 tsize;
__u32 bsize;
__u32 blocks;
__u32 bfree;
__u32 bavail;
};
struct nfs_writeargs {
struct nfs_fh * fh;
__u32 offset;
__u32 count;
const void * buffer;
};
# 223 "/usr/include/linux/nfs.h" 3
# 4 "/usr/include/linux/nfs_fs_i.h" 2 3
struct nfs_inode_info {
struct pipe_inode_info pipeinfo;
unsigned short flags;
unsigned long read_cache_jiffies;
unsigned long read_cache_mtime;
unsigned long attrtimeo;
struct nfs_wreq * writeback;
};
struct nfs_lock_info {
u32 state;
u32 flags;
};
# 267 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/sysv_fs_i.h" 1 3
struct sysv_inode_info {
u32 i_data[10+1+1+1];
};
# 268 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/affs_fs_i.h" 1 3
# 1 "/usr/include/linux/a.out.h" 1 3
# 1 "/usr/include/asm/a.out.h" 1 3
struct exec
{
unsigned long a_info;
unsigned a_text;
unsigned a_data;
unsigned a_bss;
unsigned a_syms;
unsigned a_entry;
unsigned a_trsize;
unsigned a_drsize;
};
# 8 "/usr/include/linux/a.out.h" 2 3
enum machine_type {
M_OLDSUN2 = 0,
M_68010 = 1,
M_68020 = 2,
M_SPARC = 3,
M_386 = 100,
M_MIPS1 = 151,
M_MIPS2 = 152
};
struct nlist {
union {
char *n_name;
struct nlist *n_next;
long n_strx;
} n_un;
unsigned char n_type;
char n_other;
short n_desc;
unsigned long n_value;
};
struct relocation_info
{
int r_address;
unsigned int r_symbolnum:24;
unsigned int r_pcrel:1;
unsigned int r_length:2;
unsigned int r_extern:1;
unsigned int r_pad:4;
};
# 4 "/usr/include/linux/affs_fs_i.h" 2 3
# 1 "/usr/include/linux/time.h" 1 3
# 1 "/usr/include/asm/param.h" 1 3
# 4 "/usr/include/linux/time.h" 2 3
struct timespec {
time_t tv_sec;
long tv_nsec;
};
static __inline__ unsigned long
timespec_to_jiffies(struct timespec *value)
{
unsigned long sec = value->tv_sec;
long nsec = value->tv_nsec;
if (sec >= (((~0UL >> 1)-1) / 100 ))
return ((~0UL >> 1)-1) ;
nsec += 1000000000L / 100 - 1;
nsec /= 1000000000L / 100 ;
return 100 * sec + nsec;
}
static __inline__ void
jiffies_to_timespec(unsigned long jiffies, struct timespec *value)
{
value->tv_nsec = (jiffies % 100 ) * (1000000000L / 100 );
value->tv_sec = jiffies / 100 ;
}
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
extern void do_gettimeofday(struct timeval *tv);
extern void do_settimeofday(struct timeval *tv);
extern void get_fast_time(struct timeval *tv);
extern void (*do_get_fast_time)(struct timeval *);
struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
};
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
# 5 "/usr/include/linux/affs_fs_i.h" 2 3
struct key_cache {
struct timeval kc_lru_time;
s32 kc_first;
s32 kc_last;
s32 kc_this_key;
int kc_this_seq;
s32 kc_next_key;
s32 kc_keys[73 ];
};
struct ext_cache {
struct key_cache kc[4];
s32 ec[((1UL << 12 ) - 4 * sizeof(struct key_cache) - 4) / 4 ];
int max_ext;
};
struct affs_inode_info {
u32 i_protect;
s32 i_parent;
s32 i_original;
s32 i_data[16 ];
struct ext_cache *i_ec;
int i_cache_users;
int i_lastblock;
short i_pa_cnt;
short i_pa_next;
short i_pa_last;
short i_zone;
unsigned char i_hlink;
unsigned char i_pad;
};
# 269 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ufs_fs_i.h" 1 3
struct ufs_inode_info {
union {
__u32 i_data[15];
__u8 i_symlink[4*15];
} i_u1;
__u64 i_size;
__u32 i_flags;
__u32 i_gen;
__u32 i_shadow;
__u32 i_uid;
__u32 i_gid;
__u32 i_oeftflag;
__u16 i_osync;
__u32 i_lastfrag;
};
# 270 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/efs_fs_i.h" 1 3
typedef int32_t efs_block_t;
typedef uint32_t efs_ino_t;
typedef union extent_u {
unsigned char raw[8];
struct extent_s {
unsigned int ex_magic:8;
unsigned int ex_bn:24;
unsigned int ex_length:8;
unsigned int ex_offset:24;
} cooked;
} efs_extent;
typedef struct edevs {
short odev;
short dev_filler;
unsigned int ndev;
} efs_devs;
struct efs_dinode {
u_short di_mode;
short di_nlink;
u_short di_uid;
u_short di_gid;
int32_t di_size;
int32_t di_atime;
int32_t di_mtime;
int32_t di_ctime;
uint32_t di_gen;
short di_numextents;
u_char di_version;
u_char di_spare;
union di_addr {
efs_extent di_extents[12 ];
efs_devs di_dev;
} di_u;
};
struct efs_inode_info {
int numextents;
int lastextent;
efs_extent extents[12 ];
};
# 271 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/coda_fs_i.h" 1 3
# 1 "/usr/include/linux/coda.h" 1 3
# 98 "/usr/include/linux/coda.h" 3
typedef unsigned long long u_quad_t;
typedef signed char int8_t;
typedef unsigned char u_int8_t;
typedef short int16_t;
typedef unsigned short u_int16_t;
typedef int int32_t;
typedef unsigned int u_int32_t;
struct venus_dirent {
unsigned long d_fileno;
unsigned short d_reclen;
unsigned char d_type;
unsigned char d_namlen;
char d_name[255 + 1];
};
typedef u_long VolumeId;
typedef u_long VnodeId;
typedef u_long Unique_t;
typedef u_long FileVersion;
typedef struct ViceFid {
VolumeId Volume;
VnodeId Vnode;
Unique_t Unique;
} ViceFid;
static __inline__ ino_t coda_f2i(struct ViceFid *fid)
{
if ( ! fid )
return 0;
if (fid->Vnode == 0xfffffffe || fid->Vnode == 0xffffffff)
return ((fid->Volume << 20) | (fid->Unique & 0xfffff));
else
return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20));
}
typedef u_int32_t vuid_t;
typedef u_int32_t vgid_t;
struct coda_cred {
vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid;
vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid;
};
enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
struct coda_vattr {
long va_type;
u_short va_mode;
short va_nlink;
vuid_t va_uid;
vgid_t va_gid;
long va_fileid;
u_quad_t va_size;
long va_blocksize;
struct timespec va_atime;
struct timespec va_mtime;
struct timespec va_ctime;
u_long va_gen;
u_long va_flags;
u_quad_t va_rdev;
u_quad_t va_bytes;
u_quad_t va_filerev;
};
struct coda_statfs {
int32_t f_blocks;
int32_t f_bfree;
int32_t f_bavail;
int32_t f_files;
int32_t f_ffree;
};
struct coda_in_hdr {
unsigned long opcode;
unsigned long unique;
u_short pid;
u_short pgid;
u_short sid;
struct coda_cred cred;
};
struct coda_out_hdr {
unsigned long opcode;
unsigned long unique;
unsigned long result;
};
struct coda_root_out {
struct coda_out_hdr oh;
ViceFid VFid;
};
struct coda_root_in {
struct coda_in_hdr in;
};
struct coda_open_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_open_out {
struct coda_out_hdr oh;
u_quad_t dev;
ino_t inode;
};
struct coda_close_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_close_out {
struct coda_out_hdr out;
};
struct coda_ioctl_in {
struct coda_in_hdr ih;
ViceFid VFid;
int cmd;
int len;
int rwflag;
char *data;
};
struct coda_ioctl_out {
struct coda_out_hdr oh;
int len;
caddr_t data;
};
struct coda_getattr_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_getattr_out {
struct coda_out_hdr oh;
struct coda_vattr attr;
};
struct coda_setattr_in {
struct coda_in_hdr ih;
ViceFid VFid;
struct coda_vattr attr;
};
struct coda_setattr_out {
struct coda_out_hdr out;
};
struct coda_access_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_access_out {
struct coda_out_hdr out;
};
struct coda_lookup_in {
struct coda_in_hdr ih;
ViceFid VFid;
int name;
int flags;
};
struct coda_lookup_out {
struct coda_out_hdr oh;
ViceFid VFid;
int vtype;
};
struct coda_create_in {
struct coda_in_hdr ih;
ViceFid VFid;
struct coda_vattr attr;
int excl;
int mode;
int name;
};
struct coda_create_out {
struct coda_out_hdr oh;
ViceFid VFid;
struct coda_vattr attr;
};
struct coda_remove_in {
struct coda_in_hdr ih;
ViceFid VFid;
int name;
};
struct coda_remove_out {
struct coda_out_hdr out;
};
struct coda_link_in {
struct coda_in_hdr ih;
ViceFid sourceFid;
ViceFid destFid;
int tname;
};
struct coda_link_out {
struct coda_out_hdr out;
};
struct coda_rename_in {
struct coda_in_hdr ih;
ViceFid sourceFid;
int srcname;
ViceFid destFid;
int destname;
};
struct coda_rename_out {
struct coda_out_hdr out;
};
struct coda_mkdir_in {
struct coda_in_hdr ih;
ViceFid VFid;
struct coda_vattr attr;
int name;
};
struct coda_mkdir_out {
struct coda_out_hdr oh;
ViceFid VFid;
struct coda_vattr attr;
};
struct coda_rmdir_in {
struct coda_in_hdr ih;
ViceFid VFid;
int name;
};
struct coda_rmdir_out {
struct coda_out_hdr out;
};
struct coda_readdir_in {
struct coda_in_hdr ih;
ViceFid VFid;
int count;
int offset;
};
struct coda_readdir_out {
struct coda_out_hdr oh;
int size;
caddr_t data;
};
struct coda_symlink_in {
struct coda_in_hdr ih;
ViceFid VFid;
int srcname;
struct coda_vattr attr;
int tname;
};
struct coda_symlink_out {
struct coda_out_hdr out;
};
struct coda_readlink_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_readlink_out {
struct coda_out_hdr oh;
int count;
caddr_t data;
};
struct coda_fsync_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_fsync_out {
struct coda_out_hdr out;
};
struct coda_inactive_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_vget_in {
struct coda_in_hdr ih;
ViceFid VFid;
};
struct coda_vget_out {
struct coda_out_hdr oh;
ViceFid VFid;
int vtype;
};
struct coda_purgeuser_out {
struct coda_out_hdr oh;
struct coda_cred cred;
};
struct coda_zapfile_out {
struct coda_out_hdr oh;
ViceFid CodaFid;
};
struct coda_zapdir_out {
struct coda_out_hdr oh;
ViceFid CodaFid;
};
struct coda_zapvnode_out {
struct coda_out_hdr oh;
struct coda_cred cred;
ViceFid VFid;
};
struct coda_purgefid_out {
struct coda_out_hdr oh;
ViceFid CodaFid;
};
struct coda_rdwr_in {
struct coda_in_hdr ih;
ViceFid VFid;
int rwflag;
int count;
int offset;
int ioflag;
caddr_t data;
};
struct coda_rdwr_out {
struct coda_out_hdr oh;
int rwflag;
int count;
caddr_t data;
};
struct coda_replace_out {
struct coda_out_hdr oh;
ViceFid NewFid;
ViceFid OldFid;
};
struct coda_open_by_path_in {
struct coda_in_hdr ih;
ViceFid VFid;
int flags;
};
struct coda_open_by_path_out {
struct coda_out_hdr oh;
int path;
};
struct coda_statfs_in {
struct coda_in_hdr in;
};
struct coda_statfs_out {
struct coda_out_hdr oh;
struct coda_statfs stat;
};
union inputArgs {
struct coda_in_hdr ih;
struct coda_open_in coda_open;
struct coda_close_in coda_close;
struct coda_ioctl_in coda_ioctl;
struct coda_getattr_in coda_getattr;
struct coda_setattr_in coda_setattr;
struct coda_access_in coda_access;
struct coda_lookup_in coda_lookup;
struct coda_create_in coda_create;
struct coda_remove_in coda_remove;
struct coda_link_in coda_link;
struct coda_rename_in coda_rename;
struct coda_mkdir_in coda_mkdir;
struct coda_rmdir_in coda_rmdir;
struct coda_readdir_in coda_readdir;
struct coda_symlink_in coda_symlink;
struct coda_readlink_in coda_readlink;
struct coda_fsync_in coda_fsync;
struct coda_inactive_in coda_inactive;
struct coda_vget_in coda_vget;
struct coda_rdwr_in coda_rdwr;
struct coda_open_by_path_in coda_open_by_path;
struct coda_statfs_in coda_statfs;
};
union outputArgs {
struct coda_out_hdr oh;
struct coda_root_out coda_root;
struct coda_open_out coda_open;
struct coda_ioctl_out coda_ioctl;
struct coda_getattr_out coda_getattr;
struct coda_lookup_out coda_lookup;
struct coda_create_out coda_create;
struct coda_mkdir_out coda_mkdir;
struct coda_readdir_out coda_readdir;
struct coda_readlink_out coda_readlink;
struct coda_vget_out coda_vget;
struct coda_purgeuser_out coda_purgeuser;
struct coda_zapfile_out coda_zapfile;
struct coda_zapdir_out coda_zapdir;
struct coda_zapvnode_out coda_zapvnode;
struct coda_purgefid_out coda_purgefid;
struct coda_rdwr_out coda_rdwr;
struct coda_replace_out coda_replace;
struct coda_open_by_path_out coda_open_by_path;
struct coda_statfs_out coda_statfs;
};
union coda_downcalls {
struct coda_purgeuser_out purgeuser;
struct coda_zapfile_out zapfile;
struct coda_zapdir_out zapdir;
struct coda_zapvnode_out zapvnode;
struct coda_purgefid_out purgefid;
struct coda_replace_out replace;
};
struct ViceIoctl {
caddr_t in, out;
short in_size;
short out_size;
};
struct PioctlData {
const char *path;
int follow;
struct ViceIoctl vi;
};
# 14 "/usr/include/linux/coda_fs_i.h" 2 3
struct coda_inode_info {
struct pipe_inode_info pipeinfo;
struct ViceFid c_fid;
u_short c_flags;
u_short c_ocount;
u_short c_owrite;
u_short c_mmcount;
struct inode *c_ovp;
struct list_head c_cnhead;
struct list_head c_volrootlist;
struct inode *c_vnode;
int c_magic;
};
int coda_cnode_make(struct inode **, struct ViceFid *, struct super_block *);
int coda_cnode_makectl(struct inode **inode, struct super_block *sb);
struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb);
void coda_replace_fid(struct inode *, ViceFid *, ViceFid *);
# 272 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/romfs_fs_i.h" 1 3
struct romfs_inode_info {
unsigned long i_metasize;
unsigned long i_dataoffset;
};
# 273 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/smb_fs_i.h" 1 3
struct smb_inode_info {
unsigned int open;
__u16 fileid;
__u16 attr;
__u16 access;
__u16 cache_valid;
unsigned long oldmtime;
unsigned long closed;
};
# 274 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hfs_fs_i.h" 1 3
struct hfs_inode_info {
int magic;
struct hfs_cat_entry *entry;
struct hfs_fork *fork;
int convert;
ino_t file_type;
char dir_size;
const struct hfs_hdr_layout *default_layout;
struct hfs_hdr_layout *layout;
int tz_secondswest;
void (*d_drop_op)(struct dentry *, const ino_t);
};
# 275 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/adfs_fs_i.h" 1 3
struct adfs_inode_info {
unsigned long file_id;
};
# 276 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/qnx4_fs_i.h" 1 3
# 1 "/usr/include/linux/qnxtypes.h" 1 3
typedef unsigned short _nxtnt_t;
typedef unsigned char _ftype_t;
typedef struct {
long xtnt_blk;
long xtnt_size;
} _xtnt_t;
typedef unsigned short muid_t;
typedef unsigned short mgid_t;
typedef unsigned long qnx_off_t;
typedef unsigned short qnx_nlink_t;
# 14 "/usr/include/linux/qnx4_fs_i.h" 2 3
struct qnx4_inode_info {
char i_reserved[16];
off_t i_size;
_xtnt_t i_first_xtnt;
long i_xblk;
time_t i_ftime;
time_t i_mtime;
time_t i_atime;
time_t i_ctime;
_nxtnt_t i_num_xtnts;
mode_t i_mode;
muid_t i_uid;
mgid_t i_gid;
nlink_t i_nlink;
char i_zero[4];
_ftype_t i_type;
unsigned char i_status;
};
# 277 "/usr/include/linux/fs.h" 2 3
struct iattr {
unsigned int ia_valid;
umode_t ia_mode;
uid_t ia_uid;
gid_t ia_gid;
off_t ia_size;
time_t ia_atime;
time_t ia_mtime;
time_t ia_ctime;
unsigned int ia_attr_flags;
};
# 1 "/usr/include/linux/quota.h" 1 3
# 1 "/usr/include/linux/errno.h" 1 3
# 1 "/usr/include/asm/errno.h" 1 3
# 4 "/usr/include/linux/errno.h" 2 3
# 42 "/usr/include/linux/quota.h" 2 3
extern int nr_dquots, nr_free_dquots;
extern int max_dquots;
extern int dquot_root_squash;
struct dqblk {
__u32 dqb_bhardlimit;
__u32 dqb_bsoftlimit;
__u32 dqb_curblocks;
__u32 dqb_ihardlimit;
__u32 dqb_isoftlimit;
__u32 dqb_curinodes;
time_t dqb_btime;
time_t dqb_itime;
};
struct dqstats {
__u32 lookups;
__u32 drops;
__u32 reads;
__u32 writes;
__u32 cache_hits;
__u32 allocated_dquots;
__u32 free_dquots;
__u32 syncs;
};
struct dquot {
struct dquot *dq_next;
struct dquot **dq_pprev;
struct list_head dq_free;
struct dquot *dq_hash_next;
struct dquot **dq_hash_pprev;
struct wait_queue *dq_wait;
int dq_count;
struct vfsmount *dq_mnt;
unsigned int dq_id;
kdev_t dq_dev;
short dq_type;
short dq_flags;
unsigned long dq_referenced;
struct dqblk dq_dqb;
};
# 208 "/usr/include/linux/quota.h" 3
# 328 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/mount.h" 1 3
struct quota_mount_options
{
unsigned int flags;
struct semaphore dqio_sem;
struct semaphore dqoff_sem;
struct file *files[2 ];
time_t inode_expire[2 ];
time_t block_expire[2 ];
char rsquash[2 ];
};
struct vfsmount
{
kdev_t mnt_dev;
char *mnt_devname;
char *mnt_dirname;
unsigned int mnt_flags;
struct super_block *mnt_sb;
struct quota_mount_options mnt_dquot;
struct vfsmount *mnt_next;
};
struct vfsmount *lookup_vfsmnt(kdev_t dev);
# 329 "/usr/include/linux/fs.h" 2 3
struct inode {
struct list_head i_hash;
struct list_head i_list;
struct list_head i_dentry;
unsigned long i_ino;
unsigned int i_count;
kdev_t i_dev;
umode_t i_mode;
nlink_t i_nlink;
uid_t i_uid;
gid_t i_gid;
kdev_t i_rdev;
off_t i_size;
time_t i_atime;
time_t i_mtime;
time_t i_ctime;
unsigned long i_blksize;
unsigned long i_blocks;
unsigned long i_version;
unsigned long i_nrpages;
struct semaphore i_sem;
struct semaphore i_atomic_write;
struct inode_operations *i_op;
struct super_block *i_sb;
struct wait_queue *i_wait;
struct file_lock *i_flock;
struct vm_area_struct *i_mmap;
struct page *i_pages;
struct dquot *i_dquot[2 ];
unsigned long i_state;
unsigned int i_flags;
unsigned char i_pipe;
unsigned char i_sock;
int i_writecount;
unsigned int i_attr_flags;
__u32 i_generation;
union {
struct pipe_inode_info pipe_i;
struct minix_inode_info minix_i;
struct ext2_inode_info ext2_i;
struct hpfs_inode_info hpfs_i;
struct ntfs_inode_info ntfs_i;
struct msdos_inode_info msdos_i;
struct umsdos_inode_info umsdos_i;
struct iso_inode_info isofs_i;
struct nfs_inode_info nfs_i;
struct sysv_inode_info sysv_i;
struct affs_inode_info affs_i;
struct ufs_inode_info ufs_i;
struct efs_inode_info efs_i;
struct romfs_inode_info romfs_i;
struct coda_inode_info coda_i;
struct smb_inode_info smbfs_i;
struct hfs_inode_info hfs_i;
struct adfs_inode_info adfs_i;
struct qnx4_inode_info qnx4_i;
struct socket socket_i;
void *generic_ip;
} u;
};
extern void __mark_inode_dirty(struct inode *);
static inline void mark_inode_dirty(struct inode *inode)
{
if (!(inode->i_state & 1 ))
__mark_inode_dirty(inode);
}
struct fown_struct {
int pid;
uid_t uid, euid;
int signum;
};
struct file {
struct file *f_next, **f_pprev;
struct dentry *f_dentry;
struct file_operations *f_op;
mode_t f_mode;
loff_t f_pos;
unsigned int f_count, f_flags;
unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin;
struct fown_struct f_owner;
unsigned int f_uid, f_gid;
int f_error;
unsigned long f_version;
void *private_data;
};
extern int init_private_file(struct file *, struct dentry *, int);
typedef struct files_struct *fl_owner_t;
struct file_lock {
struct file_lock *fl_next;
struct file_lock *fl_nextlink;
struct file_lock *fl_prevlink;
struct file_lock *fl_nextblock;
struct file_lock *fl_prevblock;
fl_owner_t fl_owner;
unsigned int fl_pid;
struct wait_queue *fl_wait;
struct file *fl_file;
unsigned char fl_flags;
unsigned char fl_type;
off_t fl_start;
off_t fl_end;
void (*fl_notify)(struct file_lock *);
union {
struct nfs_lock_info nfs_fl;
} fl_u;
};
extern struct file_lock *file_lock_table;
# 1 "/usr/include/linux/fcntl.h" 1 3
# 1 "/usr/include/asm/fcntl.h" 1 3
struct flock {
short l_type;
short l_whence;
off_t l_start;
off_t l_len;
pid_t l_pid;
};
# 4 "/usr/include/linux/fcntl.h" 2 3
# 473 "/usr/include/linux/fs.h" 2 3
extern int fcntl_getlk(unsigned int fd, struct flock *l);
extern int fcntl_setlk(unsigned int fd, unsigned int cmd, struct flock *l);
extern void locks_remove_posix(struct file *, fl_owner_t id);
extern void locks_remove_flock(struct file *);
extern struct file_lock *posix_test_lock(struct file *, struct file_lock *);
extern int posix_lock_file(struct file *, struct file_lock *, unsigned int);
extern void posix_block_lock(struct file_lock *, struct file_lock *);
extern void posix_unblock_lock(struct file_lock *);
struct fasync_struct {
int magic;
int fa_fd;
struct fasync_struct *fa_next;
struct file *fa_file;
};
extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
# 1 "/usr/include/linux/minix_fs_sb.h" 1 3
struct minix_sb_info {
unsigned long s_ninodes;
unsigned long s_nzones;
unsigned long s_imap_blocks;
unsigned long s_zmap_blocks;
unsigned long s_firstdatazone;
unsigned long s_log_zone_size;
unsigned long s_max_size;
int s_dirsize;
int s_namelen;
int s_link_max;
struct buffer_head ** s_imap;
struct buffer_head ** s_zmap;
struct buffer_head * s_sbh;
struct minix_super_block * s_ms;
unsigned short s_mount_state;
unsigned short s_version;
};
# 497 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ext2_fs_sb.h" 1 3
# 1 "/usr/include/linux/ext2_fs.h" 1 3
struct ext2_acl_header
{
__u32 aclh_size;
__u32 aclh_file_count;
__u32 aclh_acle_count;
__u32 aclh_first_acle;
};
struct ext2_acl_entry
{
__u32 acle_size;
__u16 acle_perms;
__u16 acle_type;
__u16 acle_tag;
__u16 acle_pad1;
__u32 acle_next;
};
struct ext2_group_desc
{
__u32 bg_block_bitmap;
__u32 bg_inode_bitmap;
__u32 bg_inode_table;
__u16 bg_free_blocks_count;
__u16 bg_free_inodes_count;
__u16 bg_used_dirs_count;
__u16 bg_pad;
__u32 bg_reserved[3];
};
struct ext2_inode {
__u16 i_mode;
__u16 i_uid;
__u32 i_size;
__u32 i_atime;
__u32 i_ctime;
__u32 i_mtime;
__u32 i_dtime;
__u16 i_gid;
__u16 i_links_count;
__u32 i_blocks;
__u32 i_flags;
union {
struct {
__u32 l_i_reserved1;
} linux1;
struct {
__u32 h_i_translator;
} hurd1;
struct {
__u32 m_i_reserved1;
} masix1;
} osd1;
__u32 i_block[(((12 + 1) + 1) + 1) ];
__u32 i_version;
__u32 i_file_acl;
__u32 i_dir_acl;
__u32 i_faddr;
union {
struct {
__u8 l_i_frag;
__u8 l_i_fsize;
__u16 i_pad1;
__u32 l_i_reserved2[2];
} linux2;
struct {
__u8 h_i_frag;
__u8 h_i_fsize;
__u16 h_i_mode_high;
__u16 h_i_uid_high;
__u16 h_i_gid_high;
__u32 h_i_author;
} hurd2;
struct {
__u8 m_i_frag;
__u8 m_i_fsize;
__u16 m_pad1;
__u32 m_i_reserved2[2];
} masix2;
} osd2;
};
struct ext2_super_block {
__u32 s_inodes_count;
__u32 s_blocks_count;
__u32 s_r_blocks_count;
__u32 s_free_blocks_count;
__u32 s_free_inodes_count;
__u32 s_first_data_block;
__u32 s_log_block_size;
__s32 s_log_frag_size;
__u32 s_blocks_per_group;
__u32 s_frags_per_group;
__u32 s_inodes_per_group;
__u32 s_mtime;
__u32 s_wtime;
__u16 s_mnt_count;
__s16 s_max_mnt_count;
__u16 s_magic;
__u16 s_state;
__u16 s_errors;
__u16 s_minor_rev_level;
__u32 s_lastcheck;
__u32 s_checkinterval;
__u32 s_creator_os;
__u32 s_rev_level;
__u16 s_def_resuid;
__u16 s_def_resgid;
__u32 s_first_ino;
__u16 s_inode_size;
__u16 s_block_group_nr;
__u32 s_feature_compat;
__u32 s_feature_incompat;
__u32 s_feature_ro_compat;
__u8 s_uuid[16];
char s_volume_name[16];
char s_last_mounted[64];
__u32 s_algorithm_usage_bitmap;
__u8 s_prealloc_blocks;
__u8 s_prealloc_dir_blocks;
__u16 s_padding1;
__u32 s_reserved[204];
};
struct ext2_dir_entry {
__u32 inode;
__u16 rec_len;
__u16 name_len;
char name[255 ];
};
struct ext2_dir_entry_2 {
__u32 inode;
__u16 rec_len;
__u8 name_len;
__u8 file_type;
char name[255 ];
};
extern long long ext2_max_sizes[];
extern int ext2_permission (struct inode *, int);
extern int ext2_group_sparse(int group);
extern int ext2_new_block (const struct inode *, unsigned long,
__u32 *, __u32 *, int *);
extern void ext2_free_blocks (const struct inode *, unsigned long,
unsigned long);
extern unsigned long ext2_count_free_blocks (struct super_block *);
extern void ext2_check_blocks_bitmap (struct super_block *);
extern struct ext2_group_desc * ext2_get_group_desc(struct super_block * sb,
unsigned int block_group,
struct buffer_head ** bh);
extern unsigned long ext2_count_free (struct buffer_head *, unsigned);
extern int ext2_check_dir_entry (const char *, struct inode *,
struct ext2_dir_entry_2 *, struct buffer_head *,
unsigned long);
extern int ext2_read (struct inode *, struct file *, char *, int);
extern int ext2_write (struct inode *, struct file *, char *, int);
extern int ext2_sync_file (struct file *, struct dentry *);
extern struct inode * ext2_new_inode (const struct inode *, int, int *);
extern void ext2_free_inode (struct inode *);
extern unsigned long ext2_count_free_inodes (struct super_block *);
extern void ext2_check_inodes_bitmap (struct super_block *);
extern int ext2_bmap (struct inode *, int);
extern struct buffer_head * ext2_getblk (struct inode *, long, int, int *);
extern struct buffer_head * ext2_bread (struct inode *, int, int, int *);
extern int ext2_getcluster (struct inode * inode, long block);
extern void ext2_read_inode (struct inode *);
extern void ext2_write_inode (struct inode *);
extern void ext2_put_inode (struct inode *);
extern void ext2_delete_inode (struct inode *);
extern int ext2_sync_inode (struct inode *);
extern int ext2_notify_change(struct dentry *, struct iattr *);
extern void ext2_discard_prealloc (struct inode *);
extern int ext2_ioctl (struct inode *, struct file *, unsigned int,
unsigned long);
extern void ext2_release (struct inode *, struct file *);
extern struct dentry *ext2_lookup (struct inode *, struct dentry *);
extern int ext2_create (struct inode *,struct dentry *,int);
extern int ext2_mkdir (struct inode *,struct dentry *,int);
extern int ext2_rmdir (struct inode *,struct dentry *);
extern int ext2_unlink (struct inode *,struct dentry *);
extern int ext2_symlink (struct inode *,struct dentry *,const char *);
extern int ext2_link (struct dentry *, struct inode *, struct dentry *);
extern int ext2_mknod (struct inode *, struct dentry *, int, int);
extern int ext2_rename (struct inode *, struct dentry *,
struct inode *, struct dentry *);
extern void ext2_error (struct super_block *, const char *, const char *, ...)
__attribute__ ((format (printf, 3, 4)));
extern void ext2_panic (struct super_block *, const char *,
const char *, ...)
__attribute__ ((noreturn, format (printf, 3, 4)));
extern void ext2_warning (struct super_block *, const char *, const char *, ...)
__attribute__ ((format (printf, 3, 4)));
extern void ext2_put_super (struct super_block *);
extern void ext2_write_super (struct super_block *);
extern int ext2_remount (struct super_block *, int *, char *);
extern struct super_block * ext2_read_super (struct super_block *,void *,int);
extern int init_ext2_fs(void);
extern int ext2_statfs (struct super_block *, struct statfs *, int);
extern void ext2_truncate (struct inode *);
extern struct inode_operations ext2_dir_inode_operations;
extern struct inode_operations ext2_file_inode_operations;
extern struct inode_operations ext2_symlink_inode_operations;
# 19 "/usr/include/linux/ext2_fs_sb.h" 2 3
struct ext2_sb_info {
unsigned long s_frag_size;
unsigned long s_frags_per_block;
unsigned long s_inodes_per_block;
unsigned long s_frags_per_group;
unsigned long s_blocks_per_group;
unsigned long s_inodes_per_group;
unsigned long s_itb_per_group;
unsigned long s_db_per_group;
unsigned long s_desc_per_block;
unsigned long s_groups_count;
struct buffer_head * s_sbh;
struct ext2_super_block * s_es;
struct buffer_head ** s_group_desc;
unsigned short s_loaded_inode_bitmaps;
unsigned short s_loaded_block_bitmaps;
unsigned long s_inode_bitmap_number[8 ];
struct buffer_head * s_inode_bitmap[8 ];
unsigned long s_block_bitmap_number[8 ];
struct buffer_head * s_block_bitmap[8 ];
unsigned long s_mount_opt;
unsigned short s_resuid;
unsigned short s_resgid;
unsigned short s_mount_state;
unsigned short s_pad;
int s_addr_per_block_bits;
int s_desc_per_block_bits;
int s_inode_size;
int s_first_ino;
int s_feature_compat;
int s_feature_incompat;
int s_feature_ro_compat;
};
# 498 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hpfs_fs_sb.h" 1 3
struct hpfs_sb_info {
ino_t sb_root;
unsigned sb_fs_size;
unsigned sb_bitmaps;
unsigned sb_dirband_size;
unsigned sb_dmap;
unsigned sb_n_free;
unsigned sb_n_free_dnodes;
uid_t sb_uid;
gid_t sb_gid;
umode_t sb_mode;
unsigned sb_lowercase : 1;
unsigned sb_conv : 2;
};
# 499 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ntfs_fs_sb.h" 1 3
struct ntfs_sb_info{
ntfs_uid_t uid;
ntfs_gid_t gid;
ntmode_t umask;
unsigned int nct;
void *nls_map;
unsigned int ngt;
ntfs_size_t partition_bias;
ntfs_u32 at_standard_information;
ntfs_u32 at_attribute_list;
ntfs_u32 at_file_name;
ntfs_u32 at_security_descriptor;
ntfs_u32 at_data;
ntfs_u32 at_index_root;
ntfs_u32 at_index_allocation;
ntfs_u32 at_bitmap;
ntfs_u32 at_symlink;
int blocksize;
int clusterfactor;
int clustersize;
int mft_recordsize;
int mft_clusters_per_record;
int index_recordsize;
int index_clusters_per_record;
int mft_cluster;
unsigned char *mft;
unsigned short *upcase;
unsigned int upcase_length;
struct ntfs_inode_info *mft_ino;
struct ntfs_inode_info *mftmirr;
struct ntfs_inode_info *bitmap;
struct super_block *sb;
};
# 500 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/msdos_fs_sb.h" 1 3
# 1 "/usr/include/linux/fat_cvf.h" 1 3
struct cvf_format
{ int cvf_version;
char* cvf_version_text;
unsigned long flags;
int (*detect_cvf) (struct super_block*sb);
int (*mount_cvf) (struct super_block*sb,char*options);
int (*unmount_cvf) (struct super_block*sb);
struct buffer_head* (*cvf_bread) (struct super_block*sb,int block);
struct buffer_head* (*cvf_getblk) (struct super_block*sb,int block);
void (*cvf_brelse) (struct super_block *sb,struct buffer_head *bh);
void (*cvf_mark_buffer_dirty) (struct super_block *sb,
struct buffer_head *bh,
int dirty_val);
void (*cvf_set_uptodate) (struct super_block *sb,
struct buffer_head *bh,
int val);
int (*cvf_is_uptodate) (struct super_block *sb,struct buffer_head *bh);
void (*cvf_ll_rw_block) (struct super_block *sb,
int opr,
int nbreq,
struct buffer_head *bh[32]);
int (*fat_access) (struct super_block *sb,int nr,int new_value);
int (*cvf_statfs) (struct super_block *sb,struct statfs *buf, int bufsiz);
int (*cvf_bmap) (struct inode *inode,int block);
int (*cvf_smap) (struct inode *inode,int sector);
ssize_t (*cvf_file_read) ( struct file *, char *, size_t, loff_t *);
ssize_t (*cvf_file_write) ( struct file *, const char *, size_t, loff_t *);
int (*cvf_mmap) (struct file *, struct vm_area_struct *);
int (*cvf_readpage) (struct inode *, struct page *);
int (*cvf_writepage) (struct inode *, struct page *);
int (*cvf_dir_ioctl) (struct inode * inode, struct file * filp,
unsigned int cmd, unsigned long arg);
void (*zero_out_cluster) (struct inode*, int clusternr);
};
int register_cvf_format(struct cvf_format*cvf_format);
int unregister_cvf_format(struct cvf_format*cvf_format);
void dec_cvf_format_use_count_by_version(int version);
int detect_cvf(struct super_block*sb,char*force);
extern struct cvf_format *cvf_formats[];
extern int cvf_format_use_count[];
# 3 "/usr/include/linux/msdos_fs_sb.h" 2 3
struct fat_mount_options {
uid_t fs_uid;
gid_t fs_gid;
unsigned short fs_umask;
unsigned short codepage;
char *iocharset;
unsigned char name_check;
unsigned char conversion;
unsigned quiet:1,
showexec:1,
sys_immutable:1,
dotsOK:1,
isvfat:1,
utf8:1,
unicode_xlate:1,
posixfs:1,
numtail:1,
atari:1,
fat32:1;
};
struct vfat_unicode {
unsigned char uni1;
unsigned char uni2;
};
struct msdos_sb_info {
unsigned short cluster_size;
unsigned char fats,fat_bits;
unsigned short fat_start;
unsigned long fat_length;
unsigned long dir_start;
unsigned short dir_entries;
unsigned long data_start;
unsigned long clusters;
unsigned long root_cluster;
unsigned long fsinfo_offset;
struct wait_queue *fat_wait;
int fat_lock;
int prev_free;
int free_clusters;
struct fat_mount_options options;
struct nls_table *nls_disk;
struct nls_table *nls_io;
struct cvf_format* cvf_format;
void *dir_ops;
void (*put_super_callback)(struct super_block *);
void *private_data;
};
# 501 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/iso_fs_sb.h" 1 3
struct isofs_sb_info {
unsigned long s_ninodes;
unsigned long s_nzones;
unsigned long s_firstdatazone;
unsigned long s_log_zone_size;
unsigned long s_max_size;
unsigned char s_high_sierra;
unsigned char s_mapping;
unsigned char s_rock;
unsigned char s_joliet_level;
unsigned char s_utf8;
unsigned char s_cruft;
unsigned char s_unhide;
unsigned char s_nosuid;
unsigned char s_nodev;
mode_t s_mode;
gid_t s_gid;
uid_t s_uid;
struct nls_table *s_nls_iocharset;
};
# 502 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/nfs_fs_sb.h" 1 3
# 1 "/usr/include/linux/in.h" 1 3
enum {
IPPROTO_IP = 0,
IPPROTO_ICMP = 1,
IPPROTO_IGMP = 2,
IPPROTO_IPIP = 4,
IPPROTO_TCP = 6,
IPPROTO_EGP = 8,
IPPROTO_PUP = 12,
IPPROTO_UDP = 17,
IPPROTO_IDP = 22,
IPPROTO_RSVP = 46,
IPPROTO_GRE = 47,
IPPROTO_IPV6 = 41,
IPPROTO_PIM = 103,
IPPROTO_ESP = 50,
IPPROTO_AH = 51,
IPPROTO_COMP = 108,
IPPROTO_RAW = 255,
IPPROTO_MAX
};
struct in_addr {
__u32 s_addr;
};
struct ip_mreq
{
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
struct ip_mreqn
{
struct in_addr imr_multiaddr;
struct in_addr imr_address;
int imr_ifindex;
};
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
struct sockaddr_in {
sa_family_t sin_family;
unsigned short int sin_port;
struct in_addr sin_addr;
unsigned char __pad[16 - sizeof(short int) -
sizeof(unsigned short int) - sizeof(struct in_addr)];
};
# 5 "/usr/include/linux/nfs_fs_sb.h" 2 3
struct nfs_server {
struct rpc_clnt * client;
int flags;
int rsize;
int wsize;
unsigned int bsize;
unsigned int acregmin;
unsigned int acregmax;
unsigned int acdirmin;
unsigned int acdirmax;
char * hostname;
};
struct nfs_sb_info {
struct nfs_server s_server;
struct nfs_fh s_root;
};
# 503 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/sysv_fs_sb.h" 1 3
struct sysv_sb_info {
int s_type;
unsigned int s_block_size;
unsigned int s_block_size_1;
unsigned int s_block_size_bits;
unsigned int s_block_size_inc_bits;
unsigned int s_block_size_dec_bits;
char s_convert;
char s_kludge_symlinks;
char s_truncate;
nlink_t s_link_max;
unsigned int s_inodes_per_block;
unsigned int s_inodes_per_block_1;
unsigned int s_inodes_per_block_bits;
unsigned int s_ind_per_block;
unsigned int s_ind_per_block_1;
unsigned int s_ind_per_block_bits;
unsigned int s_ind_per_block_2;
unsigned int s_ind_per_block_2_1;
unsigned int s_ind_per_block_2_bits;
unsigned int s_ind_per_block_3;
unsigned int s_ind_per_block_block_size_1;
unsigned int s_ind_per_block_block_size_bits;
unsigned int s_ind_per_block_2_block_size_1;
unsigned int s_ind_per_block_2_block_size_bits;
unsigned int s_ind0_size;
unsigned int s_ind1_size;
unsigned int s_ind2_size;
unsigned int s_toobig_block;
unsigned int s_block_base;
unsigned short s_fic_size;
unsigned short s_flc_size;
struct buffer_head *s_bh1;
struct buffer_head *s_bh2;
char * s_sbd1;
char * s_sbd2;
u16 *s_sb_fic_count;
u16 *s_sb_fic_inodes;
u16 *s_sb_total_free_inodes;
u16 *s_sb_flc_count;
u32 *s_sb_flc_blocks;
u32 *s_sb_total_free_blocks;
u32 *s_sb_time;
u32 *s_sb_state;
u32 s_firstinodezone;
u32 s_firstdatazone;
u32 s_ninodes;
u32 s_ndatazones;
u32 s_nzones;
};
# 504 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/affs_fs_sb.h" 1 3
struct affs_bm_info {
struct buffer_head *bm_bh;
s32 bm_firstblk;
s32 bm_key;
int bm_count;
};
struct affs_alloc_zone {
short az_size;
short az_count;
int az_free;
};
struct affs_zone {
unsigned long z_ino;
struct affs_bm_info *z_bm;
int z_start;
int z_end;
int z_az_no;
unsigned long z_lru_time;
};
struct affs_sb_info {
int s_partition_size;
int s_blksize;
s32 s_root_block;
int s_hashsize;
unsigned long s_flags;
s16 s_uid;
s16 s_gid;
umode_t s_mode;
int s_reserved;
struct buffer_head *s_root_bh;
struct affs_bm_info *s_bitmap;
int s_bm_count;
int s_nextzone;
int s_num_az;
struct affs_zone *s_zones;
struct affs_alloc_zone *s_alloc;
char *s_zonemap;
char *s_prefix;
int s_prefix_len;
char s_volume[32];
};
# 505 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/ufs_fs_sb.h" 1 3
# 1 "/usr/include/linux/ufs_fs.h" 1 3
struct ufs_timeval {
__s32 tv_sec;
__s32 tv_usec;
};
struct ufs_dir_entry {
__u32 d_ino;
__u16 d_reclen;
union {
__u16 d_namlen;
struct {
__u8 d_type;
__u8 d_namlen;
} d_44;
} d_u;
__u8 d_name[255 + 1];
};
struct ufs_csum {
__u32 cs_ndir;
__u32 cs_nbfree;
__u32 cs_nifree;
__u32 cs_nffree;
};
struct ufs_super_block {
__u32 fs_link;
__u32 fs_rlink;
__u32 fs_sblkno;
__u32 fs_cblkno;
__u32 fs_iblkno;
__u32 fs_dblkno;
__u32 fs_cgoffset;
__u32 fs_cgmask;
__u32 fs_time;
__u32 fs_size;
__u32 fs_dsize;
__u32 fs_ncg;
__u32 fs_bsize;
__u32 fs_fsize;
__u32 fs_frag;
__u32 fs_minfree;
__u32 fs_rotdelay;
__u32 fs_rps;
__u32 fs_bmask;
__u32 fs_fmask;
__u32 fs_bshift;
__u32 fs_fshift;
__u32 fs_maxcontig;
__u32 fs_maxbpg;
__u32 fs_fragshift;
__u32 fs_fsbtodb;
__u32 fs_sbsize;
__u32 fs_csmask;
__u32 fs_csshift;
__u32 fs_nindir;
__u32 fs_inopb;
__u32 fs_nspf;
__u32 fs_optim;
union {
struct {
__u32 fs_npsect;
} fs_sun;
struct {
__s32 fs_state;
} fs_sunx86;
} fs_u1;
__u32 fs_interleave;
__u32 fs_trackskew;
__u32 fs_id[2];
__u32 fs_csaddr;
__u32 fs_cssize;
__u32 fs_cgsize;
__u32 fs_ntrak;
__u32 fs_nsect;
__u32 fs_spc;
__u32 fs_ncyl;
__u32 fs_cpg;
__u32 fs_ipg;
__u32 fs_fpg;
struct ufs_csum fs_cstotal;
__s8 fs_fmod;
__s8 fs_clean;
__s8 fs_ronly;
__s8 fs_flags;
__s8 fs_fsmnt[512 ];
__u32 fs_cgrotor;
__u32 fs_csp[31 ];
__u32 fs_maxcluster;
__u32 fs_cpc;
__u16 fs_opostbl[16][8];
union {
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__s32 fs_state;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sun;
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__u32 fs_npsect;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sunx86;
struct {
__s32 fs_sparecon[50];
__s32 fs_contigsumsize;
__s32 fs_maxsymlinklen;
__s32 fs_inodefmt;
__u32 fs_maxfilesize[2];
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
__s32 fs_state;
} fs_44;
} fs_u2;
__s32 fs_postblformat;
__s32 fs_nrpos;
__s32 fs_postbloff;
__s32 fs_rotbloff;
__s32 fs_magic;
__u8 fs_space[1];
};
struct ufs_cylinder_group {
__u32 cg_link;
__u32 cg_magic;
__u32 cg_time;
__u32 cg_cgx;
__u16 cg_ncyl;
__u16 cg_niblk;
__u32 cg_ndblk;
struct ufs_csum cg_cs;
__u32 cg_rotor;
__u32 cg_frotor;
__u32 cg_irotor;
__u32 cg_frsum[(8192 / 1024 ) ];
__u32 cg_btotoff;
__u32 cg_boff;
__u32 cg_iusedoff;
__u32 cg_freeoff;
__u32 cg_nextfreeoff;
union {
struct {
__u32 cg_clustersumoff;
__u32 cg_clusteroff;
__u32 cg_nclusterblks;
__u32 cg_sparecon[13];
} cg_44;
__u32 cg_sparecon[16];
} cg_u;
__u8 cg_space[1];
};
struct ufs_inode {
__u16 ui_mode;
__u16 ui_nlink;
union {
struct {
__u16 ui_suid;
__u16 ui_sgid;
} oldids;
__u32 ui_inumber;
__u32 ui_author;
} ui_u1;
__u64 ui_size;
struct ufs_timeval ui_atime;
struct ufs_timeval ui_mtime;
struct ufs_timeval ui_ctime;
union {
struct {
__u32 ui_db[12 ];
__u32 ui_ib[3 ];
} ui_addr;
__u8 ui_symlink[4*(12 + 3 )];
} ui_u2;
__u32 ui_flags;
__u32 ui_blocks;
__u32 ui_gen;
union {
struct {
__u32 ui_shadow;
__u32 ui_uid;
__u32 ui_gid;
__u32 ui_oeftflag;
} ui_sun;
struct {
__u32 ui_uid;
__u32 ui_gid;
__s32 ui_spare[2];
} ui_44;
struct {
__u32 ui_uid;
__u32 ui_gid;
__u16 ui_modeh;
__u16 ui_spare;
__u32 ui_trans;
} ui_hurd;
} ui_u3;
};
extern int ufs_permission (struct inode *, int);
extern void ufs_free_fragments (struct inode *, unsigned, unsigned);
extern void ufs_free_blocks (struct inode *, unsigned, unsigned);
extern unsigned ufs_new_fragments (struct inode *, u32 *, unsigned, unsigned, unsigned, int *);
extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);
extern void ufs_put_cylinder (struct super_block *, unsigned);
extern struct inode_operations ufs_dir_inode_operations;
extern struct file_operations ufs_dir_operations;
extern int ufs_check_dir_entry (const char *, struct inode *, struct ufs_dir_entry *, struct buffer_head *, unsigned long);
extern struct inode_operations ufs_file_inode_operations;
extern struct file_operations ufs_file_operations;
extern void ufs_free_inode (struct inode *inode);
extern struct inode * ufs_new_inode (const struct inode *, int, int *);
extern int ufs_bmap (struct inode *, int);
extern void ufs_read_inode (struct inode *);
extern void ufs_put_inode (struct inode *);
extern void ufs_write_inode (struct inode *);
extern int ufs_sync_inode (struct inode *);
extern void ufs_write_inode (struct inode *);
extern void ufs_delete_inode (struct inode *);
extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *);
extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
extern struct dentry *ufs_lookup (struct inode *, struct dentry *);
extern int ufs_mkdir(struct inode *, struct dentry *, int);
extern int ufs_rmdir (struct inode *, struct dentry *);
extern int ufs_unlink (struct inode *, struct dentry *);
extern int ufs_create (struct inode *, struct dentry *, int);
extern int ufs_rename (struct inode *, struct dentry *, struct inode *, struct dentry *);
extern int ufs_mknod (struct inode *, struct dentry *, int, int);
extern int ufs_symlink (struct inode *, struct dentry *, const char *);
extern int ufs_link (struct dentry *, struct inode *, struct dentry *);
extern struct super_operations ufs_super_ops;
extern struct file_system_type ufs_fs_type;
extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern int init_ufs_fs(void);
extern void ufs_write_super (struct super_block *);
extern struct inode_operations ufs_symlink_inode_operations;
extern void ufs_truncate (struct inode *);
# 17 "/usr/include/linux/ufs_fs_sb.h" 2 3
struct ufs_buffer_head {
unsigned fragment;
unsigned count;
struct buffer_head * bh[(8192 / 1024 ) ];
};
struct ufs_cg_private_info {
struct ufs_cylinder_group ucg;
__u32 c_cgx;
__u16 c_ncyl;
__u16 c_niblk;
__u32 c_ndblk;
__u32 c_rotor;
__u32 c_frotor;
__u32 c_irotor;
__u32 c_btotoff;
__u32 c_boff;
__u32 c_iusedoff;
__u32 c_freeoff;
__u32 c_nextfreeoff;
__u32 c_clustersumoff;
__u32 c_clusteroff;
__u32 c_nclusterblks;
};
struct ufs_sb_private_info {
struct ufs_buffer_head s_ubh;
__u32 s_sblkno;
__u32 s_cblkno;
__u32 s_iblkno;
__u32 s_dblkno;
__u32 s_cgoffset;
__u32 s_cgmask;
__u32 s_size;
__u32 s_dsize;
__u32 s_ncg;
__u32 s_bsize;
__u32 s_fsize;
__u32 s_fpb;
__u32 s_minfree;
__u32 s_bmask;
__u32 s_fmask;
__u32 s_bshift;
__u32 s_fshift;
__u32 s_fpbshift;
__u32 s_fsbtodb;
__u32 s_sbsize;
__u32 s_csmask;
__u32 s_csshift;
__u32 s_nindir;
__u32 s_inopb;
__u32 s_nspf;
__u32 s_npsect;
__u32 s_interleave;
__u32 s_trackskew;
__u32 s_csaddr;
__u32 s_cssize;
__u32 s_cgsize;
__u32 s_ntrak;
__u32 s_nsect;
__u32 s_spc;
__u32 s_ipg;
__u32 s_fpg;
__u32 s_cpc;
__s32 s_contigsumsize;
__s64 s_qbmask;
__s64 s_qfmask;
__s32 s_postblformat;
__s32 s_nrpos;
__s32 s_postbloff;
__s32 s_rotbloff;
__u32 s_fpbmask;
__u32 s_apb;
__u32 s_2apb;
__u32 s_3apb;
__u32 s_apbmask;
__u32 s_apbshift;
__u32 s_2apbshift;
__u32 s_3apbshift;
__u32 s_nspfshift;
__u32 s_nspb;
__u32 s_inopf;
__u32 s_sbbase;
__u32 s_bpf;
__u32 s_bpfshift;
__u32 s_bpfmask;
};
struct ufs_sb_info {
struct ufs_sb_private_info * s_uspi;
struct ufs_csum * s_csp[31 ];
unsigned s_swab;
unsigned s_flags;
struct buffer_head ** s_ucg;
struct ufs_cg_private_info * s_ucpi[8 ];
unsigned s_cgno[8 ];
unsigned short s_cg_loaded;
unsigned s_mount_opt;
};
struct ufs_super_block_first {
__u32 fs_link;
__u32 fs_rlink;
__u32 fs_sblkno;
__u32 fs_cblkno;
__u32 fs_iblkno;
__u32 fs_dblkno;
__u32 fs_cgoffset;
__u32 fs_cgmask;
__u32 fs_time;
__u32 fs_size;
__u32 fs_dsize;
__u32 fs_ncg;
__u32 fs_bsize;
__u32 fs_fsize;
__u32 fs_frag;
__u32 fs_minfree;
__u32 fs_rotdelay;
__u32 fs_rps;
__u32 fs_bmask;
__u32 fs_fmask;
__u32 fs_bshift;
__u32 fs_fshift;
__u32 fs_maxcontig;
__u32 fs_maxbpg;
__u32 fs_fragshift;
__u32 fs_fsbtodb;
__u32 fs_sbsize;
__u32 fs_csmask;
__u32 fs_csshift;
__u32 fs_nindir;
__u32 fs_inopb;
__u32 fs_nspf;
__u32 fs_optim;
union {
struct {
__u32 fs_npsect;
} fs_sun;
struct {
__s32 fs_state;
} fs_sunx86;
} fs_u1;
__u32 fs_interleave;
__u32 fs_trackskew;
__u32 fs_id[2];
__u32 fs_csaddr;
__u32 fs_cssize;
__u32 fs_cgsize;
__u32 fs_ntrak;
__u32 fs_nsect;
__u32 fs_spc;
__u32 fs_ncyl;
__u32 fs_cpg;
__u32 fs_ipg;
__u32 fs_fpg;
struct ufs_csum fs_cstotal;
__s8 fs_fmod;
__s8 fs_clean;
__s8 fs_ronly;
__s8 fs_flags;
__s8 fs_fsmnt[512 - 212];
};
struct ufs_super_block_second {
__s8 fs_fsmnt[212];
__u32 fs_cgrotor;
__u32 fs_csp[31 ];
__u32 fs_maxcluster;
__u32 fs_cpc;
__u16 fs_opostbl[82];
};
struct ufs_super_block_third {
__u16 fs_opostbl[46];
union {
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__s32 fs_state;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sun;
struct {
__s32 fs_sparecon[53];
__s32 fs_reclaim;
__s32 fs_sparecon2[1];
__u32 fs_npsect;
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
} fs_sunx86;
struct {
__s32 fs_sparecon[50];
__s32 fs_contigsumsize;
__s32 fs_maxsymlinklen;
__s32 fs_inodefmt;
__u32 fs_maxfilesize[2];
__u32 fs_qbmask[2];
__u32 fs_qfmask[2];
__s32 fs_state;
} fs_44;
} fs_u2;
__s32 fs_postblformat;
__s32 fs_nrpos;
__s32 fs_postbloff;
__s32 fs_rotbloff;
__s32 fs_magic;
__u8 fs_space[1];
};
# 506 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/efs_fs_sb.h" 1 3
struct efs_super {
int32_t fs_size;
int32_t fs_firstcg;
int32_t fs_cgfsize;
short fs_cgisize;
short fs_sectors;
short fs_heads;
short fs_ncg;
short fs_dirty;
short fs_filler;
int32_t fs_time;
int32_t fs_magic;
char fs_fname[6];
char fs_fpack[6];
int32_t fs_bmsize;
int32_t fs_tfree;
int32_t fs_tinode;
int32_t fs_bmblock;
int32_t fs_replsb;
int32_t fs_lastialloc;
char fs_spare[20];
int32_t fs_checksum;
};
struct efs_sb_info {
int32_t fs_magic;
int32_t fs_start;
int32_t first_block;
int32_t total_blocks;
int32_t group_size;
int32_t data_free;
int32_t inode_free;
short inode_blocks;
short total_groups;
};
# 507 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/romfs_fs_sb.h" 1 3
struct romfs_sb_info {
unsigned long s_maxsize;
};
# 508 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/smb_fs_sb.h" 1 3
# 1 "/usr/include/linux/smb.h" 1 3
enum smb_protocol {
SMB_PROTOCOL_NONE,
SMB_PROTOCOL_CORE,
SMB_PROTOCOL_COREPLUS,
SMB_PROTOCOL_LANMAN1,
SMB_PROTOCOL_LANMAN2,
SMB_PROTOCOL_NT1
};
enum smb_case_hndl {
SMB_CASE_DEFAULT,
SMB_CASE_LOWER,
SMB_CASE_UPPER
};
struct smb_dskattr {
__u16 total;
__u16 allocblocks;
__u16 blocksize;
__u16 free;
};
struct smb_conn_opt {
unsigned int fd;
enum smb_protocol protocol;
enum smb_case_hndl case_handling;
__u32 max_xmit;
__u16 server_uid;
__u16 tid;
__u16 secmode;
__u16 maxmux;
__u16 maxvcs;
__u16 rawmode;
__u32 sesskey;
__u32 maxraw;
__u32 capabilities;
__s16 serverzone;
};
struct smb_fattr {
__u16 attr;
unsigned long f_ino;
umode_t f_mode;
nlink_t f_nlink;
uid_t f_uid;
gid_t f_gid;
kdev_t f_rdev;
off_t f_size;
time_t f_atime;
time_t f_mtime;
time_t f_ctime;
unsigned long f_blksize;
unsigned long f_blocks;
};
struct smb_dirent {
struct smb_fattr attr;
int f_pos;
int len;
__u8 name[255 ];
};
enum smb_conn_state {
CONN_VALID,
CONN_INVALID,
CONN_RETRIED
};
# 15 "/usr/include/linux/smb_fs_sb.h" 2 3
struct smb_sb_info {
enum smb_conn_state state;
struct file * sock_file;
struct smb_mount_data *mnt;
unsigned char *temp_buf;
unsigned int generation;
pid_t conn_pid;
struct smb_conn_opt opt;
struct semaphore sem;
struct wait_queue * wait;
__u32 packet_size;
unsigned char * packet;
unsigned short rcls;
unsigned short err;
void *data_ready;
};
# 509 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/hfs_fs_sb.h" 1 3
struct hfs_name;
typedef int (*hfs_namein_fn) (char *, const struct hfs_name *);
typedef void (*hfs_nameout_fn) (struct hfs_name *, const char *, int);
typedef void (*hfs_ifill_fn) (struct inode *, ino_t, const int);
struct hfs_sb_info {
int magic;
struct hfs_mdb *s_mdb;
int s_quiet;
int s_lowercase;
int s_afpd;
int s_version;
hfs_namein_fn s_namein;
hfs_nameout_fn s_nameout;
hfs_ifill_fn s_ifill;
const struct hfs_name *s_reserved1;
const struct hfs_name *s_reserved2;
__u32 s_type;
__u32 s_creator;
umode_t s_umask;
uid_t s_uid;
gid_t s_gid;
char s_conv;
};
# 510 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/adfs_fs_sb.h" 1 3
# 1 "/usr/include/linux/adfs_fs.h" 1 3
struct adfs_discrecord {
unsigned char log2secsize;
unsigned char secspertrack;
unsigned char heads;
unsigned char density;
unsigned char idlen;
unsigned char log2bpmb;
unsigned char skew;
unsigned char bootoption;
unsigned char lowsector;
unsigned char nzones;
unsigned short zone_spare;
unsigned long root;
unsigned long disc_size;
unsigned short disc_id;
unsigned char disc_name[10];
unsigned long disc_type;
unsigned long disc_size_high;
unsigned char log2sharesize:4;
unsigned char unused:4;
unsigned char big_flag:1;
};
struct adfs_dirheader {
unsigned char startmasseq;
unsigned char startname[4];
};
struct adfs_direntry {
char dirobname[10];
__u8 dirload[4];
__u8 direxec[4];
__u8 dirlen[4];
__u8 dirinddiscadd[3];
__u8 newdiratts;
};
struct adfs_idir_entry {
__u32 inode_no;
__u32 file_id;
__u32 name_len;
__u32 size;
__u32 mtime;
__u32 filetype;
__u8 mode;
char name[255 ];
};
union adfs_dirtail {
struct {
unsigned char dirlastmask;
char dirname[10];
unsigned char dirparent[3];
char dirtitle[19];
unsigned char reserved[14];
unsigned char endmasseq;
unsigned char endname[4];
unsigned char dircheckbyte;
} old;
struct {
unsigned char dirlastmask;
unsigned char reserved[2];
unsigned char dirparent[3];
char dirtitle[19];
char dirname[10];
unsigned char endmasseq;
unsigned char endname[4];
unsigned char dircheckbyte;
} new;
};
extern inline int adfs_checkbblk(unsigned char *ptr)
{
unsigned int result = 0;
unsigned char *p = ptr + 511;
do {
result = (result & 0xff) + (result >> 8);
result = result + *--p;
} while (p != ptr);
return (result & 0xff) != ptr[511];
}
extern unsigned int adfs_val (unsigned char *p, int len);
extern int adfs_dir_read_parent (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_read (struct inode *inode, struct buffer_head **bhp);
extern int adfs_dir_check (struct inode *inode, struct buffer_head **bhp,
int buffers, union adfs_dirtail *dtp);
extern void adfs_dir_free (struct buffer_head **bhp, int buffers);
extern int adfs_dir_get (struct super_block *sb, struct buffer_head **bhp,
int buffers, int pos, unsigned long parent_object_id,
struct adfs_idir_entry *ide);
extern int adfs_dir_find_entry (struct super_block *sb, struct buffer_head **bhp,
int buffers, unsigned int index,
struct adfs_idir_entry *ide);
extern int adfs_inode_validate (struct inode *inode);
extern unsigned long adfs_inode_generate (unsigned long parent_id, int diridx);
extern unsigned long adfs_inode_objid (struct inode *inode);
extern unsigned int adfs_parent_bmap (struct inode *inode, int block);
extern int adfs_bmap (struct inode *inode, int block);
extern void adfs_read_inode (struct inode *inode);
extern int adfs_map_lookup (struct super_block *sb, int frag_id, int offset);
extern struct dentry *adfs_lookup (struct inode *dir, struct dentry *dentry);
extern int init_adfs_fs (void);
extern void adfs_error (struct super_block *, const char *, const char *, ...);
extern struct inode_operations adfs_dir_inode_operations;
extern struct inode_operations adfs_file_inode_operations;
# 10 "/usr/include/linux/adfs_fs_sb.h" 2 3
struct adfs_sb_info {
struct buffer_head *s_sbh;
struct adfs_discrecord *s_dr;
uid_t s_uid;
gid_t s_gid;
int s_owner_mask;
int s_other_mask;
__u16 s_zone_size;
__u16 s_ids_per_zone;
__u32 s_idlen;
__u32 s_map_size;
__u32 s_zonesize;
__u32 s_map_block;
struct buffer_head **s_map;
__u32 s_root;
__s8 s_map2blk;
};
# 511 "/usr/include/linux/fs.h" 2 3
# 1 "/usr/include/linux/qnx4_fs_sb.h" 1 3
struct qnx4_sb_info {
struct buffer_head *sb_buf;
struct qnx4_super_block *sb;
unsigned int Version;
struct qnx4_inode_entry *BitMap;
};
# 512 "/usr/include/linux/fs.h" 2 3
extern struct list_head super_blocks;
struct super_block {
struct list_head s_list;
kdev_t s_dev;
unsigned long s_blocksize;
unsigned char s_blocksize_bits;
unsigned char s_lock;
unsigned char s_rd_only;
unsigned char s_dirt;
struct file_system_type *s_type;
struct super_operations *s_op;
struct dquot_operations *dq_op;
unsigned long s_flags;
unsigned long s_magic;
unsigned long s_time;
struct dentry *s_root;
struct wait_queue *s_wait;
struct inode *s_ibasket;
short int s_ibasket_count;
short int s_ibasket_max;
struct list_head s_dirty;
union {
struct minix_sb_info minix_sb;
struct ext2_sb_info ext2_sb;
struct hpfs_sb_info hpfs_sb;
struct ntfs_sb_info ntfs_sb;
struct msdos_sb_info msdos_sb;
struct isofs_sb_info isofs_sb;
struct nfs_sb_info nfs_sb;
struct sysv_sb_info sysv_sb;
struct affs_sb_info affs_sb;
struct ufs_sb_info ufs_sb;
struct efs_sb_info efs_sb;
struct romfs_sb_info romfs_sb;
struct smb_sb_info smbfs_sb;
struct hfs_sb_info hfs_sb;
struct adfs_sb_info adfs_sb;
struct qnx4_sb_info qnx4_sb;
void *generic_sbp;
} u;
struct semaphore s_vfs_rename_sem;
};
extern int vfs_rmdir(struct inode *, struct dentry *);
extern int vfs_unlink(struct inode *, struct dentry *);
extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);
typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t);
struct file_operations {
loff_t (*llseek) (struct file *, loff_t, int);
ssize_t (*read) (struct file *, char *, size_t, loff_t *);
ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
int (*readdir) (struct file *, void *, filldir_t);
unsigned int (*poll) (struct file *, struct poll_table_struct *);
int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
int (*mmap) (struct file *, struct vm_area_struct *);
int (*open) (struct inode *, struct file *);
int (*flush) (struct file *);
int (*release) (struct inode *, struct file *);
int (*fsync) (struct file *, struct dentry *);
int (*fasync) (int, struct file *, int);
int (*check_media_change) (kdev_t dev);
int (*revalidate) (kdev_t dev);
int (*lock) (struct file *, int, struct file_lock *);
};
struct inode_operations {
struct file_operations * default_file_ops;
int (*create) (struct inode *,struct dentry *,int);
struct dentry * (*lookup) (struct inode *,struct dentry *);
int (*link) (struct dentry *,struct inode *,struct dentry *);
int (*unlink) (struct inode *,struct dentry *);
int (*symlink) (struct inode *,struct dentry *,const char *);
int (*mkdir) (struct inode *,struct dentry *,int);
int (*rmdir) (struct inode *,struct dentry *);
int (*mknod) (struct inode *,struct dentry *,int,int);
int (*rename) (struct inode *, struct dentry *,
struct inode *, struct dentry *);
int (*readlink) (struct dentry *, char *,int);
struct dentry * (*follow_link) (struct dentry *, struct dentry *, unsigned int);
int (*readpage) (struct file *, struct page *);
int (*writepage) (struct file *, struct page *);
int (*bmap) (struct inode *,int);
void (*truncate) (struct inode *);
int (*permission) (struct inode *, int);
int (*smap) (struct inode *,int);
int (*updatepage) (struct file *, struct page *, unsigned long, unsigned int, int);
int (*revalidate) (struct dentry *);
};
struct super_operations {
void (*read_inode) (struct inode *);
void (*write_inode) (struct inode *);
void (*put_inode) (struct inode *);
void (*delete_inode) (struct inode *);
int (*notify_change) (struct dentry *, struct iattr *);
void (*put_super) (struct super_block *);
void (*write_super) (struct super_block *);
int (*statfs) (struct super_block *, struct statfs *, int);
int (*remount_fs) (struct super_block *, int *, char *);
void (*clear_inode) (struct inode *);
void (*umount_begin) (struct super_block *);
};
struct dquot_operations {
void (*initialize) (struct inode *, short);
void (*drop) (struct inode *);
int (*alloc_block) (const struct inode *, unsigned long, uid_t, char);
int (*alloc_inode) (const struct inode *, unsigned long, uid_t);
void (*free_block) (const struct inode *, unsigned long);
void (*free_inode) (const struct inode *, unsigned long);
int (*transfer) (struct dentry *, struct iattr *, uid_t);
};
struct file_system_type {
const char *name;
int fs_flags;
struct super_block *(*read_super) (struct super_block *, void *, int);
struct file_system_type * next;
};
extern int register_filesystem(struct file_system_type *);
extern int unregister_filesystem(struct file_system_type *);
extern int locks_mandatory_locked(struct inode *inode);
extern int locks_mandatory_area(int read_write, struct inode *inode,
struct file *filp, loff_t offset,
size_t count);
extern inline int locks_verify_locked(struct inode *inode)
{
if (((( inode )->i_sb && ( inode )->i_sb->s_flags & ( 64 )) || ( inode )->i_flags & ( 64 )) &&
(inode->i_mode & (0002000 | 00010 )) == 0002000 )
return (locks_mandatory_locked(inode));
return (0);
}
extern inline int locks_verify_area(int read_write, struct inode *inode,
struct file *filp, loff_t offset,
size_t count)
{
if (((( inode )->i_sb && ( inode )->i_sb->s_flags & ( 64 )) || ( inode )->i_flags & ( 64 )) &&
(inode->i_mode & (0002000 | 00010 )) == 0002000 )
return (locks_mandatory_area(read_write, inode, filp, offset,
count));
return (0);
}
__attribute__((regparm(0))) int sys_open(const char *, int, int);
__attribute__((regparm(0))) int sys_close(unsigned int);
extern int do_truncate(struct dentry *, unsigned long);
extern int get_unused_fd(void);
extern void put_unused_fd(unsigned int);
extern struct file *filp_open(const char *, int, int);
extern int filp_close(struct file *, fl_owner_t id);
extern char * getname(const char * filename);
extern void kill_fasync(struct fasync_struct *fa, int sig);
extern int register_blkdev(unsigned int, const char *, struct file_operations *);
extern int unregister_blkdev(unsigned int major, const char * name);
extern int blkdev_open(struct inode * inode, struct file * filp);
extern int blkdev_release (struct inode * inode);
extern struct file_operations def_blk_fops;
extern struct inode_operations blkdev_inode_operations;
extern int register_chrdev(unsigned int, const char *, struct file_operations *);
extern int unregister_chrdev(unsigned int major, const char * name);
extern int chrdev_open(struct inode * inode, struct file * filp);
extern struct file_operations def_chr_fops;
extern struct inode_operations chrdev_inode_operations;
extern char * bdevname(kdev_t dev);
extern char * cdevname(kdev_t dev);
extern char * kdevname(kdev_t dev);
extern void init_fifo(struct inode * inode);
extern struct inode_operations fifo_inode_operations;
extern void make_bad_inode(struct inode * inode);
extern int is_bad_inode(struct inode * inode);
extern struct file_operations connecting_fifo_fops;
extern struct file_operations read_fifo_fops;
extern struct file_operations write_fifo_fops;
extern struct file_operations rdwr_fifo_fops;
extern struct file_operations read_pipe_fops;
extern struct file_operations write_pipe_fops;
extern struct file_operations rdwr_pipe_fops;
extern struct file_system_type *get_fs_type(const char *name);
extern int fs_may_remount_ro(struct super_block *);
extern int fs_may_mount(kdev_t dev);
extern struct file *inuse_filps;
extern void refile_buffer(struct buffer_head * buf);
extern void set_writetime(struct buffer_head * buf, int flag);
extern int try_to_free_buffers(struct page *);
extern int nr_buffers;
extern long buffermem;
extern int nr_buffer_heads;
void mark_buffer_uptodate(struct buffer_head * bh, int on);
extern inline void mark_buffer_clean(struct buffer_head * bh)
{
if (test_and_clear_bit(1 , &bh->b_state)) {
if (bh->b_list == 2 )
refile_buffer(bh);
}
}
extern inline void mark_buffer_dirty(struct buffer_head * bh, int flag)
{
if (!test_and_set_bit(1 , &bh->b_state)) {
set_writetime(bh, flag);
if (bh->b_list != 2 )
refile_buffer(bh);
}
}
extern int check_disk_change(kdev_t dev);
extern int invalidate_inodes(struct super_block * sb);
extern void invalidate_inode_pages(struct inode *);
extern void __invalidate_buffers(kdev_t dev, int);
extern int floppy_is_wp(int minor);
extern void sync_inodes(kdev_t dev);
extern void write_inode_now(struct inode *inode);
extern void sync_dev(kdev_t dev);
extern int fsync_dev(kdev_t dev);
extern void sync_supers(kdev_t dev);
extern int bmap(struct inode * inode,int block);
extern int notify_change(struct dentry *, struct iattr *);
extern int permission(struct inode * inode,int mask);
extern int get_write_access(struct inode *inode);
extern void put_write_access(struct inode *inode);
extern struct dentry * open_namei(const char * pathname, int flag, int mode);
extern struct dentry * do_mknod(const char * filename, int mode, dev_t dev);
extern int do_pipe(int *);
extern int is_subdir(struct dentry *, struct dentry *);
extern ino_t find_inode_number(struct dentry *, struct qstr *);
extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int);
extern struct dentry * __namei(const char *, unsigned int);
extern void iput(struct inode *);
extern struct inode * igrab(struct inode *inode);
extern ino_t iunique(struct super_block *, ino_t);
extern struct inode * iget(struct super_block *, unsigned long);
extern struct inode * iget_in_use (struct super_block *, unsigned long);
extern void clear_inode(struct inode *);
extern struct inode * get_empty_inode(void);
extern void insert_inode_hash(struct inode *);
extern void remove_inode_hash(struct inode *);
extern struct file * get_empty_filp(void);
extern struct buffer_head * get_hash_table(kdev_t, int, int);
extern struct buffer_head * getblk(kdev_t, int, int);
extern struct buffer_head * find_buffer(kdev_t dev, int block, int size);
extern void ll_rw_block(int, int, struct buffer_head * bh[]);
extern int is_read_only(kdev_t);
extern void __brelse(struct buffer_head *);
extern inline void brelse(struct buffer_head *buf)
{
if (buf)
__brelse(buf);
}
extern void __bforget(struct buffer_head *buf);
extern inline void bforget(struct buffer_head *buf)
{
if (buf)
__bforget(buf);
}
extern void set_blocksize(kdev_t dev, int size);
extern unsigned int get_hardblocksize(kdev_t dev);
extern struct buffer_head * bread(kdev_t dev, int block, int size);
extern struct buffer_head * breada(kdev_t dev,int block, int size,
unsigned int pos, unsigned int filesize);
extern int brw_page(int, struct page *, kdev_t, int [], int, int);
extern int generic_readpage(struct file *, struct page *);
extern int generic_file_mmap(struct file *, struct vm_area_struct *);
extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *);
extern ssize_t generic_file_write(struct file *, const char*, size_t, loff_t*);
extern struct super_block *get_super(kdev_t dev);
extern void put_super(kdev_t dev);
unsigned long generate_cluster(kdev_t dev, int b[], int size);
unsigned long generate_cluster_swab32(kdev_t dev, int b[], int size);
extern kdev_t ROOT_DEV;
extern void show_buffers(void);
extern void mount_root(void);
extern kdev_t real_root_dev;
extern int change_root(kdev_t new_root_dev,const char *put_old);
extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
extern ssize_t block_read(struct file *, char *, size_t, loff_t *);
extern int read_ahead[];
extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);
extern int block_fsync(struct file *, struct dentry *dir);
extern int file_fsync(struct file *, struct dentry *dir);
extern int inode_change_ok(struct inode *, struct iattr *);
extern void inode_setattr(struct inode *, struct iattr *);
extern __u32 inode_generation_count;
# 1 "tst3.c" 2
More information about the Gcc-bugs
mailing list