public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c/5775: Compilation stops abruptly
@ 2002-02-25  5:26 varadhu_n
  0 siblings, 0 replies; only message in thread
From: varadhu_n @ 2002-02-25  5:26 UTC (permalink / raw)
  To: gcc-gnats; +Cc: sureshls


>Number:         5775
>Category:       c
>Synopsis:       Compilation stops abruptly
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 25 05:06:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     N. Varadarajan
>Release:        unknown-1.0
>Organization:
>Environment:
PowerPC Linux. RPX Lite board hosting MPC 850/823
>Description:
We booted the RPX Lite with the Linux Kernel 2.4.7
and we tried to compile the Linux source tree in that target

When doing a make zImage it proceeded and stopped after
sometime with the following message

gcc -D__KERNEL__ -I/home/root/kernel/kernel/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing
-fno-common -fomit-frame-pointer  -D__powerpc__ -fsigned-char -msoft-float -pipe -ffixed-r2 -Wno-uninitialized
-mmultiple -mstring -mcpu=860 -msoft-float -g3 -c -o panic.o
panic.c
panic.c: In function `panic':
panic.c:109: Internal compiler error in `float_signal', at toplev.c:2418
Please submit a full bug report.

output of gcc -v
Reading specs from /opt/lib/gcc-lib/powerpc-linux/2.95.2/specs
gcc version 2.95.2 19991024 (release)

Please note that this is not a cross-compiler.

I have attached the pre-processor's output file

A similar kind of bug-report has been filed for x86 by
Terushi Arakawa 
>How-To-Repeat:
Just compile the kernel as described above
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
 >sig[4*i+3];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3];	r->sig[4*i+0] =   (( a0 ) & (  b0 )) ;	r->sig[4*i+1] =   (( a1 ) & (  b1 )) ;	r->sig[4*i+2] =   (( a2 ) & (  b2 )) ;	r->sig[4*i+3] =   (( a3 ) & (  b3 )) ;	}	swi tch ((64  / 32 )  % 4) {	case 3:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] =   (( a0 ) & (  b0 )) ;	r->sig[4*i+1] =   (( a1 ) & (  b1 )) ;	r->sig[4*i+2] =   (( a2  ) & (  b2 )) ;	break;	case 2:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	r->sig[4*i+0] =   (( a0 ) & (  b0 )) ;	r->sig[4*i+1] =   (( a1 ) & (  b1 )) ;	break;	case 1:	a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0];	r->sig[4*i +0] =   (( a0 ) & (  b0 )) ;	break;	}	} 
 
 #define _sig_nand(x,y)	((x) & ~(y))
 static inline void  signandsets (sigset_t *r, const sigset_t *a, const sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned long i;	for (i = 0; i < (64  / 32 ) /4; ++i) {	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	a2 = a->sig[4*i+2]; a3 = a ->sig[4*i+3];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3];	r->sig[4*i+0] =   (( a0 ) & ~(  b0 )) ;	r->sig[4*i+1] =   (( a1 ) & ~(  b1 )) ;	r->sig[4*i+2] =   (( a2 ) & ~(  b2 )) ;	r->sig[4*i+3] =   (( a3 ) & ~(  b3 )) ;	 }	switch ((64  / 32 )  % 4) {	case 3:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] =   (( a0 ) & ~(  b0 )) ;	r->sig[4*i+1] =   (( a1 ) & ~(  b1 )) ;	r->sig[4*i+2] =    (( a2 ) & ~(  b2 )) ;	break;	case 2:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	r->sig[4*i+0] =   (( a0 ) & ~(  b0 )) ;	r->sig[4*i+1] =   (( a1 ) & ~(  b1 )) ;	break;	case 1:	a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0];	 r->sig[4*i+0] =   (( a0 ) & ~(  b0 )) ;	break;	}	} 
 
 #undef _SIG_SET_BINOP
 #undef _sig_or
 #undef _sig_and
 #undef _sig_nand
 
 #define _SIG_SET_OP(name, op)	static inline void name(sigset_t *set)	{	unsigned long i;	for (i = 0; i < _NSIG_WORDS/4; ++i) {	set->sig[4*i+0] = op(set->sig[4*i+0]);	set->sig[4*i+1] = op(set->sig[4*i+1]);	set->sig[4*i+2] = op(set->sig[4*i+2]);	set->sig[4* i+3] = op(set->sig[4*i+3]);	}	switch (_NSIG_WORDS % 4) {	case 3: set->sig[4*i+2] = op(set->sig[4*i+2]);	case 2: set->sig[4*i+1] = op(set->sig[4*i+1]);	case 1: set->sig[4*i+0] = op(set->sig[4*i+0]);	}	}
 # 149 "/home/root/kernel/kernel/include/linux/signal.h"
 
 #define _sig_not(x)	(~(x))
 static inline void  signotset (sigset_t *set)	{	unsigned long i;	for (i = 0; i < (64  / 32 ) /4; ++i) {	set->sig[4*i+0] =   (~( set->sig[4*i+0] )) ;	set->sig[4*i+1] =   (~( set->sig[4*i+1] )) ;	set->sig[4*i+2] =   (~( set->sig[4*i+2] )) ;	set->sig[4*i+3]  =   (~( set->sig[4*i+3] )) ;	}	switch ((64  / 32 )  % 4) {	case 3: set->sig[4*i+2] =   (~( set->sig[4*i+2] )) ;	case 2: set->sig[4*i+1] =   (~( set->sig[4*i+1] )) ;	case 1: set->sig[4*i+0] =   (~( set->sig[4*i+0] )) ;	}	} 
 
 #undef _SIG_SET_OP
 #undef _sig_not
 
 static inline void sigemptyset(sigset_t *set)
 {
 	switch ((64  / 32 ) ) {
 	default:
 		memset(set, 0, sizeof(sigset_t));
 		break;
 	case 2: set->sig[1] = 0;
 	case 1:	set->sig[0] = 0;
 		break;
 	}
 }
 
 static inline void sigfillset(sigset_t *set)
 {
 	switch ((64  / 32 ) ) {
 	default:
 		memset(set, -1, sizeof(sigset_t));
 		break;
 	case 2: set->sig[1] = -1;
 	case 1:	set->sig[0] = -1;
 		break;
 	}
 }
 
 extern char * render_sigset_t(sigset_t *set, char *buffer);
 
  
 
 static inline void sigaddsetmask(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] |= mask;
 }
 
 static inline void sigdelsetmask(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] &= ~mask;
 }
 
 static inline int sigtestsetmask(sigset_t *set, unsigned long mask)
 {
 	return (set->sig[0] & mask) != 0;
 }
 
 static inline void siginitset(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] = mask;
 	switch ((64  / 32 ) ) {
 	default:
 		memset(&set->sig[1], 0, sizeof(long)*((64  / 32 ) -1));
 		break;
 	case 2: set->sig[1] = 0;
 	case 1: ;
 	}
 }
 
 static inline void siginitsetinv(sigset_t *set, unsigned long mask)
 {
 	set->sig[0] = ~mask;
 	switch ((64  / 32 ) ) {
 	default:
 		memset(&set->sig[1], -1, sizeof(long)*((64  / 32 ) -1));
 		break;
 	case 2: set->sig[1] = -1;
 	case 1: ;
 	}
 }
 
 
 
 static inline void init_sigpending(struct sigpending *sig)
 {
 	sigemptyset(&sig->signal);
 	sig->head = ((void *)0) ;
 	sig->tail = &sig->head;
 }
 
 extern long do_sigpending(void *, unsigned long);
 
 
 
 
 # 29 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/securebits.h" 1
 
 #define _LINUX_SECUREBITS_H 1
 
 #define SECUREBITS_DEFAULT 0x00000000
 
 extern unsigned securebits;
 
  
 
 
 
 
 
 #define SECURE_NOROOT            0
 
  
 
 
 #define SECURE_NO_SETUID_FIXUP   2
 
  
 
 
 
 
 #define issecure(X) ( (1 << (X+1)) & SECUREBITS_DEFAULT ? (1 << (X)) & SECUREBITS_DEFAULT :	(1 << (X)) & securebits )
 
 
 
 
 # 30 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/fs_struct-defs.h" 1
 
 #define _LINUX_FS_STRUCT_DEFS_H
 
 struct fs_struct {
 	atomic_t count;
 	mutex_t  lock;
 	int umask;
 	struct dentry * root, * pwd, * altroot;
 	struct vfsmount * rootmnt, * pwdmnt, * altrootmnt;
 };
 
 #define INIT_FS { ATOMIC_INIT(1), RW_LOCK_UNLOCKED, 0022, NULL, NULL, NULL, NULL, NULL, NULL }
 
 
 
 
 
 
 extern void exit_fs(struct task_struct *);
 extern void set_fs_altroot(void);
 struct fs_struct *copy_fs_struct(struct fs_struct *old);
 void put_fs_struct(struct fs_struct *fs);
 
 
 # 31 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 
 
 
 
 
 #define IRQ_PRIORITY          CONFIG_POSIX_PRIOS-2
 #define SQ_PRIORITY           CONFIG_POSIX_PRIOS-1
 #define SOFTIRQ_PRIORITY      CONFIG_POSIX_PRIOS-3
 
  
 
 
 #define CSIGNAL         0x000000ff	
 #define CLONE_VM        0x00000100	
 #define CLONE_FS        0x00000200	
 #define CLONE_FILES     0x00000400	
 #define CLONE_SIGHAND   0x00000800	
 #define CLONE_PID       0x00001000	
 #define CLONE_PTRACE    0x00002000	
 #define CLONE_VFORK     0x00004000	
 #define CLONE_PARENT    0x00008000	
 #define CLONE_THREAD    0x00010000	
 
 #define CLONE_SIGNAL	(CLONE_SIGHAND | CLONE_THREAD)
 
  
 
 
 
 
 
 
 
 
 
 extern unsigned long avenrun[];		 
 
 #define FSHIFT    11          
 #define FIXED_1   (1<<FSHIFT) 
 #define LOAD_FREQ (5*HZ)      
 #define EXP_1     1884        
 #define EXP_5     2014        
 #define EXP_15    2037        
 
 #define CALC_LOAD(load,exp,n) load *= exp; load += n*(FIXED_1-exp); load >>= FSHIFT;
 
 
 
 
 #define CT_TO_SECS(x)	((long)((x) / ktimer_freq))
 #define CT_TO_USECS(x)	((long)((((x) % ktimer_freq) * 1000000)/ktimer_freq))
 #define OLD_CT_TO_SECS(x)	((x) / HZ)
 #define OLD_CT_TO_USECS(x)	(((x) % HZ) * 1000000/HZ)
 
 extern int nr_running, nr_threads;
 extern int last_pid;
 
 
 
 # 1 "/home/root/kernel/kernel/include/linux/param.h" 1
 
 #define _LINUX_PARAM_H
 
 
 
 
 # 91 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/resource.h" 1
 
 #define _LINUX_RESOURCE_H
 
 
 
  
 
 
 
  
 
 
 
 
 
 
 #define 	RUSAGE_SELF	0
 #define 	RUSAGE_CHILDREN	(-1)
 #define RUSAGE_BOTH	(-2)		
 
 struct	rusage {
 	struct timeval ru_utime;	 
 	struct timeval ru_stime;	 
 	long	ru_maxrss;		 
 	long	ru_ixrss;		 
 	long	ru_idrss;		 
 	long	ru_isrss;		 
 	long	ru_minflt;		 
 	long	ru_majflt;		 
 	long	ru_nswap;		 
 	long	ru_inblock;		 
 	long	ru_oublock;		 
 	long	ru_msgsnd;		 
 	long	ru_msgrcv;		 
 	long	ru_nsignals;		 
 	long	ru_nvcsw;		 
 	long	ru_nivcsw;		 
 };
 
 struct rlimit {
 	unsigned long	rlim_cur;
 	unsigned long	rlim_max;
 };
 
 #define 	PRIO_MIN	(-20)
 #define 	PRIO_MAX	20
 
 #define 	PRIO_PROCESS	0
 #define 	PRIO_PGRP	1
 #define 	PRIO_USER	2
 
  
 
 
 
 # 1 "/home/root/kernel/kernel/include/asm/resource.h" 1
  
 
 
 
 #define _PPC_RESOURCE_H
 
 #define RLIMIT_CPU	0		
 #define RLIMIT_FSIZE	1		
 #define RLIMIT_DATA	2		
 #define RLIMIT_STACK	3		
 #define RLIMIT_CORE	4		
 #define RLIMIT_RSS	5		
 #define RLIMIT_NPROC	6		
 #define RLIMIT_NOFILE	7		
 #define RLIMIT_MEMLOCK	8		
 #define RLIMIT_AS	9		
 #define RLIMIT_LOCKS	10		
 
 #define RLIM_NLIMITS	11
 
 
 
  
 
 
 
 #define RLIM_INFINITY	(~0UL)
 
 
 #define INIT_RLIMITS	{	{ RLIM_INFINITY, RLIM_INFINITY },	{ RLIM_INFINITY, RLIM_INFINITY },	{ RLIM_INFINITY, RLIM_INFINITY },	{      _STK_LIM, RLIM_INFINITY },	{             0, RLIM_INFINITY },	{ RLIM_INFINITY, RLIM_INFINITY },	{             0,              0 },	{      INR_OPEN,     INR_OPEN  },	{ RLIM_INFINITY, RLIM_INFINITY },	{ RLIM_INFINITY, RLIM_INFINITY },	{ RLIM_INFINITY, RLIM_INFINITY },	}
 # 44 "/home/root/kernel/kernel/include/asm/resource.h"
 
 
 
 
 # 56 "/home/root/kernel/kernel/include/linux/resource.h" 2
 
 
 
 # 92 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/timer.h" 1
 
 #define _LINUX_TIMER_H
 
 
 
 
  
 
 
 
 
 
 
 
 
 struct timer_list {
 	struct list_head list;
 	unsigned long expires;
 	unsigned long data;
 	void (*function)(unsigned long);
 };
 
 extern void add_timer(struct timer_list * timer);
 extern int del_timer(struct timer_list * timer);
 
 extern int del_timer_sync(struct timer_list * timer);
 extern void sync_timers(void);
 
  
 
 
 
 
 
 
 int mod_timer(struct timer_list *timer, unsigned long expires);
 
 extern void it_real_fn(unsigned long);
 
 static inline void init_timer(struct timer_list * timer)
 {
 	timer->list.next = timer->list.prev = ((void *)0) ;
 }
 
 static inline int timer_pending (const struct timer_list * timer)
 {
 	return timer->list.next != ((void *)0) ;
 }
 
  
 
 
 
 
 
 
 
 
 
 
 #define time_after(a,b)		((long)(b) - (long)(a) < 0)
 #define time_before(a,b)	time_after(b,a)
 
 #define time_after_eq(a,b)	((long)(a) - (long)(b) >= 0)
 #define time_before_eq(a,b)	time_after_eq(b,a)
 
 
 # 93 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 
 # 1 "/home/root/kernel/kernel/include/asm/processor.h" 1
  
 
 
 
 # 705 "/home/root/kernel/kernel/include/asm/processor.h"
 
 
 # 95 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2
 
 
 #define TASK_RUNNING          0
 #define TASK_INTERRUPTIBLE    1
 #define TASK_UNINTERRUPTIBLE  2
 #define TASK_ZOMBIE           4
 #define TASK_STOPPED          8
 
 #define __set_task_state(tsk, state_value)	do { (tsk)->state = (state_value); } while (0)
 
 
 
 
 
 #define set_task_state(tsk, state_value)	__set_task_state((tsk), (state_value))
 
 
 
 #define __set_current_state(state_value)	do { current->state = (state_value); } while (0)
 
 
 
 
 
 #define set_current_state(state_value)	__set_current_state(state_value)
 
 
 
  
 
 
 #define SCHED_OTHER     0
 #define SCHED_FIFO      1
 #define SCHED_RR        2
 
  
 
 
 
 #define SCHED_YIELD     0x10
 
 struct sched_param {
 	int sched_priority;
 };
 
 struct completion;
 
 
 
 
 
 extern mutex_t  tasklist_lock;
 extern mutex_t  mmlist_lock;
 
 extern void sched_init(void);
 extern void init_idle(void);
 extern void show_state(void);
 extern void cpu_init (void);
 extern void trap_init(void);
 extern void update_process_times(int user);
 extern void update_one_process(struct task_struct *p, unsigned long user,
 			       unsigned long system, int cpu);
 
 #define 	MAX_SCHEDULE_TIMEOUT	LONG_MAX
 extern signed long  schedule_timeout(signed long timeout)  ;
    void schedule(void);
    void preempt(void);
 
 extern int schedule_task(struct tq_struct *task);
 extern void flush_scheduled_tasks(void);
 extern int start_context_thread(void);
 extern int current_is_keventd(void);
 
  
 
 
 
 #define NR_OPEN_DEFAULT BITS_PER_LONG
 
  
 
 
 struct files_struct {
 	atomic_t count;
 	mutex_t  file_lock;	 
 	int max_fds;
 	int max_fdset;
 	int next_fd;
 	struct file ** fd;	 
 	fd_set *close_on_exec;
 	fd_set *open_fds;
 	fd_set close_on_exec_init;
 	fd_set open_fds_init;
 	struct file * fd_array[32  ];
 };
 
 #define INIT_FILES { count:		ATOMIC_INIT(1), file_lock:	RW_LOCK_UNLOCKED, max_fds:	NR_OPEN_DEFAULT, max_fdset:	__FD_SETSIZE, next_fd:	0, fd:		&init_files.fd_array[0], close_on_exec:	&init_files.close_on_exec_init, open_fds:	&init_files.open_fds_init, clo se_on_exec_init: { { 0, } }, open_fds_init:	{ { 0, } }, fd_array:	{ NULL, } }
 # 205 "/home/root/kernel/kernel/include/linux/sched-defs.h"
 
  
 #define MAX_MAP_COUNT	(65536)
 
  
 #define AVL_MIN_MAP_COUNT	32
 
 struct mm_struct {
 	struct vm_area_struct * mmap;		 
 	struct vm_area_struct * mmap_avl;	 
 	struct vm_area_struct * mmap_cache;	 
 	pgd_t * pgd;
 	atomic_t mm_users;			 
 	atomic_t mm_count;			 
 	int map_count;				 
 	struct rw_semaphore mmap_sem;
 	mutex_t  page_table_lock;		 
 
 	struct list_head mmlist;		 
 
 
 
 
 	unsigned long start_code, end_code, start_data, end_data;
 	unsigned long start_brk, brk, start_stack;
 	unsigned long arg_start, arg_end, env_start, env_end;
 	unsigned long rss, total_vm, locked_vm;
 	unsigned long def_flags;
 	unsigned long cpu_vm_mask;
 	unsigned long swap_address;
 
 	unsigned dumpable:1;
 
 	 
 	mm_context_t context;
 
 	 
 	struct task_struct *notify_mmdrop;
 };
 
 extern int mmlist_nr;
 
 #define INIT_MM(name) {	mmap:		&init_mmap, mmap_avl:	NULL, mmap_cache:	NULL, pgd:		swapper_pg_dir, mm_users:	ATOMIC_INIT(2), mm_count:	ATOMIC_INIT(1), map_count:	1, mmap_sem:	__RWSEM_INITIALIZER(name.mmap_sem), page_table_lock: SPIN_LOCK_UNLOCKED, mmlist :		LIST_HEAD_INIT(name.mmlist),	}
 # 260 "/home/root/kernel/kernel/include/linux/sched-defs.h"
 
 struct signal_struct {
 	atomic_t		count;
 	struct k_sigaction	action[64 ];
 	mutex_t 		siglock;
 };
 
 
 #define INIT_SIGNALS {	count:		ATOMIC_INIT(1), action:		{ {{0,}}, }, siglock:	SPIN_LOCK_UNLOCKED }
 
 
 
 
 
  
 
 
 struct user_struct {
 	atomic_t __count;	 
 	atomic_t processes;	 
 	atomic_t files;		 
 
 	 
 	struct user_struct *next, **pprev;
 	uid_t uid;
 };
 
 #define get_current_user() ({ struct user_struct *__user = current->user;	atomic_inc(&__user->__count);	__user; })
 
 
 
 
 extern struct user_struct root_user;
 #define INIT_USER (&root_user)
 
 typedef struct sched_ops {
 	 
 
 	void (*add)(struct task_struct *p, int cpu);
 
 	 
 	void (*add_head)(struct task_struct *p, int cpu);
 	
 	 
 
 	void (*del)(struct task_struct *p, int cpu);
 	
 	 
 
 	void (*charge)(struct task_struct *p, long time);
 	
 	 
 	void (*yield)(struct task_struct *p, int cpu);
 	
 	 
 
 
  
  
 } sched_ops;
 
 typedef struct sched_context {
 	 
 	struct task_struct *owner;
 	
 	 
 	struct list_head sched_node;
 	
 	 
 	struct list_head lent_to_node;
 
 	 
 	int queue_pos;
 	
 	 
 
 	int last_prio;
 	
 	 
 	struct task_struct *next_for_pi, *prev_for_pi;
 	
 	 
 	struct task_struct *proc;
 
 	 
 
 	const sched_ops *sched_ops;
 } __attribute__((aligned(64))) sched_context;
 
 typedef struct task_struct {
 	 
 
 
 	volatile long state;	 
 	unsigned long flags;	 
 	int sigpending;
 	mm_segment_t addr_limit;	 
 
 
 
 	struct exec_domain *exec_domain;
 	volatile long need_resched;
 	unsigned long ptrace;
 
 	unsigned long wchan;  
 	unsigned long last_time;
 	unsigned long user_time, system_time;
 	
 	int processor;
 
 	int lock_depth;       
 	int bh_lock_depth;
 	
  
 	unsigned long time_start;    
 
 	 
 
 	unsigned long partial_jiffy;
 
 	 
 	int nice;
 
 	 
 	int policy, rt_priority;
 	
 	 
 	int max_priority;
 	
 	 
 	long time_left, slice;
 	
 	 
 	unsigned int last_replenish;
 	
 	 
 	unsigned int last_local_replenish;
 	
 	 
 	int bound_cpu;
 	
 	 
 	int timeshare_cpu;
 	
 	 
 	int runnable;
 
 	 
 	volatile int has_cpu;
 	
 	 
 	const sched_ops *sched_ops;
 	
 	 
 	sched_context context[1 ];
 	
 	 
 
 	struct task_struct *lender;
 	
 	 
 	struct list_head lent_to;
 	
 	 
 	int last_sched_queue;
 
 	 
 	int queue_num;
 
 	 
 	int context_queue_num;
 	
 	 
 	ktimer *sleep_tmr;
 
 	struct mm_struct *mm;
 	unsigned long sleep_time;
 	
 	struct task_struct *next_task, *prev_task;
 	struct mm_struct *active_mm;
 
  
 	struct linux_binfmt *binfmt;
 	int exit_code, exit_signal;
 	int pdeath_signal;   
 	 
 	unsigned long personality;
 	int did_exec:1;
 	pid_t pid;
 	pid_t pgrp;
 	pid_t tty_old_pgrp;
 	pid_t session;
 	pid_t tgid;
 	 
 	int leader;
 	 
 
 
 
 
 	struct task_struct *p_opptr, *p_pptr, *p_cptr, *p_ysptr, *p_osptr;
 	struct list_head thread_group;
 
 	 
 	struct task_struct *pidhash_next;
 	struct task_struct **pidhash_pprev;
 
 	wait_queue_head_t wait_chldexit;	 
 	struct completion *vfork_done;		 
 	
 	struct sigqueue sq_prof, sq_virt;
 	unsigned long it_real_value, it_prof_value, it_virt_value;
 	unsigned long it_real_incr, it_prof_incr, it_virt_incr;
 	struct timer_list real_timer;
 	struct kernel_tms times;
 	unsigned long start_time;
 	cpu_tick_data_t per_cpu_utime[1 ], per_cpu_stime[1 ];
  
 	unsigned long min_flt, maj_flt, nswap, cmin_flt, cmaj_flt, cnswap;
 	int swappable:1;
  
 	uid_t uid,euid,suid,fsuid;
 	gid_t gid,egid,sgid,fsgid;
 	int ngroups;
 	gid_t	groups[32 ];
 	kernel_cap_t   cap_effective, cap_inheritable, cap_permitted;
 	int keep_capabilities:1;
 	struct user_struct *user;
  
 	struct rlimit rlim[11 ];
 	unsigned short used_math;
 	char comm[16];
  
 	int link_count;
 	struct tty_struct *tty;  
 	unsigned int locks;  
  
 	struct sem_undo *semundo;
 	struct sem_queue *semsleeping;
  
 	struct thread_struct thread;
  
 	struct fs_struct *fs;
  
 	struct files_struct *files;
  
  	mutex_t  sigmask_lock;	 
 	struct signal_struct *sig;
 
 	sigset_t blocked;
 	struct sigpending pending;
 	
 	unsigned long sas_ss_sp;
 	size_t sas_ss_size;
 
 	int (*notifier)(void *priv);
 	void *notifier_data;
 	sigset_t *notifier_mask;
 	
  
 	u32 parent_exec_id;
 	u32 self_exec_id;
  
 	mutex_t  alloc_lock;
 
  
 	 
 	struct posix_timer **posix_timers;
 
 	 
 	int num_posix_timers;
 	
  
 	 
 	mutex_t *lock_blocked;
 	
 	 
 	struct task_struct *next_for_lock, *prev_for_lock;
 	
 	 
 	int lock_type;
 	
 	 
 	mutex_list_t *locks_held;
 
 	 
 
 	int mutex_abort;
 	
 	 
 	int brlock_cpu;
 	
 	 
 	int brlock_count;
 	
  
 	 
 
 	int dying;
 	
 	 
 	mutex_t exit_lock;
 
  
 	 
 	int usedfpu; 
 
 	 
 
 	int preempted;
 
 	 
 	int dequeued;
 
 	 
 
 	int named;
 	
  
 	struct rk_resource_set *rk_resource_set;	 
 	
 	struct list_head rk_proclist;	       
 	int periodicType;                    
 	struct timespec period;              
 	struct ktimer *period_timer;         
 	struct ktimer *deadline_timer;       
 	struct timespec last_start;          
 	struct timespec startTime;         	 
 
 	struct list_head tx_siglist;         
 	struct list_head rx_siglist;         
 	mutex_t  siglist_lock;               
 	
 	int rk_inherit;                      
 	struct list_head rs_sock_list;       
 	mutex_t  socklist_lock;		          
 	
 	 
 	int cpu_reserve_active;     
 
  
 	int sysno;
 } task_struct;
 
 
  
 
 
 #define PF_ALIGNWARN	   0x00000001	
 					 
 #define PF_STARTING     0x00000002	
 #define PF_EXITING      0x00000004	
 #define PF_FORKNOEXEC	0x00000040	
 #define PF_SUPERPRIV    0x00000100	
 #define PF_DUMPCORE     0x00000200	
 #define PF_SIGNALED     0x00000400	
 #define PF_MEMALLOC     0x00000800	
 
  
 
 
 #define PF_NOPREEMPT    0x08000000
 
  
 
 #define PF_IRQHANDLER	0x10000000
 
  
 
 
 
 #define PT_PTRACED      0x00000001
 #define PT_TRACESYS     0x00000002
 #define PT_DTRACE       0x00000004	
 #define PT_TRACESYSGOOD	0x00000008
 
  
 
 
 
 #define _STK_LIM        (8*1024*1024)
 
 #define DEF_NICE        0
 
  
 
 
 
 #define INIT_TASK(tsk)	{	state:		0,	flags:		0,	sigpending:		0,	addr_limit:		KERNEL_DS,	exec_domain:	&default_exec_domain,	lock_depth:		-1,	nice:		DEF_NICE,	policy:		SCHED_OTHER,	bound_cpu:		SHARED_QUEUE,	has_cpu:		1,	slice:		DEF_SLICE,	mm:			NULL,	active _mm:		&init_mm,	next_task:		&tsk,	prev_task:		&tsk,	p_opptr:		&tsk,	p_pptr:		&tsk,	thread_group:	LIST_HEAD_INIT(tsk.thread_group),	wait_chldexit:	__WAIT_QUEUE_HEAD_INITIALIZER(tsk.wait_chldexit), real_timer:		{	function:		it_real_fn	},	cap_effective:	CAP _INIT_EFF_SET,	cap_inheritable:	CAP_INIT_INH_SET,	cap_permitted:	CAP_FULL_SET,	keep_capabilities:	0,	rlim:		INIT_RLIMITS,	user:		INIT_USER,	comm:		"swapper",	thread:		INIT_THREAD,	fs:			&init_fs,	files:		&init_files,	sigmask_lock:	SPIN_LOCK_UNLOCKED,	sig :		&init_signals,	pending:		{ NULL, &tsk.pending.head, {{0}}},	blocked:		{{0}},	alloc_lock:		SPIN_LOCK_UNLOCKED,	}
 # 688 "/home/root/kernel/kernel/include/linux/sched-defs.h"
 
 
 #define INIT_TASK_SIZE	2048*sizeof(long)
 
 
 union task_union {
 	struct task_struct task;
 	unsigned long stack[2048*sizeof(long) /sizeof(long)];
 };
 
 
 
 # 4 "/home/root/kernel/kernel/include/linux/sched.h" 2
 
 
 
 # 1 "/home/root/kernel/kernel/include/linux/mutex.h" 1
 
 #define __LINUX_MUTEX_H
 
 
 
 
 
 # 1 "/home/root/kernel/kernel/include/asm/current.h" 1
  
 
 
 
 # 13 "/home/root/kernel/kernel/include/asm/current.h"
 
 
 # 8 "/home/root/kernel/kernel/include/linux/mutex.h" 2
 
 # 1 "/home/root/kernel/kernel/include/asm/bitops.h" 1
  
 
 
  
 
 
 
 
 # 376 "/home/root/kernel/kernel/include/asm/bitops.h"
 
 
 # 9 "/home/root/kernel/kernel/include/linux/mutex.h" 2
 
 
 
 
 
 
 
 # 1 "/home/root/kernel/kernel/include/linux/measure.h" 1
 
 #define __MEASURE_H
 
 
 
  
 #define measure_gettimeofday(do) do_gettimeofday(do)
 #define TIMEVAL struct timeval
  
 
 
 
 
 
 
 
 
 
 # 1 "/home/root/kernel/kernel/include/linux/unistd.h" 1
 
 #define _LINUX_UNISTD_H_
 
 extern int errno;
 
  
 
 
 # 1 "/home/root/kernel/kernel/include/asm/unistd.h" 1
  
 
 
 
 #define _ASM_PPC_UNISTD_H_
 
  
 
 
 
 #define __NR_exit		  1
 #define __NR_fork		  2
 #define __NR_read		  3
 #define __NR_write		  4
 #define __NR_open		  5
 #define __NR_close		  6
 #define __NR_waitpid		  7
 #define __NR_creat		  8
 #define __NR_link		  9
 #define __NR_unlink		 10
 #define __NR_execve		 11
 #define __NR_chdir		 12
 #define __NR_time		 13
 #define __NR_mknod		 14
 #define __NR_chmod		 15
 #define __NR_lchown		 16
 #define __NR_break		 17
 #define __NR_oldstat		 18
 #define __NR_lseek		 19
 #define __NR_getpid		 20
 #define __NR_mount		 21
 #define __NR_umount		 22
 #define __NR_setuid		 23
 #define __NR_getuid		 24
 #define __NR_stime		 25
 #define __NR_ptrace		 26
 #define __NR_alarm		 27
 #define __NR_oldfstat		 28
 #define __NR_pause		 29
 #define __NR_utime		 30
 #define __NR_stty		 31
 #define __NR_gtty		 32
 #define __NR_access		 33
 #define __NR_nice		 34
 #define __NR_ftime		 35
 #define __NR_sync		 36
 #define __NR_kill		 37
 #define __NR_rename		 38
 #define __NR_mkdir		 39
 #define __NR_rmdir		 40
 #define __NR_dup		 41
 #define __NR_pipe		 42
 #define __NR_times		 43
 #define __NR_prof		 44
 #define __NR_brk		 45
 #define __NR_setgid		 46
 #define __NR_getgid		 47
 #define __NR_signal		 48
 #define __NR_geteuid		 49
 #define __NR_getegid		 50
 #define __NR_acct		 51
 #define __NR_umount2		 52
 #define __NR_lock		 53
 #define __NR_ioctl		 54
 #define __NR_fcntl		 55
 #define __NR_mpx		 56
 #define __NR_setpgid		 57
 #define __NR_ulimit		 58
 #define __NR_oldolduname	 59
 #define __NR_umask		 60
 #define __NR_chroot		 61
 #define __NR_ustat		 62
 #define __NR_dup2		 63
 #define __NR_getppid		 64
 #define __NR_getpgrp		 65
 #define __NR_setsid		 66
 #define __NR_sigaction		 67
 #define __NR_sgetmask		 68
 #define __NR_ssetmask		 69
 #define __NR_setreuid		 70
 #define __NR_setregid		 71
 #define __NR_sigsuspend		 72
 #define __NR_sigpending		 73
 #define __NR_sethostname	 74
 #define __NR_setrlimit		 75
 #define __NR_getrlimit		 76
 #define __NR_getrusage		 77
 #define __NR_gettimeofday	 78
 #define __NR_settimeofday	 79
 #define __NR_getgroups		 80
 #define __NR_setgroups		 81
 #define __NR_select		 82
 #define __NR_symlink		 83
 #define __NR_oldlstat		 84
 #define __NR_readlink		 85
 #define __NR_uselib		 86
 #define __NR_swapon		 87
 #define __NR_reboot		 88
 #define __NR_readdir		 89
 #define __NR_mmap		 90
 #define __NR_munmap		 91
 #define __NR_truncate		 92
 #define __NR_ftruncate		 93
 #define __NR_fchmod		 94
 #define __NR_fchown		 95
 #define __NR_getpriority	 96
 #define __NR_setpriority	 97
 #define __NR_profil		 98
 #define __NR_statfs		 99
 #define __NR_fstatfs		100
 #define __NR_ioperm		101
 #define __NR_socketcall		102
 #define __NR_syslog		103
 #define __NR_setitimer		104
 #define __NR_getitimer		105
 #define __NR_stat		106
 #define __NR_lstat		107
 #define __NR_fstat		108
 #define __NR_olduname		109
 #define __NR_iopl		110
 #define __NR_vhangup		111
 #define __NR_idle		112
 #define __NR_vm86		113
 #define __NR_wait4		114
 #define __NR_swapoff		115
 #define __NR_sysinfo		116
 #define __NR_ipc		117
 #define __NR_fsync		118
 #define __NR_sigreturn		119
 #define __NR_clone		120
 #define __NR_setdomainname	121
 #define __NR_uname		122
 #define __NR_modify_ldt		123
 #define __NR_adjtimex		124
 #define __NR_mprotect		125
 #define __NR_sigprocmask	126
 #define __NR_create_module	127
 #define __NR_init_module	128
 #define __NR_delete_module	129
 #define __NR_get_kernel_syms	130
 #define __NR_quotactl		131
 #define __NR_getpgid		132
 #define __NR_fchdir		133
 #define __NR_bdflush		134
 #define __NR_sysfs		135
 #define __NR_personality	136
 #define __NR_afs_syscall	137 
 #define __NR_setfsuid		138
 #define __NR_setfsgid		139
 #define __NR__llseek		140
 #define __NR_getdents		141
 #define __NR__newselect		142
 #define __NR_flock		143
 #define __NR_msync		144
 #define __NR_readv		145
 #define __NR_writev		146
 #define __NR_getsid		147
 #define __NR_fdatasync		148
 #define __NR__sysctl		149
 #define __NR_mlock		150
 #define __NR_munlock		151
 #define __NR_mlockall		152
 #define __NR_munlockall		153
 #define __NR_sched_setparam		154
 #define __NR_sched_getparam		155
 #define __NR_sched_setscheduler		156
 #define __NR_sched_getscheduler		157
 #define __NR_sched_yield		158
 #define __NR_sched_get_priority_max	159
 #define __NR_sched_get_priority_min	160
 #define __NR_sched_rr_get_interval	161
 #define __NR_nanosleep		162
 #define __NR_mremap		163
 #define __NR_setresuid		164
 #define __NR_getresuid		165
 #define __NR_query_module	166
 #define __NR_poll		167
 #define __NR_nfsservctl		168
 #define __NR_setresgid		169
 #define __NR_getresgid		170
 #define __NR_prctl		171
 #define __NR_rt_sigreturn	172
 #define __NR_rt_sigaction	173
 #define __NR_rt_sigprocmask	174
 #define __NR_rt_sigpending	175
 #define __NR_rt_sigtimedwait	176
 #define __NR_rt_sigqueueinfo	177
 #define __NR_rt_sigsuspend	178
 #define __NR_pread		179
 #define __NR_pwrite		180
 #define __NR_chown		181
 #define __NR_getcwd		182
 #define __NR_capget		183
 #define __NR_capset		184
 #define __NR_sigaltstack	185
 #define __NR_sendfile		186
 #define __NR_getpmsg		187	
 #define __NR_putpmsg		188	
 #define __NR_vfork		189
 #define __NR_ugetrlimit		190	
 #define __NR_mmap2		192
 #define __NR_truncate64		193
 #define __NR_ftruncate64	194
 #define __NR_stat64		195
 #define __NR_lstat64		196
 #define __NR_fstat64		197
 #define __NR_pciconfig_read	198
 #define __NR_pciconfig_write	199
 #define __NR_pciconfig_iobase	200
 #define __NR_multiplexer	201
 #define __NR_getdents64		202
 #define __NR_pivot_root		203
 #define __NR_fcntl64		204
 #define __NR_madvise		205
 #define __NR_mincore		206
 
  
 #define __NR_sched_rr_set_interval		398
 #define __NR_setname							399
 
 #define __NR_measure_register				400
 #define __NR_measure_getinfo				401
 
 #define __NR_rk_resource_set_create    402
 #define __NR_rk_resource_set_destroy   403
 #define __NR_rk_resource_set_attach_process  404
 #define __NR_rk_resource_set_detach_process	405
 #define __NR_rk_reserve_create    		406
 #define __NR_rk_reserve_delete			407
 #define __NR_rk_reserve_ctl       		408
 
 #define __NR_timer_create              411
 #define __NR_timer_delete              412
 #define __NR_timer_settime             413
 #define __NR_timer_gettime             414
 #define __NR_timer_getoverrun          415
 
 #define __NR_rk_resource_sets_get_num		416
 #define __NR_rk_resource_sets_get_list		417
 #define __NR_rk_reserves_get_num				418
 #define __NR_rk_reserves_get_list			419
 #define __NR_rk_reserve_get_attr				420
 #define __NR_rk_reserves_set_scheduling_policy	421
 #define __NR_rk_reserves_get_scheduling_policy	422
 #define __NR_rt_make_periodic					423
 #define __NR_rt_wait_for_start_time			424
 #define __NR_rt_wait_for_next_period		425
 #define __NR_rt_process_get_period			426
 #define __NR_rt_get_clock_frequency			427
 #define __NR_rk_resource_set_get_name		428
 #define __NR_rk_resource_set_get_rsv 		429
 #define __NR_rt_process_set_period			430
 #define __NR_rk_resource_set_get_num_procs	431
 #define __NR_rk_resource_set_get_proclist	432
 #define __NR_rk_inherit_mode					433
 #define __NR_rt_mutex_create 					434
 #define __NR_rt_mutex_destroy 				435
 #define __NR_rt_mutex_trylock 				436
 #define __NR_rt_mutex_lock 					437
 #define __NR_rt_mutex_unlock					438
 #define __NR_rk_resource_set_set_name     439
 #define __NR_rk_proc_get_rset             440
 #define __NR_rk_signal                    441
 #define __NR_rk_resource_set_attach_socket 442
 #define __NR_rk_resource_set_detach_socket 443
 #define __NR_rt_set_prio_ceiling				444
 
 #define __NR(n)	#n
 
 
 #define __syscall_return(type) return (__sc_err & 0x10000000 ? errno = __sc_ret, __sc_ret = -1 : 0), (type) __sc_ret
 
 
 
 #define __syscall_clobbers "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11", "r12"
 
 
 #define _syscall0(type,name)	type name(void)	{	unsigned long __sc_ret, __sc_err;	{	register unsigned long __sc_0 __asm__ ("r0");	register unsigned long __sc_3 __asm__ ("r3");	__sc_0 = __NR_##name;	__asm__ __volatile__	("sc           \n\t"	"mfcr %1      " 	: "=&r" (__sc_3), "=&r" (__sc_0)	: "0"   (__sc_3), "1"   (__sc_0)	: __syscall_clobbers);	__sc_ret = __sc_3;	__sc_err = __sc_0;	}	__syscall_return (type);	}
 # 298 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 #define _syscall1(type,name,type1,arg1)	type name(type1 arg1)	{	unsigned long __sc_ret, __sc_err;	{	register unsigned long __sc_0 __asm__ ("r0");	register unsigned long __sc_3 __asm__ ("r3");	__sc_3 = (unsigned long) (arg1);	__sc_0 = __NR_##name;	__asm__  __volatile__	("sc           \n\t"	"mfcr %1      "	: "=&r" (__sc_3), "=&r" (__sc_0)	: "0"   (__sc_3), "1"   (__sc_0)	: __syscall_clobbers);	__sc_ret = __sc_3;	__sc_err = __sc_0;	}	__syscall_return (type);	}
 # 320 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 #define _syscall2(type,name,type1,arg1,type2,arg2)	type name(type1 arg1, type2 arg2)	{	unsigned long __sc_ret, __sc_err;	{	register unsigned long __sc_0 __asm__ ("r0");	register unsigned long __sc_3 __asm__ ("r3");	register unsigned long __sc_4 __asm__ ( "r4");	__sc_3 = (unsigned long) (arg1);	__sc_4 = (unsigned long) (arg2);	__sc_0 = __NR_##name;	__asm__ __volatile__	("sc           \n\t"	"mfcr %1      "	: "=&r" (__sc_3), "=&r" (__sc_0)	: "0"   (__sc_3), "1"   (__sc_0),	"r"   (__sc_4)	: __syscall_clobber s);	__sc_ret = __sc_3;	__sc_err = __sc_0;	}	__syscall_return (type);	}
 # 345 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3)	type name(type1 arg1, type2 arg2, type3 arg3)	{	unsigned long __sc_ret, __sc_err;	{	register unsigned long __sc_0 __asm__ ("r0");	register unsigned long __sc_3 __asm__ ("r3");	register unsigne d long __sc_4 __asm__ ("r4");	register unsigned long __sc_5 __asm__ ("r5");	__sc_3 = (unsigned long) (arg1);	__sc_4 = (unsigned long) (arg2);	__sc_5 = (unsigned long) (arg3);	__sc_0 = __NR_##name;	__asm__ __volatile__	("sc           \n\t"	"mfcr %1      " 	: "=&r" (__sc_3), "=&r" (__sc_0)	: "0"   (__sc_3), "1"   (__sc_0),	"r"   (__sc_4),	"r"   (__sc_5)	: __syscall_clobbers);	__sc_ret = __sc_3;	__sc_err = __sc_0;	}	__syscall_return (type);	}
 # 373 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4)	{	unsigned long __sc_ret, __sc_err;	{	register unsigned long __sc_0 __asm__ ("r0");	register unsigned long __sc_3 __asm__ ( "r3");	register unsigned long __sc_4 __asm__ ("r4");	register unsigned long __sc_5 __asm__ ("r5");	register unsigned long __sc_6 __asm__ ("r6");	__sc_3 = (unsigned long) (arg1);	__sc_4 = (unsigned long) (arg2);	__sc_5 = (unsigned long) (arg3);	__sc_6 = ( unsigned long) (arg4);	__sc_0 = __NR_##name;	__asm__ __volatile__	("sc           \n\t"	"mfcr %1      "	: "=&r" (__sc_3), "=&r" (__sc_0)	: "0"   (__sc_3), "1"   (__sc_0),	"r"   (__sc_4),	"r"   (__sc_5),	"r"   (__sc_6)	: __syscall_clobbers);	__sc_ret = __s c_3;	__sc_err = __sc_0;	}	__syscall_return (type);	}
 # 404 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)	{	unsigned long __sc_ret, __sc_err;	{	register unsigned long __sc_0 __asm__ ("r0");	register unsigne d long __sc_3 __asm__ ("r3");	register unsigned long __sc_4 __asm__ ("r4");	register unsigned long __sc_5 __asm__ ("r5");	register unsigned long __sc_6 __asm__ ("r6");	register unsigned long __sc_7 __asm__ ("r7");	__sc_3 = (unsigned long) (arg1);	__sc_4  = (unsigned long) (arg2);	__sc_5 = (unsigned long) (arg3);	__sc_6 = (unsigned long) (arg4);	__sc_7 = (unsigned long) (arg5);	__sc_0 = __NR_##name;	__asm__ __volatile__	("sc           \n\t"	"mfcr %1      "	: "=&r" (__sc_3), "=&r" (__sc_0)	: "0"   (__sc_3) , "1"   (__sc_0),	"r"   (__sc_4),	"r"   (__sc_5),	"r"   (__sc_6),	"r"   (__sc_7)	: __syscall_clobbers);	__sc_ret = __sc_3;	__sc_err = __sc_0;	}	__syscall_return (type);	}
 # 438 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 
 # 473 "/home/root/kernel/kernel/include/asm/unistd.h"
 
 
 
 # 9 "/home/root/kernel/kernel/include/linux/unistd.h" 2
 
 
 
 # 19 "/home/root/kernel/kernel/include/linux/measure.h" 2
 
 
 
 # 1 "/home/root/kernel/kernel/include/rk/rkmod.h" 1
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 #define 	RK_RKMOD_H
 
 
 # 1 "/home/root/kernel/kernel/include/linux/timespec.h" 1
 
 #define _TIMESPEC_H_
 
 #define NANOSEC_PER_SEC		(1000000000L)
 #define USEC_PER_SEC (1000000L)
 
 #define timespec_zero(time) { (time).tv_sec = 0;  (time).tv_nsec = 0; }
 
 #define 	timespec_add_nsec(result, nanos) do { if (((result).tv_nsec += (nanos)) >= NANOSEC_PER_SEC) { (result).tv_nsec -= NANOSEC_PER_SEC; (result).tv_sec++; } } while (0)
 
 
 
 
 
 
 #define timespec_add(result, addend) do { (result).tv_nsec += (addend).tv_nsec; (result).tv_sec += (addend).tv_sec; if ((result).tv_nsec >= NANOSEC_PER_SEC) { (result).tv_nsec -= NANOSEC_PER_SEC; (result).tv_sec++; } } while (0)
 
 
 
 
 
 
 
 
 #define timespec_sub(result, subtrahend) do { if ((result).tv_nsec >= (subtrahend).tv_nsec) { (result).tv_nsec -= (subtrahend).tv_nsec; (result).tv_sec -= (subtrahend).tv_sec; } else { (result).tv_nsec += NANOSEC_PER_SEC; (result).tv_nsec -= (subtrahend) .tv_nsec; (result).tv_sec -= (subtrahend).tv_sec + 1; } } while (0)
 # 35 "/home/root/kernel/kernel/include/linux/timespec.h"
 
 #define timespec_set(time, newtime) do { (time).tv_sec = (newtime).tv_sec; (time).tv_nsec = (newtime).tv_nsec; } while (0)
 
 
 
 
 #define timespec_cmp(time1, time2) (((time1).tv_sec < (time2).tv_sec) || (((time1).tv_sec == (time2).tv_sec) && ((time1).tv_nsec <= (time2).tv_nsec)))
 
 
 
 
 #define timespec_ge(time1, time2) (((time1).tv_sec > (time2).tv_sec) || (((time1).tv_sec == (time2).tv_sec) && ((time1).tv_nsec >= (time2).tv_nsec)))	
 
 
 
 
 #define timespec_gt(time1, time2) (((time1).tv_sec > (time2).tv_sec) || (((time1).tv_sec == (time2).tv_sec) && ((time1).tv_nsec > (time2).tv_nsec)))
 
 
 
 
 #define timespec_le(time1, time2) (((time1).tv_sec < (time2).tv_sec) || (((time1).tv_sec == (time2).tv_sec) && ((time1).tv_nsec <= (time2).tv_nsec)))
 
 
 
 
 #define timespec_lt(time1, time2) (((time1).tv_sec < (time2).tv_sec) || (((time1).tv_sec == (time2).tv_sec) && ((time1).tv_nsec  < (time2).tv_nsec)))
 
 
 
 
 #define timespec_eq(time1,time2) (((time1).tv_sec == (time2).tv_sec) &&	((time1).tv_nsec == (time2).tv_nsec))
 
 
 
 #define timespec_min(time1,time2) (timespec_le((time1),(time2)) ? (time1) : (time2))	
 
 
 #define timespec_max(time1,time2) (timespec_ge((time1),(time2)) ? (time1) : (time2))	
 
 
 #define timespec_ne(time1,time2) (((time1).tv_sec != (time2).tv_sec) || ((time1).tv_nsec != (time2).tv_nsec))
 
 
 
 #define timespec_nonzero(time) ((time).tv_nsec || (time).tv_sec)
 
 
 #define timespec_valid(time) ((time).tv_sec >= 0 && (time).tv_nsec >= 0 && (time).tv_nsec <= NANOSEC_PER_SEC)
 
 
 
 
 #define timespec2micro(time) (((time).tv_sec * USEC_PER_SEC) + ((time).tv_nsec / 1000))
 
 
 #define timespec2nano(time) ((((unsigned long long)(time).tv_sec) * NANOSEC_PER_SEC) + ((time).tv_nsec))
 
 
 #define nano2timespec(nanos, ts) do {	ts.tv_sec = nanos / NANOSEC_PER_SEC; ts.tv_nsec = nanos - ts.tv_sec * NANOSEC_PER_SEC; } while (0)
 
 
 
 
 
 # 34 "/home/root/kernel/kernel/include/rk/rkmod.h" 2
 
 
 
 # 1 "/home/root/kernel/kernel/include/rk/rk.h" 1
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 #define RK_RK_H
 
 
 
 
 
 # 51 "/home/root/kernel/kernel/include/rk/rk.h"
 
 
 
 
  
 
 
 #define RK_TIMESYS_GRP 500
 
 # 70 "/home/root/kernel/kernel/include/rk/rk.h"
 
 
 #define NULL_RK_TIMER     ((rk_timer_t)0)
 #define NULL_RESOURCE_SET ((rk_resource_set_t)0)
 #define NULL_RESERVE      ((rk_reserve_t)0)
 
 
  
 
 
 enum rk_reserve_mode
 {
 	RSV_HARD	=0x1,
 	RSV_FIRM	=0x2,
 	RSV_SOFT	=0x4,
 };
 typedef enum rk_reserve_mode rk_reserve_mode_t;
 
 
 struct rk_reserve_param {
 	rk_reserve_mode_t	sch_mode;	 
 	rk_reserve_mode_t	enf_mode;	 
 	rk_reserve_mode_t	rep_mode;	 
 };
 typedef struct rk_reserve_param rk_reserve_param_data_t;
 typedef struct rk_reserve_param *rk_reserve_param_t;
 
 
 struct cpu_reserve_attr {
 	struct timespec compute_time;
 	struct timespec period;
 	struct timespec deadline;
 	struct timespec blocking_time;
 	struct timespec start_time;
 	rk_reserve_param_data_t reserve_type;
 	int processor;
 };
 
 typedef struct cpu_reserve_attr cpu_reserve_attr_data_t;
 typedef struct cpu_reserve_attr *cpu_reserve_attr_t;
 
 #define RK_IFNAMSIZ 16			
 
  
 struct net_reserve_attr {
   size_t amount;
   struct timespec net_time;
   struct timespec period;
   struct timespec deadline;
   struct timespec blocking_time;
   struct timespec start_time;
   rk_reserve_param_data_t reserve_type;
   size_t buffer_space;
   char dev_name[16 ];
 };
 
 typedef struct net_reserve_attr net_reserve_attr_data_t;
 typedef struct net_reserve_attr *net_reserve_attr_t;
 
 
  
 
 
 enum rk_reserve_type
 {
 	RSV_NULL	=0x0,
 	RSV_CPU       =0x1,
 	RSV_NET,
 	RSV_NETR,
 	RSV_FS,
 	RSV_MEM,
 	RSV_DEV,
 };
 typedef enum rk_reserve_type	rk_reserve_type_t;
 
 
 #define RK_NAME_LEN			16
 #define RSET_NAME_LEN		RK_NAME_LEN
 
 #define RATE_MONOTONIC		0
 #define DEADLINE_MONOTONIC 		1
 #define NUM_CPU_RESERVE_POLICIES	(DEADLINE_MONOTONIC + 1)
 #define RK_ANY_CPU (-1)
 
  
 
 
 #define RK_RSV_ENFORCE 1
 #define RK_DEADLINE_MISSED  2
 
  
 #define RT_MIN_PERIOD     (struct timespec){0, 20000}           
 
 # 270 "/home/root/kernel/kernel/include/rk/rk.h"
 
 
 
 
 
 
 
 # 37 "/home/root/kernel/kernel/include/rk/rkmod.h" 2
 
 
 typedef unsigned long long * cpu_tick_t;
 
 #define NANOSEC		1000000000L
 #define MICROSEC		1000000L
 
 #define RK_FALSE			0
 #define RK_TRUE			1
 
 #define RK_HISTORY_SIZE 32 
 
 #define LINUX_TIMESHARE_PRIORITY 0
 #define LINUX_REALTIME_PRIORITY 256
 
  
 
 
 enum rt_process_type
 {
 	APERIODIC	=0x1,
 	PERIODIC	=0x2,
 	SPORADIC	=0x4,
 };
 typedef enum rt_process_type	rt_process_type_t;
 
  
 
 
 
 
 
 enum rk_reserve_state
 {
 	RSV_IS_NULL	  =0x0,	 
 	RSV_IS_RUNNING  =0x1,	 
 	RSV_IS_DEPLETED =0x10,	 
 	RSV_IS_STARTING = 0x100,    
 	RSV_IS_DYING	 = 0x200,	 
 };
 typedef	enum rk_reserve_state	rk_reserve_state_t;
 
 # 92 "/home/root/kernel/kernel/include/rk/rkmod.h"
 
 
  
 
 
 typedef struct rk_resource_set *rk_resource_set_t;
 typedef struct rk_reserve *rk_reserve_t;
 
  
 extern mutex_t  rslist_lock;
 extern mutex_t  tasklist_lock;	
 extern old_rwlock_t rk_lock;
 
  
 
 
 struct rk_resource_set {
 	char rs_name[16  ];     
 	char rs_destructible;            
 	struct list_head rs_list;        
 	struct list_head rs_task_list;   
 	int num_tasks;				         
 	rk_reserve_t cpu_rsv;            
 	rk_reserve_t net_rsv;            
 	rk_reserve_t netr_rsv;           
 	struct proc_dir_entry *rs_proc_dir;  
 };
 
 struct rk_reserve_ops {
 	int  (*destroy) (rk_reserve_t);                       
 	void (*start_account) (rk_reserve_t);    
 	void (*stop_account) (rk_reserve_t, cpu_tick_t);      
 	void (*replenish) (rk_reserve_t, cpu_tick_t);         
 	void (*enforce) (rk_reserve_t);                       
 	void (*attach)(rk_reserve_t, struct task_struct *);   
 	void (*detach)(rk_reserve_t, struct task_struct *);   
 	int  (*get_history)(rk_reserve_t, char *);            
 	int  (*read_proc) (rk_reserve_t, char *);             
 };
 
 struct rk_reserve {
 	rk_resource_set_t rsv_rs;                     
 	rk_reserve_type_t rsv_type;                   
 	rk_reserve_state_t rsv_state;                 
 	struct rk_reserve_ops * rsv_ops;              
 	void * rsv_rsv;                               
 	ktimer *rsv_replenish_tmr;                    
 	rk_reserve_param_data_t rsv_reserve_param;    
 	struct list_head siglist;                     
 	 
 	struct proc_dir_entry *rsv_proc_entry;        
 	struct proc_dir_entry *rsv_proc_history;      
 };
 
 
  
 
 
 
 typedef unsigned long cpu_capacity_t;
 typedef unsigned long long	cpu_capacity_quad_t;
 
 struct cpu_reserve {
 	rk_reserve_t rsv;                       
 	struct list_head cpu_list;              
 	cpu_tick_data_t cpu_period_used_ticks;  
 	cpu_tick_data_t cpu_period_start_ticks; 
 	cpu_tick_data_t cpu_period_available_ticks;   
 	struct wait_queue *depleted_wait;  	     
 
 	 
 	cpu_tick_data_t * cpu_period_prev_used_ticks;
 	cpu_capacity_t cpu_max_utilization;
 	cpu_capacity_t cpu_min_utilization;
 	struct {
 		unsigned long	total_count;        	 
 		cpu_capacity_quad_t total_utils;     
 	} cpu_average;
 
 	 
 	cpu_reserve_attr_data_t cpu_res_attr;   
 	cpu_tick_data_t cpu_time_ticks;	       
 	int cpu_priority_index;         			 
 	cpu_tick_data_t cpu_period_ticks;	    
 	cpu_capacity_t cpu_capacity;	          
 };
 
 typedef struct cpu_reserve * cpu_reserve_t;
 #define NULL_CPU_RESERVE ((cpu_reserve_t)0)
 #define BOUND_CPU(crsv) ((crsv)->cpu_res_attr.processor)
 
  
 
 
 
 struct rk_cpu_data_struct {
 	volatile int in_intr;               
 	cpu_reserve_t current_cpu_reserve;  
 	struct list_head cpu_list;          
 	cpu_capacity_t current_capacity;    
 	ktimer *enforce_tmr;                
 	struct task_struct *current_task;   
 };
 
  
 
 
 struct rk_signal_struct {
 	rk_reserve_t rsv;           
 	struct list_head tx_list;   
 	struct task_struct *task;   
 	struct list_head rx_list;   
 	sigevent_t ev;              
 	struct sigqueue *sq;         
 };
 
 typedef struct rk_signal_struct rk_signal_t;
 
 
  
 
 
 extern struct rk_cpu_data_struct rk_cpu_data[1 ];  
 extern struct list_head rk_resource_set_root;      
 
  
 
 
 struct task_struct;
 
  
 extern int	(*rk_timer_interrupt_hook)(void);
  
 extern void	(*rk_kernel_intr_in_hook)(void);
  
 extern void	(*rk_restore_all_hook)(struct pt_regs regs);
 extern int	(*rk_ret_with_reschedule_hook)(struct pt_regs regs);
  
 extern void	(*rk_schedule_hook)(struct task_struct *, struct task_struct *);
 extern void (*rt_adjbaseprio_hook)(struct task_struct *, int);
  
 extern void (*rk_task_cleanup_hook)(struct task_struct *);
  
 extern void (*rk_fork_hook)(struct task_struct *);
 
 # 256 "/home/root/kernel/kernel/include/rk/rkmod.h"
 
 
  
 #define CAPACITY_INT(x)	((x)/100)
 #define CAPACITY_FRAC(x)	((x)-(x/100)*100)
 #define INT2CAPACITY(x)	((x)*10000)
 #define CAPACITY2INT(x)	((x)/10000)
 #define PERCENT2CAPACITY(x)	((x)*100)
 #define CAPACITY_OF(c,t)	(INT2CAPACITY(c)/(t))
 
 #define TICK2JIFFIES(tick)       tick2jiffies(tick, &cpu_tick_at_last_jiffy)
 #define TICK2JIFFIES2(tick,last) tick2jiffies(tick,last)
 
 #define bzero(p,s)	            memset(p, 0, s)
 
 
 
 
 #define rk_debug(f, a...) 
 
 
 
 extern int rk_count;
 void rk_inc_use_count(void);
 void rk_dec_use_count(void);
 
  
 
 
 #define PERMISSION_CHECK_DISABLED
 
 #define rk_capable() RK_TRUE
 # 298 "/home/root/kernel/kernel/include/rk/rkmod.h"
 
 
  
 
 
 
 
 
     
 static inline void
 rs_proc_list_apply(struct list_head *proc_list_head, 
 	void (*func)(struct task_struct *p, int arg), int arg)
 {
 	struct list_head *proc_list = proc_list_head->next;
 	struct task_struct *p;
 
 	while (proc_list != proc_list_head) {
 		p = ((  struct task_struct  *)((char *)( proc_list )-(unsigned long)(&((  struct task_struct  *)0)->  rk_proclist ))) ;
 				
 		func(p, arg);
 
 		proc_list = proc_list->next;
 	}
 }
 
  
 
 
 
 
 
     
 static inline void
 rs_reserve_apply(struct list_head *proc_list_head, 
 	void (*func)(rk_reserve_t rsv, struct task_struct *p), rk_reserve_t rsv)
 {
 	struct list_head *proc_list = proc_list_head->next;
 	struct task_struct *p;
 
 	while (proc_list != proc_list_head) {
 		p = ((  struct task_struct  *)((char *)( proc_list )-(unsigned long)(&((  struct task_struct  *)0)->  rk_proclist ))) ;
 		func(rsv, p);
 
 		proc_list = proc_list->next;
 	}
 }
 
  
 
 
 static inline int ceiling(unsigned long dividend, unsigned long divider)
 {
 	int quotient;
 	quotient = dividend / divider;
 
 	if (divider * quotient == dividend) return(quotient);
 	else return(++quotient);
 }
 
  
 
 
 static inline int 
 timespec_ceiling(struct timespec dividend, struct timespec divider)	
 {	
 	int quotient = 1;
 	struct timespec divider1; 
 	
 	divider1 = divider;
 	while (((( dividend ).tv_sec > (  divider1 ).tv_sec) || ((( dividend ).tv_sec == (  divider1 ).tv_sec) && (( dividend ).tv_nsec > (  divider1 ).tv_nsec))) ) {
 		do { ( divider1 ).tv_nsec += (  divider ).tv_nsec; ( divider1 ).tv_sec += (  divider ).tv_sec; if (( divider1 ).tv_nsec >= (1000000000L) ) { ( divider1 ).tv_nsec -= (1000000000L) ; ( divider1 ).tv_sec++; } } while (0) ;
 		quotient++;
 	}
 	return(quotient);
 }
 
  
 
 
 
 
 static inline int 
 efficient_timespec_ceil(struct timespec dividend, struct timespec divider)
 {	
 	unsigned long dividend_microsecs, divider_microsecs;
 
 	if ((divider.tv_sec  ==  0) && (divider.tv_nsec == 0)) {
 		return -1;
 	}
 	if ((dividend.tv_sec >= 1000) || (divider.tv_sec >= 1000) ){
 		 
 		return(timespec_ceiling(dividend, divider));
 	}
 
 #define MICROSECS_PER_SECOND          1000000
 
 	   
 	dividend_microsecs = (dividend.tv_sec % 1000) * 1000000   + 
 		(dividend.tv_nsec / 1000);  
 	divider_microsecs = (divider.tv_sec % 1000) * 1000000   + 
 		(divider.tv_nsec / 1000);  
 	return(ceiling(dividend_microsecs, divider_microsecs));  
 }
 
  
 
 
 static inline struct timespec 
 timespec_mult(struct timespec multiplicand, int multiplier)
 {	
 	struct timespec result;
 	
 	result.tv_sec = 0;
 	result.tv_nsec = 0;
 	
 	do {
 		do { ( result ).tv_nsec += (  multiplicand ).tv_nsec; ( result ).tv_sec += (  multiplicand ).tv_sec; if (( result ).tv_nsec >= (1000000000L) ) { ( result ).tv_nsec -= (1000000000L) ; ( result ).tv_sec++; } } while (0) ;
 	} while (--multiplier);
 	
 	return(result);
 }
 
 #define MIN_RK_SYSCALL 402
  
 #define MAX_RK_SYSCALL 443
 
  
 int rk_valid_rs(rk_resource_set_t);
 int rk_valid_rsv(rk_reserve_t);
 
 int resource_set_attach_process(rk_resource_set_t, task_struct *tsk);
 int resource_set_detach_process(rk_resource_set_t, task_struct *tsk);
 int rk_resource_set_attach_reserve(rk_resource_set_t, rk_reserve_t);
 void rk_resource_set_detach_reserve(rk_resource_set_t, rk_reserve_t);
 rk_resource_set_t rk_resource_set_create(char *name);
 
  
 rk_reserve_t rk_reserve_create(struct timespec);
 extern int rk_reserve_destroy(rk_reserve_t);
 void reserve_send_signal(rk_reserve_t rsv, int type);
 
  
 int call_cpu_reserve_create(rk_resource_set_t, rk_reserve_t *, void *);
 int cpu_reserve_create(rk_resource_set_t, rk_reserve_t *, cpu_reserve_attr_t);
 int call_cpu_reserve_ctl(rk_resource_set_t, void *);
 int cpu_reserve_ctl(rk_resource_set_t, cpu_reserve_attr_t);
 int cpu_reserve_delete(rk_resource_set_t rs);
 int rk_cpu_reserves_get_num(void);
 int rk_cpu_reserves_get_list(rk_reserve_t *, int);
 int rk_cpu_reserves_get_scheduling_policy(void);
 int rk_cpu_reserves_set_scheduling_policy(int);
 int rk_cpu_reserve_get_attr(rk_reserve_t, void *);
 void cpu_reserve_init(void);
 
  
 void rt_mutex_init(void);
 void rk_init(void);
 void rk_enable_schedule_cpu(void);
 void rk_disable_schedule_cpu(void);
 void rk_enable_isr(void);
 void rk_disable_isr(void);
 int  rk_ret_with_reschedule(struct pt_regs regs);
 void rk_restore_all(struct pt_regs regs);
 void rk_proc_rs_create(rk_resource_set_t);
 void rk_proc_rs_destroy(rk_resource_set_t);
 void rk_proc_reserve_create(rk_reserve_t);
 void rk_proc_reserve_destroy(rk_reserve_t);
 void rk_proc_cleanup(void);
 void rk_reserve_signals_cleanup(rk_reserve_t);
 
  
 
 
 rk_resource_set_t sys_rk_resource_set_create(char *name);
 int sys_rk_resource_set_destroy(rk_resource_set_t rs);
 int sys_rk_resource_set_attach_process(rk_resource_set_t rs, pid_t pid);
 int sys_rk_resource_set_detach_process(rk_resource_set_t rs, pid_t pid);
 int sys_rk_resource_sets_get_num(void);
 int sys_rk_resource_sets_get_list(rk_resource_set_t *rs, int size);
 int sys_rk_resource_set_get_proclist(rk_resource_set_t, pid_t *, int);
 int sys_rk_resource_set_get_num_procs(rk_resource_set_t rs);
 int sys_rk_resource_set_get_name(rk_resource_set_t rs, char * name);
 int sys_rk_resource_set_set_name(rk_resource_set_t rs, char *name);
 rk_reserve_t sys_rk_resource_set_get_rsv(rk_resource_set_t, rk_reserve_type_t);
 
  
 
 
 int sys_rk_reserve_create(rk_resource_set_t, rk_reserve_type_t, 
 						  rk_reserve_t *, void *);
 int sys_rk_reserve_delete(rk_resource_set_t rs, rk_reserve_type_t type);
 int sys_rk_reserve_ctl(rk_resource_set_t, rk_reserve_type_t, void *);
 int sys_rk_reserves_get_num(rk_reserve_type_t type);
 int sys_rk_reserves_get_list(rk_reserve_t *, int, rk_reserve_type_t);
 int sys_rk_reserve_get_attr(rk_reserve_t, void *, rk_reserve_type_t);
 int sys_rk_reserves_get_scheduling_policy(rk_reserve_type_t type);
 int sys_rk_reserves_set_scheduling_policy(int policy, rk_reserve_type_t type);
 int sys_rk_signal(pid_t pid, void *data, int type, sigevent_t *evp);
 rk_resource_set_t sys_rk_proc_get_rset(pid_t pid);
 
  
 
 
 int sys_rt_make_periodic(struct timespec *_period, struct timespec *_start);
 int sys_rt_wait_for_next_period(void);
 int sys_rt_process_get_period(int pid, struct timespec *period);
 int sys_rt_process_set_period(int pid, struct timespec *period);
 
  
 
 
 unsigned long sys_rt_get_clock_frequency(void);
 void sys_rk_inherit_mode(int mode);
 
 
 
 # 22 "/home/root/kernel/kernel/include/linux/measure.h" 2
 
 
 
 
  
 
 
 #define MEASURE_BEGIN 0
 #define MEASURE_SLICE 1	
 #define MEASURE_END   2	
 #define MEASURE_INTERRUPT 3
 #define MEASURE_IRQ 4 	
 #define MEASURE_SOFTIRQ 5 	
 #define MEASURE_SD 6		
 #define MEASURE_CS 7		
 #define MEASURE_DELAY 8
 #define MEASURE_STACK 9
 #define MEASURE_NEWPROCESS		100 
 #define MEASURE_ENDPROCESS		101 
 #define MEASURE_SYSCALL		    102 
 #define MEASURE_CONTEXTSWAP_TO	103 
 #define MEASURE_USER_EVENT		104 
 #define MEASURE_EXEC 		    105 
 
 #define MEASURE_CRES_CREATE		110 
 #define MEASURE_CRES_DESTROY	111 
 #define MEASURE_CRES_SWAPTO		114 
 
 #define MEASURE_NRES_CREATE        115 
 #define MEASURE_NRES_DESTROY       116 
 #define MEASURE_NRES_SWAPTO        117 
 
 #define MEASURE_MUT_CREATE		120 
 #define MEASURE_MUT_DESTROY		121 
 #define MEASURE_MUT_LOCK		122 
 #define MEASURE_MUT_UNLOCK		123 
 #define MEASURE_MUTEX_BLOCKING  124  
 #define MEASURE_MUTEX_TRYLOCK_FAILED 125 
 
 #define MEASURE_RSET_CREATE		130 
 #define MEASURE_RSET_DESTROY	131 
 #define MEASURE_RSET_ATTACH 	132 
 #define MEASURE_RSET_DETACH		133 
 
 #define MEASURE_RT_PER_START	140 
 #define MEASURE_RT_PER_NEXT		141 
 
 #define MEASURE_DISCARDED_DATA  142 
 
 #define MEASURE_NRRES_CREATE     143 
 #define MEASURE_NRRES_DESTROY    144 
 #define MEASURE_NRRES_SWAPTO     145 
 
 #define MEASURE_CHANGE_PRIORITY    146 
 #define MEASURE_MAKE_PERIODIC      147 
 #define MEASURE_CHANGE_PERIOD      148 
 
 #define MEASURE_RESERVE_CTL 	   149 
 
 
 #define MEASURE_CUSTOM_MIN         300 
 #define MEASURE_CUSTOM_MAX         500 
 
  
 
 
 #define MEASURE_OFF             		 0 
 #define MEASURE_ON              		 1 
 #define MEASURE_REGISTER_SYS     		 2 
 #define MEASURE_UNREGISTER_SYS  		 3 
 #define MEASURE_THRESHOLD       		 6 
 #define MEASURE_SET_IRQ         		 7 
 #define MEASURE_CLEAR_IRQ       		 8 
 #define MEASURE_GET_IRQ         		 9 
 #define MEASURE_MONITOR_INTERRUPT		10 
 #define MEASURE_MONITOR_PAGEFAULT		11 
 #define MEASURE_MONITOR_SOFTIRQ		12 
 #define MEASURE_MONITOR_SCHEDULE		13 
 #define MEASURE_MONITOR_CS 			14 
 #define MEASURE_MONITOR_CONTEXTSWAP 	15 
 #define MEASURE_MONITOR_NEWPROCESS 	16 
 #define MEASURE_MONITOR_ENDPROCESS 	17 
 #define MEASURE_NUM_CPUS		       18 
 #define MEASURE_USER                      19 
 #define MEASURE_LOG_MASK			21
 #define MEASURE_GET_LOG_MASK	    22
 
  
 
 
  
 #define MUTEX_FAMILY_EVENT     	0x000001
  
 #define PROCESS_FAMILY_EVENT	0x000002
  
 #define RESERVE_FAMILY_EVENT	0x000004
  
 #define RESOURCE_FAMILY_EVENT	0x000008 
  
 #define PERIOD_FAMILY_EVENT		0x000010 
  
 #define PRIORITY_FAMILY_EVENT   0x000020 
 
 typedef struct {
 	unsigned int flags;          
 	pid_t pid;
 	unsigned long data;          
 	unsigned long data2;         
 	unsigned long long measure;  
 } MEASURE;
 
 #define MEASURE_MAX_ENTRY 10000 
 
 int sys_measure_register(int pid,int cmd,unsigned long data);
 int sys_measure_getinfo(MEASURE *buf,int no_seg);
 
 
 
 
 
 
 #define measure_user(flag) measure_register(-1,MEASURE_USER_EVENT,flag)
 
 
 
 
 typedef struct {
 	int (*reg)(int pid,int cmd,unsigned long data);
 	int (*getinfo)(MEASURE *, int no_seg);
 	void (*contextswap)(int pid);
 	void (*newprocess)(int pid);
 	void (*endprocess)(int pid);
 	void (*exec)(int pid);
 	void (*syscall)(int pid, int no);
 	void (*event)(int pid, unsigned int type, unsigned long data);
 
 	void (*mutex_create)(int id);
 	void (*mutex_destroy)(int id);
 	void (*mutex_lock)(int id, int pid);
 	void (*mutex_unlock)(int id, int pid);
 	void (*mutex_block)(int id, int pid);
 	void (*mutex_trylockfail)(int id, int pid);
 
 
 	void (*new_reserve)(rk_reserve_t rsv);
 	void (*end_reserve)(rk_reserve_t rsv);
 	void (*rsv_swapto)(rk_reserve_t rsv, rk_reserve_type_t type);
 	void (*resource_create)(rk_resource_set_t id);
 	void (*resource_destroy)(rk_resource_set_t id);
 	void (*resource_attach)(rk_resource_set_t id);
 	void (*resource_detach)(rk_resource_set_t id);
 	void (*period_start)(int pid);
 	void (*next_period)(int pid);
 	void (*ctl_reserve)(rk_reserve_t rsv);
 	void (*change_priority)(int pid, int priority);
 	void (*make_periodic) (int pid,struct timespec *period, 
 							struct timespec *start);
 	void (*change_period) (int pid, struct timespec *period);
 
 } MeasureOp;
 
 
 extern MeasureOp *current_measure_hook;
 
 # 201 "/home/root/kernel/kernel/include/linux/measure.h"
 
 
 
 extern inline void measure_contextswap(int newpid)
 {
 	if (current_measure_hook && current_measure_hook->contextswap)
 		current_measure_hook->contextswap(newpid);
 }
 
 
 extern inline void measure_newprocess(int newpid)
 {
 	if (current_measure_hook && current_measure_hook->newprocess)
 		current_measure_hook->newprocess(newpid);
 }
 
 
 extern inline void measure_endprocess(int pid)
 {
 	if (current_measure_hook && current_measure_hook->endprocess)
 		current_measure_hook->endprocess(pid);
 }
 
 
 extern inline void measure_exec(int pid)
 {
 	if (current_measure_hook && current_measure_hook->exec)
 		current_measure_hook->exec(pid);
 }
 
 
 extern inline void measure_event(int pid, unsigned int type, unsigned long data)
 {
 	if (current_measure_hook  &&  current_measure_hook->event)
 		current_measure_hook->event(pid,type,data);
 }
 
 
 
 
 extern inline void measure_mutex_block(int pid, int id)
 {
 	if(current_measure_hook && current_measure_hook->mutex_block)
 		current_measure_hook->mutex_block(pid, id);
 }
 
 extern inline void measure_mutex_trylockfail(int pid, int id)
 {
 	if(current_measure_hook && current_measure_hook->mutex_trylockfail)
 		current_measure_hook->mutex_trylockfail(pid, id);
 }
 
 extern inline void measure_change_priority(int pid, int priority)
 {
 	if (current_measure_hook  &&  current_measure_hook->change_priority)
 		current_measure_hook->change_priority(pid,priority);
 }
 
 extern inline void measure_make_periodic(int pid, struct timespec *period,
 						struct timespec *start)
 {
 	if (current_measure_hook  &&  current_measure_hook->make_periodic)
 		current_measure_hook->make_periodic(pid,period,start);
 }
 
 extern inline void measure_change_period(int pid, struct timespec *period)
 {
 	if (current_measure_hook  &&  current_measure_hook->change_period)
 		current_measure_hook->change_period(pid,period);
 }
 
 extern inline void measure_newreserve(rk_reserve_t rsv)
 {
 	if (current_measure_hook && current_measure_hook->new_reserve)
 		current_measure_hook->new_reserve(rsv);
 }
 
 extern inline void measure_endreserve(rk_reserve_t rsv)
 {
 	if (current_measure_hook && current_measure_hook->end_reserve)
 		current_measure_hook->end_reserve(rsv);
 }
 
 extern inline void measure_reserve_swapto(rk_reserve_t cpu, rk_reserve_type_t type)
 {
 	if (current_measure_hook && current_measure_hook->rsv_swapto)
 		current_measure_hook->rsv_swapto(cpu,type);
 }
 
 extern inline void measure_mutex_create(int id)
 {
 	if (current_measure_hook && current_measure_hook->mutex_create)
 		current_measure_hook->mutex_create(id);
 }
 
 extern inline void measure_mutex_destroy(int id)
 {
 	if (current_measure_hook && current_measure_hook->mutex_destroy)
 		current_measure_hook->mutex_destroy(id);
 }
 
 extern inline void measure_mutex_lock(int id, int pid)
 {
 	if (current_measure_hook && current_measure_hook->mutex_lock)
 		current_measure_hook->mutex_lock(id,pid);
 }
 
 extern inline void measure_mutex_unlock(int id, int pid)
 {
 	if (current_measure_hook && current_measure_hook->mutex_unlock)
 		current_measure_hook->mutex_unlock(id,pid);
 }
 
 extern inline void measure_resource_create(rk_resource_set_t id)
 {
 	if (current_measure_hook && current_measure_hook->resource_create)
 		current_measure_hook->resource_create(id);
 }
 
 extern inline void measure_resource_destroy(rk_resource_set_t id)
 {
 	if (current_measure_hook && current_measure_hook->resource_destroy)
 		current_measure_hook->resource_destroy(id);
 }
 
 extern inline void measure_resource_attach(rk_resource_set_t id)
 {
 	if (current_measure_hook && current_measure_hook->resource_attach)
 		current_measure_hook->resource_attach(id);
 }
 
 extern inline void measure_resource_detach(rk_resource_set_t id)
 {
 	if (current_measure_hook && current_measure_hook->resource_detach)
 		current_measure_hook->resource_detach(id);
 }
 
 extern inline void measure_period_start(int pid)
 {
 	if (current_measure_hook && current_measure_hook->period_start)
 		current_measure_hook->period_start(pid);
 }
 
 extern inline void measure_next_period(int pid)
 {
 	if (current_measure_hook && current_measure_hook->next_period)
 		current_measure_hook->next_period(pid);
 }
 
 
 
 
 
 # 16 "/home/root/kernel/kernel/include/linux/mutex.h" 2
 
 
 
 extern old_spinlock_t mutex_lock;
 
 typedef struct user_mutex_t {
 	struct user_mutex_t *next;		 
 	int id;
 	int uid;								 
 
 	 
 	int gid;		
 
 	mutex_t mtx;						 
 	int ceiling, ceiling_policy;	 
 	atomic_t count;					 
 } user_mutex_t;
 
 typedef struct {
 	task_struct *head[1 ];
 	task_struct *tail[1 ];
 	struct list_head node;
 } mutex_sched;
 
 #define mutex_is_locked(x) ((x)->state != MUTEX_UNLOCKED)
 
 #define mutex_unlock_wait(x)	do { if (mutex_is_locked(x)) { write_lock(x); write_unlock(x); } } while (0)
 
 
 
 
 
 
 void do_read_lock(mutex_t *lock);
 void do_write_lock(mutex_t *lock);
 void do_unlock(mutex_t *lock);
 
 extern int sched_init_done;
 
 
  
 static inline mutex_list_t *get_mutex_list_slot(mutex_t *lock)
 {
 	mutex_list_t *node;
 	
 	for (node = lock->owners; node->proc; node++);
 	
 	return node;
 }
 
 static inline void link_mutex_list(task_struct *p, mutex_list_t *node, 
                                    mutex_t *lock)
 {
 	node->proc = p;
 	node->next = p->locks_held;
 	node->prev = ((void *)0) ;
 	node->mutex = lock;
 
 	if (p->locks_held)
 		p->locks_held->prev = node;
 
 	p->locks_held = node;
 }
 
 static inline mutex_list_t *unlink_mutex_list(task_struct *p, mutex_t *lock)
 {
 	mutex_list_t *node = p->locks_held;
 
 	while (node) {
 		if (node->mutex == lock)
 			break;
 			
 		node = node->next;
 	}
 
 	if (node->prev)
 		node->prev->next = node->next;
 	else
 		p->locks_held = node->next;
 
 	if (node->next)
 		node->next->prev = node->prev;
 	
 	node->proc = ((void *)0) ;	
 
 	return node;
 }
 
 # 131 "/home/root/kernel/kernel/include/linux/mutex.h"
 
 
 
 static inline int mutex_trylock(mutex_t *lock)
 {
 	unsigned long flags;
 	int ret = 0;
 	
 	do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  &mutex_lock  ) ; } while (0) ;
 
 	if (lock->state == 0 ) {
 		lock->state = 1 ;
 		ret = 1;
 
 
 		link_mutex_list(current, lock->owners, lock);
 
 		if (lock->proto == 2 ) {
 			extern void (*recalc_prio_hook)(task_struct *p);
 			
 			if (recalc_prio_hook)
 				recalc_prio_hook(current);
 		}
 
 	}
 
 	do { (void)(  &mutex_lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;
 
 	return ret;
 }
 
 void bust_spinlocks(void);
 
 static inline void read_lock(mutex_t *lock)
 {
 	unsigned long flags;
 
 # 176 "/home/root/kernel/kernel/include/linux/mutex.h"
 
 
 	do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  &mutex_lock  ) ; } while (0) ;
 
 
 	if (lock->state != 1  && lock->num_readers != (16)  &&
 	    !lock->blocked_head)
 
 
 
 	{
 
 		mutex_list_t *node;
 	
 		node = get_mutex_list_slot(lock);
 		link_mutex_list(current, node, lock);
 
 
 		lock->num_readers++;
 		lock->state = 2 ;
 		do { (void)(  &mutex_lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;
 	} else {
 		do_read_lock(lock);
 		__restore_flags( flags ) ;
 	}
 }
 
 static inline void read_unlock_nosched(mutex_t *lock)
 {
 	unsigned long flags;
 
 
 	do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  &mutex_lock  ) ; } while (0) ;
 
 	lock->num_readers--;
 	
 	if (!lock->blocked_head) {
 
 		extern void (*recalc_prio_hook)(task_struct *p);
 
 		unlink_mutex_list(current, lock);
 		
 		if (recalc_prio_hook)
 			recalc_prio_hook(current);
 
 
 		if (!lock->num_readers)
 			lock->state = 0 ;
 	} else {
 		do_unlock(lock);
 	}
 
 	do { (void)(  &mutex_lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;
 }
 
 static inline void read_unlock(mutex_t *lock)
 {
 	read_unlock_nosched(lock);
 
 	if (current->need_resched)
 		preempt();
 }
 
 static inline void write_lock(mutex_t *lock)
 {
 	unsigned long flags;
 
 # 251 "/home/root/kernel/kernel/include/linux/mutex.h"
 
 
 	do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  &mutex_lock  ) ; } while (0) ;
 
 	if (lock->state == 0 ) {
 		lock->state = 1 ;
 
 
 		if (lock->umtx)
 			measure_mutex_lock(lock->umtx->id, current->pid);
 
 
 
 		link_mutex_list(current, lock->owners, lock);
 
 		do { (void)(  &mutex_lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;
 	} else {
 		do_write_lock(lock);
 		__restore_flags( flags ) ;
 	}
 }
 
 static inline void write_unlock_nosched(mutex_t *lock)
 {
 	unsigned long flags;
 
 	do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  &mutex_lock  ) ; } while (0) ;
 
 	if (!lock->blocked_head) {
 		lock->state = 0 ;
 
 
 		unlink_mutex_list(current, lock);
 
 	} else {
 		do_unlock(lock);
 	}
 
 	do { (void)(  &mutex_lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;
 }
 
 static inline void write_unlock(mutex_t *lock)
 {
 	write_unlock_nosched(lock);
 
 	if (current->need_resched)
 		preempt();
 }
 
  
 
 
 #define spin_lock_irq	write_lock
 #define spin_unlock_irq write_unlock
 #define spin_lock_bh		write_lock
 #define spin_unlock_bh 	write_unlock
 
 #define read_lock_irq	read_lock
 #define read_unlock_irq read_unlock
 #define write_lock_irq	write_lock
 #define write_unlock_irq write_unlock
 
 #define read_lock_bh		read_lock
 #define read_unlock_bh 	read_unlock
 #define write_lock_bh	write_lock
 #define write_unlock_bh write_unlock
 
 #define read_lock_irqsave(lock, flags)	do { read_lock(lock); (void)flags; } while (0)
 
 #define read_unlock_irqrestore(lock, flags)	do { read_unlock(lock); (void)flags; } while (0)
 
 
 #define write_lock_irqsave(lock, flags)	do { write_lock(lock); (void)flags; } while (0)
 
 #define write_unlock_irqrestore(lock, flags)	do { write_unlock(lock); (void)flags; } while (0)
 
 
 #define spin_lock_irqsave 		 write_lock_irqsave
 #define spin_unlock_irqrestore write_unlock_irqrestore
 
 int alloc_mutex_sched(void);
 void free_mutex_sched(void);
 void mutex_sched_init(void);
 
 
 # 7 "/home/root/kernel/kernel/include/linux/sched.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/fs.h" 1
 
 #define __LINUX_FS_H
 
 
 # 1 "/home/root/kernel/kernel/include/linux/dcache.h" 1
 
 #define __LINUX_DCACHE_H
 
 
 
 
 
 
 
 extern mutex_t  dcache_lock;
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 static __inline__ void d_drop(struct dentry * dentry)
 {
 	write_lock (&dcache_lock);
 	list_del(&dentry->d_hash);
 	do { ( &dentry->d_hash )->next = ( &dentry->d_hash ); ( &dentry->d_hash )->prev = ( &dentry->d_hash ); } while (0) ;
 	write_unlock (&dcache_lock);
 }
 
 static __inline__ int dname_external(struct dentry *d)
 {
 	return d->d_name.name != d->d_iname; 
 }
 
  
 
 
 extern void d_instantiate(struct dentry *, struct inode *);
 extern void d_delete(struct dentry *);
 
  
 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
 extern void shrink_dcache_sb(struct super_block *);
 extern void shrink_dcache_parent(struct dentry *);
 extern int d_invalidate(struct dentry *);
 
 #define shrink_dcache() prune_dcache(0)
 struct zone_struct;
  
 extern void shrink_dcache_memory(int, unsigned int);
 extern void prune_dcache(int);
 
  
 extern void shrink_icache_memory(int, int);
 extern void prune_icache(int);
 
  
 extern struct dentry * d_alloc_root(struct inode *);
 
  
 extern void d_genocide(struct dentry *);
 
 extern struct dentry *d_find_alias(struct inode *);
 extern void d_prune_aliases(struct inode *);
 
  
 extern int have_submounts(struct dentry *);
 
  
 
 
 extern void d_rehash(struct dentry *);
 
  
 
 
 
 
 
 
 
  
 static __inline__ void d_add(struct dentry * entry, struct inode * inode)
 {
 	d_instantiate(entry, inode);
 	d_rehash(entry);
 }
 
  
 extern void d_move(struct dentry *, struct dentry *);
 
  
 extern struct dentry * d_lookup(struct dentry *, struct qstr *);
 
  
 extern int d_validate(struct dentry *, struct dentry *);
 
 extern char * __d_path(struct dentry *, struct vfsmount *, struct dentry *,
 	struct vfsmount *, char *, int);
   
  
 
  
 
 
 
 
 
 
 
 
 
 
 
  
 static __inline__ struct dentry * dget(struct dentry *dentry)
 {
 	if (dentry) {
 		if (! (( &dentry->d_count )->counter) )
 			do { bust_spinlocks (); printk("kernel BUG at %s:%d!\n", "/home/root/kernel/kernel/include/linux/dcache.h", 127); __asm__ __volatile__(".long 0x0"); } while (0) ;
 		((void) atomic_inc_return(( &dentry->d_count ))) ;
 	}
 	return dentry;
 }
 
 extern struct dentry * dget_locked(struct dentry *);
 
  
 
 
 
 
 
  
 static __inline__ int d_unhashed(struct dentry *dentry)
 {
 	return list_empty(&dentry->d_hash);
 }
 
 extern void dput(struct dentry *);
 
 static __inline__ int d_mountpoint(struct dentry *dentry)
 {
 	return dentry->d_mounted;
 }
 
 extern struct vfsmount *lookup_mnt(struct vfsmount *, struct dentry *);
 
 
 
 
 # 5 "/home/root/kernel/kernel/include/linux/fs.h" 2
 
 
 
 
  
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 static inline struct dentry *lock_parent(struct dentry *dentry)
 {
 	struct dentry *dir = dget(dentry->d_parent);
 
 	down(&dir->d_inode->i_sem);
 	return dir;
 }
 
 static inline struct dentry *get_parent(struct dentry *dentry)
 {
 	return dget(dentry->d_parent);
 }
 
 static inline void unlock_dir(struct dentry *dir)
 {
 	up(&dir->d_inode->i_sem);
 	dput(dir);
 }
 
  
 
 
 
 static inline void double_down(struct semaphore *s1, struct semaphore *s2)
 {
 	if (s1 != s2) {
 		if ((unsigned long) s1 < (unsigned long) s2) {
 			struct semaphore *tmp = s2;
 			s2 = s1; s1 = tmp;
 		}
 		down(s1);
 	}
 	down(s2);
 }
 
  
 
 
 
 
 
 
 
 
 static inline void triple_down(struct semaphore *s1,
 			       struct semaphore *s2,
 			       struct semaphore *s3)
 {
 	if (s1 != s2) {
 		if ((unsigned long) s1 < (unsigned long) s2) {
 			if ((unsigned long) s1 < (unsigned long) s3) {
 				struct semaphore *tmp = s3;
 				s3 = s1; s1 = tmp;
 			}
 			if ((unsigned long) s1 < (unsigned long) s2) {
 				struct semaphore *tmp = s2;
 				s2 = s1; s1 = tmp;
 			}
 		} else {
 			if ((unsigned long) s1 < (unsigned long) s3) {
 				struct semaphore *tmp = s3;
 				s3 = s1; s1 = tmp;
 			}
 			if ((unsigned long) s2 < (unsigned long) s3) {
 				struct semaphore *tmp = s3;
 				s3 = s2; s2 = tmp;
 			}
 		}
 		down(s1);
 	} else if ((unsigned long) s2 < (unsigned long) s3) {
 		struct semaphore *tmp = s3;
 		s3 = s2; s2 = tmp;
 	}
 	down(s2);
 	down(s3);
 }
 
 static inline void double_up(struct semaphore *s1, struct semaphore *s2)
 {
 	up(s1);
 	if (s1 != s2)
 		up(s2);
 }
 
 static inline void triple_up(struct semaphore *s1,
 			     struct semaphore *s2,
 			     struct semaphore *s3)
 {
 	up(s1);
 	if (s1 != s2)
 		up(s2);
 	up(s3);
 }
 
 static inline void double_lock(struct dentry *d1, struct dentry *d2)
 {
 	double_down(&d1->d_inode->i_sem, &d2->d_inode->i_sem);
 }
 
 static inline void double_unlock(struct dentry *d1, struct dentry *d2)
 {
 	double_up(&d1->d_inode->i_sem,&d2->d_inode->i_sem);
 	dput(d1);
 	dput(d2);
 }
 
 
 
 # 8 "/home/root/kernel/kernel/include/linux/sched.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/fs_struct.h" 1
 
 #define _LINUX_FS_STRUCT_H
 
 
 
 
  
 
 
 
 
 static inline void set_fs_root(struct fs_struct *fs,
 	struct vfsmount *mnt,
 	struct dentry *dentry)
 {
 	struct dentry *old_root;
 	struct vfsmount *old_rootmnt;
 	write_lock(&fs->lock);
 	old_root = fs->root;
 	old_rootmnt = fs->rootmnt;
 	fs->rootmnt = mntget(mnt);
 	fs->root = dget(dentry);
 	write_unlock(&fs->lock);
 	if (old_root) {
 		dput(old_root);
 		mntput(old_rootmnt);
 	}
 }
 
  
 
 
 
 
 static inline void set_fs_pwd(struct fs_struct *fs,
 	struct vfsmount *mnt,
 	struct dentry *dentry)
 {
 	struct dentry *old_pwd;
 	struct vfsmount *old_pwdmnt;
 	write_lock(&fs->lock);
 	old_pwd = fs->pwd;
 	old_pwdmnt = fs->pwdmnt;
 	fs->pwdmnt = mntget(mnt);
 	fs->pwd = dget(dentry);
 	write_unlock(&fs->lock);
 	if (old_pwd) {
 		dput(old_pwd);
 		mntput(old_pwdmnt);
 	}
 }
 
 
 
 # 9 "/home/root/kernel/kernel/include/linux/sched.h" 2
 
 
 extern union task_union init_task_union;
 
 extern struct   mm_struct init_mm;
 extern struct task_struct *init_tasks[1 ];
 
  
 #define PIDHASH_SZ (4096 >> 2)
 
 extern struct task_struct *pidhash[(4096 >> 2) ];
 
 #define pid_hashfn(x)	((((x) >> 8) ^ (x)) & (PIDHASH_SZ - 1))
 
 static inline void hash_pid(struct task_struct *p)
 {
 	struct task_struct **htable = &pidhash[(((( p->pid ) >> 8) ^ ( p->pid )) & ((4096 >> 2)  - 1)) ];
 
 	if((p->pidhash_next = *htable) != ((void *)0) )
 		(*htable)->pidhash_pprev = &p->pidhash_next;
 	*htable = p;
 	p->pidhash_pprev = htable;
 }
 
 static inline void unhash_pid(struct task_struct *p)
 {
 	if(p->pidhash_next)
 		p->pidhash_next->pidhash_pprev = p->pidhash_pprev;
 	*p->pidhash_pprev = p->pidhash_next;
 }
 
 static inline struct task_struct *find_task_by_pid(int pid)
 {
 	struct task_struct *p, **htable = &pidhash[(((( pid ) >> 8) ^ ( pid )) & ((4096 >> 2)  - 1)) ];
 
 	for(p = *htable; p && p->pid != pid; p = p->pidhash_next)
 		;
 
 	return p;
 }
 
  
 extern struct user_struct * alloc_uid(uid_t);
 extern void free_uid(struct user_struct *);
 
 # 1 "/home/root/kernel/kernel/include/asm/current.h" 1
  
 
 
 
 # 13 "/home/root/kernel/kernel/include/asm/current.h"
 
 
 # 54 "/home/root/kernel/kernel/include/linux/sched.h" 2
 
 
 extern unsigned long volatile jiffies;
 extern unsigned long itimer_ticks;
 extern unsigned long itimer_next;
 extern struct timeval xtime;
 extern void do_timer(void);
 
 extern unsigned int * prof_buffer;
 extern unsigned long prof_len;
 extern unsigned long prof_shift;
 
 #define CURRENT_TIME (xtime.tv_sec)
 
 extern void  __wake_up(wait_queue_head_t *q, unsigned int mode, int nr)  ;
 extern void  __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr)  ;
 extern void  sleep_on(wait_queue_head_t *q)  ;
 extern long  sleep_on_timeout(wait_queue_head_t *q,
 				      signed long timeout)  ;
 extern void  interruptible_sleep_on(wait_queue_head_t *q)  ;
 extern long  interruptible_sleep_on_timeout(wait_queue_head_t *q,
 						    signed long timeout)  ;
 extern int  wake_up_process(struct task_struct * tsk)  ;
 extern void  wake_up_mutex(struct task_struct *tsk)  ;
 
 #define wake_up(x)			__wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1)
 #define wake_up_nr(x, nr)		__wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr)
 #define wake_up_all(x)			__wake_up((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 0)
 #define wake_up_sync(x)			__wake_up_sync((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, 1)
 #define wake_up_sync_nr(x, nr)		__wake_up_sync((x),TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE, nr)
 #define wake_up_interruptible(x)	__wake_up((x),TASK_INTERRUPTIBLE, 1)
 #define wake_up_interruptible_nr(x, nr)	__wake_up((x),TASK_INTERRUPTIBLE, nr)
 #define wake_up_interruptible_all(x)	__wake_up((x),TASK_INTERRUPTIBLE, 0)
 #define wake_up_interruptible_sync(x)	__wake_up_sync((x),TASK_INTERRUPTIBLE, 1)
 #define wake_up_interruptible_sync_nr(x) __wake_up_sync((x),TASK_INTERRUPTIBLE,  nr)
    long sys_wait4(pid_t pid,unsigned int * stat_addr, int options, struct rusage * ru);
 
 extern int in_group_p(gid_t);
 extern int in_egroup_p(gid_t);
 
 extern void proc_caches_init(void);
 extern void flush_signals(struct task_struct *);
 extern void flush_signal_handlers(struct task_struct *);
 extern int dequeue_signal(sigset_t *, siginfo_t *);
 extern void block_all_signals(int (*notifier)(void *priv), void *priv,
 			      sigset_t *mask);
 extern void unblock_all_signals(void);
 extern int send_sig_info(int, struct siginfo *, struct task_struct *);
 extern int force_sig_info(int, struct siginfo *, struct task_struct *);
 extern int kill_pg_info(int, struct siginfo *, pid_t);
 extern int kill_sl_info(int, struct siginfo *, pid_t);
 extern int kill_proc_info(int, struct siginfo *, pid_t);
 extern void notify_parent(struct task_struct *, int);
 extern void do_notify_parent(struct task_struct *, int);
 extern void force_sig(int, struct task_struct *);
 extern int send_sig(int, struct task_struct *, int);
 
 extern int kill_pg(pid_t, int, int);
 extern int kill_sl(pid_t, int, int);
 extern int kill_proc(pid_t, int, int);
 extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *);
 extern int do_sigaltstack(const stack_t *, stack_t *, unsigned long);
 
 static inline int signal_pending(struct task_struct *p)
 {
 	return (p->sigpending != 0);
 }
 
  
 
 
 
 static inline int has_pending_signals(sigset_t *signal, sigset_t *blocked)
 {
 	unsigned long ready;
 	long i;
 
 	switch ((64  / 32 ) ) {
 	default:
 		for (i = (64  / 32 ) , ready = 0; --i >= 0 ;)
 			ready |= signal->sig[i] &~ blocked->sig[i];
 		break;
 
 	case 4: ready  = signal->sig[3] &~ blocked->sig[3];
 		ready |= signal->sig[2] &~ blocked->sig[2];
 		ready |= signal->sig[1] &~ blocked->sig[1];
 		ready |= signal->sig[0] &~ blocked->sig[0];
 		break;
 
 	case 2: ready  = signal->sig[1] &~ blocked->sig[1];
 		ready |= signal->sig[0] &~ blocked->sig[0];
 		break;
 
 	case 1: ready  = signal->sig[0] &~ blocked->sig[0];
 	}
 	return ready !=	0;
 }
 
  
 
 
 
 static inline void recalc_sigpending(struct task_struct *t)
 {
 	t->sigpending = has_pending_signals(&t->pending.signal, &t->blocked);
 }
 
  
 
 static inline int on_sig_stack(unsigned long sp)
 {
 	return (sp - current->sas_ss_sp < current->sas_ss_size);
 }
 
 static inline int sas_ss_flags(unsigned long sp)
 {
 	return (current->sas_ss_size == 0 ? 2 
 		: on_sig_stack(sp) ? 1  : 0);
 }
 
 extern int request_irq(unsigned int irq,
 		       void (*handler)(int, void *, struct pt_regs *),
 		       unsigned long flags, 
 		       const char *device,
 		       void *dev_id);
 
 extern void free_irq(unsigned int irq, void *dev_id);
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 static inline int suser(void)
 {
 	if (! ( (1 << ( 0  +1)) & 0x00000000  ? (1 << ( 0  )) & 0x00000000  :	(1 << ( 0  )) & securebits )  && current->euid == 0) { 
 		current->flags |= 0x00000100 ;
 		return 1;
 	}
 	return 0;
 }
 
 static inline int fsuser(void)
 {
 	if (! ( (1 << ( 0  +1)) & 0x00000000  ? (1 << ( 0  )) & 0x00000000  :	(1 << ( 0  )) & securebits )  && current->fsuid == 0) {
 		current->flags |= 0x00000100 ;
 		return 1;
 	}
 	return 0;
 }
 
  
 
 
 
 
 
 static inline int capable(int cap)
 {
 
 	if (((  current->cap_effective  )  & (1 << (   cap  )) ) )
 
 
 
 	{
 		current->flags |= 0x00000100 ;
 		return 1;
 	}
 	return 0;
 }
 
  
 
 
 extern struct mm_struct * mm_alloc(void);
 
 extern struct mm_struct * start_lazy_tlb(void);
 extern void end_lazy_tlb(struct mm_struct *mm);
 
  
 extern inline void  __mmdrop(struct mm_struct *)  ;
 extern inline void  __mmdrop_lazy(struct mm_struct *)  ;
 static inline void mmdrop(struct mm_struct * mm)
 {
 	__mmdrop(mm);
 }
 
 static inline void mmdrop_lazy(struct mm_struct * mm)
 {
 	if ((atomic_dec_return(( &mm->mm_count )) == 0) )
 		__mmdrop_lazy(mm);
 }
 
  
 extern void mmput(struct mm_struct *);
  
 extern void mm_release(void);
 
  
 
 
 extern struct file ** alloc_fd_array(int);
 extern int expand_fd_array(struct files_struct *, int nr);
 extern void free_fd_array(struct file **, int);
 
 extern fd_set *alloc_fdset(int);
 extern int expand_fdset(struct files_struct *, int nr);
 extern void free_fdset(fd_set *, int);
 
 extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *);
 extern void flush_thread(void);
 extern void exit_thread(void);
 
 extern void exit_mm(struct task_struct *);
 extern void exit_files(struct task_struct *);
 extern void exit_sighand(struct task_struct *);
 
 extern void daemonize(void);
 
 extern int do_execve(char *, char **, char **, struct pt_regs *);
 extern int do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long);
 extern void  add_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)  ;
 extern void  add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t * wait)  ;
 extern void  remove_wait_queue(wait_queue_head_t *q, wait_queue_t * wait)  ;
 
 #define __wait_event(wq, condition) do {	wait_queue_t __wait;	init_waitqueue_entry(&__wait, current);	add_wait_queue(&wq, &__wait);	for (;;) {	set_current_state(TASK_UNINTERRUPTIBLE);	if (condition)	break;	schedule();	}	current->state = TASK_RUNNING;	rem ove_wait_queue(&wq, &__wait);	} while (0)
 # 303 "/home/root/kernel/kernel/include/linux/sched.h"
 
 #define wait_event(wq, condition) do {	if (condition)	break;	__wait_event(wq, condition);	} while (0)
 
 
 
 
 
 
 #define __wait_event_interruptible(wq, condition, ret)	do {	wait_queue_t __wait;	init_waitqueue_entry(&__wait, current);	add_wait_queue(&wq, &__wait);	for (;;) {	set_current_state(TASK_INTERRUPTIBLE);	if (condition)	break;	if (!signal_pending(current)) { 	schedule();	continue;	}	ret = -ERESTARTSYS;	break;	}	current->state = TASK_RUNNING;	remove_wait_queue(&wq, &__wait);	} while (0)
 # 331 "/home/root/kernel/kernel/include/linux/sched.h"
 	
 #define wait_event_interruptible(wq, condition)	({	int __ret = 0;	if (!(condition))	__wait_event_interruptible(wq, condition, __ret);	__ret;	})
 
 
 
 
 
 
 
 #define REMOVE_LINKS(p) do { (p)->next_task->prev_task = (p)->prev_task; (p)->prev_task->next_task = (p)->next_task; if ((p)->p_osptr) (p)->p_osptr->p_ysptr = (p)->p_ysptr; if ((p)->p_ysptr) (p)->p_ysptr->p_osptr = (p)->p_osptr; else (p)->p_pptr->p_cptr  = (p)->p_osptr; } while (0)
 # 350 "/home/root/kernel/kernel/include/linux/sched.h"
 
 #define SET_LINKS(p) do { (p)->next_task = &init_task; (p)->prev_task = init_task.prev_task; init_task.prev_task->next_task = (p); init_task.prev_task = (p); (p)->p_ysptr = NULL; if (((p)->p_osptr = (p)->p_pptr->p_cptr) != NULL) (p)->p_osptr->p_ysptr = p ; (p)->p_pptr->p_cptr = p; } while (0)
 # 361 "/home/root/kernel/kernel/include/linux/sched.h"
 
 #define for_each_task(p) for (p = &init_task ; (p = p->next_task) != &init_task ; )
 
 
 #define next_thread(p) list_entry((p)->thread_group.next, struct task_struct, thread_group)
 
 
 #define task_on_runqueue(p) (p->runnable)
 
 static inline void unhash_process(struct task_struct *p)
 {
 	if (( p ->runnable) ) do { bust_spinlocks (); printk("kernel BUG at %s:%d!\n", "/home/root/kernel/kernel/include/linux/sched.h", 372); __asm__ __volatile__(".long 0x0"); } while (0) ;
 	write_lock (&tasklist_lock);
 	nr_threads--;
 	unhash_pid(p);
 	do { ( p )->next_task->prev_task = ( p )->prev_task; ( p )->prev_task->next_task = ( p )->next_task; if (( p )->p_osptr) ( p )->p_osptr->p_ysptr = ( p )->p_ysptr; if (( p )->p_ysptr) ( p )->p_ysptr->p_osptr = ( p )->p_osptr; else ( p )->p_pptr->p_cptr =  ( p )->p_osptr; } while (0) ;
 	list_del(&p->thread_group);
 	write_unlock (&tasklist_lock);
 }
 
  
 static inline void task_lock(struct task_struct *p)
 {
 	write_lock (&p->alloc_lock);
 }
 
 static inline void task_unlock(struct task_struct *p)
 {
 	write_unlock (&p->alloc_lock);
 }
 
  
 static inline char * d_path(struct dentry *dentry, struct vfsmount *vfsmnt,
 				char *buf, int buflen)
 {
 	char *res;
 	struct vfsmount *rootmnt;
 	struct dentry *root;
 	read_lock(&current->fs->lock);
 	rootmnt = mntget(current->fs->rootmnt);
 	root = dget(current->fs->root);
 	read_unlock(&current->fs->lock);
 	write_lock (&dcache_lock);
 	res = __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen);
 	write_unlock (&dcache_lock);
 	dput(root);
 	mntput(rootmnt);
 	return res;
 }
 
 void rt_setscheduler(task_struct *p, int prio, int policy, int cpu);
 void update_time(void);
 void send_signal_queue(struct sigqueue *q);
 int adj_num_sigqueues(int adj);
 void withdraw_signal_queue(struct sigqueue *q);
 int try_to_wake_up(task_struct *p, int sync);
 void timeshare_sched_give_time(task_struct *to, task_struct *from);
 void timeshare_sched_init_proc(task_struct *p);
 void timeshare_sched_init(void);
 void posix_rt_sched_init(void);
 void bind_cpu(task_struct *p, int cpu);
 
 extern old_spinlock_t sched_lock;
 extern mutex_t  sigqueue_exit_lock;
 extern old_spinlock_t sigqueue_state_lock;
 extern task_struct *cli_owner;
 extern mutex_t kthread_sem_lock;
 extern struct semaphore kthread_sem;
 
 static inline void check_resched(void)
 {
 	if (!is_local_irq_enabled())
 		do { bust_spinlocks (); printk("kernel BUG at %s:%d!\n", "/home/root/kernel/kernel/include/linux/sched.h", 433); __asm__ __volatile__(".long 0x0"); } while (0) ;
 
   	if (current->need_resched && !(current->flags & 0x08000000 ))
  		preempt();
 }
 
 #define preempt_disable(flags) do { flags = current->flags; current->flags |= PF_NOPREEMPT; } while (0)
 
 
 
 
 #define preempt_restore(flags) do { current->flags = flags; check_resched(); } while (0)
 
 
 
 
 static inline void del_from_runqueue(task_struct *p)
 {
 # 466 "/home/root/kernel/kernel/include/linux/sched.h"
 
 	if (p->context[0].owner)
 		p->context[0].sched_ops->del(p, 0);
 
 
 	p->runnable = 0;
 }
 
 static inline void add_to_runqueue(task_struct *p)
 {
 # 491 "/home/root/kernel/kernel/include/linux/sched.h"
 
 	if (p->context[0].owner)
 		p->context[0].owner->sched_ops->add(p, 0);
 
 
 	p->runnable = 1;
 }
 
 static inline void add_to_runqueue_head(task_struct *p)
 {
 # 516 "/home/root/kernel/kernel/include/linux/sched.h"
 
 	if (p->context[0].owner)
 		p->context[0].owner->sched_ops->add_head(p, 0);
 
 
 	p->runnable = 1;
 }
 
 
 
 
 # 12 "panic.c" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/delay.h" 1
 
 #define _LINUX_DELAY_H
 
  
 
 
 
 
 
 extern unsigned long loops_per_jiffy;
 
 # 1 "/home/root/kernel/kernel/include/asm/delay.h" 1
  
 
 
 
 
 #define _PPC_DELAY_H
 
 
 
  
 
 
 
 
 
 
 
 
 extern unsigned long loops_per_jiffy;
 
  
 #define __MAX_UDELAY	1000000
 
 extern void __delay(unsigned int loops);
 
  
 
 extern __inline__ void __const_udelay(unsigned int secs)
 {
 	unsigned int loops;
 
 	__asm__("mulhwu %0,%1,%2" : "=r" (loops) :
 		"r" (secs), "r" (loops_per_jiffy));
 	__delay(loops * 100 );
 }
 
  
 
 
 
 extern __inline__ void __udelay(unsigned int usecs)
 {
 	__const_udelay(usecs * 4294);
 }
 
 extern void __bad_udelay(void);		 
 
 #define udelay(n) (__builtin_constant_p(n)? ((n) > __MAX_UDELAY? __bad_udelay(): __const_udelay((n) * 4294u)) : __udelay(n))
 
 
 
 
 
 # 12 "/home/root/kernel/kernel/include/linux/delay.h" 2
 
 
  
 
 
 
 
 
 
 
 
 
 
 #define MAX_UDELAY_MS	5
 
 
 
 
 
 
 #define mdelay(n) (	(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : ({unsigned long msec=(n); while (msec--) udelay(1000);}))
 
 
 
 
 
 # 13 "panic.c" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/reboot.h" 1
 
 #define _LINUX_REBOOT_H
 
  
 
 
 
 #define 	LINUX_REBOOT_MAGIC1	0xfee1dead
 #define 	LINUX_REBOOT_MAGIC2	672274793
 #define 	LINUX_REBOOT_MAGIC2A	85072278
 #define 	LINUX_REBOOT_MAGIC2B	369367448
 
 
  
 
 
 
 
 
 
 
 
 
 
 #define 	LINUX_REBOOT_CMD_RESTART	0x01234567
 #define 	LINUX_REBOOT_CMD_HALT		0xCDEF0123
 #define 	LINUX_REBOOT_CMD_CAD_ON		0x89ABCDEF
 #define 	LINUX_REBOOT_CMD_CAD_OFF	0x00000000
 #define 	LINUX_REBOOT_CMD_POWER_OFF	0x4321FEDC
 #define 	LINUX_REBOOT_CMD_RESTART2	0xA1B2C3D4
 
 
 
 
 # 1 "/home/root/kernel/kernel/include/linux/notifier.h" 1
  
 
 
 
 
 
 
 
  
 
 #define _LINUX_NOTIFIER_H
 
 
 struct notifier_block
 {
 	int (*notifier_call)(struct notifier_block *self, unsigned long, void *);
 	struct notifier_block *next;
 	int priority;
 };
 
 
 
 
 extern int notifier_chain_register(struct notifier_block **list, struct notifier_block *n);
 extern int notifier_chain_unregister(struct notifier_block **nl, struct notifier_block *n);
 extern int notifier_call_chain(struct notifier_block **n, unsigned long val, void *v);
 
 #define NOTIFY_DONE		0x0000		
 #define NOTIFY_OK		0x0001		
 #define NOTIFY_STOP_MASK	0x8000		
 #define NOTIFY_BAD		(NOTIFY_STOP_MASK|0x0002)	
 
  
 
 
 
 
 
 
  
  
 #define NETDEV_UP	0x0001	
 #define NETDEV_DOWN	0x0002
 #define NETDEV_REBOOT	0x0003	
 
 
 
 #define NETDEV_CHANGE	0x0004	
 #define NETDEV_REGISTER 0x0005
 #define NETDEV_UNREGISTER	0x0006
 #define NETDEV_CHANGEMTU	0x0007
 #define NETDEV_CHANGEADDR	0x0008
 #define NETDEV_GOING_DOWN	0x0009
 #define NETDEV_CHANGENAME	0x000A
 
 #define SYS_DOWN	0x0001	
 #define SYS_RESTART	SYS_DOWN
 #define SYS_HALT	0x0002	
 #define SYS_POWER_OFF	0x0003	
 
 
 
 # 35 "/home/root/kernel/kernel/include/linux/reboot.h" 2
 
 
 extern int register_reboot_notifier(struct notifier_block *);
 extern int unregister_reboot_notifier(struct notifier_block *);
 
 
  
 
 
 
 extern void machine_restart(char *cmd);
 extern void machine_halt(void);
 extern void machine_power_off(void);
 
 
 
 
 # 14 "panic.c" 2
 
 
 # 1 "/home/root/kernel/kernel/include/linux/init.h" 1
 
 #define _LINUX_INIT_H
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 typedef int (*initcall_t)(void);
 typedef void (*exitcall_t)(void);
 
 extern initcall_t __initcall_start, __initcall_end;
 
 #define __initcall(fn)	static initcall_t __initcall_##fn __init_call = fn
 
 #define __exitcall(fn)	static exitcall_t __exitcall_##fn __exit_call = fn
 
 
  
 
 
 struct kernel_param {
 	const char *str;
 	int (*setup_func)(char *);
 };
 
 extern struct kernel_param __setup_start, __setup_end;
 
 #define __setup(str, fn)	static char __setup_str_##fn[] __initdata = str;	static struct kernel_param __setup_##fn __attribute__((unused)) __initsetup = { __setup_str_##fn, fn }
 
 
 
 
 
  
 
 
 
 #define __init		__attribute__ ((__section__ (".text.init")))
 #define __exit		__attribute__ ((unused, __section__(".text.exit")))
 #define __initdata	__attribute__ ((__section__ (".data.init")))
 #define __exitdata	__attribute__ ((unused, __section__ (".data.exit")))
 #define __initsetup	__attribute__ ((unused,__section__ (".setup.init")))
 #define __init_call	__attribute__ ((unused,__section__ (".initcall.init")))
 #define __exit_call	__attribute__ ((unused,__section__ (".exitcall.exit")))
 
  
 #define __INIT		.section	".text.init","ax"
 #define __FINIT		.previous
 #define __INITDATA	.section	".data.init","aw"
 
  
 
 
 
 
 
 
 
 
 
 #define module_init(x)	__initcall(x);
 
  
 
 
 
 
 
 
 
 
 #define module_exit(x)	__exitcall(x);
 
 # 144 "/home/root/kernel/kernel/include/linux/init.h"
 
 
 
 #define __devinit
 #define __devinitdata
 #define __devexit
 #define __devexitdata
 
 
 
 
 
 
 
 
 # 16 "panic.c" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/sysrq.h" 1
  
 
 
 
 
 
 
 
 
 
 
 struct pt_regs;
 struct kbd_struct;
 struct tty_struct;
 
  
 
 
 
 
 void handle_sysrq(int, struct pt_regs *, struct kbd_struct *, struct tty_struct *);
 
  
 
 extern int emergency_sync_scheduled;
 
 #define EMERG_SYNC 1
 #define EMERG_REMOUNT 2
 
 void do_emergency_sync(void);
 
 
 #define CHECK_EMERGENCY_SYNC	if (emergency_sync_scheduled)	do_emergency_sync();
 
 
 
 
 
 # 17 "panic.c" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/interrupt.h" 1
  
 
 #define _LINUX_INTERRUPT_H
 
 
 
 
 
 # 1 "/home/root/kernel/kernel/include/linux/spinlock.h" 1
 
 
 
 # 9 "/home/root/kernel/kernel/include/linux/interrupt.h" 2
 
 
 # 1 "/home/root/kernel/kernel/include/asm/bitops.h" 1
  
 
 
  
 
 
 
 
 # 376 "/home/root/kernel/kernel/include/asm/bitops.h"
 
 
 # 11 "/home/root/kernel/kernel/include/linux/interrupt.h" 2
 
 
 
 
 struct irqaction {
 	void (*handler)(int, void *, struct pt_regs *);
 	unsigned long flags;
 	unsigned long mask;
 	const char *name;
 	void *dev_id;
 	struct irqaction *next;
 };
 
 
  
 
    
 enum {
 	TIMER_BH = 0,
 	TQUEUE_BH,
 	DIGI_BH,
 	SERIAL_BH,
 	RISCOM8_BH,
 	SPECIALIX_BH,
 	AURORA_BH,
 	ESP_BH,
 	SCSI_BH,
 	IMMEDIATE_BH,
 	CYCLADES_BH,
 	CM206_BH,
 	JS_BH,
 	MACSERIAL_BH,
 	ISICOM_BH
 };
 
 # 1 "/home/root/kernel/kernel/include/asm/hardirq.h" 1
  
 
 
 
 
 #define __ASM_HARDIRQ_H
 
 
 # 1 "/home/root/kernel/kernel/include/asm/smp.h" 1
  
 
 
  
 
 
 
 
 
 
 
 
 
 #define _PPC_SMP_H
 
 
 
 
 # 65 "/home/root/kernel/kernel/include/asm/smp.h"
 
 
 
 
 
 
 # 9 "/home/root/kernel/kernel/include/asm/hardirq.h" 2
 
 
  
  
 
 
 
 
 typedef struct {
 	unsigned long __softirq_pending;	 
 	unsigned int __local_irq_count;
 	unsigned int __local_bh_count;
 	unsigned int __syscall_count;
 	struct task_struct * __ksoftirqd_task;
 	unsigned int __last_jiffy_stamp;
 } __attribute__((__aligned__(16  )))  irq_cpustat_t;
 
 # 1 "/home/root/kernel/kernel/include/linux/irq_cpustat.h" 1
 
 #define __irq_cpustat_h
 
  
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 extern irq_cpustat_t irq_stat[];			 
 
 
 
 
 #define __IRQ_STAT(cpu, member)	((void)(cpu), irq_stat[0].member)
 
 
 extern int global_softirq_active, global_softirq_mask;
 
    
 #define softirq_pending(cpu)	__IRQ_STAT((cpu), __softirq_pending)
 #define local_irq_count(cpu)	__IRQ_STAT((cpu), __local_irq_count)
 #define local_bh_count(cpu)	__IRQ_STAT((cpu), __local_bh_count)
 #define syscall_count(cpu)	__IRQ_STAT((cpu), __syscall_count)
 #define ksoftirqd_task(cpu)	__IRQ_STAT((cpu), __ksoftirqd_task)
    
 #define nmi_count(cpu)		__IRQ_STAT((cpu), __nmi_count)		
 
 
 # 26 "/home/root/kernel/kernel/include/asm/hardirq.h" 2
 
 
 #define last_jiffy_stamp(cpu) __IRQ_STAT((cpu), __last_jiffy_stamp)
  
 
 
 
 
 
 
 
 
 # 57 "/home/root/kernel/kernel/include/asm/hardirq.h"
 
 #define in_interrupt() (local_irq_count(0))
 
 
 #define in_irq() (in_interrupt() || (current->flags & PF_IRQHANDLER))
 
 #define hardirq_trylock(cpu)	(local_irq_count(cpu) == 0)
 #define hardirq_endlock(cpu)	do { } while (0)
 
 #define irq_enter(cpu, irq)	(local_irq_count(cpu)++)
 #define irq_exit(cpu, irq)	(local_irq_count(cpu)--)
 
 static inline int irqs_running (void)
 {
 	int i;
 
 	for (i = 0; i < 1 ; i++) {
 		if (((void)( ( ({ (void) i ; 0; })  ) ), irq_stat[0].  __local_irq_count )  )
 			return 1;
 		}
 
 	return 0;
 }
 
  
 
 # 135 "/home/root/kernel/kernel/include/asm/hardirq.h"
 
 
 extern void synchronize_irq(void);
 
 
 
 # 46 "/home/root/kernel/kernel/include/linux/interrupt.h" 2
 
 # 1 "/home/root/kernel/kernel/include/asm/softirq.h" 1
  
 
 
 
 
 #define __ASM_SOFTIRQ_H
 
 
 # 1 "/home/root/kernel/kernel/include/asm/hardirq.h" 1
  
 
 
 
 # 139 "/home/root/kernel/kernel/include/asm/hardirq.h"
 
 
 # 9 "/home/root/kernel/kernel/include/asm/softirq.h" 2
 
 # 1 "/home/root/kernel/kernel/include/linux/spinlock.h" 1
 
 
 
 # 10 "/home/root/kernel/kernel/include/asm/softirq.h" 2
 
 
 #define __cpu_raise_softirq(cpu, nr) set_bit(nr, &softirq_pending(cpu))
 
  
 
 
 
 
 
 
 
 
 
 
 extern mutex_t softirq_lock;
 
 static inline void local_bh_disable(void)
 {
 
 
 
 
 }
 
 static inline void local_bh_enable(void)
 {
 
 
 
 
 
 
 
 }
 
 #define in_softirq() (current->bh_lock_depth)
 
 
 
 # 47 "/home/root/kernel/kernel/include/linux/interrupt.h" 2
 
 
 
 
  
 
 
 
 
 
 enum
 {
 	HI_SOFTIRQ=0,
 	NET_TX_SOFTIRQ,
 	NET_RX_SOFTIRQ,
 	TASKLET_SOFTIRQ
 };
 
  
 
 
 
 struct softirq_action
 {
 	void (*action)(struct softirq_action *, int cpu);
 	void *data;
 };
 
  
 extern void open_softirq(int nr, void (*action)(struct softirq_action*, int cpu), void *data);
 extern void softirq_init(void);
 extern void  cpu_raise_softirq(unsigned int cpu, unsigned int nr)  ;
 extern void  raise_softirq(unsigned int nr)  ;
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 struct tasklet_struct
 {
 	struct tasklet_struct *next;
 	unsigned long state;
 	atomic_t count;
 	void (*func)(unsigned long);
 	unsigned long data;
 	wait_queue_head_t wait;
 };
 
 #define DECLARE_TASKLET(name, func, data) struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(0), func, data, __WAIT_QUEUE_HEAD_INITIALIZER(name.wait) }
 
 
 
 #define DECLARE_TASKLET_DISABLED(name, func, data) struct tasklet_struct name = { NULL, 0, ATOMIC_INIT(1), func, data, __WAIT_QUEUE_HEAD_INITIALIZER(name.wait) }
 
 
 
 
 enum
 {
 	TASKLET_STATE_SCHED,    
 	TASKLET_STATE_RUN,      
 	TASKLET_STATE_PENDING   
 };
 
 struct tasklet_head
 {
 	struct tasklet_struct *list;
 } __attribute__ ((__aligned__(16  )));
 
 extern struct tasklet_head tasklet_vec[1 ];
 extern struct tasklet_head tasklet_hi_vec[1 ];
 
 #define tasklet_trylock(t) (!test_and_set_bit(TASKLET_STATE_RUN, &(t)->state))
 #define tasklet_unlock(t) do { smp_mb__before_clear_bit(); clear_bit(TASKLET_STATE_RUN, &(t)->state); } while(0)
 
 extern void tasklet_schedule(struct tasklet_struct *t);
 extern void tasklet_hi_schedule(struct tasklet_struct *t);
 
 static inline void tasklet_disable_nosync(struct tasklet_struct *t)
 {
 	((void) atomic_inc_return(( &t->count ))) ;
 }
 
 void tasklet_sync(struct tasklet_struct *t);
 
 static inline void tasklet_disable(struct tasklet_struct *t)
 {
 	tasklet_disable_nosync(t);
 	tasklet_sync(t);
 }
 
 static inline void tasklet_enable(struct tasklet_struct *t)
 {
 	if ((atomic_dec_return(( &t->count )) == 0)  && 
 	    test_bit(TASKLET_STATE_PENDING, &t->state))
 		tasklet_schedule(t);
 }
 
 static inline void tasklet_hi_enable(struct tasklet_struct *t)
 {
 	if ((atomic_dec_return(( &t->count )) == 0)  && 
 	    test_bit(TASKLET_STATE_PENDING, &t->state))
 		tasklet_hi_schedule(t);
 }
 
 #define tasklet_kill(t) tasklet_disable(t)
 
 extern void tasklet_init(struct tasklet_struct *t,
                          void (*func)(unsigned long),
                          unsigned long data);
 
 # 185 "/home/root/kernel/kernel/include/linux/interrupt.h"
 
 
 #define SMP_TIMER_NAME(name) name
 #define SMP_TIMER_DEFINE(name, task)
 
 
 
 
  
 
 extern struct tasklet_struct bh_task_vec[];
 
  
 extern mutex_t  global_bh_lock;
 
 static inline void mark_bh(int nr)
 {
 	tasklet_hi_schedule(bh_task_vec+nr);
 }
 
 extern void init_bh(int nr, void (*routine)(void));
 extern void remove_bh(int nr);
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 extern unsigned long probe_irq_on(void);	 
 extern int probe_irq_off(unsigned long);	 
 extern unsigned int probe_irq_mask(unsigned long);	 
 
 
 # 18 "panic.c" 2
 
 
    void sys_sync(void);	 
 extern void unblank_console(void);
 
 int panic_timeout;
 
 struct notifier_block *panic_notifier_list;
 
 static int __attribute__ ((__section__ (".text.init")))  panic_setup(char *str)
 {
 	panic_timeout = simple_strtoul(str, ((void *)0) , 0);
 	return 1;
 }
 
 static char __setup_str_panic_setup [] __attribute__ ((__section__ (".data.init")))  =  "panic=" ;	static struct kernel_param __setup_panic_setup  __attribute__((unused)) __attribute__ ((unused,__section__ (".setup.init")))  = { __setup_str_panic_setup ,    panic_setup  } ;
 
  
 
 
 
 
 
 
 
 
 
  
   void panic(const char * fmt, ...)
 {
 	static char buf[1024];
 	va_list args;
 
 
 
 
 	(__builtin_next_arg (  fmt ), __builtin_memcpy ((  args  ), __builtin_saveregs (), sizeof(__gnuc_va_list)) ) ;
 	vsprintf(buf, fmt, args);
 	((void)0) ;
 	printk("<0>"  "Kernel panic: %s\n",buf);
 	if ((((void)( ( 0 ) ), irq_stat[0].  __local_irq_count )  ) )
 		printk("<0>"  "In interrupt handler - not syncing\n");
 	else if (!current->pid)
 		printk("<0>"  "In idle task - not syncing\n");
 	else
 		sys_sync();
 
 	unblank_console();
 
 
 
 
 
 	notifier_call_chain(&panic_notifier_list, 0, ((void *)0) );
 
 	if (panic_timeout > 0)
 	{
 		 
 
 
 
 		printk("<0>"  "Rebooting in %d seconds..",panic_timeout);
 		(	(__builtin_constant_p( panic_timeout*1000 ) && ( panic_timeout*1000 )<= 5 ) ? (__builtin_constant_p( ( panic_timeout*1000 )*1000 )? (( ( panic_timeout*1000 )*1000 ) > 1000000 ? __bad_udelay(): __const_udelay(( ( panic_timeout*1000 )*1000 ) * 4294u))  : __udelay( ( panic_timeout*1000 )*1000 ))  : ({unsigned long msec=( panic_timeout*1000 ); while (msec--) (__builtin_constant_p( 1000 )? (( 1000 ) > 1000000 ? __bad_udelay(): __const_udelay(( 1000 ) * 4294u)) : __udelay( 1000 )) ;})) ;
 		 
 
 
 
 
 		machine_restart(((void *)0) );
 	}
 
 
 
 
 
 
 
 
 
 
 
 
 	if (! (((void)( ( 0 ) ), irq_stat[0].  __local_irq_count )  ) ) {
 		__global_sti() ;
 		for(;;) {
 			if (emergency_sync_scheduled)	do_emergency_sync(); 
 		}
 	} else {
 		__cli();
 		for(;;);
 	}
 }
 
 
 
 
 
 
----gnatsweb-attachment----
Content-Type: text/plain; name="panic.i"
Content-Disposition: inline; filename="panic.i"

# 0 "panic.c"
#define __BASE_FILE__ "panic.c"
# 0 "panic.c"
#define __VERSION__ "2.95.2 19991024 (release)"
# 0 "panic.c"
#define __SIZE_TYPE__ unsigned int
# 0 "panic.c"
#define __PTRDIFF_TYPE__ int
# 0 "panic.c"
#define __WCHAR_TYPE__ long int
# 0 "panic.c"
#define __DATE__ "Feb 25 2002"
# 0 "panic.c"
#define __TIME__ "18:10:05"
# 0 "panic.c"
#define __STDC__ 1
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 0 "panic.c"
# 1 "panic.c"
 





 



# 1 "/home/root/kernel/kernel/include/linux/config.h" 1

#define _LINUX_CONFIG_H

# 1 "/home/root/kernel/kernel/include/linux/autoconf.h" 1
 


#define AUTOCONF_INCLUDED


#define CONFIG_RWSEM_XCHGADD_ALGORITHM 1

 


#define CONFIG_EXPERIMENTAL 1

 


#define CONFIG_MODULES 1
#define CONFIG_MODVERSIONS 1
#define CONFIG_KMOD 1

 


#define CONFIG_PPC 1




#define CONFIG_8xx 1
#define CONFIG_SERIAL_CONSOLE 1
#define CONFIG_RPXLITE 1


















 









#define CONFIG_NET 1
#define CONFIG_SYSCTL 1
#define CONFIG_SYSVIPC 1

#define CONFIG_KCORE_ELF 1
#define CONFIG_BINFMT_ELF 1
#define CONFIG_KERNEL_ELF 1

#define CONFIG_BINFMT_MISC_MODULE 1
#define CONFIG_HOTPLUG 1

 




 



#define CONFIG_PPC_RTC 1
#define CONFIG_CMDLINE_BOOL 1
#define CONFIG_CMDLINE "console=ttyS0,9600 root=/dev/nfs nfsroot=192.168.201.86:/rpx_root ip=192.168.201.87:192.168.201.86:192.168.201.86:255.255.255.0:asdf::"

 


#define CONFIG_POSIX_PRIOS (511)
#define CONFIG_RK 1
#define CONFIG_PRIO_INHERIT 1
#define CONFIG_MAX_READERS (16)
#define CONFIG_PIP_KERNEL_LOCKS 1
#define CONFIG_USER_SYS_TIMES 1
#define CONFIG_MEASURE 1

 




 





 










#define CONFIG_BLK_DEV_RAM 1
#define CONFIG_BLK_DEV_RAM_SIZE (4096)


 










 


#define CONFIG_PACKET 1

#define CONFIG_NETLINK 1


#define CONFIG_NETFILTER 1


#define CONFIG_UNIX 1
#define CONFIG_INET 1
#define CONFIG_IP_MULTICAST 1

#define CONFIG_IP_PNP 1







#define CONFIG_SYN_COOKIES 1

 



#define CONFIG_IP_NF_CONNTRACK_MODULE 1

#define CONFIG_IP_NF_FTP_MODULE 1


#define CONFIG_IP_NF_IPTABLES_MODULE 1

#define CONFIG_IP_NF_MATCH_LIMIT_MODULE 1

#define CONFIG_IP_NF_MATCH_MAC_MODULE 1

#define CONFIG_IP_NF_MATCH_MARK_MODULE 1

#define CONFIG_IP_NF_MATCH_MULTIPORT_MODULE 1

#define CONFIG_IP_NF_MATCH_TOS_MODULE 1

#define CONFIG_IP_NF_MATCH_TCPMSS_MODULE 1

#define CONFIG_IP_NF_MATCH_STATE_MODULE 1

#define CONFIG_IP_NF_MATCH_UNCLEAN_MODULE 1

#define CONFIG_IP_NF_MATCH_OWNER_MODULE 1

#define CONFIG_IP_NF_FILTER_MODULE 1

#define CONFIG_IP_NF_TARGET_REJECT_MODULE 1

#define CONFIG_IP_NF_TARGET_MIRROR_MODULE 1

#define CONFIG_IP_NF_NAT_MODULE 1
#define CONFIG_IP_NF_NAT_NEEDED 1

#define CONFIG_IP_NF_TARGET_MASQUERADE_MODULE 1

#define CONFIG_IP_NF_TARGET_REDIRECT_MODULE 1

#define CONFIG_IP_NF_NAT_FTP_MODULE 1



#define CONFIG_IP_NF_TARGET_TCPMSS_MODULE 1

#define CONFIG_IP_NF_COMPAT_IPCHAINS_MODULE 1


















 




 






 




 


#define CONFIG_NETDEVICES 1

 









 


#define CONFIG_NET_ETHERNET 1



















 












#define CONFIG_PPP 1
#define CONFIG_PPP_MULTILINK 1

#define CONFIG_PPP_ASYNC 1

#define CONFIG_PPP_DEFLATE 1




 




 







 




 




 




 




 




 



 




 




 



 






#define CONFIG_UNIX98_PTYS 1
#define CONFIG_UNIX98_PTY_COUNT (256)

 




 





 





 











 






 




 











#define CONFIG_HFS_FS_MODULE 1


#define CONFIG_FAT_FS_MODULE 1

#define CONFIG_MSDOS_FS_MODULE 1


#define CONFIG_VFAT_FS_MODULE 1












#define CONFIG_PROC_FS 1
#define CONFIG_DEVFS_FS 1


#define CONFIG_DEVPTS_FS 1










 



#define CONFIG_NFS_FS 1
#define CONFIG_NFS_V3 1
#define CONFIG_ROOT_NFS 1
#define CONFIG_NFSD 1
#define CONFIG_NFSD_V3 1
#define CONFIG_SUNRPC 1
#define CONFIG_LOCKD 1
#define CONFIG_LOCKD_V4 1











 



#define CONFIG_MSDOS_PARTITION 1

#define CONFIG_NLS 1

 


#define CONFIG_NLS_DEFAULT "iso8859-1"























#define CONFIG_NLS_ISO8859_1_MODULE 1














 




 


#define CONFIG_SCC_ENET 1

#define CONFIG_SCC2_ENET 1








 


#define CONFIG_USB 1

#define CONFIG_USB_DEVICEFS 1

























 



#define CONFIG_USB_SERIAL_MODULE 1







#define CONFIG_USB_SERIAL_VISOR_MODULE 1









 




 


#define CONFIG_MAGIC_SYSRQ 1



# 4 "/home/root/kernel/kernel/include/linux/config.h" 2



# 11 "panic.c" 2

# 1 "/home/root/kernel/kernel/include/linux/sched.h" 1

#define _LINUX_SCHED_H

# 1 "/home/root/kernel/kernel/include/linux/sched-defs.h" 1

#define _LINUX_SCHED_DEFS_H

# 1 "/home/root/kernel/kernel/include/asm/param.h" 1
 



#define _ASM_PPC_PARAM_H


#define HZ 100


#define EXEC_PAGESIZE	4096


#define NGROUPS		32



#define NOGROUP		(-1)


#define MAXHOSTNAMELEN	64	


#define CLOCKS_PER_SEC	100	

 



#define DEF_SLICE		0x80000

 
#define SLICE_BITS	21




# 4 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2


extern unsigned long event;


# 1 "/home/root/kernel/kernel/include/linux/binfmts.h" 1

#define _LINUX_BINFMTS_H

# 1 "/home/root/kernel/kernel/include/linux/ptrace.h" 1

#define _LINUX_PTRACE_H
 
 

 

#define PTRACE_TRACEME		   0
#define PTRACE_PEEKTEXT		   1
#define PTRACE_PEEKDATA		   2
#define PTRACE_PEEKUSR		   3
#define PTRACE_POKETEXT		   4
#define PTRACE_POKEDATA		   5
#define PTRACE_POKEUSR		   6
#define PTRACE_CONT		   7
#define PTRACE_KILL		   8
#define PTRACE_SINGLESTEP	   9

#define PTRACE_ATTACH		0x10
#define PTRACE_DETACH		0x11

#define PTRACE_SYSCALL		  24

# 1 "/home/root/kernel/kernel/include/asm/ptrace.h" 1
 



#define _PPC_PTRACE_H

 
















struct pt_regs {
	unsigned long gpr[32];
	unsigned long nip;
	unsigned long msr;
	unsigned long orig_gpr3;	 
	unsigned long ctr;
	unsigned long link;
	unsigned long xer;
	unsigned long ccr;
	unsigned long mq;		 
					 
	unsigned long trap;		 
	unsigned long dar;		 
	unsigned long dsisr;
	unsigned long result; 		 
};



#define STACK_FRAME_OVERHEAD	16	

 
#define __SIGNAL_FRAMESIZE	64

#define instruction_pointer(regs) ((regs)->nip)
#define user_mode(regs) (((regs)->msr & MSR_PR) != 0)



 




#define PT_R0	0
#define PT_R1	1
#define PT_R2	2
#define PT_R3	3
#define PT_R4	4
#define PT_R5	5
#define PT_R6	6
#define PT_R7	7
#define PT_R8	8
#define PT_R9	9
#define PT_R10	10
#define PT_R11	11
#define PT_R12	12
#define PT_R13	13
#define PT_R14	14
#define PT_R15	15
#define PT_R16	16
#define PT_R17	17
#define PT_R18	18
#define PT_R19	19
#define PT_R20	20
#define PT_R21	21
#define PT_R22	22
#define PT_R23	23
#define PT_R24	24
#define PT_R25	25
#define PT_R26	26
#define PT_R27	27
#define PT_R28	28
#define PT_R29	29
#define PT_R30	30
#define PT_R31	31

#define PT_NIP	32
#define PT_MSR	33

#define PT_ORIG_R3 34

#define PT_CTR	35
#define PT_LNK	36
#define PT_XER	37
#define PT_CCR	38
#define PT_MQ	39

#define PT_FPR0	48	
#define PT_FPR31 (PT_FPR0 + 2*31)
#define PT_FPSCR (PT_FPR0 + 2*32 + 1)



# 24 "/home/root/kernel/kernel/include/linux/ptrace.h" 2



# 4 "/home/root/kernel/kernel/include/linux/binfmts.h" 2

# 1 "/home/root/kernel/kernel/include/linux/capability.h" 1
 









 


#define _LINUX_CAPABILITY_H

# 1 "/home/root/kernel/kernel/include/linux/types.h" 1

#define _LINUX_TYPES_H





# 1 "/home/root/kernel/kernel/include/linux/posix_types.h" 1

#define _LINUX_POSIX_TYPES_H

# 1 "/home/root/kernel/kernel/include/linux/stddef.h" 1

#define _LINUX_STDDEF_H





#define NULL ((void *)0)



#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)


# 4 "/home/root/kernel/kernel/include/linux/posix_types.h" 2


 










 




#define __NFDBITS	(8 * sizeof(unsigned long))


#define __FD_SETSIZE	1024


#define __FDSET_LONGS	(__FD_SETSIZE/__NFDBITS)


#define 	__FDELT(d)	((d) / __NFDBITS)


#define 	__FDMASK(d)	(1UL << ((d) % __NFDBITS))

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 "/home/root/kernel/kernel/include/asm/posix_types.h" 1
 



#define _PPC_POSIX_TYPES_H

 





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

typedef unsigned int	__kernel_old_uid_t;
typedef unsigned int	__kernel_old_gid_t;


typedef long long	__kernel_loff_t;


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

# 54 "/home/root/kernel/kernel/include/asm/posix_types.h"




 


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


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


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

 




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

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




# 46 "/home/root/kernel/kernel/include/linux/posix_types.h" 2



# 8 "/home/root/kernel/kernel/include/linux/types.h" 2

# 1 "/home/root/kernel/kernel/include/asm/types.h" 1
 



#define _PPC_TYPES_H



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 struct {
	__u32 u[4];
} __attribute((aligned(16))) __vector128;


 


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 __vector128 vector128;

#define BITS_PER_LONG 32

 
typedef u32 dma_addr_t;

typedef unsigned short umode_t;



typedef long long cpu_tick_data_t;




# 9 "/home/root/kernel/kernel/include/linux/types.h" 2




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


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







 








typedef __kernel_loff_t		loff_t;


 




#define _SIZE_T
typedef __kernel_size_t		size_t;



#define _SSIZE_T
typedef __kernel_ssize_t	ssize_t;



#define _PTRDIFF_T
typedef __kernel_ptrdiff_t	ptrdiff_t;



#define _TIME_T
typedef __kernel_time_t		time_t;



#define _CLOCK_T
typedef __kernel_clock_t	clock_t;



#define _CADDR_T
typedef __kernel_caddr_t	caddr_t;


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

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


#define __BIT_TYPES_DEFINED__

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



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


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




 




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


# 16 "/home/root/kernel/kernel/include/linux/capability.h" 2

# 1 "/home/root/kernel/kernel/include/linux/fs-defs.h" 1

#define _LINUX_FS_DEFS_H

 





# 1 "/home/root/kernel/kernel/include/linux/linkage.h" 1

#define _LINUX_LINKAGE_H






#define CPP_ASMLINKAGE







#define asmlinkage CPP_ASMLINKAGE


#define SYMBOL_NAME_STR(X) #X
#define SYMBOL_NAME(X) X

#define SYMBOL_NAME_LABEL(X) X##:




















#define __ALIGN .align 4,0x90
#define __ALIGN_STR ".align 4,0x90"





# 61 "/home/root/kernel/kernel/include/linux/linkage.h"



# 10 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/limits.h" 1

#define _LINUX_LIMITS_H

#define NR_OPEN	        1024

#define NGROUPS_MAX       32	
#define ARG_MAX       131072	
#define CHILD_MAX        999    
#define OPEN_MAX         256	
#define LINK_MAX         127	
#define MAX_CANON        255	
#define MAX_INPUT        255	
#define NAME_MAX         255	
#define PATH_MAX        4095	
#define PIPE_BUF        4096	

#define RTSIG_MAX	  32


# 11 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/wait.h" 1

#define _LINUX_WAIT_H

#define WNOHANG		0x00000001
#define WUNTRACED	0x00000002

#define __WNOTHREAD	0x20000000	
#define __WALL		0x40000000	
#define __WCLONE	0x80000000	




# 1 "/home/root/kernel/kernel/include/linux/kernel.h" 1

#define _LINUX_KERNEL_H

 





# 1 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/stdarg.h" 1 3
 







#define _STDARG_H
#define _ANSI_STDARG_H_































# 1 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/va-ppc.h" 1 3
 


 
 


#define __GNUC_VA_LIST


#define _SYS_VA_LIST_H		

 

#define __va_overflow(AP) (AP)->overflow_arg_area

 

typedef struct __va_list_tag {
  unsigned char gpr;		 


  unsigned char fpr;		 


  char *overflow_arg_area;	 

  char *reg_save_area;		 
} __va_list[1], __gnuc_va_list[1];









 



 

#define __VA_PPC_H__
typedef struct {
  long   __gp_save[8];		 
  double __fp_save[8];		 
} __va_regsave_t;

 
 

#define __VA_FP_REGSAVE(AP,OFS,TYPE)	((TYPE *) (void *) (&(((__va_regsave_t *)	(AP)->reg_save_area)->__fp_save[OFS])))



#define __VA_GP_REGSAVE(AP,OFS,TYPE)	((TYPE *) (void *) (&(((__va_regsave_t *)	(AP)->reg_save_area)->__gp_save[OFS])))



 




#define __va_start_common(AP, FAKE) __builtin_memcpy ((AP), __builtin_saveregs (), sizeof(__gnuc_va_list))




 

#define va_start(AP,LASTARG) (__builtin_next_arg (LASTARG), __va_start_common (AP, 0))











#define __va_float_p(TYPE)	0




#define __va_aggregate_p(TYPE)	(__builtin_classify_type(*(TYPE *)0) >= 12)
#define __va_size(TYPE)		((sizeof(TYPE) + sizeof (long) - 1) / sizeof (long))

 







extern void __va_arg_type_violation(void) __attribute__((__noreturn__));




#define va_arg(AP,TYPE)	__extension__ (*({	register TYPE *__ptr;	if (__va_float_p (TYPE) && sizeof (TYPE) < 16)	{	unsigned char __fpr = (AP)->fpr;	if (__fpr < 8)	{	__ptr = __VA_FP_REGSAVE (AP, __fpr, TYPE);	(AP)->fpr = __fpr + 1;	}	else if (sizeof (TYPE) == 8)	{	unsigned long __addr = (unsigned long) (__va_overflow (AP));	__ptr = (TYPE *)((__addr + 7) & -8);	__va_overflow (AP) = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if (__va_aggregate_p (TYPE) || __va_float_p (TYPE))	{	unsigned char __gpr = (AP)->gpr;	if (__gpr < 8)	{	__ptr = * __VA_GP_REGSAVE (AP, __gpr, TYPE *);	(AP)->gpr = __gpr + 1;	}	else	{	TYPE **__pptr = (TYPE **) (__va_overflow (AP));	__ptr = * __pptr;	__va_overflow (AP) = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (TYPE) == 8)	{	unsigned char __gpr = (AP)->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = __VA_GP_REGSAVE (AP, __gpr, TYPE);	(AP)->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) (__va_overflow (AP)); __ptr = (TYPE *)((__addr + 7) & -8);	(AP)->gpr = 8;	__va_overflow (AP) = (char *)(__ptr + 1);	}	}	else if (sizeof (TYPE) == 4)	{	unsigned char __gpr = (AP)->gpr;	if (__gpr < 8)	{	__ptr = __VA_GP_REGSAVE (AP, __gpr, TYPE);	(AP)->gpr = __gpr + 1;	}	else	{	__ptr = (TYPE *) __va_overflow (AP);	__va_overflow (AP) = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	}))
# 192 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/va-ppc.h" 3

#define va_end(AP)	((void)0)

 
#define __va_copy(dest, src) *(dest) = *(src)




\f
# 255 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/va-ppc.h" 3

# 42 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/stdarg.h" 2 3

# 131 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/stdarg.h" 3












 
 













# 175 "/opt/lib/gcc-lib/powerpc-linux/2.95.2/include/stdarg.h" 3


 




 

 

 

typedef __gnuc_va_list va_list;




#define _VA_LIST_


#define _VA_LIST


#define _VA_LIST_DEFINED


#define _VA_LIST_T_H










# 10 "/home/root/kernel/kernel/include/linux/kernel.h" 2




 
 
#define barrier() __asm__ __volatile__("": : :"memory")

#define INT_MAX		((int)(~0U>>1))
#define INT_MIN		(-INT_MAX - 1)
#define UINT_MAX	(~0U)
#define LONG_MAX	((long)(~0UL>>1))
#define LONG_MIN	(-LONG_MAX - 1)
#define ULONG_MAX	(~0UL)

#define STACK_MAGIC	0xdeadbeef

#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))

#define 	KERN_EMERG	"<0>"	
#define 	KERN_ALERT	"<1>"	
#define 	KERN_CRIT	"<2>"	
#define 	KERN_ERR	"<3>"	
#define 	KERN_WARNING	"<4>"	
#define 	KERN_NOTICE	"<5>"	
#define 	KERN_INFO	"<6>"	
#define 	KERN_DEBUG	"<7>"	

#define NORET_TYPE    
#define ATTRIB_NORET  __attribute__((noreturn))
#define NORET_AND     noreturn,




#define FASTCALL(x)	x


struct semaphore;

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

extern int session_of_pgrp(int pgrp);

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

extern int console_loglevel;

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

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





#define pr_debug(fmt,arg...) do { } while (0)



#define pr_info(fmt,arg...) printk(KERN_INFO fmt,##arg)


 



#define NIPQUAD(addr) ((unsigned char *)&addr)[0], ((unsigned char *)&addr)[1], ((unsigned char *)&addr)[2], ((unsigned char *)&addr)[3]





#define HIPQUAD(addr) ((unsigned char *)&addr)[3], ((unsigned char *)&addr)[2], ((unsigned char *)&addr)[1], ((unsigned char *)&addr)[0]







#define SI_LOAD_SHIFT	16
struct sysinfo {
	long uptime;			 
	unsigned long loads[3];		 
	unsigned long totalram;		 
	unsigned long freeram;		 
	unsigned long sharedram;	 
	unsigned long bufferram;	 
	unsigned long totalswap;	 
	unsigned long freeswap;		 
	unsigned short procs;		 
	unsigned short pad;		 
	unsigned long totalhigh;	 
	unsigned long freehigh;		 
	unsigned int mem_unit;		 
	char _f[20-2*sizeof(long)-sizeof(int)];	 
};


# 14 "/home/root/kernel/kernel/include/linux/wait.h" 2

# 1 "/home/root/kernel/kernel/include/linux/list.h" 1

#define _LINUX_LIST_H



 









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

#define LIST_HEAD_INIT(name) { &(name), &(name) }

#define LIST_HEAD(name) struct list_head name = LIST_HEAD_INIT(name)


#define INIT_LIST_HEAD(ptr) do { (ptr)->next = (ptr); (ptr)->prev = (ptr); } while (0)



 





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

 







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

 







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

 






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

 




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

 



static __inline__ void list_del_init(struct list_head *entry)
{
	__list_del(entry->prev, entry->next);
	do { ( entry )->next = ( entry ); ( entry )->prev = ( entry ); } while (0) ; 
}

 



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

 




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

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

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

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

 





#define list_entry(ptr, type, member) ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))


 




#define list_for_each(pos, head) for (pos = (head)->next; pos != (head); pos = pos->next)





# 15 "/home/root/kernel/kernel/include/linux/wait.h" 2


# 1 "/home/root/kernel/kernel/include/linux/mutex-defs.h" 1
 



#define __LINUX_MUTEX_DEFS_H

# 1 "/home/root/kernel/kernel/include/linux/oldspinlock.h" 1

#define __LINUX_SPINLOCK_H




 



#define old_spin_lock_irqsave(lock, flags)		do { local_irq_save(flags);       old_spin_lock(lock); } while (0)
#define old_spin_lock_irq(lock)			do { local_irq_disable();         old_spin_lock(lock); } while (0)

#define old_read_lock_irqsave(lock, flags)		do { local_irq_save(flags);       old_read_lock(lock); } while (0)
#define old_read_lock_irq(lock)			do { local_irq_disable();         old_read_lock(lock); } while (0)

#define old_write_lock_irqsave(lock, flags)		do { local_irq_save(flags);      old_write_lock(lock); } while (0)
#define old_write_lock_irq(lock)			do { local_irq_disable();        old_write_lock(lock); } while (0)

#define old_spin_unlock_irqrestore(lock, flags)	do { old_spin_unlock(lock);  local_irq_restore(flags); } while (0)
#define old_spin_unlock_irq(lock)			do { old_spin_unlock(lock);  local_irq_enable();       } while (0)

#define old_read_unlock_irqrestore(lock, flags)	do { old_read_unlock(lock);  local_irq_restore(flags); } while (0)
#define old_read_unlock_irq(lock)			do { old_read_unlock(lock);  local_irq_enable();       } while (0)

#define old_write_unlock_irqrestore(lock, flags)	do { old_write_unlock(lock); local_irq_restore(flags); } while (0)
#define old_write_unlock_irq(lock)			do { old_write_unlock(lock); local_irq_enable();       } while (0)







#define DEBUG_SPINLOCKS 0	



 








  typedef struct { int gcc_is_buggy; } old_spinlock_t;
  #define OLD_SPIN_LOCK_UNLOCKED (old_spinlock_t) { 0 }


#define old_spin_lock_init(lock)	do { } while(0)
#define old_spin_lock(lock)		(void)(lock) 
#define old_spin_is_locked(lock)	({(void)(lock); 0; })
#define old_spin_trylock(lock)	({(void)(lock); 1; })
#define old_spin_unlock_wait(lock)	(void)(lock)
#define old_spin_unlock(lock)	(void)(lock)

# 139 "/home/root/kernel/kernel/include/linux/oldspinlock.h"


 















  typedef struct { int gcc_is_buggy; } old_rwlock_t;
  #define OLD_RW_LOCK_UNLOCKED (old_rwlock_t) { 0 }


#define old_rwlock_init(lock)	do { } while(0)
#define old_read_lock(lock)		(void)(lock) 
#define old_read_unlock(lock)	do { } while(0)
#define old_write_lock(lock)	(void)(lock) 
#define old_write_unlock(lock)	do { } while(0)




# 7 "/home/root/kernel/kernel/include/linux/mutex-defs.h" 2

# 1 "/home/root/kernel/kernel/include/asm/atomic.h" 1
 


 




#define _ASM_PPC_ATOMIC_H_

typedef struct { volatile int counter; } atomic_t;

#define ATOMIC_INIT(i)	{ (i) }

#define atomic_read(v)		((v)->counter)
#define atomic_set(v,i)		(((v)->counter) = (i))

extern void atomic_clear_mask(unsigned long mask, unsigned long *addr);
extern void atomic_set_mask(unsigned long mask, unsigned long *addr);

static __inline__ int atomic_add_return(int a, atomic_t *v)
{
	int t;

	__asm__ __volatile__("\n1:	lwarx	%0,0,%3\n	add	%0,%2,%0\n	stwcx.	%0,0,%3\n	bne-	1b"




	: "=&r" (t), "=m" (v->counter)
	: "r" (a), "r" (v), "m" (v->counter)
	: "cc");

	return t;
}

static __inline__ int atomic_sub_return(int a, atomic_t *v)
{
	int t;

	__asm__ __volatile__("\n1:	lwarx	%0,0,%3\n	subf	%0,%2,%0\n	stwcx.	%0,0,%3\n	bne-	1b"




	: "=&r" (t), "=m" (v->counter)
	: "r" (a), "r" (v), "m" (v->counter)
	: "cc");

	return t;
}

static __inline__ int atomic_inc_return(atomic_t *v)
{
	int t;

	__asm__ __volatile__("\n1:	lwarx	%0,0,%2\n	addic	%0,%0,1\n	stwcx.	%0,0,%2\n	bne-	1b"




	: "=&r" (t), "=m" (v->counter)
	: "r" (v), "m" (v->counter)
	: "cc");

	return t;
}

static __inline__ int atomic_dec_return(atomic_t *v)
{
	int t;

	__asm__ __volatile__("\n1:	lwarx	%0,0,%2\n	addic	%0,%0,-1\n	stwcx.	%0,0,%2\n	bne	1b"




	: "=&r" (t), "=m" (v->counter)
	: "r" (v), "m" (v->counter)
	: "cc");

	return t;
}

#define atomic_add(a, v)		((void) atomic_add_return((a), (v)))
#define atomic_add_negative(a,v)(atomic_add_return ((a), (v)) < 0)
#define atomic_sub(a, v)		((void) atomic_sub_return((a), (v)))
#define atomic_sub_and_test(a, v)	(atomic_sub_return((a), (v)) == 0)
#define atomic_inc(v)			((void) atomic_inc_return((v)))
#define atomic_dec(v)			((void) atomic_dec_return((v)))
#define atomic_dec_and_test(v)		(atomic_dec_return((v)) == 0)

 



static __inline__ int atomic_dec_if_positive(atomic_t *v)
{
	int t;

	__asm__ __volatile__("\n"
"1:	lwarx	%0,0,%2\n"
"	addic.	%0,%0,-1\n"
"	blt	2f\n"
"	stwcx.	%0,0,%2\n"
"	bne	1b\n"
"2:"
	: "=&r" (t), "=m" (v->counter)
	: "r" (&v->counter), "m" (v->counter)
	: "cc");

	return t;
}

#define smp_mb__before_atomic_dec()	smp_mb()
#define smp_mb__after_atomic_dec()	smp_mb()
#define smp_mb__before_atomic_inc()	smp_mb()
#define smp_mb__after_atomic_inc()	smp_mb()


# 8 "/home/root/kernel/kernel/include/linux/mutex-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/string.h" 1

#define _LINUX_STRING_H_

 










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


 


# 1 "/home/root/kernel/kernel/include/asm/string.h" 1
 



#define _PPC_STRING_H_



#define __HAVE_ARCH_STRCPY
#define __HAVE_ARCH_STRNCPY
#define __HAVE_ARCH_STRLEN
#define __HAVE_ARCH_STRCMP
#define __HAVE_ARCH_STRCAT
#define __HAVE_ARCH_MEMSET
#define __HAVE_ARCH_BCOPY
#define __HAVE_ARCH_MEMCPY
#define __HAVE_ARCH_MEMMOVE
#define __HAVE_ARCH_MEMCMP
#define __HAVE_ARCH_MEMCHR

extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, int);
extern char * strcpy(char *,const char *);
extern char * strncpy(char *,const char *, __kernel_size_t);
extern __kernel_size_t strlen(const char *);
extern int strcmp(const char *,const char *);
extern char * strcat(char *, const char *);
extern void * memset(void *,int,__kernel_size_t);
extern void * memcpy(void *,const void *,__kernel_size_t);
extern void * memmove(void *,const void *,__kernel_size_t);
extern int memcmp(const void *,const void *,__kernel_size_t);
extern void * memchr(const void *,int,__kernel_size_t);




# 25 "/home/root/kernel/kernel/include/linux/string.h" 2












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





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


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


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


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


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





extern __kernel_size_t strnlen(const char *,__kernel_size_t);












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














# 9 "/home/root/kernel/kernel/include/linux/mutex-defs.h" 2


#define MUTEX_UNLOCKED   0
#define MUTEX_WRITE      1
#define MUTEX_READ       2

#define PTHREAD_PRIO_NONE		0
#define PTHREAD_PRIO_INHERIT	1
#define PTHREAD_PRIO_PROTECT	2





#define SHARED_QUEUE 0
#define NUM_QUEUES 1


struct user_mutex_t;
struct mutex_t;

typedef struct mutex_list_t {
	struct task_struct *proc;
	struct mutex_list_t *next, *prev;
	struct mutex_t *mutex;
} mutex_list_t;

typedef struct mutex_t {
	int state;			 
 	int num_readers;
	struct task_struct *blocked_head, *blocked_tail;
	struct user_mutex_t *umtx;

	int proto;
	mutex_list_t owners[(16) ];




} mutex_t;


	
		#define MUTEX_LOCK_UNLOCKED (mutex_t) { state: MUTEX_UNLOCKED, proto: PTHREAD_PRIO_INHERIT }

	







#define spinlock_t         mutex_t
#define rwlock_t           mutex_t
#define spin_lock_init     mutex_init
#define spin_lock          write_lock
#define spin_unlock        write_unlock
#define spin_trylock       mutex_trylock
#define spin_trylock_bh    mutex_trylock
#define spin_unlock_wait   mutex_unlock_wait

#define SPIN_LOCK_UNLOCKED MUTEX_LOCK_UNLOCKED
#define RW_LOCK_UNLOCKED   MUTEX_LOCK_UNLOCKED

extern old_spinlock_t mutex_lock;

void mutex_adjust_priority(struct task_struct *p);
void fix_mutex_queue(struct task_struct *p);
void unlock_all_mutexes(void);

static inline void mutex_init(mutex_t *lock)
{
	memset(lock, 0, sizeof(mutex_t));
	


	lock->proto = 1 ;




}

 
extern int atomic_dec_and_lock(atomic_t *atomic, mutex_t  *lock);


# 17 "/home/root/kernel/kernel/include/linux/wait.h" 2


# 1 "/home/root/kernel/kernel/include/asm/page.h" 1
 



#define _PPC_PAGE_H

 
#define PAGE_SHIFT	12
#define PAGE_SIZE	(1UL << PAGE_SHIFT)
#define PAGE_MASK	(~(PAGE_SIZE-1))




#define PAGE_OFFSET	0xc0000000
#define KERNELBASE	PAGE_OFFSET


# 1 "/home/root/kernel/kernel/include/asm/system.h" 1
 


 



#define __PPC_SYSTEM_H


# 1 "/home/root/kernel/kernel/include/linux/kdev_t.h" 1

#define _LINUX_KDEV_T_H

 























































 



#define MINORBITS	8
#define MINORMASK	((1U << MINORBITS) - 1)

typedef unsigned short kdev_t;

#define MAJOR(dev)	((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev)	((unsigned int) ((dev) & MINORMASK))
#define HASHDEV(dev)	((unsigned int) (dev))
#define NODEV		0
#define MKDEV(ma,mi)	(((ma) << MINORBITS) | (mi))
#define B_FREE		0xffff		

extern const char * kdevname(kdev_t);	 

 




static inline unsigned int kdev_t_to_nr(kdev_t dev) {
	return (((unsigned int) (( dev ) >> 8 )) <<8) | ((unsigned int) (( dev ) & ((1U << 8 ) - 1) )) ;
}

static inline kdev_t to_kdev_t(int dev)
{
	int major, minor;








	major = (dev >> 8);
	minor = (dev & 0xff);

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

# 113 "/home/root/kernel/kernel/include/linux/kdev_t.h"


# 11 "/home/root/kernel/kernel/include/asm/system.h" 2


# 1 "/home/root/kernel/kernel/include/asm/processor.h" 1
 




#define __ASM_PPC_PROCESSOR_H

 



#define current_text_addr() ({ __label__ _l; _l: &&_l;})





# 1 "/home/root/kernel/kernel/include/asm/mpc8xx.h" 1
 



 







#define __CONFIG_8xx_DEFS














# 1 "/home/root/kernel/kernel/include/asm/rpxlite.h" 1
 



 







#define __MACH_RPX_DEFS




 


typedef struct bd_info {
	unsigned int	bi_memstart;	 
	unsigned int	bi_memsize;	 
	unsigned int	bi_intfreq;	 
	unsigned int	bi_busfreq;	 
	unsigned char	bi_enetaddr[6];
	unsigned int	bi_baudrate;
} bd_t;

extern bd_t m8xx_board_info;

 



#define RPX_CSR_ADDR		((uint)0xfa400000)
#define RPX_CSR_SIZE		((uint)(4 * 1024))
#define IMAP_ADDR		((uint)0xfa200000)
#define IMAP_SIZE		((uint)(64 * 1024))
#define PCMCIA_MEM_ADDR		((uint)0x04000000)
#define PCMCIA_MEM_SIZE		((uint)(64 * 1024))
#define PCMCIA_IO_ADDR		((uint)0x04400000)
#define PCMCIA_IO_SIZE		((uint)(4 * 1024))

 

#define BCSR0_ETHEN		((uint)0x80000000)
#define BCSR0_ETHLPBK		((uint)0x40000000)
#define BCSR0_COLTESTDIS	((uint)0x20000000)
#define BCSR0_FULLDPLXDIS	((uint)0x10000000)
#define BCSR0_LEDOFF		((uint)0x08000000)
#define BCSR0_USBDISABLE	((uint)0x04000000)
#define BCSR0_USBHISPEED	((uint)0x02000000)
#define BCSR0_USBPWREN		((uint)0x01000000)
#define BCSR0_PCMCIAVOLT	((uint)0x000f0000)
#define BCSR0_PCMCIA3VOLT	((uint)0x000a0000)
#define BCSR0_PCMCIA5VOLT	((uint)0x00060000)

#define BCSR1_IPB5SEL          ((uint)0x00100000)
#define BCSR1_PCVCTL4          ((uint)0x00080000)
#define BCSR1_PCVCTL5          ((uint)0x00040000)
#define BCSR1_PCVCTL6          ((uint)0x00020000)
#define BCSR1_PCVCTL7          ((uint)0x00010000)






 
#define _IO_BASE 0x80000000
#define _IO_BASE_SIZE 0x1000






 

#define NR_8259_INTS	0

 

#define _MACH_8xx (_MACH_rpxlite)



# 28 "/home/root/kernel/kernel/include/asm/mpc8xx.h" 2























 



 


# 68 "/home/root/kernel/kernel/include/asm/mpc8xx.h"




#define _ISA_MEM_BASE   0
#define PCI_DRAM_OFFSET 0



extern unsigned long isa_io_base;
extern unsigned long isa_mem_base;
extern unsigned long pci_dram_offset;

 


extern unsigned char __res[];

extern int request_8xxirq(unsigned int irq,
		       void (*handler)(int, void *, struct pt_regs *),
		       unsigned long flags, 
		       const char *device,
		       void *dev_id);




# 18 "/home/root/kernel/kernel/include/asm/processor.h" 2


 





#define MSR_VEC		(1<<25)		
#define MSR_POW		(1<<18)		
#define MSR_WE		(1<<18)		
#define MSR_TGPR	(1<<17)		
#define MSR_CE		(1<<17)		
#define MSR_ILE		(1<<16)		
#define MSR_EE		(1<<15)		
#define MSR_PR		(1<<14)		
#define MSR_FP		(1<<13)		
#define MSR_ME		(1<<12)		
#define MSR_FE0		(1<<11)		
#define MSR_SE		(1<<10)		
#define MSR_DWE		(1<<10)		
#define MSR_BE		(1<<9)		
#define MSR_DE		(1<<9) 		
#define MSR_FE1		(1<<8)		
#define MSR_IP		(1<<6)		
#define MSR_IR		(1<<5) 		
#define MSR_DR		(1<<4) 		
#define MSR_PE		(1<<3)		
#define MSR_PX		(1<<2)		
#define MSR_RI		(1<<1)		
#define MSR_LE		(1<<0) 		




#define MSR_		MSR_ME|MSR_RI

#define MSR_KERNEL      MSR_|MSR_IR|MSR_DR
#define MSR_USER	MSR_KERNEL|MSR_PR|MSR_EE

 

#define FPSCR_FX	0x80000000	
#define FPSCR_FEX	0x40000000	
#define FPSCR_VX	0x20000000	
#define FPSCR_OX	0x10000000	
#define FPSCR_UX	0x08000000	
#define FPSCR_ZX	0x04000000	
#define FPSCR_XX	0x02000000	
#define FPSCR_VXSNAN	0x01000000	
#define FPSCR_VXISI	0x00800000	
#define FPSCR_VXIDI	0x00400000	
#define FPSCR_VXZDZ	0x00200000	
#define FPSCR_VXIMZ	0x00100000	
#define FPSCR_VXVC	0x00080000	
#define FPSCR_FR	0x00040000	
#define FPSCR_FI	0x00020000	
#define FPSCR_FPRF	0x0001f000	
#define FPSCR_FPCC	0x0000f000	
#define FPSCR_VXSOFT	0x00000400	
#define FPSCR_VXSQRT	0x00000200	
#define FPSCR_VXCVI	0x00000100	
#define FPSCR_VE	0x00000080	
#define FPSCR_OE	0x00000040	
#define FPSCR_UE	0x00000020	
#define FPSCR_ZE	0x00000010	
#define FPSCR_XE	0x00000008	
#define FPSCR_NI	0x00000004	
#define FPSCR_RN	0x00000003	

 

#define 	SPRN_CCR0	0x3B3	
#define 	SPRN_CDBCR	0x3D7	
#define 	SPRN_CTR	0x009	
#define 	SPRN_DABR	0x3F5	
#define 	SPRN_DAC1	0x3F6	
#define 	SPRN_DAC2	0x3F7	
#define 	SPRN_DAR	0x013	
#define 	SPRN_DBAT0L	0x219	
#define 	SPRN_DBAT0U	0x218	
#define 	SPRN_DBAT1L	0x21B	
#define 	SPRN_DBAT1U	0x21A	
#define 	SPRN_DBAT2L	0x21D	
#define 	SPRN_DBAT2U	0x21C	
#define 	SPRN_DBAT3L	0x21F	
#define 	SPRN_DBAT3U	0x21E	
#define 	SPRN_DBCR	0x3F2	
#define 	  DBCR_EDM	0x80000000
#define 	  DBCR_IDM	0x40000000
#define 	  DBCR_RST(x)	(((x) & 0x3) << 28)
#define 	    DBCR_RST_NONE       	0
#define 	    DBCR_RST_CORE       	1
#define 	    DBCR_RST_CHIP       	2
#define 	    DBCR_RST_SYSTEM		3
#define 	  DBCR_IC	0x08000000	
#define 	  DBCR_BT	0x04000000	
#define 	  DBCR_EDE	0x02000000	
#define 	  DBCR_TDE	0x01000000	
#define 	  DBCR_FER	0x00F80000	
#define 	  DBCR_FT	0x00040000	
#define 	  DBCR_IA1	0x00020000	
#define 	  DBCR_IA2	0x00010000	
#define 	  DBCR_D1R	0x00008000	
#define 	  DBCR_D1W	0x00004000	
#define 	  DBCR_D1S(x)	(((x) & 0x3) << 12)	
#define 	    DAC_BYTE	0
#define 	    DAC_HALF	1
#define 	    DAC_WORD	2
#define 	    DAC_QUAD	3
#define 	  DBCR_D2R	0x00000800	
#define 	  DBCR_D2W	0x00000400	
#define 	  DBCR_D2S(x)	(((x) & 0x3) << 8)	
#define 	  DBCR_SBT	0x00000040	
#define 	  DBCR_SED	0x00000020	
#define 	  DBCR_STD	0x00000010	
#define 	  DBCR_SIA	0x00000008	
#define 	  DBCR_SDA	0x00000004	
#define 	  DBCR_JOI	0x00000002	
#define 	  DBCR_JII	0x00000001	
#define 	SPRN_DBCR0	0x3F2	
#define 	SPRN_DBCR1	0x3BD	
#define 	SPRN_DBSR	0x3F0	
#define   DBSR_IC	    0x80000000	
#define   DBSR_TIE	    0x10000000	
#define 	SPRN_DCCR	0x3FA	
#define 	  DCCR_NOCACHE		0	
#define 	  DCCR_CACHE		1	
#define 	SPRN_DCMP	0x3D1	
#define 	SPRN_DCWR	0x3BA	
#define 	  DCWR_COPY		0	
#define 	  DCWR_WRITE		1	
#define 	SPRN_DEAR	0x3D5	
#define 	SPRN_DEC	0x016	
#define 	SPRN_DER	0x095	
#define   DER_RSTE	0x40000000	
#define   DER_CHSTPE	0x20000000	
#define   DER_MCIE	0x10000000	
#define   DER_EXTIE	0x02000000	
#define   DER_ALIE	0x01000000	
#define   DER_PRIE	0x00800000	
#define   DER_FPUVIE	0x00400000	
#define   DER_DECIE	0x00200000	
#define   DER_SYSIE	0x00040000	
#define   DER_TRE	0x00020000	
#define   DER_SEIE	0x00004000	
#define   DER_ITLBMSE	0x00002000	
#define   DER_ITLBERE	0x00001000	
#define   DER_DTLBMSE	0x00000800	
#define   DER_DTLBERE	0x00000400	
#define   DER_LBRKE	0x00000008	
#define   DER_IBRKE	0x00000004	
#define   DER_EBRKE	0x00000002	
#define   DER_DPIE	0x00000001	
#define 	SPRN_DMISS	0x3D0	
#define 	SPRN_DSISR	0x012	
#define 	SPRN_EAR	0x11A	
#define 	SPRN_ESR	0x3D4	
#define 	  ESR_IMCP	0x80000000	
#define 	  ESR_IMCN	0x40000000	
#define 	  ESR_IMCB	0x20000000	
#define 	  ESR_IMCT	0x10000000	
#define 	  ESR_PIL	0x08000000	
#define 	  ESR_PPR	0x04000000	
#define 	  ESR_PTR	0x02000000	
#define 	  ESR_DST	0x00800000	
#define 	  ESR_DIZ	0x00400000	
#define 	SPRN_EVPR	0x3D6	
#define 	SPRN_HASH1	0x3D2	
#define 	SPRN_HASH2	0x3D3	
#define 	SPRN_HID0	0x3F0	
#define 	  HID0_EMCP	(1<<31)		
#define 	  HID0_EBA	(1<<29)		
#define 	  HID0_EBD	(1<<28)		
#define 	  HID0_SBCLK	(1<<27)
#define 	  HID0_EICE	(1<<26)
#define 	  HID0_ECLK	(1<<25)
#define 	  HID0_PAR	(1<<24)
#define 	  HID0_DOZE	(1<<23)
#define 	  HID0_NAP	(1<<22)
#define 	  HID0_SLEEP	(1<<21)
#define 	  HID0_DPM	(1<<20)
#define 	  HID0_ICE	(1<<15)		
#define 	  HID0_DCE	(1<<14)		
#define 	  HID0_ILOCK	(1<<13)		
#define 	  HID0_DLOCK	(1<<12)		
#define 	  HID0_ICFI	(1<<11)		
#define 	  HID0_DCI	(1<<10)		
#define   HID0_SPD	(1<<9)		
#define   HID0_SGE	(1<<7)		
#define 	  HID0_SIED	(1<<7)		
#define 	  HID0_DFCA	(1<<6)		
#define   HID0_BTIC	(1<<5)		
#define   HID0_ABE	(1<<3)		
#define 	  HID0_BHTE	(1<<2)		
#define 	  HID0_BTCD	(1<<1)		
#define 	SPRN_HID1	0x3F1	
#define 	SPRN_IABR	0x3F2	
#define 	SPRN_IAC1	0x3F4	
#define 	SPRN_IAC2	0x3F5	
#define 	SPRN_IBAT0L	0x211	
#define 	SPRN_IBAT0U	0x210	
#define 	SPRN_IBAT1L	0x213	
#define 	SPRN_IBAT1U	0x212	
#define 	SPRN_IBAT2L	0x215	
#define 	SPRN_IBAT2U	0x214	
#define 	SPRN_IBAT3L	0x217	
#define 	SPRN_IBAT3U	0x216	
#define 	SPRN_ICCR	0x3FB	
#define 	  ICCR_NOCACHE		0	
#define 	  ICCR_CACHE		1	
#define 	SPRN_ICDBDR	0x3D3	
#define 	SPRN_ICMP	0x3D5	
#define 	SPRN_ICTC	0x3FB	
#define 	SPRN_IMISS	0x3D4	
#define 	SPRN_IMMR	0x27E  	
#define 	SPRN_L2CR	0x3F9	
#define L2CR_L2E		0x80000000	
#define L2CR_L2PE		0x40000000	
#define 	L2CR_L2SIZ_MASK		0x30000000	
#define L2CR_L2SIZ_256KB	0x10000000	
#define L2CR_L2SIZ_512KB	0x20000000	
#define L2CR_L2SIZ_1MB		0x30000000	
#define L2CR_L2CLK_MASK		0x0e000000	
#define L2CR_L2CLK_DISABLED	0x00000000	
#define L2CR_L2CLK_DIV1		0x02000000	
#define L2CR_L2CLK_DIV1_5	0x04000000	
#define L2CR_L2CLK_DIV2		0x08000000	
#define L2CR_L2CLK_DIV2_5	0x0a000000	
#define L2CR_L2CLK_DIV3		0x0c000000	
#define L2CR_L2RAM_MASK		0x01800000	
#define L2CR_L2RAM_FLOW		0x00000000	
#define L2CR_L2RAM_PIPE		0x01000000	
#define L2CR_L2RAM_PIPE_LW	0x01800000	
#define 	L2CR_L2DO		0x00400000	
#define L2CR_L2I		0x00200000	
#define L2CR_L2CTL		0x00100000	
#define L2CR_L2WT		0x00080000	
#define L2CR_L2TS		0x00040000	
#define L2CR_L2OH_MASK		0x00030000	
#define L2CR_L2OH_0_5		0x00000000	
#define L2CR_L2OH_1_0		0x00010000	
#define L2CR_L2SL		0x00008000	
#define L2CR_L2DF		0x00004000	
#define L2CR_L2BYP		0x00002000	
#define L2CR_L2IP		0x00000001	
#define 	SPRN_LR		0x008	
#define 	SPRN_MMCR0	0x3B8	
#define 	SPRN_MMCR1	0x3BC	
#define 	SPRN_PBL1	0x3FC	
#define 	SPRN_PBL2	0x3FE	
#define 	SPRN_PBU1	0x3FD	
#define 	SPRN_PBU2	0x3FF	
#define 	SPRN_PID	0x3B1	
#define 	SPRN_PIR	0x3FF	
#define 	SPRN_PIT	0x3DB	
#define 	SPRN_PMC1	0x3B9	
#define 	SPRN_PMC2	0x3BA	
#define 	SPRN_PMC3	0x3BD	
#define 	SPRN_PMC4	0x3BE	
#define 	SPRN_PVR	0x11F	
#define 	SPRN_RPA	0x3D6	
#define 	SPRN_SDA	0x3BF	
#define 	SPRN_SDR1	0x019	
#define 	SPRN_SGR	0x3B9	
#define 	  SGR_NORMAL		0
#define 	  SGR_GUARDED		1
#define 	SPRN_SIA	0x3BB	
#define 	SPRN_SPRG0	0x110	
#define 	SPRN_SPRG1	0x111	
#define 	SPRN_SPRG2	0x112	
#define 	SPRN_SPRG3	0x113	
#define 	SPRN_SPRG4	0x114	
#define 	SPRN_SPRG5	0x115	
#define 	SPRN_SPRG6	0x116	
#define 	SPRN_SPRG7	0x117	
#define 	SPRN_SRR0	0x01A	
#define 	SPRN_SRR1	0x01B	
#define 	SPRN_SRR2	0x3DE	
#define 	SPRN_SRR3 	0x3DF	
#define 	SPRN_TBRL	0x10C	
#define 	SPRN_TBRU	0x10D	
#define 	SPRN_TBWL	0x11C	
#define 	SPRN_TBWU	0x11D	
#define 	SPRN_TCR	0x3DA	
#define 	  TCR_WP(x)		(((x)&0x3)<<30)	
#define 	    WP_2_17		0		
#define 	    WP_2_21		1		
#define 	    WP_2_25		2		
#define 	    WP_2_29		3		
#define 	  TCR_WRC(x)		(((x)&0x3)<<28)	
#define 	    WRC_NONE		0		
#define 	    WRC_CORE		1		
#define 	    WRC_CHIP		2		
#define 	    WRC_SYSTEM		3		
#define 	  TCR_WIE		0x08000000	
#define 	  TCR_PIE		0x04000000	
#define 	  TCR_FP(x)		(((x)&0x3)<<24)	
#define 	    FP_2_9		0		
#define 	    FP_2_13		1		
#define 	    FP_2_17		2		
#define 	    FP_2_21		3		
#define 	  TCR_FIE		0x00800000	
#define 	  TCR_ARE		0x00400000	
#define 	SPRN_THRM1	0x3FC	
 
#define 	  THRM1_TIN		(1 << 31)
#define 	  THRM1_TIV		(1 << 30)
#define 	  THRM1_THRES(x)	((x&0x7f)<<23)
#define   THRM3_SITV(x)		((x&0x3fff)<<1)
#define 	  THRM1_TID		(1<<2)
#define 	  THRM1_TIE		(1<<1)
#define 	  THRM1_V		(1<<0)
#define 	SPRN_THRM2	0x3FD	
#define 	SPRN_THRM3	0x3FE	
#define 	  THRM3_E		(1<<0)
#define 	SPRN_TSR	0x3D8	
#define 	  TSR_ENW		0x80000000	
#define 	  TSR_WIS		0x40000000	
#define 	  TSR_WRS(x)		(((x)&0x3)<<28)	
#define 	    WRS_NONE		0		
#define 	    WRS_CORE		1		
#define 	    WRS_CHIP		2		
#define 	    WRS_SYSTEM		3		
#define 	  TSR_PIS		0x08000000	
#define 	  TSR_FIS		0x04000000	
#define 	SPRN_UMMCR0	0x3A8	
#define 	SPRN_UMMCR1	0x3AC	
#define 	SPRN_UPMC1	0x3A9	
#define 	SPRN_UPMC2	0x3AA	
#define 	SPRN_UPMC3	0x3AD	
#define 	SPRN_UPMC4	0x3AE	
#define 	SPRN_USIA	0x3AB	
#define SPRN_VRSAVE	0x100	
#define 	SPRN_XER	0x001	
#define 	SPRN_ZPR	0x3B0	

 

#define 	CTR	SPRN_CTR	
#define 	DAR	SPRN_DAR	
#define 	DABR	SPRN_DABR	
#define 	DBAT0L	SPRN_DBAT0L	
#define 	DBAT0U	SPRN_DBAT0U	
#define 	DBAT1L	SPRN_DBAT1L	
#define 	DBAT1U	SPRN_DBAT1U	
#define 	DBAT2L	SPRN_DBAT2L	
#define 	DBAT2U	SPRN_DBAT2U	
#define 	DBAT3L	SPRN_DBAT3L	
#define 	DBAT3U	SPRN_DBAT3U	
#define 	DCMP	SPRN_DCMP      	
#define 	DEC	SPRN_DEC       	
#define 	DMISS	SPRN_DMISS     	
#define 	DSISR	SPRN_DSISR	
#define 	EAR	SPRN_EAR       	
#define 	HASH1	SPRN_HASH1	
#define 	HASH2	SPRN_HASH2	
#define 	HID0	SPRN_HID0	
#define 	HID1	SPRN_HID1	
#define 	IABR	SPRN_IABR      	
#define 	IBAT0L	SPRN_IBAT0L	
#define 	IBAT0U	SPRN_IBAT0U	
#define 	IBAT1L	SPRN_IBAT1L	
#define 	IBAT1U	SPRN_IBAT1U	
#define 	IBAT2L	SPRN_IBAT2L	
#define 	IBAT2U	SPRN_IBAT2U	
#define 	IBAT3L	SPRN_IBAT3L	
#define 	IBAT3U	SPRN_IBAT3U	
#define 	ICMP	SPRN_ICMP	
#define 	IMISS	SPRN_IMISS	
#define 	IMMR	SPRN_IMMR      	
#define 	L2CR	SPRN_L2CR    	
#define 	LR	SPRN_LR
#define 	PVR	SPRN_PVR	
#define 	RPA	SPRN_RPA	
#define 	SDR1	SPRN_SDR1      	
#define 	SPR0	SPRN_SPRG0	
#define 	SPR1	SPRN_SPRG1
#define 	SPR2	SPRN_SPRG2
#define 	SPR3	SPRN_SPRG3
#define 	SPR4	SPRN_SPRG4	
#define 	SPR5	SPRN_SPRG5
#define 	SPR6	SPRN_SPRG6
#define 	SPR7	SPRN_SPRG7
#define 	SPRG0   SPRN_SPRG0
#define 	SPRG1   SPRN_SPRG1
#define 	SPRG2   SPRN_SPRG2
#define 	SPRG3   SPRN_SPRG3
#define 	SPRG4   SPRN_SPRG4
#define 	SPRG5   SPRN_SPRG5
#define 	SPRG6   SPRN_SPRG6
#define 	SPRG7   SPRN_SPRG7
#define 	SRR0	SPRN_SRR0	
#define 	SRR1	SPRN_SRR1	
#define 	TBRL	SPRN_TBRL	
#define 	TBRU	SPRN_TBRU	
#define 	TBWL	SPRN_TBWL	
#define 	TBWU	SPRN_TBWU	
#define ICTC	1019
#define 	THRM1	SPRN_THRM1	
#define 	THRM2	SPRN_THRM2	
#define 	THRM3	SPRN_THRM3	
#define 	XER	SPRN_XER

 

 

#define 	PVR_VER(pvr)  (((pvr) >>  16) & 0xFFFF)	
#define 	PVR_REV(pvr)  (((pvr) >>   0) & 0xFFFF)	

 




#define 	PVR_FAM(pvr)	(((pvr) >> 20) & 0xFFF)	
#define 	PVR_MEM(pvr)	(((pvr) >> 16) & 0xF)	
#define 	PVR_CORE(pvr)	(((pvr) >> 12) & 0xF)	
#define 	PVR_CFG(pvr)	(((pvr) >>  8) & 0xF)	
#define 	PVR_MAJ(pvr)	(((pvr) >>  4) & 0xF)	
#define 	PVR_MIN(pvr)	(((pvr) >>  0) & 0xF)	

 

#define 	PVR_403GA	0x00200000
#define 	PVR_403GB	0x00200100
#define 	PVR_403GC	0x00200200
#define 	PVR_403GCX	0x00201400
#define 	PVR_405GP	0x40110000
#define 	PVR_STB03XXX	0x40310000 
#define 	PVR_601		0x00010000
#define 	PVR_602		0x00050000
#define 	PVR_603		0x00030000
#define 	PVR_603e	0x00060000
#define 	PVR_603ev	0x00070000
#define 	PVR_603r	0x00071000
#define 	PVR_604		0x00040000
#define 	PVR_604e	0x00090000
#define 	PVR_604r	0x000A0000
#define 	PVR_620		0x00140000
#define 	PVR_740		0x00080000
#define 	PVR_750		PVR_740
#define 	PVR_740P	0x10080000
#define 	PVR_750P	PVR_740P
#define 	PVR_7400	0x000C0000
#define 	PVR_7410	0x800C0000
 





#define 	PVR_821		0x00500000
#define 	PVR_823		PVR_821
#define 	PVR_850		PVR_821
#define 	PVR_860		PVR_821
#define 	PVR_8240	0x00810100
#define 	PVR_8260	PVR_8240


 







#define _MACH_prep	0x00000001
#define _MACH_Pmac	0x00000002	
#define _MACH_chrp	0x00000004	
#define _MACH_mbx	0x00000008	
#define _MACH_apus	0x00000010	
#define _MACH_fads	0x00000020	
#define _MACH_rpxlite	0x00000040	
#define _MACH_bseip	0x00000080	
#define _MACH_unused0	0x00000100	
#define _MACH_gemini	0x00000200      
#define _MACH_classic	0x00000400	
#define _MACH_oak	0x00000800	
#define _MACH_walnut	0x00001000	
#define _MACH_8260	0x00002000	
#define _MACH_tqm860	0x00004000	
#define _MACH_tqm8xxL	0x00008000	
#define _MACH_spd8xx	0x00010000	
#define _MACH_ivms8	0x00020000	

 
#define _PREP_Motorola 0x01  
#define _PREP_Firm     0x02  
#define _PREP_IBM      0x00  
#define _PREP_Bull     0x03  

 
#define _CHRP_Motorola 0x04  
#define _CHRP_IBM      0x05  

#define _GLOBAL(n)	.globl n;n:



 

#define stringify(s)	tostring(s)
#define tostring(s)	#s

#define mfdcr(rn)	({unsigned int rval; asm volatile("mfdcr %0," stringify(rn) : "=r" (rval)); rval;})


#define mtdcr(rn, v)	asm volatile("mtdcr " stringify(rn) ",%0" : : "r" (v))

#define mfmsr()		({unsigned int rval; asm volatile("mfmsr %0" : "=r" (rval)); rval;})

#define mtmsr(v)	asm volatile("mtmsr %0" : : "r" (v))

#define mfspr(rn)	({unsigned int rval; asm volatile("mfspr %0," stringify(rn) : "=r" (rval)); rval;})


#define mtspr(rn, v)	asm volatile("mtspr " stringify(rn) ",%0" : : "r" (v))

 

#define SR0	0
#define SR1	1
#define SR2	2
#define SR3	3
#define SR4	4
#define SR5	5
#define SR6	6
#define SR7	7
#define SR8	8
#define SR9	9
#define SR10	10
#define SR11	11
#define SR12	12
#define SR13	13
#define SR14	14
#define SR15	15







 
extern int _prep_type;
 



extern unsigned char ucSystemType;
extern unsigned char ucBoardRev;
extern unsigned char ucBoardRevMaj, ucBoardRevMin;

struct task_struct;
void start_thread(struct pt_regs *regs, unsigned long nip, unsigned long sp);
void release_thread(struct task_struct *);

 


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

 


#define EISA_bus 0
#define EISA_bus__is_a_macro 
#define MCA_bus 0
#define MCA_bus__is_a_macro 

 
extern struct task_struct *last_task_used_math;
extern struct task_struct *last_task_used_altivec;

 





#define TASK_SIZE	(0x80000000UL)

 


#define TASK_UNMAPPED_BASE	(TASK_SIZE / 8 * 3)

typedef struct {
	unsigned long seg;
} mm_segment_t;

struct thread_struct {
	unsigned long	ksp;		 
	unsigned long	wchan;		 
	struct pt_regs	*regs;		 
	mm_segment_t	fs;		 
	void		*pgdir;		 
	signed long     last_syscall;
	double		fpr[32];	 
	unsigned long	fpscr_pad;	 
	unsigned long	fpscr;		 





};

#define INIT_SP		(sizeof(init_stack) + (unsigned long) &init_stack)

#define INIT_THREAD  { INIT_SP, 0, (struct pt_regs *)INIT_SP - 1, KERNEL_DS, swapper_pg_dir, 0, {0}, 0, 0 }
# 640 "/home/root/kernel/kernel/include/asm/processor.h"

 



#define INIT_MMAP { &init_mm, 0, 0x1000, NULL, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, 1, NULL, NULL }



 


static inline unsigned long thread_saved_pc(struct thread_struct *t)
{
	return (t->regs) ? t->regs->nip : 0;
}

#define copy_segments(tsk, mm)		do { } while (0)
#define release_segments(mm)		do { } while (0)

unsigned long get_wchan(struct task_struct *p);

#define KSTK_EIP(tsk)  ((tsk)->thread.regs->nip)
#define KSTK_ESP(tsk)  ((tsk)->thread.regs->gpr[1])

 


#define THREAD_SIZE (2*PAGE_SIZE)
#define alloc_task_struct() ((struct task_struct *) __get_free_pages(GFP_KERNEL,1))

#define free_task_struct(p)	free_pages((unsigned long)(p),1)
#define get_task_struct(tsk)      atomic_inc(&virt_to_page(tsk)->count)

 
int ll_printk(const char *, ...);
void ll_puts(const char *);

#define init_task	(init_task_union.task)
#define init_stack	(init_task_union.stack)

 
void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);




# 695 "/home/root/kernel/kernel/include/asm/processor.h"

#define _machine _MACH_8xx





#define have_of 0




# 13 "/home/root/kernel/kernel/include/asm/system.h" 2


# 1 "/home/root/kernel/kernel/include/asm/hw_irq.h" 1
 


 




#define _PPC_HW_IRQ_H

extern unsigned long timer_interrupt_intercept;
extern unsigned long do_IRQ_intercept;
int timer_interrupt(struct pt_regs *);

extern void __sti(void);
extern void __cli(void);
extern void __restore_flags(unsigned long);
extern void __save_flags_ptr(unsigned long *);
extern unsigned long __sti_end, __cli_end, __restore_flags_end, __save_flags_ptr_end;

#define __save_flags(flags) __save_flags_ptr((unsigned long *)&flags)
#define __save_and_cli(flags) ({__save_flags(flags);__cli();})

extern void do_lost_interrupts(unsigned long);

#define mask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->disable) irq_desc[irq].handler->disable(irq);})
#define unmask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->enable) irq_desc[irq].handler->enable(irq);})
#define ack_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->ack) irq_desc[irq].handler->ack(irq);})

 


struct hw_interrupt_type;
static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) {}




# 15 "/home/root/kernel/kernel/include/asm/system.h" 2


 















#define mb()  __asm__ __volatile__ ("sync" : : : "memory")
#define rmb()  __asm__ __volatile__ ("sync" : : : "memory")
#define wmb()  __asm__ __volatile__ ("eieio" : : : "memory")

#define set_mb(var, value)	do { var = value; mb(); } while (0)
#define set_wmb(var, value)	do { var = value; wmb(); } while (0)

void hack_puts (const char *);






#define smp_mb()	__asm__ __volatile__("": : :"memory")
#define smp_rmb()	__asm__ __volatile__("": : :"memory")
#define smp_wmb()	__asm__ __volatile__("": : :"memory")



extern void xmon_irq(int, void *, struct pt_regs *);
extern void xmon(struct pt_regs *excp);
extern void print_backtrace(unsigned long *);
extern void show_regs(struct pt_regs * regs);
extern void flush_instruction_cache(void);
extern void hard_reset_now(void);
extern void poweroff_now(void);
extern int _get_PVR(void);
extern long _get_L2CR(void);
extern void _set_L2CR(unsigned long);
extern void via_cuda_init(void);
extern void pmac_nvram_init(void);
extern void read_rtc_time(void);
extern void pmac_find_display(void);
extern void giveup_fpu(struct task_struct *);
extern void enable_kernel_fp(void);
extern void giveup_altivec(struct task_struct *);
extern void load_up_altivec(struct task_struct *);
extern void cvt_fd(float *from, double *to, unsigned long *fpscr);
extern void cvt_df(double *from, float *to, unsigned long *fpscr);
extern int call_rtas(const char *, int, int, unsigned long *, ...);
extern int abs(int);
extern void cacheable_memzero(void *p, unsigned int nb);

struct device_node;
extern void note_scsi_host(struct device_node *, void *);

struct task_struct;
#define prepare_to_switch()	do { } while(0)
#define switch_to(prev,next,last) _switch_to((prev),(next),&(last))
extern void _switch_to(struct task_struct *, struct task_struct *,
		       struct task_struct **);

struct thread_struct;
extern struct task_struct *_switch(struct thread_struct *prev,
				   struct thread_struct *next);

extern unsigned int rtas_data;

struct pt_regs;
extern void dump_regs(struct pt_regs *);

extern void __global_cli(void);
extern void __global_sti(void);
extern unsigned long __global_save_flags(void);
extern void __global_restore_flags(unsigned long);
#define cli() __global_cli()
#define sti() __global_sti()
#define save_flags(x) ((x)=__global_save_flags())
#define restore_flags(x) __global_restore_flags(x)

#define local_irq_disable()		__cli()
#define local_irq_enable()		__sti()
#define local_irq_save(flags)		__save_and_cli(flags)
#define local_irq_restore(flags)	__restore_flags(flags)

static inline int is_local_irq_enabled (void)
{
	unsigned long flags;
	__save_flags_ptr((unsigned long *)& flags ) ;

	return (flags & (1<<15) );
}


#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))

static __inline__ unsigned long
xchg_u32(volatile void *p, unsigned long val)
{
	unsigned long prev;

	__asm__ __volatile__ ("\n1:	lwarx	%0,0,%2 \n	stwcx.	%3,0,%2 \n	bne-	1b"



	: "=&r" (prev), "=m" (*(volatile unsigned long *)p)
	: "r" (p), "r" (val), "m" (*(volatile unsigned long *)p)
	: "cc", "memory");

	return prev;
}

 



extern void __xchg_called_with_bad_pointer(void);


#define tas(ptr) (xchg((ptr),1))

static inline unsigned long __xchg(unsigned long x, void * ptr, int size)
{
	switch (size) {
	case 4:
		return (unsigned long )xchg_u32(ptr, x);




	}
	__xchg_called_with_bad_pointer();
	return x;


}

extern inline void * xchg_ptr(void * m, void * val)
{
	return (void *) xchg_u32(m, (unsigned long) val);
}


#define __HAVE_ARCH_CMPXCHG	1

static __inline__ unsigned long
__cmpxchg_u32(volatile int *p, int old, int new)
{
	int prev;

	__asm__ __volatile__ ("\n1:	lwarx	%0,0,%2 \n	cmpw	0,%0,%3 \n	bne	2f \n	stwcx.	%4,0,%2 \n	bne-	1b\n"








"2:"
	: "=&r" (prev), "=m" (*p)
	: "r" (p), "r" (old), "r" (new), "m" (*p)
	: "cc", "memory");

	return prev;
}

 

extern void __cmpxchg_called_with_bad_pointer(void);

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




	}
	__cmpxchg_called_with_bad_pointer();
	return old;
}

#define cmpxchg(ptr,o,n)	({	__typeof__(*(ptr)) _o_ = (o);	__typeof__(*(ptr)) _n_ = (n);	(__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_,	(unsigned long)_n_, sizeof(*(ptr))); })








# 19 "/home/root/kernel/kernel/include/asm/page.h" 2


extern void bust_spinlocks (void);








#define BUG() do { bust_spinlocks (); printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); __asm__ __volatile__(".long 0x0"); } while (0)





#define PAGE_BUG(page) do { BUG(); } while (0)

#define STRICT_MM_TYPECHECKS


 


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;

#define pte_val(x)	((x).pte)
#define pmd_val(x)	((x).pmd)
#define pgd_val(x)	((x).pgd)
#define pgprot_val(x)	((x).pgprot)

#define __pte(x)	((pte_t) { (x) } )
#define __pmd(x)	((pmd_t) { (x) } )
#define __pgd(x)	((pgd_t) { (x) } )
#define __pgprot(x)	((pgprot_t) { (x) } )

# 78 "/home/root/kernel/kernel/include/asm/page.h"



 
#define _ALIGN(addr,size)	(((addr)+size-1)&(~(size-1)))

 
#define PAGE_ALIGN(addr)	(((addr)+PAGE_SIZE-1)&PAGE_MASK)

extern void clear_page(void *page);
extern void copy_page(void *to, void *from);
#define clear_user_page(page, vaddr)	clear_page(page)
#define copy_user_page(to, from, vaddr)	copy_page(to, from)

 
static inline unsigned long ___pa(unsigned long v)
{ 
	unsigned long p;
	asm volatile ("1: addis %0, %1, %2;" 
		      ".section \".vtop_fixup\",\"aw\";"
		      ".align  1;"
		      ".long   1b;"
		      ".previous;"
		      : "=r" (p) 
		      : "b" (v), "K" (((- 0xc0000000 ) >> 16) & 0xffff));

	return p;
}
static inline void* ___va(unsigned long p)
{ 
	unsigned long v;
	asm volatile ("1: addis %0, %1, %2;" 
		      ".section \".ptov_fixup\",\"aw\";"
		      ".align  1;"
		      ".long   1b;"
		      ".previous;"
		      : "=r" (v) 
		      : "b" (p), "K" (((0xc0000000 ) >> 16) & 0xffff));

	return (void*) v;
}
#define __pa(x) ___pa ((unsigned long)(x))
#define __va(x) ___va ((unsigned long)(x))

#define MAP_PAGE_RESERVED	(1<<15)
#define virt_to_page(kaddr)	(mem_map + (((unsigned long)kaddr-PAGE_OFFSET) >> PAGE_SHIFT))
#define VALID_PAGE(page)	((page - mem_map) < max_mapnr)

extern unsigned long get_zero_page_fast(void);

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

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




# 19 "/home/root/kernel/kernel/include/linux/wait.h" 2

# 1 "/home/root/kernel/kernel/include/asm/processor.h" 1
 



# 705 "/home/root/kernel/kernel/include/asm/processor.h"


# 20 "/home/root/kernel/kernel/include/linux/wait.h" 2


 


#define WAITQUEUE_DEBUG 0

struct __wait_queue {
	unsigned int flags;
#define WQ_FLAG_EXCLUSIVE	0x01
	struct task_struct * task;
	struct list_head task_list;




};
typedef struct __wait_queue wait_queue_t;

# 52 "/home/root/kernel/kernel/include/linux/wait.h"

#define wq_lock_t spinlock_t
#define WAITQUEUE_RW_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED

#define wq_read_lock spin_lock
#define wq_read_lock_irqsave spin_lock_irqsave
#define wq_read_unlock spin_unlock
#define wq_read_unlock_irqrestore spin_unlock_irqrestore
#define wq_write_lock_irq spin_lock_irq
#define wq_write_lock_irqsave spin_lock_irqsave
#define wq_write_unlock_irqrestore spin_unlock_irqrestore
#define wq_write_unlock_irq spin_unlock_irq
#define wq_write_unlock spin_unlock


struct __wait_queue_head {
	mutex_t   lock;
	struct list_head task_list;




};
typedef struct __wait_queue_head wait_queue_head_t;


 



# 109 "/home/root/kernel/kernel/include/linux/wait.h"

#define WQ_BUG()
#define CHECK_MAGIC(x)
#define CHECK_MAGIC_WQHEAD(x)
#define WQ_CHECK_LIST_HEAD(list)
#define WQ_NOTE_WAKER(tsk)


 







#define __WAITQUEUE_DEBUG_INIT(name)
#define __WAITQUEUE_HEAD_DEBUG_INIT(name)


#define __WAITQUEUE_INITIALIZER(name, tsk) {	task:		tsk,	task_list:	{ NULL, NULL },	__WAITQUEUE_DEBUG_INIT(name)}




#define DECLARE_WAITQUEUE(name, tsk)	wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk)


#define __WAIT_QUEUE_HEAD_INITIALIZER(name) {	lock:		WAITQUEUE_RW_LOCK_UNLOCKED,	task_list:	{ &(name).task_list, &(name).task_list },	__WAITQUEUE_HEAD_DEBUG_INIT(name)}




#define DECLARE_WAIT_QUEUE_HEAD(name) wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name)


static inline void init_waitqueue_head(wait_queue_head_t *q)
{




	q->lock = (mutex_t) { state: 0 , proto: 1  }   ;
	do { ( &q->task_list )->next = ( &q->task_list ); ( &q->task_list )->prev = ( &q->task_list ); } while (0) ;




}

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




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



}

static inline int waitqueue_active(wait_queue_head_t *q)
{






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

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








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

 


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








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

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





	list_del(&old->task_list);
}




# 12 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


# 1 "/home/root/kernel/kernel/include/linux/vfs.h" 1

#define _LINUX_VFS_H

# 1 "/home/root/kernel/kernel/include/asm/statfs.h" 1
 



#define _PPC_STATFS_H





typedef __kernel_fsid_t	fsid_t;



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 "/home/root/kernel/kernel/include/linux/vfs.h" 2



# 14 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/net.h" 1
 

















#define _LINUX_NET_H


# 1 "/home/root/kernel/kernel/include/linux/socket.h" 1

#define _LINUX_SOCKET_H



# 1 "/home/root/kernel/kernel/include/asm/socket.h" 1
 



#define _ASM_SOCKET_H

 
#define FIOSETOWN 	0x8901
#define SIOCSPGRP	0x8902
#define FIOGETOWN	0x8903
#define SIOCGPGRP	0x8904
#define SIOCATMARK	0x8905
#define SIOCGSTAMP	0x8906		

 
#define SOL_SOCKET	1

#define SO_DEBUG	1
#define SO_REUSEADDR	2
#define SO_TYPE		3
#define SO_ERROR	4
#define SO_DONTROUTE	5
#define SO_BROADCAST	6
#define SO_SNDBUF	7
#define SO_RCVBUF	8
#define SO_KEEPALIVE	9
#define SO_OOBINLINE	10
#define SO_NO_CHECK	11
#define SO_PRIORITY	12
#define SO_LINGER	13
#define SO_BSDCOMPAT	14
 
#define SO_RCVLOWAT	16
#define SO_SNDLOWAT	17
#define SO_RCVTIMEO	18
#define SO_SNDTIMEO	19
#define SO_PASSCRED	20
#define SO_PEERCRED	21

 
#define SO_SECURITY_AUTHENTICATION		22
#define SO_SECURITY_ENCRYPTION_TRANSPORT	23
#define SO_SECURITY_ENCRYPTION_NETWORK		24

#define SO_BINDTODEVICE	25

 
#define SO_ATTACH_FILTER	26
#define SO_DETACH_FILTER	27

#define SO_PEERNAME		28
#define SO_TIMESTAMP		29
#define SCM_TIMESTAMP		SO_TIMESTAMP

#define SO_ACCEPTCONN		30

 

 
#define SOCK_STREAM	1		
#define SOCK_DGRAM	2		
#define SOCK_RAW	3		
#define SOCK_RDM	4		
#define SOCK_SEQPACKET	5		
#define SOCK_PACKET	10		
					 
					 
					 
					 
#define 	SOCK_MAX	(SOCK_PACKET+1)



# 6 "/home/root/kernel/kernel/include/linux/socket.h" 2

# 1 "/home/root/kernel/kernel/include/linux/sockios.h" 1
 

















#define _LINUX_SOCKIOS_H

# 1 "/home/root/kernel/kernel/include/asm/sockios.h" 1
 



#define _ASM_PPC_SOCKIOS_H

# 18 "/home/root/kernel/kernel/include/asm/sockios.h"



# 21 "/home/root/kernel/kernel/include/linux/sockios.h" 2


 
#define SIOCINQ		FIONREAD
#define SIOCOUTQ	TIOCOUTQ

 
#define SIOCADDRT	0x890B		
#define SIOCDELRT	0x890C		
#define SIOCRTMSG	0x890D		

 
#define SIOCGIFNAME	0x8910		
#define SIOCSIFLINK	0x8911		
#define SIOCGIFCONF	0x8912		
#define SIOCGIFFLAGS	0x8913		
#define SIOCSIFFLAGS	0x8914		
#define SIOCGIFADDR	0x8915		
#define SIOCSIFADDR	0x8916		
#define SIOCGIFDSTADDR	0x8917		
#define SIOCSIFDSTADDR	0x8918		
#define SIOCGIFBRDADDR	0x8919		
#define SIOCSIFBRDADDR	0x891a		
#define SIOCGIFNETMASK	0x891b		
#define SIOCSIFNETMASK	0x891c		
#define SIOCGIFMETRIC	0x891d		
#define SIOCSIFMETRIC	0x891e		
#define SIOCGIFMEM	0x891f		
#define SIOCSIFMEM	0x8920		
#define SIOCGIFMTU	0x8921		
#define SIOCSIFMTU	0x8922		
#define SIOCSIFNAME	0x8923		
#define 	SIOCSIFHWADDR	0x8924		
#define SIOCGIFENCAP	0x8925		
#define SIOCSIFENCAP	0x8926		
#define SIOCGIFHWADDR	0x8927		
#define SIOCGIFSLAVE	0x8929		
#define SIOCSIFSLAVE	0x8930
#define SIOCADDMULTI	0x8931		
#define SIOCDELMULTI	0x8932
#define SIOCGIFINDEX	0x8933		
#define SIOGIFINDEX	SIOCGIFINDEX	
#define SIOCSIFPFLAGS	0x8934		
#define SIOCGIFPFLAGS	0x8935
#define SIOCDIFADDR	0x8936		
#define 	SIOCSIFHWBROADCAST	0x8937	
#define SIOCGIFCOUNT	0x8938		

#define SIOCGIFBR	0x8940		
#define SIOCSIFBR	0x8941		

#define SIOCGIFTXQLEN	0x8942		
#define SIOCSIFTXQLEN	0x8943		

#define SIOCGIFDIVERT	0x8944		
#define SIOCSIFDIVERT	0x8945		

#define SIOCETHTOOL	0x8946		

#define SIOCGMIIPHY	0x8947		
#define SIOCGMIIREG	0x8948		
#define SIOCSMIIREG	0x8949		

 
		     
#define SIOCDARP	0x8953		
#define SIOCGARP	0x8954		
#define SIOCSARP	0x8955		

 
#define SIOCDRARP	0x8960		
#define SIOCGRARP	0x8961		
#define SIOCSRARP	0x8962		

 

#define SIOCGIFMAP	0x8970		
#define SIOCSIFMAP	0x8971		

 

#define SIOCADDDLCI	0x8980		
#define SIOCDELDLCI	0x8981		

 

 





 
#define SIOCDEVPRIVATE	0x89F0	

 


 
#define SIOCPROTOPRIVATE 0x89E0 

# 7 "/home/root/kernel/kernel/include/linux/socket.h" 2

# 1 "/home/root/kernel/kernel/include/linux/uio.h" 1

#define __LINUX_UIO_H



 









 


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

 


 
#define UIO_FASTIOV	8
#define UIO_MAXIOV	1024







# 8 "/home/root/kernel/kernel/include/linux/socket.h" 2



typedef unsigned short	sa_family_t;

 


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

struct linger {
	int		l_onoff;	 
	int		l_linger;	 
};

 




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

 





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

 




#define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg))
#define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg))

#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )

#define CMSG_DATA(cmsg)	((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))

#define __CMSG_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr) ? (struct cmsghdr *)(ctl) : (struct cmsghdr *)NULL)


#define CMSG_FIRSTHDR(msg)	__CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)

 


 

#define __KINLINE static inline









 











 
static inline  struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size,
					       struct cmsghdr *__cmsg)
{
	struct cmsghdr * __ptr;

	__ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) +  ( (( __cmsg->cmsg_len )+sizeof(long)-1) & ~(sizeof(long)-1) ) );
	if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
		return (struct cmsghdr *)0;

	return __ptr;
}

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

 

#define 	SCM_RIGHTS	0x01		
#define SCM_CREDENTIALS 0x02		
#define SCM_CONNECT	0x03		

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

 
#define AF_UNSPEC	0
#define AF_UNIX		1	
#define AF_LOCAL	1	
#define AF_INET		2	
#define AF_AX25		3	
#define AF_IPX		4	
#define AF_APPLETALK	5	
#define AF_NETROM	6	
#define AF_BRIDGE	7	
#define AF_ATMPVC	8	
#define AF_X25		9	
#define AF_INET6	10	
#define AF_ROSE		11	
#define AF_DECnet	12	
#define AF_NETBEUI	13	
#define AF_SECURITY	14	
#define AF_KEY		15      
#define AF_NETLINK	16
#define AF_ROUTE	AF_NETLINK 
#define AF_PACKET	17	
#define AF_ASH		18	
#define AF_ECONET	19	
#define AF_ATMSVC	20	
#define AF_SNA		22	
#define AF_IRDA		23	
#define AF_PPPOX	24	
#define AF_WANPIPE	25	
#define AF_BLUETOOTH	31	
#define AF_MAX		32	

 
#define PF_UNSPEC	AF_UNSPEC
#define PF_UNIX		AF_UNIX
#define PF_LOCAL	AF_LOCAL
#define PF_INET		AF_INET
#define PF_AX25		AF_AX25
#define PF_IPX		AF_IPX
#define PF_APPLETALK	AF_APPLETALK
#define 	PF_NETROM	AF_NETROM
#define PF_BRIDGE	AF_BRIDGE
#define PF_ATMPVC	AF_ATMPVC
#define PF_X25		AF_X25
#define PF_INET6	AF_INET6
#define PF_ROSE		AF_ROSE
#define PF_DECnet	AF_DECnet
#define PF_NETBEUI	AF_NETBEUI
#define PF_SECURITY	AF_SECURITY
#define PF_KEY		AF_KEY
#define PF_NETLINK	AF_NETLINK
#define PF_ROUTE	AF_ROUTE
#define PF_PACKET	AF_PACKET
#define PF_ASH		AF_ASH
#define PF_ECONET	AF_ECONET
#define PF_ATMSVC	AF_ATMSVC
#define PF_SNA		AF_SNA
#define PF_IRDA		AF_IRDA
#define PF_PPPOX	AF_PPPOX
#define PF_WANPIPE	AF_WANPIPE
#define PF_BLUETOOTH	AF_BLUETOOTH
#define PF_MAX		AF_MAX

 
#define SOMAXCONN	128

 


 
#define MSG_OOB		1
#define MSG_PEEK	2
#define MSG_DONTROUTE	4
#define MSG_TRYHARD     4       
#define MSG_CTRUNC	8
#define MSG_PROBE	0x10	
#define MSG_TRUNC	0x20
#define MSG_DONTWAIT	0x40	
#define MSG_EOR         0x80	
#define MSG_WAITALL	0x100	
#define MSG_FIN         0x200
#define MSG_SYN		0x400
#define MSG_CONFIRM	0x800	
#define MSG_RST		0x1000
#define MSG_ERRQUEUE	0x2000	
#define MSG_NOSIGNAL	0x4000	
#define MSG_MORE	0x8000	

#define MSG_EOF         MSG_FIN


 
#define SOL_IP		0
 
#define SOL_TCP		6
#define SOL_UDP		17
#define SOL_IPV6	41
#define SOL_ICMPV6	58
#define SOL_RAW		255
#define SOL_IPX		256
#define SOL_AX25	257
#define SOL_ATALK	258
#define SOL_NETROM	259
#define SOL_ROSE	260
#define SOL_DECNET	261
#define 	SOL_X25		262
#define SOL_PACKET	263
#define SOL_ATM		264	
#define SOL_AAL		265	
#define SOL_IRDA        266

 
#define IPX_TYPE	1


extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov, 
				int offset, int len);
extern int csum_partial_copy_fromiovecend(unsigned char *kdata, 
					  struct iovec *iov, 
					  int offset, 
					  unsigned int len, int *csump);

extern int verify_iovec(struct msghdr *m, struct iovec *iov, char *address, int mode);
extern int memcpy_toiovec(struct iovec *v, unsigned char *kdata, int len);
extern void memcpy_tokerneliovec(struct iovec *iov, unsigned char *kdata, int len);
extern int move_addr_to_user(void *kaddr, int klen, void *uaddr, int *ulen);
extern int move_addr_to_kernel(void *uaddr, int ulen, void *kaddr);
extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);



# 22 "/home/root/kernel/kernel/include/linux/net.h" 2



struct poll_table_struct;

#define NPROTO		32		


#define SYS_SOCKET	1		
#define SYS_BIND	2		
#define SYS_CONNECT	3		
#define SYS_LISTEN	4		
#define SYS_ACCEPT	5		
#define SYS_GETSOCKNAME	6		
#define SYS_GETPEERNAME	7		
#define SYS_SOCKETPAIR	8		
#define SYS_SEND	9		
#define SYS_RECV	10		
#define SYS_SENDTO	11		
#define SYS_RECVFROM	12		
#define SYS_SHUTDOWN	13		
#define SYS_SETSOCKOPT	14		
#define SYS_GETSOCKOPT	15		
#define SYS_SENDMSG	16		
#define SYS_RECVMSG	17		


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

#define __SO_ACCEPTCON	(1<<16)		



#define SOCK_ASYNC_NOSPACE	0
#define SOCK_ASYNC_WAITDATA	1
#define SOCK_NOSPACE		2

struct socket
{
	socket_state		state;

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

	short			type;
	unsigned char		passcred;
};

#define SOCK_INODE(S)	((S)->inode)

struct scm_cookie;
struct vm_area_struct;
struct page;

struct proto_ops {
  int	family;

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

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

	short	authentication;
	short	encryption;
	short	encrypt_net;
};

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

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

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

#define SOCKOPS_WRAPPED(name) __unlocked_##name

#define SOCKCALL_WRAP(name, call, parms, args)	static int __lock_##name##_##call  parms	{	int ret;	lock_kernel();	ret = __unlocked_##name##_ops.call  args ;	unlock_kernel();	return ret;	}
# 158 "/home/root/kernel/kernel/include/linux/net.h"

#define SOCKCALL_UWRAP(name, call, parms, args)	static unsigned int __lock_##name##_##call  parms	{	int ret;	lock_kernel();	ret = __unlocked_##name##_ops.call  args ;	unlock_kernel();	return ret;	}
# 168 "/home/root/kernel/kernel/include/linux/net.h"


#define SOCKOPS_WRAP(name, fam)	SOCKCALL_WRAP(name, release, (struct socket *sock), (sock))	SOCKCALL_WRAP(name, bind, (struct socket *sock, struct sockaddr *uaddr, int addr_len), (sock, uaddr, addr_len))	SOCKCALL_WRAP(name, connect, (struct socket *sock, struct sockaddr * uaddr, int addr_len, int flags), (sock, uaddr, addr_len, flags))	SOCKCALL_WRAP(name, socketpair, (struct socket *sock1, struct socket *sock2), (sock1, sock2))	SOCKCALL_WRAP(name, accept, (struct socket *sock, struct socket *newsock, int flags), (sock, newsock, flags)) SOCKCALL_WRAP(name, getname, (struct socket *sock, struct sockaddr *uaddr, int *addr_len, int peer), (sock, uaddr, addr_len, peer)) SOCKCALL_UWRAP(name, poll, (struct file *file, struct socket *sock, struct poll_table_struct *wait), (file, sock, wait)) SOCKCALL_WRAP(name, ioctl, (struct socket *sock, unsigned int cmd, unsigned long arg), (sock, cmd, arg)) SOCKCALL_WRAP(name, listen, (struct socket *sock, int len), (sock, len)) SOCKCALL_WRAP(name, shutdown, (struct socket *sock, int flags), (sock, flags)) SOCKCALL_WRAP(name, setsockopt, (struct socket *sock, int level, int optname, char *optval, int optlen), (sock, level, optname, optval, optlen)) SOCKCALL_WRAP(name, getsockopt, (struct socket *sock, int level, int optname, char *optval, int *optlen), (sock, level, optname, optval, optlen)) SOCKCALL_WRAP(name, sendmsg, (struct socket *sock, struct msghdr *m, int len, struct scm_cookie *scm), (sock, m, len, scm)) SOCKCALL_WRAP(name, recvmsg, (struct socket *sock, struct msghdr *m, int len, int flags, struct scm_cookie *scm), (sock, m, len, flags, scm)) SOCKCALL_WRAP(name, mmap, (struct file *file, struct socket *sock, struct vm_area_struct *vma), (file, sock, vma)) static struct proto_ops name##_ops = {	family:		fam,	release:	__lock_##name##_release,	bind:		__lock_##name##_bind,	connect:	__lock_##name##_connect,	socketpair:	__lock_##name##_socketpair,	accept:		__lock_##name##_accept,	getname:	__lock_##name##_getname,	poll:		__lock_##name##_poll,	ioctl:		__lock_##name##_ioctl,	listen:		__lock_##name##_listen,	shutdown:	__lock_##name##_shutdown,	setsockopt:	__lock_##name##_setsockopt,	getsockopt:	__lock_##name##_getsockopt,	sendmsg:	__lock_##name##_sendmsg,	recvmsg:	__lock_##name##_recvmsg,	mmap:		__lock_##name##_mmap,	};
# 219 "/home/root/kernel/kernel/include/linux/net.h"




# 15 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


# 1 "/home/root/kernel/kernel/include/linux/ioctl.h" 1

#define _LINUX_IOCTL_H

# 1 "/home/root/kernel/kernel/include/asm/ioctl.h" 1
 



#define _PPC_IOCTL_H


 




#define _IOC_NRBITS	8
#define _IOC_TYPEBITS	8
#define _IOC_SIZEBITS	13
#define _IOC_DIRBITS	3

#define _IOC_NRMASK	((1 << _IOC_NRBITS)-1)
#define _IOC_TYPEMASK	((1 << _IOC_TYPEBITS)-1)
#define _IOC_SIZEMASK	((1 << _IOC_SIZEBITS)-1)
#define _IOC_DIRMASK	((1 << _IOC_DIRBITS)-1)

#define _IOC_NRSHIFT	0
#define _IOC_TYPESHIFT	(_IOC_NRSHIFT+_IOC_NRBITS)
#define _IOC_SIZESHIFT	(_IOC_TYPESHIFT+_IOC_TYPEBITS)
#define _IOC_DIRSHIFT	(_IOC_SIZESHIFT+_IOC_SIZEBITS)

 




#define _IOC_NONE	1U
#define _IOC_READ	2U
#define _IOC_WRITE	4U

#define _IOC(dir,type,nr,size) (((dir)  << _IOC_DIRSHIFT) | ((type) << _IOC_TYPESHIFT) | ((nr)   << _IOC_NRSHIFT) | ((size) << _IOC_SIZESHIFT))





 
#define _IO(type,nr)		_IOC(_IOC_NONE,(type),(nr),0)
#define _IOR(type,nr,size)	_IOC(_IOC_READ,(type),(nr),sizeof(size))
#define _IOW(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),sizeof(size))
#define _IOWR(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size))

 
#define _IOC_DIR(nr)		(((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
#define _IOC_TYPE(nr)		(((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
#define _IOC_NR(nr)		(((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
#define _IOC_SIZE(nr)		(((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)

 
#define IOC_IN		(_IOC_WRITE << _IOC_DIRSHIFT)
#define IOC_OUT		(_IOC_READ << _IOC_DIRSHIFT)
#define IOC_INOUT	((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
#define IOCSIZE_MASK	(_IOC_SIZEMASK << _IOC_SIZESHIFT)
#define IOCSIZE_SHIFT	(_IOC_SIZESHIFT)


# 4 "/home/root/kernel/kernel/include/linux/ioctl.h" 2




# 17 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


# 1 "/home/root/kernel/kernel/include/linux/dcache-defs.h" 1

#define __LINUX_DCACHE_DEFS_H




# 1 "/home/root/kernel/kernel/include/linux/mount.h" 1
 










#define _LINUX_MOUNT_H


struct vfsmount
{
	struct list_head mnt_hash;
	struct vfsmount *mnt_parent;	 
	struct dentry *mnt_mountpoint;	 
	struct dentry *mnt_root;	 
	struct list_head mnt_instances;	 
	struct super_block *mnt_sb;	 
	struct list_head mnt_mounts;	 
	struct list_head mnt_child;	 
	atomic_t mnt_count;
	int mnt_flags;
	char *mnt_devname;		 
	struct list_head mnt_list;
	uid_t mnt_owner;
};

static inline struct vfsmount *mntget(struct vfsmount *mnt)
{
	if (mnt)
		((void) atomic_inc_return(( &mnt->mnt_count ))) ;
	return mnt;
}

extern void __mntput(struct vfsmount *mnt);

static inline void mntput(struct vfsmount *mnt)
{
	if (mnt) {
		if ((atomic_dec_return(( &mnt->mnt_count )) == 0) )
			__mntput(mnt);
	}
}



# 7 "/home/root/kernel/kernel/include/linux/dcache-defs.h" 2



 








#define IS_ROOT(x) ((x) == (x)->d_parent)

 



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

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

 
 
#define init_name_hash()		0

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

 
static __inline__ unsigned long end_name_hash(unsigned long hash)
{
	return (unsigned int) hash;
}

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

#define DNAME_INLINE_LEN 16

struct dentry {
	atomic_t d_count;
	unsigned int d_flags;
	struct inode  * d_inode;	 
	struct dentry * d_parent;	 
	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;	 
	int d_mounted;
	struct qstr d_name;
	unsigned long d_time;		 
	struct dentry_operations  *d_op;
	struct super_block * d_sb;	 
	unsigned long d_vfs_flags;
	void * d_fsdata;		 
	unsigned char d_iname[16 ];  
};

struct dentry_operations {
	int (*d_revalidate)(struct dentry *, int);
	int (*d_hash) (struct dentry *, struct qstr *);
	int (*d_compare) (struct dentry *, struct qstr *, struct qstr *);
	int (*d_delete)(struct dentry *);
	void (*d_release)(struct dentry *);
	void (*d_iput)(struct dentry *, struct inode *);
};

 






 










 
#define DCACHE_AUTOFS_PENDING 0x0001    
#define DCACHE_NFSFS_RENAMED  0x0002    



#define 	DCACHE_NFSD_DISCONNECTED 0x0004	





#define DCACHE_REFERENCED	0x0008  



# 19 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/stat.h" 1

#define _LINUX_STAT_H



# 1 "/home/root/kernel/kernel/include/asm/stat.h" 1
 



#define _PPC_STAT_H





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 {
	dev_t		st_dev;
	ino_t		st_ino;
	mode_t		st_mode;
	nlink_t		st_nlink;
	uid_t 		st_uid;
	gid_t 		st_gid;
	dev_t		st_rdev;
	off_t		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;
};

 

struct stat64 {
	unsigned long long st_dev; 	 
	unsigned long long st_ino;	 
	unsigned int st_mode;		 
	unsigned int st_nlink;		 
	unsigned int st_uid;		 
	unsigned int st_gid;		 
	unsigned long long st_rdev; 	 
	unsigned short int __pad2;
	long long st_size;		 
	long st_blksize;		 

	long long st_blocks;		 
	long st_atime;			 
	unsigned long int __unused1;
	long st_mtime;			 
	unsigned long int __unused2;
	long st_ctime;			 
	unsigned long int __unused3;
	unsigned long int __unused4;
	unsigned long int __unused5;
};

# 6 "/home/root/kernel/kernel/include/linux/stat.h" 2






#define S_IFMT  00170000
#define S_IFSOCK 0140000
#define S_IFLNK	 0120000
#define S_IFREG  0100000
#define S_IFBLK  0060000
#define S_IFDIR  0040000
#define S_IFCHR  0020000
#define S_IFIFO  0010000
#define S_ISUID  0004000
#define S_ISGID  0002000
#define S_ISVTX  0001000

#define S_ISLNK(m)	(((m) & S_IFMT) == S_IFLNK)
#define S_ISREG(m)	(((m) & S_IFMT) == S_IFREG)
#define S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
#define S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR)
#define S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK)
#define S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO)
#define S_ISSOCK(m)	(((m) & S_IFMT) == S_IFSOCK)

#define S_IRWXU 00700
#define S_IRUSR 00400
#define S_IWUSR 00200
#define S_IXUSR 00100

#define S_IRWXG 00070
#define S_IRGRP 00040
#define S_IWGRP 00020
#define S_IXGRP 00010

#define S_IRWXO 00007
#define S_IROTH 00004
#define S_IWOTH 00002
#define S_IXOTH 00001




#define S_IRWXUGO	(S_IRWXU|S_IRWXG|S_IRWXO)
#define S_IALLUGO	(S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
#define S_IRUGO		(S_IRUSR|S_IRGRP|S_IROTH)
#define S_IWUGO		(S_IWUSR|S_IWGRP|S_IWOTH)
#define S_IXUGO		(S_IXUSR|S_IXGRP|S_IXOTH)



# 20 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/cache.h" 1

#define __LINUX_CACHE_H

# 1 "/home/root/kernel/kernel/include/asm/cache.h" 1
 


 




#define __ARCH_PPC_CACHE_H


# 1 "/home/root/kernel/kernel/include/asm/processor.h" 1
 



# 705 "/home/root/kernel/kernel/include/asm/processor.h"


# 12 "/home/root/kernel/kernel/include/asm/cache.h" 2


 







#define 	L1_CACHE_BYTES	16


#define 	L1_CACHE_ALIGN(x)       (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
#define 	L1_CACHE_PAGES		8

#define 	SMP_CACHE_BYTES L1_CACHE_BYTES




#define __cacheline_aligned	__attribute__((__aligned__(L1_CACHE_BYTES),	__section__(".data.cacheline_aligned")))





extern void flush_dcache_range(unsigned long start, unsigned long stop);



 
#define CACHECRBA       0x80000823      
#define L2CACHE_MASK	0x03	
#define L2CACHE_512KB	0x00	
#define L2CACHE_256KB	0x01	
#define L2CACHE_1MB	0x02	
#define L2CACHE_NONE	0x03	
#define L2CACHE_PARITY  0x08    


 


#define IC_CST		560	
#define IC_ADR		561	
#define IC_DAT		562	
#define DC_CST		568	
#define DC_ADR		569	
#define DC_DAT		570	

 

#define 	IDC_ENABLE	0x02000000	
#define IDC_DISABLE	0x04000000	
#define IDC_LDLCK	0x06000000	
#define IDC_UNLINE	0x08000000	
#define IDC_UNALL	0x0a000000	
#define IDC_INVALL	0x0c000000	

#define DC_FLINE	0x0e000000	
#define DC_SFWT		0x01000000	
#define DC_CFWT		0x03000000	
#define DC_SLES		0x05000000	
#define DC_CLES		0x07000000	

 

#define IDC_ENABLED	0x80000000	
#define IDC_CERR1	0x00200000	
#define IDC_CERR2	0x00100000	
#define IDC_CERR3	0x00080000	

#define DC_DFWT		0x40000000	
#define DC_LES		0x20000000	




# 4 "/home/root/kernel/kernel/include/linux/cache.h" 2











#define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))


# 26 "/home/root/kernel/kernel/include/linux/cache.h"



# 21 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2





# 1 "/home/root/kernel/kernel/include/asm/bitops.h" 1
 


 





#define _PPC_BITOPS_H


# 1 "/home/root/kernel/kernel/include/asm/byteorder.h" 1
 



#define _PPC_BYTEORDER_H






extern __inline__ unsigned ld_le16(const volatile unsigned short *addr)
{
	unsigned val;

	__asm__ __volatile__ ("lhbrx %0,0,%1" : "=r" (val) : "r" (addr), "m" (*addr));
	return val;
}

extern __inline__ void st_le16(volatile unsigned short *addr, const unsigned val)
{
	__asm__ __volatile__ ("sthbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr));
}

extern __inline__ unsigned ld_le32(const volatile unsigned *addr)
{
	unsigned val;

	__asm__ __volatile__ ("lwbrx %0,0,%1" : "=r" (val) : "r" (addr), "m" (*addr));
	return val;
}

extern __inline__ void st_le32(volatile unsigned *addr, const unsigned val)
{
	__asm__ __volatile__ ("stwbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr));
}

 


# 65 "/home/root/kernel/kernel/include/asm/byteorder.h"


 
#define __arch__swab16p(addr) ld_le16(addr)
#define __arch__swab32p(addr) ld_le32(addr)

 
#define __arch__swab16s(addr) st_le16(addr,*addr)
#define __arch__swab32s(addr) st_le32(addr,*addr)


#define __BYTEORDER_HAS_U64__





# 1 "/home/root/kernel/kernel/include/linux/byteorder/big_endian.h" 1

#define _LINUX_BYTEORDER_BIG_ENDIAN_H


#define __BIG_ENDIAN 4321


#define __BIG_ENDIAN_BITFIELD


# 1 "/home/root/kernel/kernel/include/linux/byteorder/swab.h" 1

#define _LINUX_BYTEORDER_SWAB_H

 













 


#define ___swab16(x) ({ __u16 __x = (x); ((__u16)( (((__u16)(__x) & (__u16)0x00ffU) << 8) | (((__u16)(__x) & (__u16)0xff00U) >> 8) )); })







#define ___swab32(x) ({ __u32 __x = (x); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) | (((__u32)(__x) & (__u32)0x0000ff00UL) <<  8) | (((__u32)(__x) & (__u32)0x00ff0000UL) >>  8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); })
# 38 "/home/root/kernel/kernel/include/linux/byteorder/swab.h"

#define ___swab64(x) ({ __u64 __x = (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) )); })
# 52 "/home/root/kernel/kernel/include/linux/byteorder/swab.h"

#define ___constant_swab16(x) ((__u16)( (((__u16)(x) & (__u16)0x00ffU) << 8) | (((__u16)(x) & (__u16)0xff00U) >> 8) ))



#define ___constant_swab32(x) ((__u32)( (((__u32)(x) & (__u32)0x000000ffUL) << 24) | (((__u32)(x) & (__u32)0x0000ff00UL) <<  8) | (((__u32)(x) & (__u32)0x00ff0000UL) >>  8) | (((__u32)(x) & (__u32)0xff000000UL) >> 24) ))





#define ___constant_swab64(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) ))
# 73 "/home/root/kernel/kernel/include/linux/byteorder/swab.h"

 



#define __arch__swab16(x) ({ __u16 __tmp = (x) ; ___swab16(__tmp); })


#define __arch__swab32(x) ({ __u32 __tmp = (x) ; ___swab32(__tmp); })


#define __arch__swab64(x) ({ __u64 __tmp = (x) ; ___swab64(__tmp); })









#define __arch__swab64p(x) __arch__swab64(*(x))









#define __arch__swab64s(x) do { *(x) = __arch__swab64p((x)); } while (0)



 



#define __swab16(x) (__builtin_constant_p((__u16)(x)) ? ___swab16((x)) : __fswab16((x)))



#define __swab32(x) (__builtin_constant_p((__u32)(x)) ? ___swab32((x)) : __fswab32((x)))



#define __swab64(x) (__builtin_constant_p((__u64)(x)) ? ___swab64((x)) : __fswab64((x)))










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

extern __inline__ __const__ __u32 __fswab32(__u32 x)
{
	return ({ __u32 __tmp = ( x ) ; ({ __u32 __x = ( __tmp ); ((__u32)( (((__u32)(__x) & (__u32)0x000000ffUL) << 24) | (((__u32)(__x) & (__u32)0x0000ff00UL) <<  8) | (((__u32)(__x) & (__u32)0x00ff0000UL) >>  8) | (((__u32)(__x) & (__u32)0xff000000UL) >> 24) )); }) ; }) ;
}
extern __inline__ __u32 __swab32p(__u32 *x)
{
	return ld_le32( x ) ;
}
extern __inline__ void __swab32s(__u32 *addr)
{
	st_le32( addr ,* addr ) ;
}


extern __inline__ __const__ __u64 __fswab64(__u64 x)
{





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

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



#define swab16 __swab16
#define swab32 __swab32
#define swab64 __swab64
#define swab16p __swab16p
#define swab32p __swab32p
#define swab64p __swab64p
#define swab16s __swab16s
#define swab32s __swab32s
#define swab64s __swab64s



# 11 "/home/root/kernel/kernel/include/linux/byteorder/big_endian.h" 2


#define __constant_htonl(x) ((__u32)(x))
#define __constant_ntohl(x) ((__u32)(x))
#define __constant_htons(x) ((__u16)(x))
#define __constant_ntohs(x) ((__u16)(x))
#define __constant_cpu_to_le64(x) ___constant_swab64((x))
#define __constant_le64_to_cpu(x) ___constant_swab64((x))
#define __constant_cpu_to_le32(x) ___constant_swab32((x))
#define __constant_le32_to_cpu(x) ___constant_swab32((x))
#define __constant_cpu_to_le16(x) ___constant_swab16((x))
#define __constant_le16_to_cpu(x) ___constant_swab16((x))
#define __constant_cpu_to_be64(x) ((__u64)(x))
#define __constant_be64_to_cpu(x) ((__u64)(x))
#define __constant_cpu_to_be32(x) ((__u32)(x))
#define __constant_be32_to_cpu(x) ((__u32)(x))
#define __constant_cpu_to_be16(x) ((__u16)(x))
#define __constant_be16_to_cpu(x) ((__u16)(x))
#define __cpu_to_le64(x) __swab64((x))
#define __le64_to_cpu(x) __swab64((x))
#define __cpu_to_le32(x) __swab32((x))
#define __le32_to_cpu(x) __swab32((x))
#define __cpu_to_le16(x) __swab16((x))
#define __le16_to_cpu(x) __swab16((x))
#define __cpu_to_be64(x) ((__u64)(x))
#define __be64_to_cpu(x) ((__u64)(x))
#define __cpu_to_be32(x) ((__u32)(x))
#define __be32_to_cpu(x) ((__u32)(x))
#define __cpu_to_be16(x) ((__u16)(x))
#define __be16_to_cpu(x) ((__u16)(x))
#define __cpu_to_le64p(x) __swab64p((x))
#define __le64_to_cpup(x) __swab64p((x))
#define __cpu_to_le32p(x) __swab32p((x))
#define __le32_to_cpup(x) __swab32p((x))
#define __cpu_to_le16p(x) __swab16p((x))
#define __le16_to_cpup(x) __swab16p((x))
#define __cpu_to_be64p(x) (*(__u64*)(x))
#define __be64_to_cpup(x) (*(__u64*)(x))
#define __cpu_to_be32p(x) (*(__u32*)(x))
#define __be32_to_cpup(x) (*(__u32*)(x))
#define __cpu_to_be16p(x) (*(__u16*)(x))
#define __be16_to_cpup(x) (*(__u16*)(x))
#define __cpu_to_le64s(x) __swab64s((x))
#define __le64_to_cpus(x) __swab64s((x))
#define __cpu_to_le32s(x) __swab32s((x))
#define __le32_to_cpus(x) __swab32s((x))
#define __cpu_to_le16s(x) __swab16s((x))
#define __le16_to_cpus(x) __swab16s((x))
#define __cpu_to_be64s(x) do {} while (0)
#define __be64_to_cpus(x) do {} while (0)
#define __cpu_to_be32s(x) do {} while (0)
#define __be32_to_cpus(x) do {} while (0)
#define __cpu_to_be16s(x) do {} while (0)
#define __be16_to_cpus(x) do {} while (0)

# 1 "/home/root/kernel/kernel/include/linux/byteorder/generic.h" 1

#define _LINUX_BYTEORDER_GENERIC_H

 




































 









































 



#define cpu_to_le64 __cpu_to_le64
#define le64_to_cpu __le64_to_cpu
#define cpu_to_le32 __cpu_to_le32
#define le32_to_cpu __le32_to_cpu
#define cpu_to_le16 __cpu_to_le16
#define le16_to_cpu __le16_to_cpu
#define cpu_to_be64 __cpu_to_be64
#define be64_to_cpu __be64_to_cpu
#define cpu_to_be32 __cpu_to_be32
#define be32_to_cpu __be32_to_cpu
#define cpu_to_be16 __cpu_to_be16
#define be16_to_cpu __be16_to_cpu
#define cpu_to_le64p __cpu_to_le64p
#define le64_to_cpup __le64_to_cpup
#define cpu_to_le32p __cpu_to_le32p
#define le32_to_cpup __le32_to_cpup
#define cpu_to_le16p __cpu_to_le16p
#define le16_to_cpup __le16_to_cpup
#define cpu_to_be64p __cpu_to_be64p
#define be64_to_cpup __be64_to_cpup
#define cpu_to_be32p __cpu_to_be32p
#define be32_to_cpup __be32_to_cpup
#define cpu_to_be16p __cpu_to_be16p
#define be16_to_cpup __be16_to_cpup
#define cpu_to_le64s __cpu_to_le64s
#define le64_to_cpus __le64_to_cpus
#define cpu_to_le32s __cpu_to_le32s
#define le32_to_cpus __le32_to_cpus
#define cpu_to_le16s __cpu_to_le16s
#define le16_to_cpus __le16_to_cpus
#define cpu_to_be64s __cpu_to_be64s
#define be64_to_cpus __be64_to_cpus
#define cpu_to_be32s __cpu_to_be32s
#define be32_to_cpus __be32_to_cpus
#define cpu_to_be16s __cpu_to_be16s
#define be16_to_cpus __be16_to_cpus



 


















 




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




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




#define ___htonl(x) __cpu_to_be32(x)
#define ___htons(x) __cpu_to_be16(x)
#define ___ntohl(x) __be32_to_cpu(x)
#define ___ntohs(x) __be16_to_cpu(x)


#define htonl(x) ___htonl(x)
#define ntohl(x) ___ntohl(x)




#define htons(x) ___htons(x)
#define ntohs(x) ___ntohs(x)





# 66 "/home/root/kernel/kernel/include/linux/byteorder/big_endian.h" 2



# 82 "/home/root/kernel/kernel/include/asm/byteorder.h" 2



# 13 "/home/root/kernel/kernel/include/asm/bitops.h" 2


 







#define SMP_WMB
#define SMP_MB


 



static __inline__ void set_bit(int nr, volatile void * addr)
{
	unsigned long old;
	unsigned long mask = 1 << (nr & 0x1f);
	unsigned long *p = ((unsigned long *)addr) + (nr >> 5);
	
	__asm__ __volatile__("\n1:	lwarx	%0,0,%3 \n	or	%0,%0,%2 \n	stwcx.	%0,0,%3 \n	bne-	1b"




	: "=&r" (old), "=m" (*p)
	: "r" (mask), "r" (p), "m" (*p)
	: "cc" );
}

 


static __inline__ void __set_bit(int nr, volatile void *addr)
{
	unsigned long mask = 1 << (nr & 0x1f);
	unsigned long *p = ((unsigned long *)addr) + (nr >> 5);

	*p |= mask;
}

 


#define smp_mb__before_clear_bit()	smp_mb()
#define smp_mb__after_clear_bit()	smp_mb()

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

	__asm__ __volatile__("\n1:	lwarx	%0,0,%3 \n	andc	%0,%0,%2 \n	stwcx.	%0,0,%3 \n	bne-	1b"




	: "=&r" (old), "=m" (*p)
	: "r" (mask), "r" (p), "m" (*p)
	: "cc");
}

 


static __inline__ void __clear_bit(int nr, volatile void *addr)
{
	unsigned long mask = 1 << (nr & 0x1f);
	unsigned long *p = ((unsigned long *)addr) + (nr >> 5);

	*p &= ~mask;
}

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

	__asm__ __volatile__("\n1:	lwarx	%0,0,%3 \n	xor	%0,%0,%2 \n	stwcx.	%0,0,%3 \n	bne-	1b"




	: "=&r" (old), "=m" (*p)
	: "r" (mask), "r" (p), "m" (*p)
	: "cc");
}

 


static __inline__ void __change_bit(int nr, volatile void *addr)
{
	unsigned long mask = 1 << (nr & 0x1f);
	unsigned long *p = ((unsigned long *)addr) + (nr >> 5);

	*p ^= mask;
}

 


static __inline__ int test_and_set_bit(int nr, volatile void *addr)
{
	unsigned int old, t;
	unsigned int mask = 1 << (nr & 0x1f);
	volatile unsigned int *p = ((volatile unsigned int *)addr) + (nr >> 5);

	__asm__ __volatile__(  "\n1:	lwarx	%0,0,%4 \n	or	%1,%0,%3 \n	stwcx.	%1,0,%4 \n	bne	1b"




	 
	: "=&r" (old), "=&r" (t), "=m" (*p)
	: "r" (mask), "r" (p), "m" (*p)
	: "cc", "memory");

	return (old & mask) != 0;
}

 


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

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

static __inline__ int test_and_clear_bit(int nr, volatile void *addr)
{
	unsigned int old, t;
	unsigned int mask = 1 << (nr & 0x1f);
	volatile unsigned int *p = ((volatile unsigned int *)addr) + (nr >> 5);

	__asm__ __volatile__(  "\n1:	lwarx	%0,0,%4 \n	andc	%1,%0,%3 \n	stwcx.	%1,0,%4 \n	bne	1b"




	 
	: "=&r" (old), "=&r" (t), "=m" (*p)
	: "r" (mask), "r" (p), "m" (*p)
	: "cc", "memory");

	return (old & mask) != 0;
}

 


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

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

static __inline__ int test_and_change_bit(int nr, volatile void *addr)
{
	unsigned int old, t;
	unsigned int mask = 1 << (nr & 0x1f);
	volatile unsigned int *p = ((volatile unsigned int *)addr) + (nr >> 5);

	__asm__ __volatile__(  "\n1:	lwarx	%0,0,%4 \n	xor	%1,%0,%3 \n	stwcx.	%1,0,%4 \n	bne	1b"




	 
	: "=&r" (old), "=&r" (t), "=m" (*p)
	: "r" (mask), "r" (p), "m" (*p)
	: "cc", "memory");

	return (old & mask) != 0;
}

 


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

	*p = old ^ mask;
	return (old & mask) != 0;
}

static __inline__ int test_bit(int nr, __const__ volatile void *addr)
{
	__const__ unsigned int *p = (__const__ unsigned int *) addr;

	return ((p[nr >> 5] >> (nr & 0x1f)) & 1) != 0;
}

 
static __inline__ int __ilog2(unsigned int x)
{
	int lz;

	asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x));
	return 31 - lz;
}

static __inline__ int ffz(unsigned int x)
{
	if ((x = ~x) == 0)
		return 32;
	return __ilog2(x & -x);
}



 




static __inline__ int ffs(int x)
{
	return __ilog2(x & -x) + 1;
}

 




#define hweight32(x) generic_hweight32(x)
#define hweight16(x) generic_hweight16(x)
#define hweight8(x) generic_hweight8(x)



 



#define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0)


static __inline__ unsigned long find_next_zero_bit(void * addr,
	unsigned long size, unsigned long offset)
{
	unsigned int * p = ((unsigned int *) addr) + (offset >> 5);
	unsigned int result = offset & ~31UL;
	unsigned int tmp;

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




#define ext2_set_bit(nr, addr)		__test_and_set_bit((nr) ^ 0x18, addr)
#define ext2_clear_bit(nr, addr)	__test_and_clear_bit((nr) ^ 0x18, addr)

static __inline__ int ext2_test_bit(int nr, __const__ void * addr)
{
	__const__ unsigned char	*ADDR = (__const__ unsigned char *) addr;

	return (ADDR[nr >> 3] >> (nr & 7)) & 1;
}

 




#define ext2_find_first_zero_bit(addr, size) ext2_find_next_zero_bit((addr), (size), 0)


static __inline__ unsigned long ext2_find_next_zero_bit(void *addr,
	unsigned long size, unsigned long offset)
{
	unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
	unsigned int result = offset & ~31UL;
	unsigned int tmp;

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

 
#define minix_test_and_set_bit(nr,addr) ext2_set_bit(nr,addr)
#define minix_set_bit(nr,addr) ((void)ext2_set_bit(nr,addr))
#define minix_test_and_clear_bit(nr,addr) ext2_clear_bit(nr,addr)
#define minix_test_bit(nr,addr) ext2_test_bit(nr,addr)
#define minix_find_first_zero_bit(addr,size) ext2_find_first_zero_bit(addr,size)





# 26 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


struct poll_table_struct;


 









 
#undef NR_OPEN
#define NR_OPEN (1024*1024)	
#define INR_OPEN 1024		

#define BLOCK_SIZE_BITS 10
#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)

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

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

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

#define NR_FILE  8192	
#define NR_RESERVED_FILES 10 
#define NR_SUPER 256

#define MAY_EXEC 1
#define MAY_WRITE 2
#define MAY_READ 4

#define FMODE_READ 1
#define FMODE_WRITE 2

#define READ 0
#define WRITE 1
#define READA 2		
#define SPECIAL 4	

#define SEL_IN		1
#define SEL_OUT		2
#define SEL_EX		4

 
#define FS_REQUIRES_DEV 1 
#define FS_NO_DCACHE	2 
#define FS_NO_PRELIM	4 


#define FS_SINGLE	8 





#define FS_NOMOUNT	16 
#define FS_LITTER	32 
#define FS_ODD_RENAME	32768	


 


#define MS_RDONLY	 1	
#define MS_NOSUID	 2	
#define MS_NODEV	 4	
#define MS_NOEXEC	 8	
#define MS_SYNCHRONOUS	16	
#define MS_REMOUNT	32	
#define MS_MANDLOCK	64	
#define MS_NOATIME	1024	
#define MS_NODIRATIME	2048	
#define MS_BIND		4096

 


#define MS_RMT_MASK	(MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|	MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME|MS_NODIRATIME)


 


#define MS_MGC_VAL 0xC0ED0000
#define MS_MGC_MSK 0xffff0000

 

#define S_SYNC		1	
#define S_NOATIME	2	
#define S_QUOTA		4	
#define S_APPEND	8	
#define S_IMMUTABLE	16	
#define S_DEAD		32	

 












#define __IS_FLG(inode,flg) ((inode)->i_sb->s_flags & (flg))

#define IS_RDONLY(inode) ((inode)->i_sb->s_flags & MS_RDONLY)
#define IS_NOSUID(inode)	__IS_FLG(inode, MS_NOSUID)
#define IS_NODEV(inode)		__IS_FLG(inode, MS_NODEV)
#define IS_NOEXEC(inode)	__IS_FLG(inode, MS_NOEXEC)
#define IS_SYNC(inode)		(__IS_FLG(inode, MS_SYNCHRONOUS) || ((inode)->i_flags & S_SYNC))
#define IS_MANDLOCK(inode)	__IS_FLG(inode, MS_MANDLOCK)

#define IS_QUOTAINIT(inode)	((inode)->i_flags & S_QUOTA)
#define IS_APPEND(inode)	((inode)->i_flags & S_APPEND)
#define IS_IMMUTABLE(inode)	((inode)->i_flags & S_IMMUTABLE)
#define IS_NOATIME(inode)	(__IS_FLG(inode, MS_NOATIME) || ((inode)->i_flags & S_NOATIME))
#define IS_NODIRATIME(inode)	__IS_FLG(inode, MS_NODIRATIME)

#define IS_DEADDIR(inode)	((inode)->i_flags & S_DEAD)

 


#define BLKROSET   _IO(0x12,93)	
#define BLKROGET   _IO(0x12,94)	
#define BLKRRPART  _IO(0x12,95)	
#define BLKGETSIZE _IO(0x12,96)	
#define BLKFLSBUF  _IO(0x12,97)	
#define BLKRASET   _IO(0x12,98)	
#define BLKRAGET   _IO(0x12,99)	
#define BLKFRASET  _IO(0x12,100)
#define BLKFRAGET  _IO(0x12,101)
#define BLKSECTSET _IO(0x12,102)
#define BLKSECTGET _IO(0x12,103)
#define BLKSSZGET  _IO(0x12,104)









#define BMAP_IOCTL 1		
#define FIBMAP	   _IO(0x00,1)	
#define FIGETBSZ   _IO(0x00,2)	



# 1 "/home/root/kernel/kernel/include/asm/semaphore.h" 1
 



#define _PPC_SEMAPHORE_H

 



















# 1 "/home/root/kernel/kernel/include/linux/rwsem.h" 1
 






#define _LINUX_RWSEM_H



#define RWSEM_DEBUG 0









struct rw_semaphore;




# 1 "/home/root/kernel/kernel/include/asm/rwsem.h" 1
 


 






#define _PPC_RWSEM_H







 


struct rw_semaphore {
	 
	signed long		count;
#define RWSEM_UNLOCKED_VALUE		0x00000000
#define RWSEM_ACTIVE_BIAS		0x00000001
#define RWSEM_ACTIVE_MASK		0x0000ffff
#define RWSEM_WAITING_BIAS		(-0x00010000)
#define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
#define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
	mutex_t 		wait_lock;
	struct list_head	wait_list;



};

 





#define __RWSEM_DEBUG_INIT	


#define __RWSEM_INITIALIZER(name) { RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) __RWSEM_DEBUG_INIT }




#define DECLARE_RWSEM(name)	struct rw_semaphore name = __RWSEM_INITIALIZER(name)


extern struct rw_semaphore *rwsem_down_read_failed(struct rw_semaphore *sem);
extern struct rw_semaphore *rwsem_down_write_failed(struct rw_semaphore *sem);
extern struct rw_semaphore *rwsem_wake(struct rw_semaphore *sem);

static inline void init_rwsem(struct rw_semaphore *sem)
{
	sem->count = 0x00000000 ;
	mutex_init (&sem->wait_lock);
	do { ( &sem->wait_list )->next = ( &sem->wait_list ); ( &sem->wait_list )->prev = ( &sem->wait_list ); } while (0) ;



}

 


static inline void __down_read(struct rw_semaphore *sem)
{
	if (atomic_inc_return((atomic_t *)(&sem->count)) >= 0)
		__asm__ __volatile__("": : :"memory") ;
	else
		rwsem_down_read_failed(sem);
}

 


static inline void __down_write(struct rw_semaphore *sem)
{
	int tmp;

	tmp = atomic_add_return(((-0x00010000)  + 0x00000001 ) ,
				(atomic_t *)(&sem->count));
	if (tmp == ((-0x00010000)  + 0x00000001 ) )
		__asm__ __volatile__("": : :"memory") ;
	else
		rwsem_down_write_failed(sem);
}

 


static inline void __up_read(struct rw_semaphore *sem)
{
	int tmp;

	__asm__ __volatile__("": : :"memory") ;
	tmp = atomic_dec_return((atomic_t *)(&sem->count));
	if (tmp < -1 && (tmp & 0x0000ffff ) == 0)
		rwsem_wake(sem);
}

 


static inline void __up_write(struct rw_semaphore *sem)
{
	__asm__ __volatile__("": : :"memory") ;
	if (atomic_sub_return(((-0x00010000)  + 0x00000001 ) ,
			      (atomic_t *)(&sem->count)) < 0)
		rwsem_wake(sem);
}

 


static inline void rwsem_atomic_add(int delta, struct rw_semaphore *sem)
{
	((void) atomic_add_return(( delta ), (  (atomic_t *)(&sem->count) ))) ;
}

 


static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem)
{
	__asm__ __volatile__("": : :"memory") ;
	return atomic_add_return(delta, (atomic_t *)(&sem->count));
}



# 27 "/home/root/kernel/kernel/include/linux/rwsem.h" 2







#define rwsemtrace(SEM,FMT)



 


static inline void down_read(struct rw_semaphore *sem)
{
	 ;
	__down_read(sem);
	 ;
}

 


static inline void down_write(struct rw_semaphore *sem)
{
	 ;
	__down_write(sem);
	 ;
}

 


static inline void up_read(struct rw_semaphore *sem)
{
	 ;
	__up_read(sem);
	 ;
}

 


static inline void up_write(struct rw_semaphore *sem)
{
	 ;
	__up_write(sem);
	 ;
}




# 27 "/home/root/kernel/kernel/include/asm/semaphore.h" 2


struct semaphore {
	 




	atomic_t count;
	wait_queue_head_t wait;



};





#define __SEM_DEBUG_INIT(name)


#define __SEMAPHORE_INITIALIZER(name, count) { ATOMIC_INIT(count), __WAIT_QUEUE_HEAD_INITIALIZER((name).wait) __SEM_DEBUG_INIT(name) }




#define __MUTEX_INITIALIZER(name) __SEMAPHORE_INITIALIZER(name, 1)


#define __DECLARE_SEMAPHORE_GENERIC(name, count) struct semaphore name = __SEMAPHORE_INITIALIZER(name,count)


#define DECLARE_MUTEX(name)		__DECLARE_SEMAPHORE_GENERIC(name, 1)
#define DECLARE_MUTEX_LOCKED(name)	__DECLARE_SEMAPHORE_GENERIC(name, 0)

static inline void sema_init (struct semaphore *sem, int val)
{
	((( &sem->count )->counter) = (  val )) ;
	init_waitqueue_head(&sem->wait);



}

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

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

extern void __down(struct semaphore * sem);
extern int  __down_interruptible(struct semaphore * sem);
extern void __up(struct semaphore * sem);

extern inline void down(struct semaphore * sem)
{




	 


	if (atomic_dec_return(&sem->count) < 0)
		__down(sem);
	__asm__ __volatile__("": : :"memory") ;
}

extern inline int down_interruptible(struct semaphore * sem)
{
	int ret = 0;





	if (atomic_dec_return(&sem->count) < 0)
		ret = __down_interruptible(sem);
	__asm__ __volatile__("": : :"memory") ;
	return ret;
}

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





	ret = atomic_dec_if_positive(&sem->count) < 0;
	__asm__ __volatile__("": : :"memory") ;
	return ret;
}

extern inline void up(struct semaphore * sem)
{




	__asm__ __volatile__("": : :"memory") ;
	if (atomic_inc_return(&sem->count) <= 0)
		__up(sem);
}




# 199 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2



extern void update_atime (struct inode *);
#define UPDATE_ATIME(inode) update_atime (inode)

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

 
enum bh_state_bits {
	BH_Uptodate,	 
	BH_Dirty,	 
	BH_Lock,	 
	BH_Req,		 
	BH_Mapped,	 
	BH_New,		 
	BH_Protected,	 

	BH_PrivateStart, 


};

 










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

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

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

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

	unsigned long b_rsector;	 
	wait_queue_head_t b_wait;

	struct inode *	     b_inode;
	struct list_head     b_inode_buffers;	 
};

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

#define __buffer_state(bh, state)	(((bh)->b_state & (1UL << BH_##state)) != 0)

#define buffer_uptodate(bh)	__buffer_state(bh,Uptodate)
#define buffer_dirty(bh)	__buffer_state(bh,Dirty)
#define buffer_locked(bh)	__buffer_state(bh,Lock)
#define buffer_req(bh)		__buffer_state(bh,Req)
#define buffer_mapped(bh)	__buffer_state(bh,Mapped)
#define buffer_new(bh)		__buffer_state(bh,New)
#define buffer_protected(bh)	__buffer_state(bh,Protected)

#define bh_offset(bh)		((unsigned long)(bh)->b_data & ~PAGE_MASK)

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

#define touch_buffer(bh)	SetPageReferenced(bh->b_page)


# 1 "/home/root/kernel/kernel/include/linux/pipe_fs_i.h" 1

#define _LINUX_PIPE_FS_I_H

#define PIPEFS_MAGIC 0x50495045
struct pipe_inode_info {
	wait_queue_head_t wait;
	char *base;
	unsigned int len;
	unsigned int start;
	unsigned int readers;
	unsigned int writers;
	unsigned int waiting_readers;
	unsigned int waiting_writers;
	unsigned int r_counter;
	unsigned int w_counter;
};

 

#define PIPE_SIZE		PAGE_SIZE

#define PIPE_SEM(inode)		(&(inode).i_sem)
#define PIPE_WAIT(inode)	(&(inode).i_pipe->wait)
#define PIPE_BASE(inode)	((inode).i_pipe->base)
#define PIPE_START(inode)	((inode).i_pipe->start)
#define PIPE_LEN(inode)		((inode).i_pipe->len)
#define PIPE_READERS(inode)	((inode).i_pipe->readers)
#define PIPE_WRITERS(inode)	((inode).i_pipe->writers)
#define PIPE_WAITING_READERS(inode)	((inode).i_pipe->waiting_readers)
#define PIPE_WAITING_WRITERS(inode)	((inode).i_pipe->waiting_writers)
#define PIPE_RCOUNTER(inode)	((inode).i_pipe->r_counter)
#define PIPE_WCOUNTER(inode)	((inode).i_pipe->w_counter)

#define PIPE_EMPTY(inode)	(PIPE_LEN(inode) == 0)
#define PIPE_FULL(inode)	(PIPE_LEN(inode) == PIPE_SIZE)
#define PIPE_FREE(inode)	(PIPE_SIZE - PIPE_LEN(inode))
#define PIPE_END(inode)	((PIPE_START(inode) + PIPE_LEN(inode)) & (PIPE_SIZE-1))
#define PIPE_MAX_RCHUNK(inode)	(PIPE_SIZE - PIPE_START(inode))
#define PIPE_MAX_WCHUNK(inode)	(PIPE_SIZE - PIPE_END(inode))

 
void pipe_wait(struct inode * inode);

struct inode* pipe_new(struct inode* inode);


# 286 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/minix_fs_i.h" 1

#define _MINIX_FS_I

 


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


# 287 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ext2_fs_i.h" 1
 















#define _LINUX_EXT2_FS_I

 


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_block_group;
	__u32	i_next_alloc_block;
	__u32	i_next_alloc_goal;
	__u32	i_prealloc_block;
	__u32	i_prealloc_count;
	int	i_new_inode:1;	 
};


# 288 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/hpfs_fs_i.h" 1

#define _HPFS_FS_I

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

#define i_hpfs_dno u.hpfs_i.i_dno
#define i_hpfs_parent_dir u.hpfs_i.i_parent_dir
#define i_hpfs_n_secs u.hpfs_i.i_n_secs
#define i_hpfs_file_sec u.hpfs_i.i_file_sec
#define i_hpfs_disk_sec u.hpfs_i.i_disk_sec
#define i_hpfs_dpos u.hpfs_i.i_dpos
#define i_hpfs_dsubdno u.hpfs_i.i_dsubdno
#define i_hpfs_ea_size u.hpfs_i.i_ea_size
#define i_hpfs_conv u.hpfs_i.i_conv
#define i_hpfs_ea_mode u.hpfs_i.i_ea_mode
#define i_hpfs_ea_uid u.hpfs_i.i_ea_uid
#define i_hpfs_ea_gid u.hpfs_i.i_ea_gid
 
 
#define i_hpfs_sem u.hpfs_i.i_sem
#define i_hpfs_rddir_off u.hpfs_i.i_rddir_off
#define i_hpfs_dirty u.hpfs_i.i_dirty


# 289 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ntfs_fs_i.h" 1

#define _LINUX_NTFS_FS_I_H

 
struct ntfs_attribute;
struct ntfs_sb_info;

 

#define NTFS_INTEGRAL_TYPES
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;



#define NTMODE_T
typedef __kernel_mode_t ntmode_t;


#define NTFS_UID_T
typedef uid_t ntfs_uid_t;


#define NTFS_GID_T
typedef gid_t ntfs_gid_t;


#define NTFS_SIZE_T
typedef __kernel_size_t ntfs_size_t;


#define NTFS_TIME_T
typedef __kernel_time_t ntfs_time_t;


 

#define NTFS_WCHAR_T
typedef u16 ntfs_wchar_t;

 

#define NTFS_OFFSET_T
typedef s64 ntfs_offset_t;

 

#define NTFS_TIME64_T
typedef u64 ntfs_time64_t;

 








#define NTFS_CLUSTER_T
typedef s32 ntfs_cluster_t;


 
struct ntfs_inode_info{
	unsigned long mmu_private;
	struct ntfs_sb_info *vol;
	unsigned long i_number;		 
	__u16 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;	
};


# 290 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/msdos_fs_i.h" 1

#define _MSDOS_FS_I

 



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


# 291 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/umsdos_fs_i.h" 1

#define UMSDOS_FS_I_H








 



























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



	long pid;		 

};

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


# 292 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/iso_fs_i.h" 1

#define _ISO_FS_I

 


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


# 293 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/nfs_fs_i.h" 1

#define _NFS_FS_I



# 1 "/home/root/kernel/kernel/include/linux/nfs.h" 1
 






#define _LINUX_NFS_H

# 1 "/home/root/kernel/kernel/include/linux/sunrpc/msg_prot.h" 1
 






#define _LINUX_SUNRPC_MSGPROT_H_



#define RPC_VERSION 2

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

#define RPC_PMAP_PROGRAM	100000
#define RPC_PMAP_VERSION	2
#define RPC_PMAP_PORT		111

#define RPC_MAXNETNAMELEN	256



# 10 "/home/root/kernel/kernel/include/linux/nfs.h" 2


#define NFS_PROGRAM	100003
#define NFS_PORT	2049
#define NFS_MAXDATA	8192
#define NFS_MAXPATHLEN	1024
#define NFS_MAXNAMLEN	255
#define NFS_MAXGROUPS	16
#define NFS_FHSIZE	32
#define NFS_COOKIESIZE	4
#define NFS_FIFO_DEV	(-1)
#define NFSMODE_FMT	0170000
#define NFSMODE_DIR	0040000
#define NFSMODE_CHR	0020000
#define NFSMODE_BLK	0060000
#define NFSMODE_REG	0100000
#define NFSMODE_LNK	0120000
#define NFSMODE_SOCK	0140000
#define NFSMODE_FIFO	0010000

#define NFS_MNT_PROGRAM	100005
#define NFS_MNT_PORT	627

 







 enum nfs_stat {
	NFS_OK = 0,			 
	NFSERR_PERM = 1,		 
	NFSERR_NOENT = 2,		 
	NFSERR_IO = 5,			 
	NFSERR_NXIO = 6,		 
	NFSERR_EAGAIN = 11,		 
	NFSERR_ACCES = 13,		 
	NFSERR_EXIST = 17,		 
	NFSERR_XDEV = 18,		 
	NFSERR_NODEV = 19,		 
	NFSERR_NOTDIR = 20,		 
	NFSERR_ISDIR = 21,		 
	NFSERR_INVAL = 22,		 
	NFSERR_FBIG = 27,		 
	NFSERR_NOSPC = 28,		 
	NFSERR_ROFS = 30,		 
	NFSERR_MLINK = 31,		 
	NFSERR_OPNOTSUPP = 45,		 
	NFSERR_NAMETOOLONG = 63,	 
	NFSERR_NOTEMPTY = 66,		 
	NFSERR_DQUOT = 69,		 
	NFSERR_STALE = 70,		 
	NFSERR_REMOTE = 71,		 
	NFSERR_WFLUSH = 99,		 
	NFSERR_BADHANDLE = 10001,	 
	NFSERR_NOT_SYNC = 10002,	 
	NFSERR_BAD_COOKIE = 10003,	 
	NFSERR_NOTSUPP = 10004,		 
	NFSERR_TOOSMALL = 10005,	 
	NFSERR_SERVERFAULT = 10006,	 
	NFSERR_BADTYPE = 10007,		 
	NFSERR_JUKEBOX = 10008		 
 };
 
 

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


 


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

 



#define NFS_OFFSET_MAX		((__s64)((~(__u64)0) >> 1))


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


# 6 "/home/root/kernel/kernel/include/linux/nfs_fs_i.h" 2


 


struct nfs_inode_info {
	 


	__u64 fsid;
	__u64 fileid;

	 


	struct nfs_fh		fh;

	 


	unsigned short		flags;

	 
















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

	 



	__u32			cookieverf[2];

	 


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

	unsigned int		nread,
				ndirty,
				ncommit,
				npages;

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

 


#define NFS_INO_STALE		0x0001		
#define NFS_INO_ADVISE_RDPLUS   0x0002          
#define NFS_INO_REVALIDATING	0x0004		
#define NFS_IS_SNAPSHOT		0x0010		
#define NFS_INO_FLUSH		0x0020		

 


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

 


#define NFS_LCK_GRANTED		0x0001		


# 294 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/sysv_fs_i.h" 1

#define _SYSV_FS_I

 


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




};



# 295 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/affs_fs_i.h" 1

#define _AFFS_FS_I

# 1 "/home/root/kernel/kernel/include/linux/a.out.h" 1

#define __A_OUT_GNU_H__

#define __GNU_EXEC_MACROS__



# 1 "/home/root/kernel/kernel/include/asm/a.out.h" 1
 



#define __PPC_A_OUT_H__

    
#define STACK_TOP TASK_SIZE


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


#define N_TRSIZE(a)	((a).a_trsize)
#define N_DRSIZE(a)	((a).a_drsize)
#define N_SYMSIZE(a)	((a).a_syms)



# 8 "/home/root/kernel/kernel/include/linux/a.out.h" 2




 
enum machine_type {



  M_OLDSUN2 = 0,




  M_68010 = 1,




  M_68020 = 2,




  M_SPARC = 3,

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


#define N_MAGIC(exec) ((exec).a_info & 0xffff)

#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
#define N_SET_INFO(exec, magic, type, flags) ((exec).a_info = ((magic) & 0xffff) | (((int)(type) & 0xff) << 16) | (((flags) & 0xff) << 24))



#define N_SET_MAGIC(exec, magic) ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))


#define N_SET_MACHTYPE(exec, machtype) ((exec).a_info = ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))



#define N_SET_FLAGS(exec, flags) ((exec).a_info = ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))



 
#define OMAGIC 0407
 
#define NMAGIC 0410
 
#define ZMAGIC 0413
 

#define QMAGIC 0314

 
#define CMAGIC 0421


#define N_BADMAG(x)	  (N_MAGIC(x) != OMAGIC	&& N_MAGIC(x) != NMAGIC	&& N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)





#define _N_HDROFF(x) (1024 - sizeof (struct exec))


#define N_TXTOFF(x) (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))





#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)



#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)



#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))



#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))



#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))


 

#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0)


 






















#define SEGMENT_SIZE	PAGE_SIZE




#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1))

#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)


#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))




 

#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)

\f

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



#define N_UNDF 0


#define N_ABS 2


#define N_TEXT 4


#define N_DATA 6


#define N_BSS 8


#define N_FN 15



#define N_EXT 1


#define N_TYPE 036


#define N_STAB 0340


 







#define N_INDR 0xa

 










 
#define 	N_SETA	0x14		
#define 	N_SETT	0x16		
#define 	N_SETD	0x18		
#define 	N_SETB	0x1A		

 
#define N_SETV	0x1C		
\f

 




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 "/home/root/kernel/kernel/include/linux/affs_fs_i.h" 2


 
# 1 "/home/root/kernel/kernel/include/linux/time.h" 1

#define _LINUX_TIME_H





#define _STRUCT_TIMESPEC
struct timespec {
	time_t	tv_sec;		 
	long	tv_nsec;	 
};




 











#define MAX_JIFFY_OFFSET ((~0UL >> 1)-1)

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


 














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

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

void set_rtc(void);




struct timeval {
	time_t		tv_sec;		 
	suseconds_t	tv_usec;	 
};

struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};

#define NFDBITS			__NFDBITS


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


#define FD_SETSIZE		__FD_SETSIZE
#define FD_SET(fd,fdsetp)	__FD_SET(fd,fdsetp)
#define FD_CLR(fd,fdsetp)	__FD_CLR(fd,fdsetp)
#define FD_ISSET(fd,fdsetp)	__FD_ISSET(fd,fdsetp)
#define FD_ZERO(fdsetp)		__FD_ZERO(fdsetp)

 



#define 	ITIMER_REAL	0
#define 	ITIMER_VIRTUAL	1
#define 	ITIMER_PROF	2


#define _STRUCT_ITIMERSPEC
 
struct  itimerspec {
        struct  timespec it_interval;     
        struct  timespec it_value;        
};


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


# 7 "/home/root/kernel/kernel/include/linux/affs_fs_i.h" 2


#define AFFS_CACHE_SIZE		PAGE_SIZE
 

#define AFFS_MAX_PREALLOC	32
#define AFFS_LC_SIZE		(AFFS_CACHE_SIZE/sizeof(u32)/2)
#define AFFS_AC_SIZE		(AFFS_CACHE_SIZE/sizeof(struct affs_ext_key)/2)
#define AFFS_AC_MASK		(AFFS_AC_SIZE-1)

struct affs_ext_key {
	u32	ext;				 
	u32	key;				 
};

 


struct affs_inode_info {
	u32	 i_opencnt;
	struct semaphore i_link_lock;		 
	struct semaphore i_ext_lock;		 
#define i_hash_lock i_ext_lock
	u32	 i_blkcnt;			 
	u32	 i_extcnt;			 
	u32	*i_lc;				 
	u32	 i_lc_size;
	u32	 i_lc_shift;
	u32	 i_lc_mask;
	struct affs_ext_key *i_ac;		 
	u32	 i_ext_last;			 
	struct buffer_head *i_ext_bh;		 
	unsigned long mmu_private;
	u32	 i_protect;			 
	u32	 i_lastalloc;			 
	int	 i_pa_cnt;			 








};

 
#define AFFS_INODE	(&inode->u.affs_i)
#define AFFS_DIR	(&dir->u.affs_i)


# 296 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ufs_fs_i.h" 1
 












#define _LINUX_UFS_FS_I_H

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


# 297 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/efs_fs_i.h" 1
 








#define 	__EFS_FS_I_H__

typedef	int32_t		efs_block_t;
typedef uint32_t	efs_ino_t;

#define 	EFS_DIRECTEXTENTS	12

 


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

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

 



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

 
struct efs_inode_info {
	int		numextents;
	int		lastextent;

	efs_extent	extents[12 ];
};



# 298 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/coda_fs_i.h" 1
 







#define _LINUX_CODA_FS_I




# 1 "/home/root/kernel/kernel/include/linux/coda.h" 1
 




 
















 




























 







#define _CODA_HEADER_



 






#define CODA_MAXSYMLINKS 10


# 98 "/home/root/kernel/kernel/include/linux/coda.h"




#define cdev_t u_quad_t






typedef unsigned long long u_quad_t;












# 130 "/home/root/kernel/kernel/include/linux/coda.h"



 


#define CODA_MAXNAMLEN   255
#define CODA_MAXPATHLEN  1024
#define CODA_MAXSYMLINK  10

 


#define 	C_O_READ	0x001
#define 	C_O_WRITE       0x002
#define C_O_TRUNC       0x010
#define C_O_EXCL	0x100
#define C_O_CREAT	0x200

  
#define C_M_READ  00400
#define C_M_WRITE 00200

 
#define C_A_C_OK    8               
#define C_A_R_OK    4               
#define C_A_W_OK    2               
#define C_A_X_OK    1               
#define C_A_F_OK    0               




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

#define DIRSIZ(dp)      ((sizeof (struct venus_dirent) - (CODA_MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3))


 


#define 	CDT_UNKNOWN	 0
#define 	CDT_FIFO	 1
#define 	CDT_CHR		 2
#define 	CDT_DIR		 4
#define 	CDT_BLK		 6
#define 	CDT_REG		 8
#define 	CDT_LNK		10
#define 	CDT_SOCK	12
#define 	CDT_WHT		14

 


#define 	IFTOCDT(mode)	(((mode) & 0170000) >> 12)
#define 	CDTTOIF(dirtype)	((dirtype) << 12)




#define _FID_T_	1
typedef u_long VolumeId;
typedef u_long VnodeId;
typedef u_long Unique_t;
typedef u_long FileVersion;



#define _VICEFID_T_	1
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));
}
	







#define _VUID_T_
typedef u_int32_t vuid_t;
typedef u_int32_t vgid_t;



#define _CODACRED_T_
struct coda_cred {
    vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid;  
    vgid_t cr_groupid,     cr_egid, cr_sgid, cr_fsgid;  
};



#define _VENUS_VATTR_T_
 


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

 



#define CODA_ROOT	2
#define CODA_OPEN_BY_FD	3
#define CODA_OPEN	4
#define CODA_CLOSE	5
#define CODA_IOCTL	6
#define CODA_GETATTR	7
#define CODA_SETATTR	8
#define CODA_ACCESS	9
#define CODA_LOOKUP	10
#define CODA_CREATE	11
#define CODA_REMOVE	12
#define CODA_LINK	13
#define CODA_RENAME	14
#define CODA_MKDIR	15
#define CODA_RMDIR	16
#define CODA_SYMLINK	18
#define CODA_READLINK	19
#define CODA_FSYNC	20
#define CODA_VGET	22
#define CODA_SIGNAL	23
#define CODA_REPLACE	 24 
#define CODA_FLUSH       25 
#define CODA_PURGEUSER   26 
#define CODA_ZAPFILE     27 
#define CODA_ZAPDIR      28 
#define CODA_PURGEFID    30 
#define CODA_OPEN_BY_PATH 31
#define CODA_RESOLVE     32
#define CODA_REINTEGRATE 33
#define CODA_STATFS	 34
#define CODA_STORE	 35
#define CODA_RELEASE	 36
#define CODA_NCALLS 37

#define DOWNCALL(opcode) (opcode >= CODA_REPLACE && opcode <= CODA_PURGEFID)

#define VC_MAXDATASIZE	    8192
#define VC_MAXMSGSIZE      sizeof(union inputArgs)+sizeof(union outputArgs) + VC_MAXDATASIZE  


#define CIOC_KERNEL_VERSION _IOWR('c', 10, sizeof (int))





#define CODA_KERNEL_VERSION 2 

 


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_store_in {
    struct coda_in_hdr ih;
    ViceFid	VFid;
    int	flags;
};

struct coda_store_out {
    struct coda_out_hdr out;
};

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

struct coda_release_out {
    struct coda_out_hdr out;
};

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


 
#define CLU_CASE_SENSITIVE     0x01
#define CLU_CASE_INSENSITIVE   0x02

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

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


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

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


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

struct coda_remove_out {
    struct coda_out_hdr out;
};

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

struct coda_link_out {
    struct coda_out_hdr out;
};


 
struct coda_rename_in {
    struct coda_in_hdr ih;
    ViceFid	sourceFid;
    int 	srcname;
    ViceFid destFid;
    int 	destname;
};

struct coda_rename_out {
    struct coda_out_hdr out;
};

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

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


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

struct coda_rmdir_out {
    struct coda_out_hdr out;
};

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

struct coda_symlink_out {
    struct coda_out_hdr out;
};

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

struct coda_readlink_out {
    struct coda_out_hdr oh;
    int	count;
    caddr_t	data;		 
};


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

struct coda_fsync_out {
    struct coda_out_hdr out;
};

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

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


 
 
 

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

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

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

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

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

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

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

struct coda_open_by_fd_out {
    struct coda_out_hdr oh;
    int fd;


    struct file *fh;  

};

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

 




#define CODA_NOCACHE          0x80000000

union inputArgs {
    struct coda_in_hdr ih;		 
    struct coda_open_in coda_open;
    struct coda_store_in coda_store;
    struct coda_release_in coda_release;
    struct coda_close_in coda_close;
    struct coda_ioctl_in coda_ioctl;
    struct coda_getattr_in coda_getattr;
    struct coda_setattr_in coda_setattr;
    struct coda_access_in coda_access;
    struct coda_lookup_in coda_lookup;
    struct coda_create_in coda_create;
    struct coda_remove_in coda_remove;
    struct coda_link_in coda_link;
    struct coda_rename_in coda_rename;
    struct coda_mkdir_in coda_mkdir;
    struct coda_rmdir_in coda_rmdir;
    struct coda_symlink_in coda_symlink;
    struct coda_readlink_in coda_readlink;
    struct coda_fsync_in coda_fsync;
    struct coda_vget_in coda_vget;
    struct coda_open_by_fd_in coda_open_by_fd;
    struct coda_open_by_path_in coda_open_by_path;
    struct coda_statfs_in coda_statfs;
};

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

union coda_downcalls {
     
     
    struct coda_purgeuser_out purgeuser;
    struct coda_zapfile_out zapfile;
    struct coda_zapdir_out zapdir;
    struct coda_zapvnode_out zapvnode;
    struct coda_purgefid_out purgefid;
    struct coda_replace_out replace;
};


 



#define PIOCPARM_MASK 0x0000ffff
struct ViceIoctl {
        caddr_t in, out;         
        short in_size;           
        short out_size;          
};

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

#define 	CODA_CONTROL		".CONTROL"
#define CODA_CONTROLLEN           8
#define 	CTL_VOL			-1
#define 	CTL_VNO			-1
#define 	CTL_UNI			-1
#define CTL_INO                 -1
#define 	CTL_FILE		"/coda/.CONTROL"


#define 	IS_CTL_FID(fidp)	((fidp)->Volume == CTL_VOL &&	(fidp)->Vnode == CTL_VNO &&	(fidp)->Unique == CTL_UNI)



 

#define CODA_MOUNT_VERSION 1

struct coda_mount_data {
	int		version;
	int		fd;        
};



# 14 "/home/root/kernel/kernel/include/linux/coda_fs_i.h" 2


 


struct coda_inode_info {
        struct ViceFid     c_fid;	 
        u_short	           c_flags;      
	struct list_head   c_cilist;     
	struct file	  *c_container;  
	unsigned int       c_contcount;  
        struct coda_cred   c_cached_cred;  
        unsigned int       c_cached_perm;  
};

 
#define C_VATTR       0x1   
#define C_FLUSH       0x2   
#define C_DYING       0x4   
#define C_PURGE       0x8

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



# 299 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/romfs_fs_i.h" 1

#define __ROMFS_FS_I

 

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


# 300 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/shmem_fs.h" 1

#define __SHMEM_FS_H

 

#define SHMEM_NR_DIRECT 16

 







typedef struct {
	unsigned long val;
} swp_entry_t;

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

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


# 301 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/smb_fs_i.h" 1
 








#define _LINUX_SMB_FS_I




 


struct smb_inode_info {

	 



        unsigned int open;	 
	__u16 fileid;		 
	__u16 attr;		 

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



# 302 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/hfs_fs_i.h" 1
 










#define _LINUX_HFS_FS_I_H

 




struct hfs_inode_info {
	int				magic;      

	unsigned long			mmu_private;
	struct hfs_cat_entry		*entry;

	 
	struct hfs_fork 		*fork;
	int				convert;

	 
	ino_t				file_type;
	char				dir_size;

	 
	const struct hfs_hdr_layout	*default_layout;
	struct hfs_hdr_layout		*layout;

	 
	int                             tz_secondswest;

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


# 303 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/adfs_fs_i.h" 1
 






#define _ADFS_FS_I

 


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


# 304 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/qnx4_fs_i.h" 1
 










#define _QNX4_FS_I

# 1 "/home/root/kernel/kernel/include/linux/qnxtypes.h" 1
 











#define _QNX4TYPES_H

typedef __u16 qnx4_nxtnt_t;
typedef __u8  qnx4_ftype_t;

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

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


# 14 "/home/root/kernel/kernel/include/linux/qnx4_fs_i.h" 2


 


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


# 305 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/reiserfs_fs_i.h" 1

#define _REISER_FS_I



struct reiserfs_inode_info {
  __u32 i_key [4]; 
  
				 




  int i_version;   

  int i_pack_on_close ;  

  __u32 i_first_direct_byte;  

				 













   
  int i_prealloc_block;
  int i_prealloc_count;
  struct list_head i_prealloc_list;	 

				 

   
  int nopack;
};



# 306 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/bfs_fs_i.h" 1
 





#define _LINUX_BFS_FS_I

 


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


# 307 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/udf_fs_i.h" 1
 

















#define _LINUX_UDF_FS_I_H




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


struct udf_inode_info
{
	long i_umtime;
	long i_uctime;
	long i_crtime;
	long i_ucrtime;
	 
	lb_addr i_location;
	__u64 i_unique;
	__u32 i_lenEAttr;
	__u32 i_lenAlloc;
	__u64 i_lenExtents;
	__u32 i_next_alloc_block;
	__u32 i_next_alloc_goal;
	unsigned i_alloc_type : 3;
	unsigned i_extended_fe : 1;
	unsigned i_strat_4096 : 1;
	unsigned i_new_inode : 1;
	unsigned reserved : 26;
};



 

#define UDF_GETEASIZE   _IOR('l', 0x40, int)
#define UDF_GETEABLOCK  _IOR('l', 0x41, void *)
#define UDF_GETVOLIDENT _IOR('l', 0x42, void *)
#define UDF_RELOCATE_BLOCKS _IOWR('l', 0x43, long)


# 308 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ncp_fs_i.h" 1
 







#define _LINUX_NCP_FS_I



 



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




# 309 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/proc_fs_i.h" 1
struct proc_inode_info {
	struct task_struct *task;
	int type;
	union {
		int (*proc_get_link)(struct inode *, struct dentry **, struct vfsmount **);
		int (*proc_read)(struct task_struct *task, char *page);
	} op;
	struct file *file;
};
# 310 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/usbdev_fs_i.h" 1
struct usb_device;
struct usb_bus;

struct usbdev_inode_info {
	struct list_head dlist;
	struct list_head slist;
	union {
		struct usb_device *dev;
		struct usb_bus *bus;
	} p;
};
# 311 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


 



#define ATTR_MODE	1
#define ATTR_UID	2
#define ATTR_GID	4
#define ATTR_SIZE	8
#define ATTR_ATIME	16
#define ATTR_MTIME	32
#define ATTR_CTIME	64
#define ATTR_ATIME_SET	128
#define ATTR_MTIME_SET	256
#define ATTR_FORCE	512	
#define ATTR_ATTR_FLAG	1024

 








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

 


#define ATTR_FLAG_SYNCRONOUS	1 	
#define ATTR_FLAG_NOATIME	2 	
#define ATTR_FLAG_APPEND	4 	
#define ATTR_FLAG_IMMUTABLE	8 	
#define ATTR_FLAG_NODIRATIME	16 	

 


# 1 "/home/root/kernel/kernel/include/linux/quota.h" 1
 






































#define _LINUX_QUOTA_

# 1 "/home/root/kernel/kernel/include/linux/errno.h" 1

#define _LINUX_ERRNO_H

# 1 "/home/root/kernel/kernel/include/asm/errno.h" 1
 



#define _PPC_ERRNO_H

#define 	EPERM		 1	
#define 	ENOENT		 2	
#define 	ESRCH		 3	
#define 	EINTR		 4	
#define 	EIO		 5	
#define 	ENXIO		 6	
#define 	E2BIG		 7	
#define 	ENOEXEC		 8	
#define 	EBADF		 9	
#define 	ECHILD		10	
#define 	EAGAIN		11	
#define 	ENOMEM		12	
#define 	EACCES		13	
#define 	EFAULT		14	
#define 	ENOTBLK		15	
#define 	EBUSY		16	
#define 	EEXIST		17	
#define 	EXDEV		18	
#define 	ENODEV		19	
#define 	ENOTDIR		20	
#define 	EISDIR		21	
#define 	EINVAL		22	
#define 	ENFILE		23	
#define 	EMFILE		24	
#define 	ENOTTY		25	
#define 	ETXTBSY		26	
#define 	EFBIG		27	
#define 	ENOSPC		28	
#define 	ESPIPE		29	
#define 	EROFS		30	
#define 	EMLINK		31	
#define 	EPIPE		32	
#define 	EDOM		33	
#define 	ERANGE		34	
#define 	EDEADLK		35	
#define 	ENAMETOOLONG	36	
#define 	ENOLCK		37	
#define 	ENOSYS		38	
#define 	ENOTEMPTY	39	
#define 	ELOOP		40	
#define 	EWOULDBLOCK	EAGAIN	
#define 	ENOMSG		42	
#define 	EIDRM		43	
#define 	ECHRNG		44	
#define 	EL2NSYNC	45	
#define 	EL3HLT		46	
#define 	EL3RST		47	
#define 	ELNRNG		48	
#define 	EUNATCH		49	
#define 	ENOCSI		50	
#define 	EL2HLT		51	
#define 	EBADE		52	
#define 	EBADR		53	
#define 	EXFULL		54	
#define 	ENOANO		55	
#define 	EBADRQC		56	
#define 	EBADSLT		57	
#define 	EDEADLOCK	58	
#define 	EBFONT		59	
#define 	ENOSTR		60	
#define 	ENODATA		61	
#define 	ETIME		62	
#define 	ENOSR		63	
#define 	ENONET		64	
#define 	ENOPKG		65	
#define 	EREMOTE		66	
#define 	ENOLINK		67	
#define 	EADV		68	
#define 	ESRMNT		69	
#define 	ECOMM		70	
#define 	EPROTO		71	
#define 	EMULTIHOP	72	
#define 	EDOTDOT		73	
#define 	EBADMSG		74	
#define 	EOVERFLOW	75	
#define 	ENOTUNIQ	76	
#define 	EBADFD		77	
#define 	EREMCHG		78	
#define 	ELIBACC		79	
#define 	ELIBBAD		80	
#define 	ELIBSCN		81	
#define 	ELIBMAX		82	
#define 	ELIBEXEC	83	
#define 	EILSEQ		84	
#define 	ERESTART	85	
#define 	ESTRPIPE	86	
#define 	EUSERS		87	
#define 	ENOTSOCK	88	
#define 	EDESTADDRREQ	89	
#define 	EMSGSIZE	90	
#define 	EPROTOTYPE	91	
#define 	ENOPROTOOPT	92	
#define 	EPROTONOSUPPORT	93	
#define 	ESOCKTNOSUPPORT	94	
#define 	EOPNOTSUPP	95	
#define 	EPFNOSUPPORT	96	
#define 	EAFNOSUPPORT	97	
#define 	EADDRINUSE	98	
#define 	EADDRNOTAVAIL	99	
#define 	ENETDOWN	100	
#define 	ENETUNREACH	101	
#define 	ENETRESET	102	
#define 	ECONNABORTED	103	
#define 	ECONNRESET	104	
#define 	ENOBUFS		105	
#define 	EISCONN		106	
#define 	ENOTCONN	107	
#define 	ESHUTDOWN	108	
#define 	ETOOMANYREFS	109	
#define 	ETIMEDOUT	110	
#define 	ECONNREFUSED	111	
#define 	EHOSTDOWN	112	
#define 	EHOSTUNREACH	113	
#define 	EALREADY	114	
#define 	EINPROGRESS	115	
#define 	ESTALE		116	
#define 	EUCLEAN		117	
#define 	ENOTNAM		118	
#define 	ENAVAIL		119	
#define 	EISNAM		120	
#define 	EREMOTEIO	121	
#define 	EDQUOT		122	

#define 	ENOMEDIUM	123	
#define 	EMEDIUMTYPE	124	

 
#define ERESTARTSYS	512
#define ERESTARTNOINTR	513
#define ERESTARTNOHAND	514	
#define ENOIOCTLCMD	515	

#define _LAST_ERRNO	515


# 4 "/home/root/kernel/kernel/include/linux/errno.h" 2




 





 
#define EBADHANDLE	521	
#define ENOTSYNC	522	
#define EBADCOOKIE	523	
#define ENOTSUPP	524	
#define ETOOSMALL	525	
#define ESERVERFAULT	526	
#define EBADTYPE	527	
#define EJUKEBOX	528	




# 42 "/home/root/kernel/kernel/include/linux/quota.h" 2


 


#define dbtob(num) (num << BLOCK_SIZE_BITS)
#define btodb(num) (num >> BLOCK_SIZE_BITS)

 



#define fs_to_dq_blocks(num, blksize) (((num) * (blksize)) / BLOCK_SIZE)

 








#define MAX_IQ_TIME  604800	
#define MAX_DQ_TIME  604800	

#define MAXQUOTAS 2
#define USRQUOTA  0		
#define GRPQUOTA  1		

 


#define INITQFNAMES { "user", "group", "undefined", };





#define QUOTAFILENAME "quota"
#define QUOTAGROUP "staff"

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

#define NR_DQHASH 43            
#define NR_DQUOTS 1024          

 





#define SUBCMDMASK  0x00ff
#define SUBCMDSHIFT 8
#define QCMD(cmd, type)  (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))

#define Q_QUOTAON  0x0100	
#define Q_QUOTAOFF 0x0200	
#define Q_GETQUOTA 0x0300	
#define Q_SETQUOTA 0x0400	
#define Q_SETUSE   0x0500	
#define Q_SYNC     0x0600	
#define Q_SETQLIM  0x0700	
#define Q_GETSTATS 0x0800	
#define Q_RSQUASH  0x1000	

 




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

 


#define 	dq_bhardlimit	dq_dqb.dqb_bhardlimit
#define 	dq_bsoftlimit	dq_dqb.dqb_bsoftlimit
#define 	dq_curblocks	dq_dqb.dqb_curblocks
#define 	dq_ihardlimit	dq_dqb.dqb_ihardlimit
#define 	dq_isoftlimit	dq_dqb.dqb_isoftlimit
#define 	dq_curinodes	dq_dqb.dqb_curinodes
#define 	dq_btime	dq_dqb.dqb_btime
#define 	dq_itime	dq_dqb.dqb_itime

#define dqoff(UID)      ((loff_t)((UID) * sizeof (struct dqblk)))

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



 



#define MAX_QUOTA_MESSAGE 75

#define DQ_LOCKED     0x01	
#define DQ_WANT       0x02	
#define DQ_MOD        0x04	
#define DQ_BLKS       0x10	
#define DQ_INODES     0x20	
#define DQ_FAKE       0x40	

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

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

	struct dqblk dq_dqb;		 
};

#define NODQUOT (struct dquot *)NULL

 


#define QUOTA_SYSCALL     0x01
#define SET_QUOTA         0x02
#define SET_USE           0x04
#define SET_QLIMIT        0x08

#define QUOTA_OK          0
#define NO_QUOTA          1

# 208 "/home/root/kernel/kernel/include/linux/quota.h"


# 362 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2



 


struct page;
struct address_space;

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

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

struct char_device {
	struct list_head	hash;
	atomic_t		count;
	dev_t			dev;
	atomic_t		openers;
	struct semaphore	sem;
};

struct block_device {
	struct list_head	bd_hash;
	atomic_t		bd_count;
 
	dev_t			bd_dev;   
	atomic_t		bd_openers;
	const struct block_device_operations *bd_op;
	struct semaphore	bd_sem;	 
};

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

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

	unsigned long		i_dnotify_mask;  
	struct dnotify_struct	*i_dnotify;  

	unsigned long		i_state;

	unsigned int		i_flags;
	unsigned char		i_sock;

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

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

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

	unsigned long		f_version;

	 
	void			*private_data;
};
extern mutex_t  files_lock;
#define file_list_lock() spin_lock(&files_lock);
#define file_list_unlock() spin_unlock(&files_lock);

#define get_file(x)	atomic_inc(&(x)->f_count)
#define file_count(x)	atomic_read(&(x)->f_count)

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

#define 	MAX_NON_LFS	((1UL<<31) - 1)

#define FL_POSIX	1
#define FL_FLOCK	2
#define FL_BROKEN	4	
#define FL_ACCESS	8	
#define FL_LOCKD	16	
#define FL_LEASE	32	

 






typedef struct files_struct *fl_owner_t;

struct file_lock {
	struct file_lock *fl_next;	 
	struct list_head fl_link;	 
	struct list_head fl_block;	 
	fl_owner_t fl_owner;
	unsigned int fl_pid;
	wait_queue_head_t fl_wait;
	struct file *fl_file;
	unsigned char fl_flags;
	unsigned char fl_type;
	loff_t fl_start;
	loff_t fl_end;

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

	struct fasync_struct *	fl_fasync;  

	union {
		struct nfs_lock_info	nfs_fl;
	} fl_u;
};

 

#define INT_LIMIT(x)	(~((x)1 << (sizeof(x)*8 - 1)))
#define OFFSET_MAX	INT_LIMIT(loff_t)
#define OFFT_OFFSET_MAX	INT_LIMIT(off_t)


extern struct list_head file_lock_list;

# 1 "/home/root/kernel/kernel/include/linux/fcntl.h" 1

#define _LINUX_FCNTL_H

# 1 "/home/root/kernel/kernel/include/asm/fcntl.h" 1
 



#define _PPC_FCNTL_H

 

#define O_ACCMODE	   0003
#define O_RDONLY	     00
#define O_WRONLY	     01
#define O_RDWR		     02
#define O_CREAT		   0100	
#define O_EXCL		   0200	
#define O_NOCTTY	   0400	
#define O_TRUNC		  01000	
#define O_APPEND	  02000
#define O_NONBLOCK	  04000
#define O_NDELAY	O_NONBLOCK
#define O_SYNC		 010000
#define FASYNC		 020000	
#define O_DIRECTORY      040000	
#define O_NOFOLLOW      0100000	
#define O_LARGEFILE     0200000
#define O_DIRECT	0400000	

#define F_DUPFD		0	
#define F_GETFD		1	
#define F_SETFD		2	
#define F_GETFL		3	
#define F_SETFL		4	
#define F_GETLK		5
#define F_SETLK		6
#define F_SETLKW	7

#define F_SETOWN	8	
#define F_GETOWN	9	
#define F_SETSIG	10	
#define F_GETSIG	11	

#define F_GETLK64	12	
#define F_SETLK64	13
#define F_SETLKW64	14

 
#define FD_CLOEXEC	1	

 
#define F_RDLCK		0
#define F_WRLCK		1
#define F_UNLCK		2

 
#define F_EXLCK		4	
#define F_SHLCK		8	

 
#define F_INPROGRESS	16

 
#define LOCK_SH		1	
#define LOCK_EX		2	
#define LOCK_NB		4	

#define LOCK_UN		8	

#define LOCK_MAND	32	
#define LOCK_READ	64	
#define LOCK_WRITE	128	
#define LOCK_RW		192	


#define F_POSIX		1
#define F_FLOCK		2
#define F_BROKEN	4	


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

struct flock64 {
	short  l_type;
	short  l_whence;
	loff_t l_start;
	loff_t l_len;
	pid_t  l_pid;
};

#define F_LINUX_SPECIFIC_BASE	1024

# 4 "/home/root/kernel/kernel/include/linux/fcntl.h" 2


#define F_SETLEASE	(F_LINUX_SPECIFIC_BASE+0)
#define F_GETLEASE	(F_LINUX_SPECIFIC_BASE+1)

 



#define F_NOTIFY	(F_LINUX_SPECIFIC_BASE+2)

 


#define DN_ACCESS	0x00000001	
#define DN_MODIFY	0x00000002	
#define DN_CREATE	0x00000004	
#define DN_DELETE	0x00000008	
#define DN_RENAME	0x00000010	
#define DN_ATTRIB	0x00000020	
#define DN_MULTISHOT	0x80000000	


# 576 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


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

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

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

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

#define FASYNC_MAGIC 0x4601

 
extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
 
extern void kill_fasync(struct fasync_struct **, int, int);
 
extern void __kill_fasync(struct fasync_struct *, int, int);

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

#define DQUOT_USR_ENABLED	0x01		
#define DQUOT_GRP_ENABLED	0x02		

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

 



#define MNT_FORCE	0x00000001	

# 1 "/home/root/kernel/kernel/include/linux/minix_fs_sb.h" 1

#define _MINIX_FS_SB

 


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


# 642 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ext2_fs_sb.h" 1
 















#define _LINUX_EXT2_FS_SB

 



 

#define EXT2_MAX_GROUP_LOADED	8

 


struct ext2_sb_info {
	unsigned long s_frag_size;	 
	unsigned long s_frags_per_block; 
	unsigned long s_inodes_per_block; 
	unsigned long s_frags_per_group; 
	unsigned long s_blocks_per_group; 
	unsigned long s_inodes_per_group; 
	unsigned long s_itb_per_group;	 
	unsigned long s_gdb_count;	 
	unsigned long s_desc_per_block;	 
	unsigned long s_groups_count;	 
	struct buffer_head * s_sbh;	 
	struct ext2_super_block * s_es;	 
	struct buffer_head ** s_group_desc;
	unsigned short s_loaded_inode_bitmaps;
	unsigned short s_loaded_block_bitmaps;
	unsigned long s_inode_bitmap_number[8 ];
	struct buffer_head * s_inode_bitmap[8 ];
	unsigned long s_block_bitmap_number[8 ];
	struct buffer_head * s_block_bitmap[8 ];
	unsigned long  s_mount_opt;
	uid_t s_resuid;
	gid_t s_resgid;
	unsigned short s_mount_state;
	unsigned short s_pad;
	int s_addr_per_block_bits;
	int s_desc_per_block_bits;
	int s_inode_size;
	int s_first_ino;
};


# 643 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/hpfs_fs_sb.h" 1

#define _HPFS_FS_SB

struct hpfs_sb_info {
	ino_t sb_root;			 
	unsigned sb_fs_size;		 
	unsigned sb_bitmaps;		 
	unsigned sb_dirband_start;	 
	unsigned sb_dirband_size;	 
	unsigned sb_dmap;		 
	unsigned sb_n_free;		 
	unsigned sb_n_free_dnodes;	 
	uid_t sb_uid;			 
	gid_t sb_gid;			 
	umode_t sb_mode;		 
	unsigned sb_conv : 2;		 
	unsigned sb_eas : 2;		 
	unsigned sb_err : 2;		 
	unsigned sb_chk : 2;		 
	unsigned sb_lowercase : 1;	 
	unsigned sb_was_error : 1;	 
	unsigned sb_chkdsk : 2;		 
	unsigned sb_rd_fnode : 2;	 
	unsigned sb_rd_inode : 2;	 


	wait_queue_head_t sb_iget_q;
	unsigned char *sb_cp_table;	 
					 
					 
	unsigned *sb_bmp_dir;		 
	unsigned sb_c_bitmap;		 
	wait_queue_head_t sb_creation_de; 

	unsigned sb_creation_de_lock : 1;
	 
	int sb_timeshift;
};

#define s_hpfs_root u.hpfs_sb.sb_root
#define s_hpfs_fs_size u.hpfs_sb.sb_fs_size
#define s_hpfs_bitmaps u.hpfs_sb.sb_bitmaps
#define s_hpfs_dirband_start u.hpfs_sb.sb_dirband_start
#define s_hpfs_dirband_size u.hpfs_sb.sb_dirband_size
#define s_hpfs_dmap u.hpfs_sb.sb_dmap
#define s_hpfs_uid u.hpfs_sb.sb_uid
#define s_hpfs_gid u.hpfs_sb.sb_gid
#define s_hpfs_mode u.hpfs_sb.sb_mode
#define s_hpfs_n_free u.hpfs_sb.sb_n_free
#define s_hpfs_n_free_dnodes u.hpfs_sb.sb_n_free_dnodes
#define s_hpfs_lowercase u.hpfs_sb.sb_lowercase
#define s_hpfs_conv u.hpfs_sb.sb_conv
#define s_hpfs_eas u.hpfs_sb.sb_eas
#define s_hpfs_err u.hpfs_sb.sb_err
#define s_hpfs_chk u.hpfs_sb.sb_chk
#define s_hpfs_was_error u.hpfs_sb.sb_was_error
#define s_hpfs_chkdsk u.hpfs_sb.sb_chkdsk
 
#define s_hpfs_rd_inode u.hpfs_sb.sb_rd_inode
#define s_hpfs_cp_table u.hpfs_sb.sb_cp_table
#define s_hpfs_bmp_dir u.hpfs_sb.sb_bmp_dir
#define s_hpfs_c_bitmap u.hpfs_sb.sb_c_bitmap
#define s_hpfs_creation_de u.hpfs_sb.sb_creation_de
#define s_hpfs_creation_de_lock u.hpfs_sb.sb_creation_de_lock
#define s_hpfs_iget_q u.hpfs_sb.sb_iget_q
 
#define s_hpfs_timeshift u.hpfs_sb.sb_timeshift


# 644 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ntfs_fs_sb.h" 1

#define _LINUX_NTFS_FS_SB_H

typedef __s64 LCN;

struct ntfs_sb_info{
	 
	ntfs_uid_t uid;
	ntfs_gid_t gid;
	ntmode_t umask;
        unsigned int nct;
	void *nls_map;
	unsigned int ngt;
	 

	ntfs_size_t partition_bias;	 
	 
	ntfs_u32 at_standard_information;
	ntfs_u32 at_attribute_list;
	ntfs_u32 at_file_name;
	ntfs_u32 at_volume_version;
	ntfs_u32 at_security_descriptor;
	ntfs_u32 at_volume_name;
	ntfs_u32 at_volume_information;
	ntfs_u32 at_data;
	ntfs_u32 at_index_root;
	ntfs_u32 at_index_allocation;
	ntfs_u32 at_bitmap;
	ntfs_u32 at_symlink;  
	 
	int sector_size;
	int cluster_size;
	int cluster_size_bits;
	int mft_clusters_per_record;
	int mft_record_size;
	int mft_record_size_bits;
	int index_clusters_per_record;
	int index_record_size;
	int index_record_size_bits;
	LCN mft_lcn;
	 
	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;
	unsigned char ino_flags;
};


# 645 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/msdos_fs_sb.h" 1

#define _MSDOS_FS_SB
# 1 "/home/root/kernel/kernel/include/linux/fat_cvf.h" 1

#define _FAT_CVF

#define CVF_USE_READPAGE  0x0001

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

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

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


# 3 "/home/root/kernel/kernel/include/linux/msdos_fs_sb.h" 2


 



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

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

struct msdos_sb_info {
	unsigned short cluster_size;  
	unsigned short cluster_bits;  
	unsigned char fats,fat_bits;  
	unsigned short fat_start;
	unsigned long fat_length;     
	unsigned long dir_start;
	unsigned short dir_entries;   
	unsigned long data_start;     
	unsigned long clusters;       
	unsigned long root_cluster;   
	unsigned long fsinfo_sector;  
	wait_queue_head_t fat_wait;
	struct semaphore fat_lock;
	int prev_free;                
	int free_clusters;            
	struct fat_mount_options options;
	struct nls_table *nls_disk;   
	struct nls_table *nls_io;     
	struct cvf_format* cvf_format;
	void *dir_ops;		      
	void *private_data;
	int dir_per_block;	      
	int dir_per_block_bits;	      
};


# 646 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/iso_fs_sb.h" 1

#define _ISOFS_FS_SB

 


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


# 647 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/nfs_fs_sb.h" 1

#define _NFS_FS_SB

 


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

 


struct nfs_sb_info {
	struct nfs_server	s_server;
};


# 648 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/sysv_fs_sb.h" 1

#define _SYSV_FS_SB

 








struct sysv_sb_info {
	int	       s_type;		 
	char	       s_bytesex;	 
	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_bits;	 
	unsigned int   s_ind_per_block_2;	 
	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_bcache_count;	 
	u32	       *s_bcache;	 
	u32            *s_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;	 
	u16	       s_namelen;        
};
 

 
#define sv_type					u.sysv_sb.s_type
#define sv_bytesex				u.sysv_sb.s_bytesex
#define sv_kludge_symlinks			u.sysv_sb.s_kludge_symlinks
#define sv_truncate				u.sysv_sb.s_truncate
#define sv_link_max				u.sysv_sb.s_link_max
#define sv_inodes_per_block			u.sysv_sb.s_inodes_per_block
#define sv_inodes_per_block_1			u.sysv_sb.s_inodes_per_block_1
#define sv_inodes_per_block_bits		u.sysv_sb.s_inodes_per_block_bits
#define sv_ind_per_block			u.sysv_sb.s_ind_per_block
#define sv_ind_per_block_bits			u.sysv_sb.s_ind_per_block_bits
#define sv_ind_per_block_2			u.sysv_sb.s_ind_per_block_2
#define sv_toobig_block				u.sysv_sb.s_toobig_block
#define sv_block_base				u.sysv_sb.s_block_base
#define sv_fic_size				u.sysv_sb.s_fic_size
#define sv_flc_size				u.sysv_sb.s_flc_size
#define sv_bh1					u.sysv_sb.s_bh1
#define sv_bh2					u.sysv_sb.s_bh2
#define sv_sbd1					u.sysv_sb.s_sbd1
#define sv_sbd2					u.sysv_sb.s_sbd2
#define sv_sb_fic_count				u.sysv_sb.s_sb_fic_count
#define sv_sb_fic_inodes			u.sysv_sb.s_sb_fic_inodes
#define sv_sb_total_free_inodes			u.sysv_sb.s_sb_total_free_inodes
#define sv_bcache_count				u.sysv_sb.s_bcache_count
#define sv_bcache				u.sysv_sb.s_bcache
#define sv_free_blocks				u.sysv_sb.s_free_blocks
#define sv_sb_time				u.sysv_sb.s_sb_time
#define sv_sb_state				u.sysv_sb.s_sb_state
#define sv_firstinodezone			u.sysv_sb.s_firstinodezone
#define sv_firstdatazone			u.sysv_sb.s_firstdatazone
#define sv_ninodes				u.sysv_sb.s_ninodes
#define sv_ndatazones				u.sysv_sb.s_ndatazones
#define sv_nzones				u.sysv_sb.s_nzones
#define sv_namelen                              u.sysv_sb.s_namelen


# 649 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/affs_fs_sb.h" 1

#define _AFFS_FS_SB

 






struct affs_bm_info {
	u32 bm_key;			 
	u32 bm_free;			 
};

struct affs_sb_info {
	int s_partition_size;		 
	int s_reserved;			 
	 
	u32 s_data_blksize;		 
	u32 s_root_block;		 
	int s_hashsize;			 
	unsigned long s_flags;		 
	uid_t s_uid;			 
	gid_t s_gid;			 
	umode_t s_mode;			 
	struct buffer_head *s_root_bh;	 
	struct semaphore s_bmlock;	 
	struct affs_bm_info *s_bitmap;	 
	u32 s_bmap_count;		 
	u32 s_bmap_bits;		 
	u32 s_last_bmap;
	struct buffer_head *s_bmap_bh;
	char *s_prefix;			 
	int s_prefix_len;		 
	char s_volume[32];		 
};

#define SF_INTL		0x0001		
#define SF_BM_VALID	0x0002		
#define SF_IMMUTABLE	0x0004		
#define SF_QUIET	0x0008		
#define SF_SETUID	0x0010		
#define SF_SETGID	0x0020		
#define SF_SETMODE	0x0040		
#define SF_MUFS		0x0100		
#define SF_OFS		0x0200		
#define SF_PREFIX	0x0400		
#define SF_VERBOSE	0x0800		
#define SF_READONLY	0x1000		

 
#define AFFS_SB		(&sb->u.affs_sb)


# 650 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ufs_fs_sb.h" 1
 













#define __LINUX_UFS_FS_SB_H

# 1 "/home/root/kernel/kernel/include/linux/ufs_fs.h" 1
 


























#define __LINUX_UFS_FS_H






#define UFS_BBLOCK 0
#define UFS_BBSIZE 8192
#define UFS_SBLOCK 8192
#define UFS_SBSIZE 8192

#define UFS_SECTOR_SIZE 512
#define UFS_SECTOR_BITS 9
#define UFS_MAGIC 0x00011954
#define UFS_CIGAM 0x54190100 


 

#define UFS_MAGIC_LFN   0x00095014 
#define UFS_CIGAM_LFN   0x14500900 

#define UFS_MAGIC_SEC   0x00612195 
#define UFS_CIGAM_SEC   0x95216100

#define UFS_MAGIC_FEA   0x00195612 
#define UFS_CIGAM_FEA   0x12561900

#define UFS_MAGIC_4GB   0x05231994 
#define UFS_CIGAM_4GB   0x94192305

 
#define UFS_FSF_LFN     0x00000001 
#define UFS_FSF_B1      0x00000002 
#define UFS_FSF_LFS     0x00000002 
#define UFS_FSF_LUID    0x00000004 

 


#define UFS_BSIZE	8192
#define UFS_MINBSIZE	4096
#define UFS_FSIZE	1024
#define UFS_MAXFRAG	(UFS_BSIZE / UFS_FSIZE)

#define UFS_NDADDR 12
#define UFS_NINDIR 3

#define UFS_IND_BLOCK	(UFS_NDADDR + 0)
#define UFS_DIND_BLOCK	(UFS_NDADDR + 1)
#define UFS_TIND_BLOCK	(UFS_NDADDR + 2)

#define UFS_NDIR_FRAGMENT (UFS_NDADDR << uspi->s_fpbshift)
#define UFS_IND_FRAGMENT (UFS_IND_BLOCK << uspi->s_fpbshift)
#define UFS_DIND_FRAGMENT (UFS_DIND_BLOCK << uspi->s_fpbshift)
#define UFS_TIND_FRAGMENT (UFS_TIND_BLOCK << uspi->s_fpbshift)

#define UFS_ROOTINO 2
#define UFS_FIRST_INO (UFS_ROOTINO + 1)

#define UFS_USEEFT  ((__u16)65535)

#define UFS_FSOK      0x7c269d38
#define UFS_FSACTIVE  ((char)0x00)
#define UFS_FSCLEAN   ((char)0x01)
#define UFS_FSSTABLE  ((char)0x02)
#define UFS_FSOSF1    ((char)0x03)	
#define UFS_FSBAD     ((char)0xff)

 
 
#define UFS_BYTESEX             0x00000001      

 
#define UFS_NATIVE_ENDIAN	0x00000000
#define UFS_SWABBED_ENDIAN	0x00000001





 
#define UFS_DE_MASK		0x00000010	
#define UFS_DE_OLD		0x00000000
#define UFS_DE_44BSD		0x00000010
 
#define UFS_UID_MASK		0x00000060	
#define UFS_UID_OLD		0x00000000
#define UFS_UID_44BSD		0x00000020
#define UFS_UID_EFT		0x00000040
 
#define UFS_ST_MASK		0x00000700	
#define UFS_ST_OLD		0x00000000
#define UFS_ST_44BSD		0x00000100
#define UFS_ST_SUN		0x00000200
#define UFS_ST_SUNx86		0x00000400
 
#define UFS_CG_MASK		0x00003000	
#define UFS_CG_OLD		0x00000000
#define UFS_CG_44BSD		0x00002000
#define UFS_CG_SUN		0x00001000

 
#define UFS_42INODEFMT	-1
#define UFS_44INODEFMT	2

 
#define UFS_MOUNT_ONERROR		0x0000000F
#define UFS_MOUNT_ONERROR_PANIC		0x00000001
#define UFS_MOUNT_ONERROR_LOCK		0x00000002
#define UFS_MOUNT_ONERROR_UMOUNT	0x00000004
#define UFS_MOUNT_ONERROR_REPAIR	0x00000008

#define UFS_MOUNT_UFSTYPE		0x00000FF0
#define UFS_MOUNT_UFSTYPE_OLD		0x00000010
#define UFS_MOUNT_UFSTYPE_44BSD		0x00000020
#define UFS_MOUNT_UFSTYPE_SUN		0x00000040
#define UFS_MOUNT_UFSTYPE_NEXTSTEP	0x00000080
#define UFS_MOUNT_UFSTYPE_NEXTSTEP_CD	0x00000100
#define UFS_MOUNT_UFSTYPE_OPENSTEP	0x00000200
#define UFS_MOUNT_UFSTYPE_SUNx86	0x00000400
#define UFS_MOUNT_UFSTYPE_HP	        0x00000800

#define ufs_clear_opt(o,opt)	o &= ~UFS_MOUNT_##opt
#define ufs_set_opt(o,opt)	o |= UFS_MOUNT_##opt
#define ufs_test_opt(o,opt)	((o) & UFS_MOUNT_##opt)

 











#define UFS_MINFREE         5
#define UFS_DEFAULTOPT      UFS_OPTTIME
            
 



#define ufs_fsbtodb(uspi, b)	((b) << (uspi)->s_fsbtodb)
#define 	ufs_dbtofsb(uspi, b)	((b) >> (uspi)->s_fsbtodb)

 



#define 	ufs_cgbase(c)	(uspi->s_fpg * (c))
#define ufs_cgstart(c)	(ufs_cgbase(c)  + uspi->s_cgoffset * ((c) & ~uspi->s_cgmask))
#define 	ufs_cgsblock(c)	(ufs_cgstart(c) + uspi->s_sblkno)	
#define 	ufs_cgcmin(c)	(ufs_cgstart(c) + uspi->s_cblkno)	
#define 	ufs_cgimin(c)	(ufs_cgstart(c) + uspi->s_iblkno)	
#define 	ufs_cgdmin(c)	(ufs_cgstart(c) + uspi->s_dblkno)	

 





#define 	ufs_inotocg(x)		((x) / uspi->s_ipg)
#define 	ufs_inotocgoff(x)	((x) % uspi->s_ipg)
#define 	ufs_inotofsba(x)	(ufs_cgimin(ufs_inotocg(x)) + ufs_inotocgoff(x) / uspi->s_inopf)
#define 	ufs_inotofsbo(x)	((x) % uspi->s_inopf)

 



#define 	ufs_dtog(d)	((d) / uspi->s_fpg)
#define 	ufs_dtogd(d)	((d) % uspi->s_fpg)

 


#define ufs_cbtocylno(bno) ((bno) * uspi->s_nspf / uspi->s_spc)

#define ufs_cbtorpos(bno) ((((bno) * uspi->s_nspf % uspi->s_spc / uspi->s_nsect * uspi->s_trackskew + (bno) * uspi->s_nspf % uspi->s_spc % uspi->s_nsect * uspi->s_interleave) % uspi->s_nsect * uspi->s_nrpos) / uspi->s_npsect)





 




#define ufs_blkoff(loc)		((loc) & uspi->s_qbmask)
#define ufs_fragoff(loc)	((loc) & uspi->s_qfmask)
#define ufs_lblktosize(blk)	((blk) << uspi->s_bshift)
#define ufs_lblkno(loc)		((loc) >> uspi->s_bshift)
#define ufs_numfrags(loc)	((loc) >> uspi->s_fshift)
#define ufs_blkroundup(size)	(((size) + uspi->s_qbmask) & uspi->s_bmask)
#define ufs_fragroundup(size)	(((size) + uspi->s_qfmask) & uspi->s_fmask)
#define ufs_fragstoblks(frags)	((frags) >> uspi->s_fpbshift)
#define ufs_blkstofrags(blks)	((blks) << uspi->s_fpbshift)
#define ufs_fragnum(fsb)	((fsb) & uspi->s_fpbmask)
#define ufs_blknum(fsb)		((fsb) & ~uspi->s_fpbmask)

#define 	UFS_MAXNAMLEN 255
#define UFS_MAXMNTLEN 512
#define UFS_MAXCSBUFS 31
#define UFS_LINK_MAX 32000

 



#define UFS_DIR_PAD			4
#define UFS_DIR_ROUND			(UFS_DIR_PAD - 1)
#define UFS_DIR_REC_LEN(name_len)	(((name_len) + 1 + 8 + UFS_DIR_ROUND) & ~UFS_DIR_ROUND)

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

 


#define UFS_OPTTIME	0	
#define UFS_OPTSPACE	1	

 


#define UFS_42POSTBLFMT		-1	
#define UFS_DYNAMICPOSTBLFMT	1	

 


#define fs_cs(indx) u.ufs_sb.s_csp[(indx) >> uspi->s_csshift][(indx) & ~uspi->s_csmask]


 





#define 	CG_MAGIC	0x090255
#define ufs_cg_chkmagic(ucg)	(SWAB32((ucg)->cg_magic) == CG_MAGIC)

 


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

 
 
#define UFS_UF_SETTABLE   0x0000ffff
#define UFS_UF_NODUMP     0x00000001  
#define UFS_UF_IMMUTABLE  0x00000002  
#define UFS_UF_APPEND     0x00000004  
#define UFS_UF_OPAQUE     0x00000008  
#define UFS_UF_NOUNLINK   0x00000010  
 
#define UFS_SF_SETTABLE   0xffff0000
#define UFS_SF_ARCHIVED   0x00010000  
#define UFS_SF_IMMUTABLE  0x00020000  
#define UFS_SF_APPEND     0x00040000  
#define UFS_SF_NOUNLINK   0x00100000  



 
extern void ufs_free_fragments (struct inode *, unsigned, unsigned);
extern void ufs_free_blocks (struct inode *, unsigned, unsigned);
extern unsigned ufs_new_fragments (struct inode *, u32 *, unsigned, unsigned, unsigned, int *);

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

 
extern struct inode_operations ufs_dir_inode_operations;
extern int ufs_check_dir_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 struct address_space_operations ufs_aops;

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

 
extern int ufs_frag_map (struct inode *, int);
extern void ufs_read_inode (struct inode *);
extern void ufs_put_inode (struct inode *);
extern void ufs_write_inode (struct inode *, int);
extern int ufs_sync_inode (struct inode *);
extern void ufs_delete_inode (struct inode *);
extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *);
extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);

 
extern struct file_operations ufs_dir_operations;
        
 
extern struct file_system_type ufs_fs_type;
extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
extern void ufs_write_super (struct super_block *);

 
extern struct inode_operations ufs_fast_symlink_inode_operations;

 
extern void ufs_truncate (struct inode *);




# 17 "/home/root/kernel/kernel/include/linux/ufs_fs_sb.h" 2


 



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;	 

	__u32	s_maxsymlinklen; 
};


#define UFS_MAX_GROUP_LOADED 8
#define UFS_CGNO_EMPTY ((unsigned)-1)

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


# 651 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/efs_fs_sb.h" 1
 








#define __EFS_FS_SB_H__

 
#define EFS_SUPER_MAGIC	0x414A53

 
#define EFS_MAGIC	0x072959
#define EFS_NEWMAGIC	0x07295a

#define IS_EFS_MAGIC(x)	((x == EFS_MAGIC) || (x == EFS_NEWMAGIC))

#define EFS_SUPER		1
#define EFS_ROOTINODE		2

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



# 652 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/romfs_fs_sb.h" 1

#define __ROMFS_FS_SB

 

struct romfs_sb_info {
	unsigned long s_maxsize;
};


# 653 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/smb_fs_sb.h" 1
 








#define _SMB_FS_SB




# 1 "/home/root/kernel/kernel/include/linux/smb.h" 1
 








#define _LINUX_SMB_H



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



#define SMB_NLS_MAXNAMELEN 20
struct smb_nls_codepage {
	char local_name[20 ];
	char remote_name[20 ];
};


#define SMB_MAXNAMELEN 255
#define SMB_MAXPATHLEN 1024

 


struct smb_fattr {

	__u16 attr;

	unsigned long	f_ino;
	umode_t		f_mode;
	nlink_t		f_nlink;
	uid_t		f_uid;
	gid_t		f_gid;
	kdev_t		f_rdev;
	off_t		f_size;
	time_t		f_atime;
	time_t		f_mtime;
	time_t		f_ctime;
	unsigned long	f_blksize;
	unsigned long	f_blocks;
};

enum smb_conn_state {
	CONN_VALID,		 
	CONN_INVALID,		 

	CONN_RETRIED,		 
	CONN_RETRYING		 
};

#define SMB_SUPER_MAGIC               0x517B

#define SMB_HEADER_LEN   37     


#define SMB_INITIAL_PACKET_SIZE		4000
#define SMB_MAX_PACKET_SIZE		32768

 

#define SMB_TRANS2_MAX_PARAM 64



# 15 "/home/root/kernel/kernel/include/linux/smb_fs_sb.h" 2


 
#define server_from_inode(inode) (&(inode)->i_sb->u.smbfs_sb)
#define server_from_dentry(dentry) (&(dentry)->d_sb->u.smbfs_sb)
#define SB_of(server) ((struct super_block *) ((char *)(server) - (unsigned long)(&((struct super_block *)0)->u.smbfs_sb)))


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

        struct smb_mount_data_kernel *mnt;
        unsigned char *temp_buf;

	 


	unsigned int generation;
	pid_t conn_pid;
	struct smb_conn_opt opt;

	struct semaphore sem;
	wait_queue_head_t wait;

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

         
        void *data_ready;

	 
	struct nls_table *remote_nls;
	struct nls_table *local_nls;

	 


	char *name_buf;

	int (*convert)(char *, int, const char *, int,
		       struct nls_table *, struct nls_table *);
};


static inline void
smb_lock_server(struct smb_sb_info *server)
{
	down(&(server->sem));
}

static inline void
smb_unlock_server(struct smb_sb_info *server)
{
	up(&(server->sem));
}




# 654 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/hfs_fs_sb.h" 1
 










#define _LINUX_HFS_FS_SB_H

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


# 655 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/adfs_fs_sb.h" 1
 






#define _ADFS_FS_SB

 


struct adfs_discmap;
struct adfs_dir_ops;

 


struct adfs_sb_info {
	struct adfs_discmap *s_map;	 
	struct adfs_dir_ops *s_dir;	 

	uid_t		s_uid;		 
	gid_t		s_gid;		 
	umode_t		s_owner_mask;	 
	umode_t		s_other_mask;	 

	__u32		s_ids_per_zone;	 
	__u32		s_idlen;	 
	__u32		s_map_size;	 
	unsigned long	s_size;		 
	signed int	s_map2blk;	 
	unsigned int	s_log2sharesize; 
	unsigned int	s_version;	 
	unsigned int	s_namelen;	 
};


# 656 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/qnx4_fs_sb.h" 1
 










#define _QNX4_FS_SB

# 1 "/home/root/kernel/kernel/include/linux/qnx4_fs.h" 1
 









#define _LINUX_QNX4_FS_H



#define QNX4_ROOT_INO 1

#define QNX4_MAX_XTNTS_PER_XBLK	60
 
#define QNX4_FILE_USED          0x01
#define QNX4_FILE_MODIFIED      0x02
#define QNX4_FILE_BUSY          0x04
#define QNX4_FILE_LINK          0x08
#define QNX4_FILE_INODE         0x10
#define QNX4_FILE_FSYSCLEAN     0x20

#define QNX4_I_MAP_SLOTS	8
#define QNX4_Z_MAP_SLOTS	64
#define QNX4_SUPER_MAGIC	0x002f	
#define QNX4_VALID_FS		0x0001	
#define QNX4_ERROR_FS		0x0002	
#define QNX4_BLOCK_SIZE         0x200	
#define QNX4_BLOCK_SIZE_BITS    9	
#define QNX4_DIR_ENTRY_SIZE     0x040	
#define QNX4_DIR_ENTRY_SIZE_BITS 6	
#define QNX4_XBLK_ENTRY_SIZE    0x200	
#define QNX4_INODES_PER_BLOCK   0x08	

 
#define QNX4_SHORT_NAME_MAX	16
#define QNX4_NAME_MAX		48

 


struct qnx4_inode_entry {
	char		di_fname[16 ];
	qnx4_off_t	di_size;
	qnx4_xtnt_t	di_first_xtnt;
	__u32		di_xblk;
	__s32		di_ftime;
	__s32		di_mtime;
	__s32		di_atime;
	__s32		di_ctime;
	qnx4_nxtnt_t	di_num_xtnts;
	qnx4_mode_t	di_mode;
	qnx4_muid_t	di_uid;
	qnx4_mgid_t	di_gid;
	qnx4_nlink_t	di_nlink;
	__u8		di_zero[4];
	qnx4_ftype_t	di_type;
	__u8		di_status;
};

struct qnx4_link_info {
	char		dl_fname[48 ];
	__u32		dl_inode_blk;
	__u8		dl_inode_ndx;
	__u8		dl_spare[10];
	__u8		dl_status;
};

struct qnx4_xblk {
	__u32		xblk_next_xblk;
	__u32		xblk_prev_xblk;
	__u8		xblk_num_xtnts;
	__u8		xblk_spare[3];
	__s32		xblk_num_blocks;
	qnx4_xtnt_t	xblk_xtnts[60 ];
	char		xblk_signature[8];
	qnx4_xtnt_t	xblk_first_xtnt;
};

struct qnx4_super_block {
	struct qnx4_inode_entry RootDir;
	struct qnx4_inode_entry Inode;
	struct qnx4_inode_entry Boot;
	struct qnx4_inode_entry AltBoot;
};



#define QNX4_DEBUG 0




#define QNX4DEBUG(X) (void) 0


extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry);
extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
extern unsigned long qnx4_block_map(struct inode *inode, long iblock);

extern struct buffer_head *qnx4_getblk(struct inode *, int, int);
extern struct buffer_head *qnx4_bread(struct inode *, int, int);

extern int qnx4_create(struct inode *dir, struct dentry *dentry, int mode);
extern struct inode_operations qnx4_file_inode_operations;
extern struct inode_operations qnx4_dir_inode_operations;
extern struct file_operations qnx4_file_operations;
extern struct file_operations qnx4_dir_operations;
extern int qnx4_is_free(struct super_block *sb, long block);
extern int qnx4_set_bitmap(struct super_block *sb, long block, int busy);
extern int qnx4_create(struct inode *inode, struct dentry *dentry, int mode);
extern void qnx4_truncate(struct inode *inode);
extern void qnx4_free_inode(struct inode *inode);
extern int qnx4_unlink(struct inode *dir, struct dentry *dentry);
extern int qnx4_rmdir(struct inode *dir, struct dentry *dentry);
extern int qnx4_sync_file(struct file *file, struct dentry *dentry, int);
extern int qnx4_sync_inode(struct inode *inode);
extern int qnx4_get_block(struct inode *inode, long iblock, struct buffer_head *bh, int create);




# 14 "/home/root/kernel/kernel/include/linux/qnx4_fs_sb.h" 2


 



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


# 657 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/reiserfs_fs_sb.h" 1
 



#define _LINUX_REISER_FS_SB


# 1 "/home/root/kernel/kernel/include/linux/tqueue.h" 1
 












#define _LINUX_TQUEUE_H



# 1 "/home/root/kernel/kernel/include/asm/bitops.h" 1
 


 




# 376 "/home/root/kernel/kernel/include/asm/bitops.h"


# 18 "/home/root/kernel/kernel/include/linux/tqueue.h" 2



 
















struct tq_struct {
	struct list_head list;		 
	unsigned long sync;		 
	void (*routine)(void *);	 
	void *data;			 
};

 


#define PREPARE_TQUEUE(_tq, _routine, _data)	do {	(_tq)->routine = _routine;	(_tq)->data = _data;	} while (0)





 


#define INIT_TQUEUE(_tq, _routine, _data)	do {	INIT_LIST_HEAD(&(_tq)->list);	(_tq)->sync = 0;	PREPARE_TQUEUE((_tq), (_routine), (_data));	} while (0)






typedef struct list_head task_queue;

#define DECLARE_TASK_QUEUE(q)	LIST_HEAD(q)
#define TQ_ACTIVE(q)		(!list_empty(&q))

extern task_queue tq_timer, tq_immediate, tq_disk;

 






















extern old_spinlock_t tqueue_lock;

 



static inline int queue_task(struct tq_struct *bh_pointer, task_queue *bh_list)
{
	int ret = 0;
	if (!test_and_set_bit(0,&bh_pointer->sync)) {
		unsigned long flags;
		do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  &tqueue_lock  ) ; } while (0) ;
		list_add_tail(&bh_pointer->list, bh_list);
		do { (void)(  &tqueue_lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;
		ret = 1;
	}
	return ret;
}

 



extern void __run_task_queue(task_queue *list);

static inline void run_task_queue(task_queue *list)
{
	if ((!list_empty(& *list )) )
		__run_task_queue(list);
}


# 8 "/home/root/kernel/kernel/include/linux/reiserfs_fs_sb.h" 2



 
 
 
 
 
#define REISERFS_VERSION_2 2 
#define UNSET_HASH 0 
                      
#define TEA_HASH  1
#define YURA_HASH 2
#define R5_HASH   3
#define DEFAULT_HASH R5_HASH

 

struct reiserfs_super_block
{
  __u32 s_block_count;
  __u32 s_free_blocks;                   
  __u32 s_root_block;           	 
  __u32 s_journal_block;           	 
  __u32 s_journal_dev;           	 

   






				 

  __u32 s_orig_journal_size; 		
  __u32 s_journal_trans_max ;            
  __u32 s_journal_block_count ;          
  __u32 s_journal_max_batch ;            
  __u32 s_journal_max_commit_age ;       
  __u32 s_journal_max_trans_age ;        
  __u16 s_blocksize;                   	 
  __u16 s_oid_maxsize;			 
  __u16 s_oid_cursize;			 
  __u16 s_state;                       	 
  char s_magic[12];                      
  __u32 s_hash_function_code;		 
  __u16 s_tree_height;                   
  __u16 s_bmap_nr;                       
  __u16 s_version;		 




  __u16 s_reserved;
  __u32 s_inode_generation;
  char s_unused[124] ;			 
} __attribute__ ((__packed__));

#define SB_SIZE (sizeof(struct reiserfs_super_block))

 
struct reiserfs_super_block_v1
{
  __u32 s_block_count;			 
  __u32 s_free_blocks;                   
  __u32 s_root_block;           	 
  __u32 s_journal_block;           	 
  __u32 s_journal_dev;           	 
  __u32 s_orig_journal_size; 		 
  __u32 s_journal_trans_max ;            
  __u32 s_journal_block_count ;          
  __u32 s_journal_max_batch ;            
  __u32 s_journal_max_commit_age ;       
  __u32 s_journal_max_trans_age ;        
  __u16 s_blocksize;                   	 
  __u16 s_oid_maxsize;			 
  __u16 s_oid_cursize;			 
  __u16 s_state;                       	 
  char s_magic[16];                      
  __u16 s_tree_height;                   
  __u16 s_bmap_nr;                       
  __u32 s_reserved;
} __attribute__ ((__packed__));

#define SB_SIZE_V1 (sizeof(struct reiserfs_super_block_v1))

 

 




















 
				 
#define JOURNAL_BLOCK_SIZE  4096 
#define JOURNAL_MAX_CNODE   1500 
#define JOURNAL_TRANS_MAX 1024   
#define JOURNAL_HASH_SIZE 8192   
#define JOURNAL_NUM_BITMAPS 5 
#define JOURNAL_LIST_COUNT 64

 

#define BH_JDirty       16      
#define BH_JDirty_wait 18	
#define BH_JNew 19		

 




#define BH_JPrepared 20		
#define BH_JRestore_dirty 22    

 







struct reiserfs_journal_cnode {
  struct buffer_head *bh ;		  
  kdev_t dev ;				  
  unsigned long blocknr ;		  		 
  int state ;
  struct reiserfs_journal_list *jlist ;   
  struct reiserfs_journal_cnode *next ;   
  struct reiserfs_journal_cnode *prev ;   
  struct reiserfs_journal_cnode *hprev ;  
  struct reiserfs_journal_cnode *hnext ;  
};

struct reiserfs_bitmap_node {
  int id ;
  char *data ;
  struct list_head list ;
} ;

struct reiserfs_list_bitmap {
  struct reiserfs_journal_list *journal_list ;
  struct reiserfs_bitmap_node **bitmaps ;
} ;

 


struct reiserfs_transaction_handle {
				 
  char *t_caller ;               
  int t_blocks_logged ;          
  int t_blocks_allocated ;       
  unsigned long t_trans_id ;     
  struct super_block *t_super ;  


} ;

 





struct reiserfs_journal_list {
  unsigned long j_start ;
  unsigned long j_len ;
  atomic_t j_nonzerolen ;
  atomic_t j_commit_left ;
  atomic_t j_flushing ;
  atomic_t j_commit_flushing ;
  atomic_t j_older_commits_done ;       
  unsigned long j_trans_id ;
  time_t j_timestamp ;
  struct reiserfs_list_bitmap *j_list_bitmap ;
  struct buffer_head *j_commit_bh ;  
  struct reiserfs_journal_cnode *j_realblock  ;
  struct reiserfs_journal_cnode *j_freedlist ;  
  wait_queue_head_t j_commit_wait ;  
  wait_queue_head_t j_flush_wait ;  
} ;

struct reiserfs_page_list  ;  

struct reiserfs_journal {
  struct buffer_head ** j_ap_blocks ;  
  struct reiserfs_journal_cnode *j_last ;  
  struct reiserfs_journal_cnode *j_first ;  
				
  int j_state ;			
  unsigned long j_trans_id ;
  unsigned long j_mount_id ;
  unsigned long j_start ;              
  unsigned long j_len ;                
  unsigned long j_len_alloc ;          
  atomic_t j_wcount ;             
  unsigned long j_bcount ;             
  unsigned long j_first_unflushed_offset ;   
  unsigned long j_last_flush_trans_id ;     
  struct buffer_head *j_header_bh ;   

   


  struct reiserfs_page_list *j_flush_pages ;
  time_t j_trans_start_time ;          
  wait_queue_head_t j_wait ;          
  atomic_t j_wlock ;                        
  wait_queue_head_t j_join_wait ;     
  atomic_t j_jlock ;                        
  int j_journal_list_index ;	       
  int j_list_bitmap_index ;	       
  int j_must_wait ;		        
  int j_next_full_flush ;              
  int j_next_async_flush ;              

  int j_cnode_used ;	       
  int j_cnode_free ;           

  struct reiserfs_journal_cnode *j_cnode_free_list ;
  struct reiserfs_journal_cnode *j_cnode_free_orig ;  

  int j_free_bitmap_nodes ;
  int j_used_bitmap_nodes ;
  struct list_head j_bitmap_nodes ;
  struct inode j_dummy_inode ;
  struct reiserfs_list_bitmap j_list_bitmap[5 ] ;	 
  struct reiserfs_journal_list j_journal_list[64 ] ;	     
  struct reiserfs_journal_cnode *j_hash_table[8192 ] ; 	      
  struct reiserfs_journal_cnode *j_list_hash_table[8192 ] ;  

  struct list_head j_prealloc_list;      
};

#define JOURNAL_DESC_MAGIC "ReIsErLB" 


typedef __u32 (*hashf_t) (const char *, int);

 
struct reiserfs_sb_info
{
    struct buffer_head * s_sbh;                    
				 

    struct reiserfs_super_block * s_rs;            
    struct buffer_head ** s_ap_bitmap;        
    struct reiserfs_journal *s_journal ;		 
    unsigned short s_mount_state;                  
  
				 
    void (*end_io_handler)(struct buffer_head *, int);
    hashf_t s_hash_function;	 


    unsigned long s_mount_opt;	 



				 
    wait_queue_head_t s_wait;
				 
    atomic_t s_generation_counter;  
     
    
     
    int s_kmallocs;
    int s_disk_reads;
    int s_disk_writes;
    int s_fix_nodes;
    int s_do_balance;
    int s_unneeded_left_neighbor;
    int s_good_search_by_key_reada;
    int s_bmaps;
    int s_bmaps_without_search;
    int s_direct2indirect;
    int s_indirect2direct;
};


#define NOTAIL 0  
#define REPLAYONLY 3 
#define REISERFS_NOLOG 4      
#define REISERFS_CONVERT 5    





 







#define FORCE_TEA_HASH 6      
#define FORCE_RUPASOV_HASH 7  
#define FORCE_R5_HASH 8       
#define FORCE_HASH_DETECT 9   


 



#define REISERFS_NO_BORDER 11
#define REISERFS_NO_UNHASHED_RELOCATION 12
#define REISERFS_HASHED_RELOCATION 13
#define REISERFS_TEST4 14 

#define REISERFS_TEST1 11
#define REISERFS_TEST2 12
#define REISERFS_TEST3 13


#define reiserfs_r5_hash(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << FORCE_R5_HASH))
#define reiserfs_rupasov_hash(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << FORCE_RUPASOV_HASH))
#define reiserfs_tea_hash(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << FORCE_TEA_HASH))
#define reiserfs_hash_detect(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << FORCE_HASH_DETECT))
#define reiserfs_no_border(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << REISERFS_NO_BORDER))
#define reiserfs_no_unhashed_relocation(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << REISERFS_NO_UNHASHED_RELOCATION))
#define reiserfs_hashed_relocation(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << REISERFS_HASHED_RELOCATION))
#define reiserfs_test4(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << REISERFS_TEST4))

#define dont_have_tails(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << NOTAIL))
#define replay_only(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << REPLAYONLY))
#define reiserfs_dont_log(s) ((s)->u.reiserfs_sb.s_mount_opt & (1 << REISERFS_NOLOG))
#define old_format_only(s) ((SB_VERSION(s) != REISERFS_VERSION_2) && !((s)->u.reiserfs_sb.s_mount_opt & (1 << REISERFS_CONVERT)))


void reiserfs_file_buffer (struct buffer_head * bh, int list);
int reiserfs_is_super(struct super_block *s)  ;
int journal_mark_dirty(struct reiserfs_transaction_handle *, struct super_block *, struct buffer_head *bh) ;
int flush_old_commits(struct super_block *s, int) ;
int show_reiserfs_locks(void) ;
int reiserfs_resize(struct super_block *, unsigned long) ;

#define CARRY_ON                0
#define SCHEDULE_OCCURRED       1


#define SB_BUFFER_WITH_SB(s) ((s)->u.reiserfs_sb.s_sbh)
#define SB_JOURNAL(s) ((s)->u.reiserfs_sb.s_journal)
#define SB_JOURNAL_LIST(s) (SB_JOURNAL(s)->j_journal_list)
#define SB_JOURNAL_LIST_INDEX(s) (SB_JOURNAL(s)->j_journal_list_index) 
#define SB_JOURNAL_LEN_FREE(s) (SB_JOURNAL(s)->j_journal_len_free) 
#define SB_AP_BITMAP(s) ((s)->u.reiserfs_sb.s_ap_bitmap)


 
#define SB_DISK_SUPER_BLOCK(s) ((s)->u.reiserfs_sb.s_rs)
#define SB_BLOCK_COUNT(s) le32_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_block_count))
#define SB_FREE_BLOCKS(s) le32_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_free_blocks))
#define SB_REISERFS_MAGIC(s) (SB_DISK_SUPER_BLOCK(s)->s_magic)
#define SB_ROOT_BLOCK(s) le32_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_root_block))
#define SB_TREE_HEIGHT(s) le16_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_tree_height))
#define SB_REISERFS_STATE(s) le16_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_state))
#define SB_VERSION(s) le16_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_version))
#define SB_BMAP_NR(s) le16_to_cpu ((SB_DISK_SUPER_BLOCK(s)->s_bmap_nr))

#define PUT_SB_BLOCK_COUNT(s, val)    do { SB_DISK_SUPER_BLOCK(s)->s_block_count = cpu_to_le32(val); } while (0)
#define PUT_SB_FREE_BLOCKS(s, val)    do { SB_DISK_SUPER_BLOCK(s)->s_free_blocks = cpu_to_le32(val); } while (0)
#define PUT_SB_ROOT_BLOCK(s, val)     do { SB_DISK_SUPER_BLOCK(s)->s_root_block = cpu_to_le32(val); } while (0)
#define PUT_SB_TREE_HEIGHT(s, val)    do { SB_DISK_SUPER_BLOCK(s)->s_tree_height = cpu_to_le16(val); } while (0)
#define PUT_SB_REISERFS_STATE(s, val) do { SB_DISK_SUPER_BLOCK(s)->s_state = cpu_to_le16(val); } while (0) 
#define PUT_SB_VERSION(s, val)        do { SB_DISK_SUPER_BLOCK(s)->s_version = cpu_to_le16(val); } while (0)
#define PUT_SB_BMAP_NR(s, val)           do { SB_DISK_SUPER_BLOCK(s)->s_bmap_nr = cpu_to_le16 (val); } while (0)





# 658 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/bfs_fs_sb.h" 1
 





#define _LINUX_BFS_FS_SB

 


struct bfs_sb_info {
	unsigned long si_blocks;
	unsigned long si_freeb;
	unsigned long si_freei;
	unsigned long si_lf_ioff;
	unsigned long si_lf_sblk;
	unsigned long si_lf_eblk;
	unsigned long si_lasti;
	char * si_imap;
	struct buffer_head * si_sbh;		 
	struct bfs_super_block * si_bfs_sb;	 
};


# 659 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/udf_fs_sb.h" 1
 

















#define _LINUX_UDF_FS_SB_H


# 1 "/home/root/kernel/kernel/include/linux/version.h" 1
#define UTS_RELEASE "2.4.7-timesys-2.1"
#define LINUX_VERSION_CODE 132103
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
# 22 "/home/root/kernel/kernel/include/linux/udf_fs_sb.h" 2



#pragma pack(1)

#define UDF_MAX_BLOCK_LOADED	8

#define UDF_TYPE1_MAP15			0x1511U
#define UDF_VIRTUAL_MAP15		0x1512U
#define UDF_VIRTUAL_MAP20		0x2012U
#define UDF_SPARABLE_MAP15		0x1522U

struct udf_sparing_data
{
	__u16	s_packet_len;
	struct buffer_head *s_spar_map[4];
};

struct udf_virtual_data
{
	__u32	s_num_entries;
	__u16	s_start_offset;
};

struct udf_bitmap
{
	__u32			s_extLength;
	__u32			s_extPosition;
	__u16			s_nr_groups;
	struct buffer_head 	**s_block_bitmap;
};

struct udf_part_map
{
	union
	{
		struct udf_bitmap	*s_bitmap;
		struct inode		*s_table;
	} s_uspace;
	union
	{
		struct udf_bitmap	*s_bitmap;
		struct inode		*s_table;
	} s_fspace;
	__u32	s_partition_root;
	__u32	s_partition_len;
	__u16	s_partition_type;
	__u16	s_partition_num;
	union
	{
		struct udf_sparing_data s_sparing;
		struct udf_virtual_data s_virtual;
	} s_type_specific;
	__u32	(*s_partition_func)(struct super_block *, __u32, __u16, __u32);
	__u16	s_volumeseqnum;
	__u16	s_partition_flags;
};

#pragma pack()

struct udf_sb_info
{
	struct udf_part_map	*s_partmaps;
	__u8			s_volident[32];

	 
	__u16			s_partitions;
	__u16			s_partition;

	 
	__u32			s_session;
	__u32			s_anchor[4];
	__u32			s_lastblock;

	struct buffer_head	*s_lvidbh;

	 
	mode_t			s_umask;
	gid_t			s_gid;
	uid_t			s_uid;

	 
	time_t			s_recordtime;

	 
	__u16			s_serialnum;

	 
	__u16			s_udfrev;

	 
	__u32			s_flags;

	 
	struct nls_table	*s_nls_map;

	 
	struct inode		*s_vat;
};


# 660 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ncp_fs_sb.h" 1
 







#define _NCP_FS_SB


# 1 "/home/root/kernel/kernel/include/linux/ncp_mount.h" 1
 







#define _LINUX_NCP_MOUNT_H


# 1 "/home/root/kernel/kernel/include/linux/ncp.h" 1
 









#define _LINUX_NCP_H



#define NCP_PTYPE                (0x11)
#define NCP_PORT                 (0x0451)

#define NCP_ALLOC_SLOT_REQUEST   (0x1111)
#define NCP_REQUEST              (0x2222)
#define NCP_DEALLOC_SLOT_REQUEST (0x5555)

struct ncp_request_header {
	__u16 type __attribute__((packed));
	__u8 sequence __attribute__((packed));
	__u8 conn_low __attribute__((packed));
	__u8 task __attribute__((packed));
	__u8 conn_high __attribute__((packed));
	__u8 function __attribute__((packed));
	__u8 data[0] __attribute__((packed));
};

#define NCP_REPLY                (0x3333)
#define NCP_POSITIVE_ACK         (0x9999)

struct ncp_reply_header {
	__u16 type __attribute__((packed));
	__u8 sequence __attribute__((packed));
	__u8 conn_low __attribute__((packed));
	__u8 task __attribute__((packed));
	__u8 conn_high __attribute__((packed));
	__u8 completion_code __attribute__((packed));
	__u8 connection_state __attribute__((packed));
	__u8 data[0] __attribute__((packed));
};

#define NCP_VOLNAME_LEN (16)
#define NCP_NUMBER_OF_VOLUMES (64)
struct ncp_volume_info {
	__u32 total_blocks;
	__u32 free_blocks;
	__u32 purgeable_blocks;
	__u32 not_yet_purgeable_blocks;
	__u32 total_dir_entries;
	__u32 available_dir_entries;
	__u8 sectors_per_block;
	char volume_name[(16)  + 1];
};

#define AR_READ      (ntohs(0x0100))
#define AR_WRITE     (ntohs(0x0200))
#define AR_EXCLUSIVE (ntohs(0x2000))

#define NCP_FILE_ID_LEN 6

 
#define NW_NS_DOS     0
#define NW_NS_MAC     1
#define NW_NS_NFS     2
#define NW_NS_FTAM    3
#define NW_NS_OS2     4

 
#define RIM_NAME	      (ntohl(0x01000000L))
#define RIM_SPACE_ALLOCATED   (ntohl(0x02000000L))
#define RIM_ATTRIBUTES	      (ntohl(0x04000000L))
#define RIM_DATA_SIZE	      (ntohl(0x08000000L))
#define RIM_TOTAL_SIZE	      (ntohl(0x10000000L))
#define RIM_EXT_ATTR_INFO     (ntohl(0x20000000L))
#define RIM_ARCHIVE	      (ntohl(0x40000000L))
#define RIM_MODIFY	      (ntohl(0x80000000L))
#define RIM_CREATION	      (ntohl(0x00010000L))
#define RIM_OWNING_NAMESPACE  (ntohl(0x00020000L))
#define RIM_DIRECTORY	      (ntohl(0x00040000L))
#define RIM_RIGHTS	      (ntohl(0x00080000L))
#define RIM_ALL 	      (ntohl(0xFF0F0000L))
#define RIM_COMPRESSED_INFO   (ntohl(0x00000080L))

 
#define OC_MODE_OPEN	  0x01
#define OC_MODE_TRUNCATE  0x02
#define OC_MODE_REPLACE   0x02
#define OC_MODE_CREATE	  0x08

 
#define OC_ACTION_NONE	   0x00
#define OC_ACTION_OPEN	   0x01
#define OC_ACTION_CREATE   0x02
#define OC_ACTION_TRUNCATE 0x04
#define OC_ACTION_REPLACE  0x04

 

#define AR_READ_ONLY	   0x0001
#define AR_WRITE_ONLY	   0x0002
#define AR_DENY_READ	   0x0004
#define AR_DENY_WRITE	   0x0008
#define AR_COMPATIBILITY   0x0010
#define AR_WRITE_THROUGH   0x0040
#define AR_OPEN_COMPRESSED 0x0100


struct nw_info_struct {
	__u32 spaceAlloc __attribute__((packed));
	__u32 attributes __attribute__((packed));
	__u16 flags __attribute__((packed));
	__u32 dataStreamSize __attribute__((packed));
	__u32 totalStreamSize __attribute__((packed));
	__u16 numberOfStreams __attribute__((packed));
	__u16 creationTime __attribute__((packed));
	__u16 creationDate __attribute__((packed));
	__u32 creatorID __attribute__((packed));
	__u16 modifyTime __attribute__((packed));
	__u16 modifyDate __attribute__((packed));
	__u32 modifierID __attribute__((packed));
	__u16 lastAccessDate __attribute__((packed));
	__u16 archiveTime __attribute__((packed));
	__u16 archiveDate __attribute__((packed));
	__u32 archiverID __attribute__((packed));
	__u16 inheritedRightsMask __attribute__((packed));
	__u32 dirEntNum __attribute__((packed));
	__u32 DosDirNum __attribute__((packed));
	__u32 volNumber __attribute__((packed));
	__u32 EADataSize __attribute__((packed));
	__u32 EAKeyCount __attribute__((packed));
	__u32 EAKeySize __attribute__((packed));
	__u32 NSCreator __attribute__((packed));
	__u8 nameLen __attribute__((packed));
	__u8 entryName[256] __attribute__((packed));
};

 
#define DM_ATTRIBUTES		  (ntohl(0x02000000L))
#define DM_CREATE_DATE		  (ntohl(0x04000000L))
#define DM_CREATE_TIME		  (ntohl(0x08000000L))
#define DM_CREATOR_ID		  (ntohl(0x10000000L))
#define DM_ARCHIVE_DATE 	  (ntohl(0x20000000L))
#define DM_ARCHIVE_TIME 	  (ntohl(0x40000000L))
#define DM_ARCHIVER_ID		  (ntohl(0x80000000L))
#define DM_MODIFY_DATE		  (ntohl(0x00010000L))
#define DM_MODIFY_TIME		  (ntohl(0x00020000L))
#define DM_MODIFIER_ID		  (ntohl(0x00040000L))
#define DM_LAST_ACCESS_DATE	  (ntohl(0x00080000L))
#define DM_INHERITED_RIGHTS_MASK  (ntohl(0x00100000L))
#define DM_MAXIMUM_SPACE	  (ntohl(0x00200000L))

struct nw_modify_dos_info {
	__u32 attributes __attribute__((packed));
	__u16 creationDate __attribute__((packed));
	__u16 creationTime __attribute__((packed));
	__u32 creatorID __attribute__((packed));
	__u16 modifyDate __attribute__((packed));
	__u16 modifyTime __attribute__((packed));
	__u32 modifierID __attribute__((packed));
	__u16 archiveDate __attribute__((packed));
	__u16 archiveTime __attribute__((packed));
	__u32 archiverID __attribute__((packed));
	__u16 lastAccessDate __attribute__((packed));
	__u16 inheritanceGrantMask __attribute__((packed));
	__u16 inheritanceRevokeMask __attribute__((packed));
	__u32 maximumSpace __attribute__((packed));
};

struct nw_search_sequence {
	__u8 volNumber __attribute__((packed));
	__u32 dirBase __attribute__((packed));
	__u32 sequence __attribute__((packed));
};


# 12 "/home/root/kernel/kernel/include/linux/ncp_mount.h" 2


#define NCP_MOUNT_VERSION 3

 
#define NCP_MOUNT_SOFT		0x0001
#define NCP_MOUNT_INTR		0x0002
#define NCP_MOUNT_STRONG	0x0004	
#define NCP_MOUNT_NO_OS2	0x0008	
#define NCP_MOUNT_NO_NFS	0x0010	
#define NCP_MOUNT_EXTRAS	0x0020
#define NCP_MOUNT_SYMLINKS	0x0040	

struct ncp_mount_data {
	int version;
	unsigned int ncp_fd;	 
	__kernel_uid_t mounted_uid;	 
	__kernel_pid_t wdog_pid;		 

	unsigned char mounted_vol[(16)  + 1];
	unsigned int time_out;	 

	unsigned int retry_count;	 
	unsigned int flags;

	__kernel_uid_t uid;
	__kernel_gid_t gid;
	__kernel_mode_t file_mode;
	__kernel_mode_t dir_mode;
};

#define NCP_MOUNT_VERSION_V4	(4)

struct ncp_mount_data_v4 {
	int version;
	unsigned long flags;	 
	 
	 
	unsigned long mounted_uid;	 
	 
	long wdog_pid;		 

	unsigned int ncp_fd;	 
	unsigned int time_out;	 

	unsigned int retry_count;	 

	 
	 
	unsigned long uid;
	unsigned long gid;
	 
	unsigned long file_mode;
	unsigned long dir_mode;
};



struct ncp_mount_data_kernel {
	unsigned long    flags;		 
	unsigned int	 int_flags;	 
#define NCP_IMOUNT_LOGGEDIN_POSSIBLE	0x0001
	__kernel_uid32_t mounted_uid;	 
	__kernel_pid_t   wdog_pid;		 
	unsigned int     ncp_fd;	 
	unsigned int     time_out;	 

	unsigned int     retry_count;	 
	unsigned char	 mounted_vol[(16)  + 1];
	__kernel_uid32_t uid;
	__kernel_gid32_t gid;
	__kernel_mode_t  file_mode;
	__kernel_mode_t  dir_mode;
};




# 12 "/home/root/kernel/kernel/include/linux/ncp_fs_sb.h" 2




#define NCP_DEFAULT_OPTIONS 0		

struct ncp_server {

	struct ncp_mount_data_kernel m;	 



	__u8 name_space[(64)  + 2];

	struct file *ncp_filp;	 

	u8 sequence;
	u8 task;
	u16 connection;		 

	u8 completion;		 
	u8 conn_status;		 



	int buffer_size;	 

	int reply_size;		 

	int packet_size;
	unsigned char *packet;	 


	int lock;		 
	struct semaphore sem;

	int current_size;	 
	int has_subfunction;
	int ncp_reply_size;

	int root_setuped;

	 
	int sign_wanted;	 
	int sign_active;	 
	char sign_root[8];	 
	char sign_last[16];	

	 
	struct {
		int	auth_type;
		size_t	object_name_len;
		void*	object_name;
		int	object_type;
	} auth;
	 
	struct {
		size_t	len;
		void*	data;
	} priv;

	 
	struct nls_table *nls_vol;
	struct nls_table *nls_io;

	 
	int dentry_ttl;

	 
	unsigned int flags;
};

#define ncp_sb_info	ncp_server

#define NCP_FLAG_UTF8	1

#define NCP_CLR_FLAG(server, flag)	((server)->flags &= ~(flag))
#define NCP_SET_FLAG(server, flag)	((server)->flags |= (flag))
#define NCP_IS_FLAG(server, flag)	((server)->flags & (flag))

static inline int ncp_conn_valid(struct ncp_server *server)
{
	return ((server->conn_status & 0x11) == 0);
}

static inline void ncp_invalidate_conn(struct ncp_server *server)
{
	server->conn_status |= 0x01;
}




 
# 661 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/usbdev_fs_sb.h" 1
struct usbdev_sb_info {
	struct list_head slist;
	struct list_head ilist;
	uid_t devuid;
	gid_t devgid;
	umode_t devmode;
	uid_t busuid;
	gid_t busgid;
	umode_t busmode;
	uid_t listuid;
	gid_t listgid;
	umode_t listmode;
};
# 662 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/cramfs_fs_sb.h" 1

#define _CRAMFS_FS_SB

 


struct cramfs_sb_info {
			unsigned long magic;
			unsigned long size;
			unsigned long blocks;
			unsigned long files;
			unsigned long flags;
};


# 663 "/home/root/kernel/kernel/include/linux/fs-defs.h" 2


extern struct list_head super_blocks;

#define sb_entry(list)	list_entry((list), struct super_block, s_list)
struct super_block {
	struct list_head	s_list;		 
	kdev_t			s_dev;
	unsigned long		s_blocksize;
	unsigned char		s_blocksize_bits;
	unsigned char		s_dirt;
	unsigned long long	s_maxbytes;	 
	struct file_system_type	*s_type;
	struct super_operations	*s_op;
	struct dquot_operations	*dq_op;
	unsigned long		s_flags;
	unsigned long		s_magic;
	struct dentry		*s_root;
	struct rw_semaphore	s_umount;
	struct semaphore	s_lock;

	struct list_head	s_dirty;	 
	struct list_head	s_locked_inodes; 
	struct list_head	s_files;

	struct block_device	*s_bdev;
	struct list_head	s_mounts;	 
	struct quota_mount_options s_dquot;	 

	union {
		struct minix_sb_info	minix_sb;
		struct ext2_sb_info	ext2_sb;
		struct hpfs_sb_info	hpfs_sb;
		struct ntfs_sb_info	ntfs_sb;
		struct msdos_sb_info	msdos_sb;
		struct isofs_sb_info	isofs_sb;
		struct nfs_sb_info	nfs_sb;
		struct sysv_sb_info	sysv_sb;
		struct affs_sb_info	affs_sb;
		struct ufs_sb_info	ufs_sb;
		struct efs_sb_info	efs_sb;
		struct shmem_sb_info	shmem_sb;
		struct romfs_sb_info	romfs_sb;
		struct smb_sb_info	smbfs_sb;
		struct hfs_sb_info	hfs_sb;
		struct adfs_sb_info	adfs_sb;
		struct qnx4_sb_info	qnx4_sb;
		struct reiserfs_sb_info	reiserfs_sb;
		struct bfs_sb_info	bfs_sb;
		struct udf_sb_info	udf_sb;
		struct ncp_server 	ncpfs_sb;
		struct usbdev_sb_info   usbdevfs_sb;
		struct cramfs_sb_info	cramfs_sb;
		void			*generic_sbp;
	} u;
	 



	struct semaphore s_vfs_rename_sem;	 

	 






	struct semaphore s_nfsd_free_path_sem;
};

 


extern int vfs_create(struct inode *, struct dentry *, int);
extern int vfs_mkdir(struct inode *, struct dentry *, int);
extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t);
extern int vfs_symlink(struct inode *, struct dentry *, const char *);
extern int vfs_link(struct dentry *, struct inode *, struct dentry *);
extern int vfs_rmdir(struct inode *, struct dentry *);
extern int vfs_unlink(struct inode *, struct dentry *);
extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *);

 


#define DT_UNKNOWN	0
#define DT_FIFO		1
#define DT_CHR		2
#define DT_DIR		4
#define DT_BLK		6
#define DT_REG		8
#define DT_LNK		10
#define DT_SOCK		12
#define DT_WHT		14

 





typedef int (*filldir_t)(void *, const char *, int, off_t, ino_t, unsigned);

struct block_device_operations {
	int (*open) (struct inode *, struct file *);
	int (*release) (struct inode *, struct file *);
	int (*ioctl) (struct inode *, struct file *, unsigned, unsigned long);
	int (*check_media_change) (kdev_t);
	int (*revalidate) (kdev_t);
};

 




struct file_operations {
	struct module *owner;
	loff_t (*llseek) (struct file *, loff_t, int);
	ssize_t (*read) (struct file *, char *, size_t, loff_t *);
	ssize_t (*write) (struct file *, const char *, size_t, loff_t *);
	int (*readdir) (struct file *, void *, filldir_t);
	unsigned int (*poll) (struct file *, struct poll_table_struct *);
	int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);
	int (*mmap) (struct file *, struct vm_area_struct *);
	int (*open) (struct inode *, struct file *);
	int (*flush) (struct file *);
	int (*release) (struct inode *, struct file *);
	int (*fsync) (struct file *, struct dentry *, int datasync);
	int (*fasync) (int, struct file *, int);
	int (*lock) (struct file *, int, struct file_lock *);
	ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *);
	ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *);
	ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
	unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
};

struct inode_operations {
	int (*create) (struct inode *,struct dentry *,int);
	struct dentry * (*lookup) (struct inode *,struct dentry *);
	int (*link) (struct dentry *,struct inode *,struct dentry *);
	int (*unlink) (struct inode *,struct dentry *);
	int (*symlink) (struct inode *,struct dentry *,const char *);
	int (*mkdir) (struct inode *,struct dentry *,int);
	int (*rmdir) (struct inode *,struct dentry *);
	int (*mknod) (struct inode *,struct dentry *,int,int);
	int (*rename) (struct inode *, struct dentry *,
			struct inode *, struct dentry *);
	int (*readlink) (struct dentry *, char *,int);
	int (*follow_link) (struct dentry *, struct nameidata *);
	void (*truncate) (struct inode *);
	int (*permission) (struct inode *, int);
	int (*revalidate) (struct dentry *);
	int (*setattr) (struct dentry *, struct iattr *);
	int (*getattr) (struct dentry *, struct iattr *);
};

 



struct super_operations {
	void (*read_inode) (struct inode *);
  
  	 





    	void (*read_inode2) (struct inode *, void *) ;
   	void (*dirty_inode) (struct inode *);
	void (*write_inode) (struct inode *, int);
	void (*put_inode) (struct inode *);
	void (*delete_inode) (struct inode *);
	void (*put_super) (struct super_block *);
	void (*write_super) (struct super_block *);
	void (*write_super_lockfs) (struct super_block *);
	void (*unlockfs) (struct super_block *);
	int (*statfs) (struct super_block *, struct statfs *);
	int (*remount_fs) (struct super_block *, int *, char *);
	void (*clear_inode) (struct inode *);
	void (*umount_begin) (struct super_block *);

	 





















	struct dentry * (*fh_to_dentry)(struct super_block *sb, __u32 *fh, int len, int fhtype, int parent);
	int (*dentry_to_fh)(struct dentry *, __u32 *fh, int *lenp, int need_parent);
};

 
#define I_DIRTY_SYNC		1 
#define I_DIRTY_DATASYNC	2 
#define I_DIRTY_PAGES		4 
#define I_LOCK			8
#define I_FREEING		16
#define I_CLEAR			32

#define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES)

extern void __mark_inode_dirty(struct inode *, int);
static inline void mark_inode_dirty(struct inode *inode)
{
	__mark_inode_dirty(inode, (1  | 2  | 4 ) );
}

static inline void mark_inode_dirty_sync(struct inode *inode)
{
	__mark_inode_dirty(inode, 1 );
}

static inline void mark_inode_dirty_pages(struct inode *inode)
{
	__mark_inode_dirty(inode, 4 );
}

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

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

#define DECLARE_FSTYPE(var,type,read,flags) struct file_system_type var = { name:		type, read_super:	read, fs_flags:	flags, owner:		THIS_MODULE, }







#define DECLARE_FSTYPE_DEV(var,type,read) DECLARE_FSTYPE(var,type,read,FS_REQUIRES_DEV)


 
#define fops_get(fops) (((fops) && (fops)->owner)	? ( try_inc_mod_count((fops)->owner) ? (fops) : NULL ) : (fops))




#define fops_put(fops) do {	if ((fops) && (fops)->owner) __MOD_DEC_USE_COUNT((fops)->owner);	} while(0)





extern int register_filesystem(struct file_system_type *);
extern int unregister_filesystem(struct file_system_type *);
extern struct vfsmount *kern_mount(struct file_system_type *);
extern int may_umount(struct vfsmount *);
extern long do_mount(char *, char *, char *, unsigned long, void *);

#define kern_umount mntput

extern int vfs_statfs(struct super_block *, struct statfs *);

 

 
#define LOCK_USE_CLNT 1

#define FLOCK_VERIFY_READ  1
#define FLOCK_VERIFY_WRITE 2

extern int locks_mandatory_locked(struct inode *);
extern int locks_mandatory_area(int, struct inode *, struct file *, loff_t, size_t);

 



#define MANDATORY_LOCK(inode) (IS_MANDLOCK(inode) && ((inode)->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID)


static inline int locks_verify_locked(struct inode *inode)
{
	if ((((   inode   )->i_sb->s_flags & (  64  ))   && (( inode )->i_mode & (0002000  | 00010 )) == 0002000 ) )
		return locks_mandatory_locked(inode);
	return 0;
}

static inline int locks_verify_area(int read_write, struct inode *inode,
				    struct file *filp, loff_t offset,
				    size_t count)
{
	if (inode->i_flock && (((   inode   )->i_sb->s_flags & (  64  ))   && (( inode )->i_mode & (0002000  | 00010 )) == 0002000 ) )
		return locks_mandatory_area(read_write, inode, filp, offset, count);
	return 0;
}

static inline int locks_verify_truncate(struct inode *inode,
				    struct file *filp,
				    loff_t size)
{
	if (inode->i_flock && (((   inode   )->i_sb->s_flags & (  64  ))   && (( inode )->i_mode & (0002000  | 00010 )) == 0002000 ) )
		return locks_mandatory_area(
			2 , inode, filp,
			size < inode->i_size ? size : inode->i_size,
			(size < inode->i_size ? inode->i_size - size
			 : size - inode->i_size)
		);
	return 0;
}

extern inline int get_lease(struct inode *inode, unsigned int mode)
{
	if (inode->i_flock && (inode->i_flock->fl_flags & 32 ))
		return __get_lease(inode, mode);
	return 0;
}

 

   long sys_open(const char *, int, int);
   long sys_close(unsigned int);	 
extern int do_truncate(struct dentry *, loff_t start);

extern struct file *filp_open(const char *, int, int);
extern struct file * dentry_open(struct dentry *, struct vfsmount *, int);
extern int filp_close(struct file *, fl_owner_t id);
extern char * getname(const char *);

 
extern void vfs_caches_init(unsigned long);

#define __getname()	kmem_cache_alloc(names_cachep, SLAB_KERNEL)
#define putname(name)	kmem_cache_free(names_cachep, (void *)(name))

enum {BDEV_FILE, BDEV_SWAP, BDEV_FS, BDEV_RAW};
extern int register_blkdev(unsigned int, const char *, struct block_device_operations *);
extern int unregister_blkdev(unsigned int, const char *);
extern struct block_device *bdget(dev_t);
extern void bdput(struct block_device *);
extern struct char_device *cdget(dev_t);
extern void cdput(struct char_device *);
extern int blkdev_open(struct inode *, struct file *);
extern struct file_operations def_blk_fops;
extern struct file_operations def_fifo_fops;
extern int ioctl_by_bdev(struct block_device *, unsigned, unsigned long);
extern int blkdev_get(struct block_device *, mode_t, unsigned, int);
extern int blkdev_put(struct block_device *, int);

 
extern const struct block_device_operations *get_blkfops(unsigned int);
extern int register_chrdev(unsigned int, const char *, struct file_operations *);
extern int unregister_chrdev(unsigned int, const char *);
extern int chrdev_open(struct inode *, struct file *);
extern const char * bdevname(kdev_t);
extern const char * cdevname(kdev_t);
extern const char * kdevname(kdev_t);
extern void init_special_inode(struct inode *, umode_t, int);

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

extern struct file_operations read_fifo_fops;
extern struct file_operations write_fifo_fops;
extern struct file_operations rdwr_fifo_fops;
extern struct file_operations read_pipe_fops;
extern struct file_operations write_pipe_fops;
extern struct file_operations rdwr_pipe_fops;

extern int fs_may_remount_ro(struct super_block *);

extern int try_to_free_buffers(struct page *, unsigned int);
extern void refile_buffer(struct buffer_head * buf);
extern void end_buffer_io_sync(struct buffer_head *bh, int uptodate);

 
extern void set_buffer_async_io(struct buffer_head *bh) ;

#define BUF_CLEAN	0
#define BUF_LOCKED	1	
#define BUF_DIRTY	2	
#define BUF_PROTECTED	3	
#define NR_LIST		4

static inline void get_bh(struct buffer_head * bh)
{
        ((void) atomic_inc_return(( &(bh)->b_count ))) ;
}

static inline void put_bh(struct buffer_head *bh)
{
        __asm__ __volatile__("": : :"memory")  ;
        ((void) atomic_dec_return(( &bh->b_count ))) ;
}

 


static inline void mark_buffer_uptodate(struct buffer_head * bh, int on)
{
	if (on)
		set_bit(BH_Uptodate, &bh->b_state);
	else
		clear_bit(BH_Uptodate, &bh->b_state);
}

#define atomic_set_buffer_clean(bh) test_and_clear_bit(BH_Dirty, &(bh)->b_state)

static inline void __mark_buffer_clean(struct buffer_head *bh)
{
	refile_buffer(bh);
}

static inline void mark_buffer_clean(struct buffer_head * bh)
{
	if (test_and_clear_bit(BH_Dirty, &( bh )->b_state) )
		__mark_buffer_clean(bh);
}

#define atomic_set_buffer_protected(bh) test_and_set_bit(BH_Protected, &(bh)->b_state)

static inline void __mark_buffer_protected(struct buffer_head *bh)
{
	refile_buffer(bh);
}

static inline void mark_buffer_protected(struct buffer_head * bh)
{
	if (! test_and_set_bit(BH_Protected, &( bh )->b_state) )
		__mark_buffer_protected(bh);
}

extern void  __mark_buffer_dirty(struct buffer_head *bh)  ;
extern void  mark_buffer_dirty(struct buffer_head *bh)  ;

#define atomic_set_buffer_dirty(bh) test_and_set_bit(BH_Dirty, &(bh)->b_state)

 





static inline void buffer_IO_error(struct buffer_head * bh)
{
	mark_buffer_clean(bh);
	 


	bh->b_end_io(bh, 0);
}

extern void buffer_insert_inode_queue(struct buffer_head *, struct inode *);
static inline void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode)
{
	mark_buffer_dirty(bh);
	buffer_insert_inode_queue(bh, inode);
}

extern void balance_dirty(kdev_t);
extern int check_disk_change(kdev_t);
extern int invalidate_inodes(struct super_block *);
extern int invalidate_device(kdev_t, int);
extern void invalidate_inode_pages(struct inode *);
extern void invalidate_inode_buffers(struct inode *);
#define invalidate_buffers(dev)	__invalidate_buffers((dev), 0)
#define destroy_buffers(dev)	__invalidate_buffers((dev), 1)
extern void __invalidate_buffers(kdev_t dev, int);
extern void sync_inodes(kdev_t);
extern void sync_unlocked_inodes(void);
extern void write_inode_now(struct inode *, int);
extern void sync_dev(kdev_t);
extern int fsync_dev(kdev_t);
extern int fsync_super(struct super_block *);
extern void sync_inodes_sb(struct super_block *);
extern int fsync_inode_buffers(struct inode *);
extern int osync_inode_buffers(struct inode *);
extern int inode_has_buffers(struct inode *);
extern void filemap_fdatasync(struct address_space *);
extern void filemap_fdatawait(struct address_space *);
extern void sync_supers(kdev_t);
extern int bmap(struct inode *, int);
extern int notify_change(struct dentry *, struct iattr *);
extern int permission(struct inode *, int);
extern int vfs_permission(struct inode *, int);
extern int get_write_access(struct inode *);
extern int deny_write_access(struct file *);
static inline void put_write_access(struct inode * inode)
{
	((void) atomic_dec_return(( &inode->i_writecount ))) ;
}
static inline void allow_write_access(struct file *file)
{
	if (file)
		((void) atomic_inc_return(( &file->f_dentry->d_inode->i_writecount ))) ;
}
extern int do_pipe(int *);

extern int open_namei(const char *, int, int, struct nameidata *);

extern int kernel_read(struct file *, unsigned long, char *, unsigned long);
extern struct file * open_exec(const char *);
 
 
extern int is_subdir(struct dentry *, struct dentry *);
extern ino_t find_inode_number(struct dentry *, struct qstr *);

 







static inline void *ERR_PTR(long error)
{
	return (void *) error;
}

static inline long PTR_ERR(const void *ptr)
{
	return (long) ptr;
}

static inline long IS_ERR(const void *ptr)
{
	return (unsigned long)ptr > (unsigned long)-1000L;
}

 






#define LOOKUP_FOLLOW		(1)
#define LOOKUP_DIRECTORY	(2)
#define LOOKUP_CONTINUE		(4)
#define LOOKUP_POSITIVE		(8)
#define LOOKUP_PARENT		(16)
#define LOOKUP_NOALT		(32)
 


enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};

 








typedef struct {
	size_t written;
	size_t count;
	char * buf;
	int error;
} read_descriptor_t;

typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long);

 
extern loff_t default_llseek(struct file *file, loff_t offset, int origin);

extern int __user_walk(const char *, unsigned, struct nameidata *);
extern int path_init(const char *, unsigned, struct nameidata *);
extern int path_walk(const char *, struct nameidata *);
extern void path_release(struct nameidata *);
extern int follow_down(struct vfsmount **, struct dentry **);
extern int follow_up(struct vfsmount **, struct dentry **);
extern struct dentry * lookup_one_len(const char *, struct dentry *, int);
extern struct dentry * lookup_hash(struct qstr *, struct dentry *);
#define user_path_walk(name,nd)	 __user_walk(name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, nd)
#define user_path_walk_link(name,nd) __user_walk(name, LOOKUP_POSITIVE, nd)

extern void iput(struct inode *);
extern void force_delete(struct inode *);
extern struct inode * igrab(struct inode *);
extern ino_t iunique(struct super_block *, ino_t);

typedef int (*find_inode_t)(struct inode *, unsigned long, void *);
extern struct inode * iget4(struct super_block *, unsigned long, find_inode_t, void *);
static inline struct inode *iget(struct super_block *sb, unsigned long ino)
{
	return iget4(sb, ino, ((void *)0) , ((void *)0) );
}

extern void clear_inode(struct inode *);
extern struct inode * get_empty_inode(void);
static inline struct inode * new_inode(struct super_block *sb)
{
	struct inode *inode = get_empty_inode();
	if (inode) {
		inode->i_sb = sb;
		inode->i_dev = sb->s_dev;
	}
	return inode;
}
extern void remove_suid(struct inode *inode);

extern void insert_inode_hash(struct inode *);
extern void remove_inode_hash(struct inode *);
extern struct file * get_empty_filp(void);
extern void file_move(struct file *f, struct list_head *list);
extern void file_moveto(struct file *new, struct file *old);
extern struct buffer_head * get_hash_table(kdev_t, int, int);
extern struct buffer_head * getblk(kdev_t, int, int);
extern void ll_rw_block(int, int, struct buffer_head * bh[]);
extern void submit_bh(int, struct buffer_head *);
extern int is_read_only(kdev_t);
extern void __brelse(struct buffer_head *);
static inline void brelse(struct buffer_head *buf)
{
	if (buf)
		__brelse(buf);
}
extern void __bforget(struct buffer_head *);
static inline void bforget(struct buffer_head *buf)
{
	if (buf)
		__bforget(buf);
}
extern void set_blocksize(kdev_t, int);
extern struct buffer_head * bread(kdev_t, int, int);
extern void wakeup_bdflush(int wait);

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

typedef int (get_block_t)(struct inode*,long,struct buffer_head*,int);

 
extern int block_flushpage(struct page *, unsigned long);
extern int block_symlink(struct inode *, const char *, int);
extern int block_write_full_page(struct page*, get_block_t*);
extern int block_read_full_page(struct page*, get_block_t*);
extern int block_prepare_write(struct page*, unsigned, unsigned, get_block_t*);
extern int cont_prepare_write(struct page*, unsigned, unsigned, get_block_t*,
				unsigned long *);
extern int block_sync_page(struct page *);

int generic_block_bmap(struct address_space *, long, get_block_t *);
int generic_commit_write(struct file *, struct page *, unsigned, unsigned);
int block_truncate_page(struct address_space *, loff_t, get_block_t *);

extern int waitfor_one_page(struct page*);
extern int generic_file_mmap(struct file *, struct vm_area_struct *);
extern int file_read_actor(read_descriptor_t * desc, struct page *page, unsigned long offset, unsigned long size);
extern ssize_t generic_file_read(struct file *, char *, size_t, loff_t *);
extern ssize_t generic_file_write(struct file *, const char *, size_t, loff_t *);
extern void do_generic_file_read(struct file *, loff_t *, read_descriptor_t *, read_actor_t);

extern ssize_t generic_read_dir(struct file *, char *, size_t, loff_t *);

extern struct file_operations generic_ro_fops;

extern int vfs_readlink(struct dentry *, char *, int, const char *);
extern int vfs_follow_link(struct nameidata *, const char *);
extern int page_readlink(struct dentry *, char *, int);
extern int page_follow_link(struct dentry *, struct nameidata *);
extern struct inode_operations page_symlink_inode_operations;

extern int vfs_readdir(struct file *, filldir_t, void *);
extern int dcache_readdir(struct file *, void *, filldir_t);

extern struct file_system_type *get_fs_type(const char *name);
extern struct super_block *get_super(kdev_t);
static inline int is_mounted(kdev_t dev)
{
	struct super_block *sb = get_super(dev);
	if (sb) {
		 
		return 1;
	}
	return 0;
}
unsigned long generate_cluster(kdev_t, int b[], int);
unsigned long generate_cluster_swab32(kdev_t, int b[], int);
extern kdev_t ROOT_DEV;
extern char root_device_name[];


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






extern ssize_t char_read(struct file *, char *, size_t, loff_t *);
extern ssize_t block_read(struct file *, char *, size_t, loff_t *);
extern int read_ahead[];

extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);

extern int file_fsync(struct file *, struct dentry *, int);
extern int generic_buffer_fdatasync(struct inode *inode, unsigned long start_idx, unsigned long end_idx);
extern int generic_osync_inode(struct inode *, int);

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





# 17 "/home/root/kernel/kernel/include/linux/capability.h" 2


 




 




 
#define _LINUX_CAPABILITY_VERSION  0x19980330

typedef struct __user_cap_header_struct {
	__u32 version;
	int pid;
} *cap_user_header_t;
 
typedef struct __user_cap_data_struct {
        __u32 effective;
        __u32 permitted;
        __u32 inheritable;
} *cap_user_data_t;
  


 









typedef __u32 kernel_cap_t;


  
#define _USER_CAP_HEADER_SIZE  (2*sizeof(__u32))
#define _KERNEL_CAP_T_SIZE     (sizeof(kernel_cap_t))




 



 



#define CAP_CHOWN            0

 



#define CAP_DAC_OVERRIDE     1

 



#define CAP_DAC_READ_SEARCH  2
    
 



#define CAP_FOWNER           3

 






#define CAP_FSETID           4

 

#define CAP_FS_MASK          0x1f

 



#define CAP_KILL             5

 
 
 

#define CAP_SETGID           6

 
 

#define CAP_SETUID           7


 



 


#define CAP_SETPCAP          8

 

#define CAP_LINUX_IMMUTABLE  9

 
 

#define CAP_NET_BIND_SERVICE 10

 

#define CAP_NET_BROADCAST    11

 
 
 
 
 

 
 
 
 
 
 
 

#define CAP_NET_ADMIN        12

 
 

#define CAP_NET_RAW          13

 
 


#define CAP_IPC_LOCK         14

 

#define CAP_IPC_OWNER        15

 
 
#define CAP_SYS_MODULE       16

 
 

#define CAP_SYS_RAWIO        17

 

#define CAP_SYS_CHROOT       18

 

#define CAP_SYS_PTRACE       19

 

#define CAP_SYS_PACCT        20

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 

 

#define CAP_SYS_ADMIN        21

 

#define CAP_SYS_BOOT         22

 

 



#define CAP_SYS_NICE         23

 
 
 
 

 
 
 
 

#define CAP_SYS_RESOURCE     24

 
 
 

#define CAP_SYS_TIME         25

 
 

#define CAP_SYS_TTY_CONFIG   26

 

#define CAP_MKNOD            27

 

#define CAP_LEASE            28


 


extern kernel_cap_t cap_bset;

 


 







#define to_cap_t(x) (x)
#define cap_t(x) (x)



#define CAP_EMPTY_SET       to_cap_t(0)
#define CAP_FULL_SET        to_cap_t(~0)
#define CAP_INIT_EFF_SET    to_cap_t(~0 & ~CAP_TO_MASK(CAP_SETPCAP))
#define CAP_INIT_INH_SET    to_cap_t(0)

#define CAP_TO_MASK(x) (1 << (x))
#define cap_raise(c, flag)   (cap_t(c) |=  CAP_TO_MASK(flag))
#define cap_lower(c, flag)   (cap_t(c) &= ~CAP_TO_MASK(flag))
#define cap_raised(c, flag)  (cap_t(c) & CAP_TO_MASK(flag))

static inline kernel_cap_t cap_combine(kernel_cap_t a, kernel_cap_t b)
{
     kernel_cap_t dest;
     ( dest )  = ( a )  | ( b ) ;
     return dest;
}

static inline kernel_cap_t cap_intersect(kernel_cap_t a, kernel_cap_t b)
{
     kernel_cap_t dest;
     ( dest )  = ( a )  & ( b ) ;
     return dest;
}

static inline kernel_cap_t cap_drop(kernel_cap_t a, kernel_cap_t drop)
{
     kernel_cap_t dest;
     ( dest )  = ( a )  & ~( drop ) ;
     return dest;
}

static inline kernel_cap_t cap_invert(kernel_cap_t c)
{
     kernel_cap_t dest;
     ( dest )  = ~( c ) ;
     return dest;
}

#define cap_isclear(c)       (!cap_t(c))
#define cap_issubset(a,set)  (!(cap_t(a) & ~cap_t(set)))

#define cap_clear(c)         do { cap_t(c) =  0; } while(0)
#define cap_set_full(c)      do { cap_t(c) = ~0; } while(0)
#define cap_mask(c,mask)     do { cap_t(c) &= cap_t(mask); } while(0)

#define cap_is_fs_cap(c)     (CAP_TO_MASK(c) & CAP_FS_MASK)




# 5 "/home/root/kernel/kernel/include/linux/binfmts.h" 2


 




#define MAX_ARG_PAGES 32

 
#define BINPRM_BUF_SIZE 128



 


struct linux_binprm{
	char buf[128 ];
	struct page *page[32 ];
	unsigned long p;  
	int sh_bang;
	struct file * file;
	int e_uid, e_gid;
	kernel_cap_t cap_inheritable, cap_permitted, cap_effective;
	int argc, envc;
	char * filename;	 
	unsigned long loader, exec;
};

 



struct linux_binfmt {
	struct linux_binfmt * next;
	struct module *module;
	int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
	int (*load_shlib)(struct file *);
	int (*core_dump)(long signr, struct pt_regs * regs, struct file * file);
	unsigned long min_coredump;	 
};

extern int register_binfmt(struct linux_binfmt *);
extern int unregister_binfmt(struct linux_binfmt *);

extern int prepare_binprm(struct linux_binprm *);
extern void remove_arg_zero(struct linux_binprm *);
extern int search_binary_handler(struct linux_binprm *,struct pt_regs *);
extern int flush_old_exec(struct linux_binprm * bprm);
extern int setup_arg_pages(struct linux_binprm * bprm);
extern int copy_strings(int argc,char ** argv,struct linux_binprm *bprm); 
extern int copy_strings_kernel(int argc,char ** argv,struct linux_binprm *bprm);
extern void compute_creds(struct linux_binprm *binprm);
extern int do_coredump(long signr, struct pt_regs * regs);
extern void set_binfmt(struct linux_binfmt *new);









# 9 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/personality.h" 1

#define _PERSONALITY_H



# 1 "/home/root/kernel/kernel/include/asm/current.h" 1
 




#define _PPC_CURRENT_H

 


register struct task_struct *current asm ("r2");



# 6 "/home/root/kernel/kernel/include/linux/personality.h" 2


 
#define STICKY_TIMEOUTS		0x4000000
#define WHOLE_SECONDS		0x2000000
#define ADDR_LIMIT_32BIT	0x0800000

 


#define PER_MASK		(0x00ff)
#define PER_LINUX		(0x0000)
#define PER_LINUX_32BIT		(0x0000 | ADDR_LIMIT_32BIT)
#define PER_SVR4		(0x0001 | STICKY_TIMEOUTS)
#define PER_SVR3		(0x0002 | STICKY_TIMEOUTS)
#define PER_SCOSVR3		(0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS)
#define PER_WYSEV386		(0x0004 | STICKY_TIMEOUTS)
#define PER_ISCR4		(0x0005 | STICKY_TIMEOUTS)
#define PER_BSD			(0x0006)
#define PER_SUNOS		(PER_BSD | STICKY_TIMEOUTS)
#define PER_XENIX		(0x0007 | STICKY_TIMEOUTS)
#define PER_LINUX32		(0x0008)
#define PER_IRIX32              (0x0009 | STICKY_TIMEOUTS) 
#define PER_IRIXN32             (0x000a | STICKY_TIMEOUTS) 
#define PER_IRIX64              (0x000b | STICKY_TIMEOUTS) 
#define PER_RISCOS		(0x000c)
#define PER_SOLARIS		(0x000d | STICKY_TIMEOUTS)

 
typedef void (*lcall7_func)(int, struct pt_regs *);


 




struct exec_domain {
	const char *name;
	lcall7_func handler;
	unsigned char pers_low, pers_high;
	unsigned long * signal_map;
	unsigned long * signal_invmap;
	struct module * module;
	struct exec_domain *next;
};

extern struct exec_domain default_exec_domain;

extern int register_exec_domain(struct exec_domain *it);
extern int unregister_exec_domain(struct exec_domain *it);
#define put_exec_domain(it) if (it && it->module) __MOD_DEC_USE_COUNT(it->module);

#define get_exec_domain(it) if (it && it->module) __MOD_INC_USE_COUNT(it->module);

extern void __set_personality(unsigned long personality);
#define set_personality(pers) do {	if (current->personality != pers) __set_personality(pers); } while (0)



   long sys_personality(unsigned long personality);


# 10 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/threads.h" 1

#define _LINUX_THREADS_H



 



 



#define NR_CPUS 1


#define MIN_THREADS_LEFT_FOR_ROOT 4

#define RUNQUEUE_MAXBLOCKS    127
#define RUNQUEUE_BLOCKBITS    8

 


#define PID_MAX 0x8000


# 11 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2



# 1 "/home/root/kernel/kernel/include/linux/times.h" 1

#define _LINUX_TIMES_H



struct tms {
	clock_t tms_utime;
	clock_t tms_stime;
	clock_t tms_cutime;
	clock_t tms_cstime;
};

struct kernel_tms {
	cpu_tick_data_t tms_utime;
	cpu_tick_data_t tms_stime;
	cpu_tick_data_t tms_cutime;
	cpu_tick_data_t tms_cstime;
};


# 14 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/heapqueue.h" 1

#define _LINUX_HEAPQUEUE_H



typedef struct {
	void *data;
	unsigned int pos;
} heapqueue_node;

typedef struct {
	heapqueue_node **q;
	int num, max;
} heapqueue;

typedef struct {
	heapqueue_node ***q;
	int num, max, nblocks;
	int maxblocks, blockmask, blockbits;
} blocked_heapqueue;

heapqueue *heapqueue_create(int max);
void heapqueue_destroy(heapqueue *q);

 

blocked_heapqueue *blocked_heapqueue_create(int maxblocks, int blockbits);
void blocked_heapqueue_destroy(blocked_heapqueue *q);

 








int blocked_heapqueue_adj_max(blocked_heapqueue *q, 
	int adj, old_spinlock_t *lock);

 
#define heapqueue_top(Q)	(Q->q[1])
#define blocked_heapqueue_top(Q)	(Q->num?Q->q[0][1]:NULL)

 
#define heapqueue_num(Q)	(Q->num)
#define blocked_heapqueue_num(Q) (Q->num)


# 15 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/ktimer.h" 1
 


#define _LINUX_KTIMER_H

#define KTIMER_MAXBLOCKS		256
#define KTIMER_BLOCKBITS		10


# 1 "/home/root/kernel/kernel/include/asm/timex.h" 1
 


 






#define _ASMppc_TIMEX_H





#define CLOCK_TICK_RATE	1193180 
#define CLOCK_TICK_FACTOR	20	
#define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) << (SHIFT_SCALE-SHIFT_HZ)) / HZ)



typedef unsigned long cycles_t;

 







extern cycles_t cacheflush_time;

static inline cycles_t get_cycles(void)
{






	return 0;

}





struct ktimer;
extern unsigned long cpu_khz;
#define ktimer_freq	(cpu_khz*1000LL)

extern volatile long cpu_tick_at_last_xtime_update;
extern volatile cpu_tick_data_t cpu_tick_at_last_jiffy;
extern long cpu_ticks_per_jiffy;



static inline void nanosec2tick(cpu_tick_data_t ns, cpu_tick_data_t *tick)
{
	*tick = (ns * cpu_khz) / 1000000LL;
}

static inline void tick2nanosec(cpu_tick_data_t tick, cpu_tick_data_t *ns)
{
	*ns = (tick * 1000000LL) / cpu_khz;
}

static inline unsigned long tick2jiffies(cpu_tick_data_t tick)
{

	return tick / (cpu_khz * 10);



}



static inline unsigned long tick2jiffies_lock(cpu_tick_data_t *tick,
                                              old_spinlock_t *lock)
{
    unsigned long ret, flags;

    do { ({__save_flags_ptr((unsigned long *)&     flags    ) ;__cli();})  ;       (void)(  lock  ) ; } while (0) ;

    ret = *tick / (cpu_khz * 10);



    do { (void)(  lock  ) ;  __restore_flags(   flags  ) ; } while (0) ;

    return ret;
}

static inline void tick2timespec(cpu_tick_data_t tick, struct timespec *ts)
{
	ts->tv_sec = tick / (cpu_khz*1000LL) ;
	tick -= ts->tv_sec * 1000000000LL;
	ts->tv_nsec = (tick * 1000000LL) / cpu_khz;
}

static inline void timespec2tick(struct timespec ts, cpu_tick_data_t *tick)
{
	*tick = ts.tv_sec * (cpu_khz*1000LL) ;
	*tick += ((cpu_tick_data_t)ts.tv_nsec * cpu_khz) / 1000000;
}

static inline cpu_tick_data_t get_timestamp(void)
{
	cpu_tick_data_t now;
	unsigned long	tmp;
	unsigned long	low;
	unsigned long	high;
	
	asm volatile ("0: mftbu %0;"
	              "   mftb  %1;"
	              "   mftbu %2;"
	              "   cmpw  %2,%0;"
	              "   bne 0b"
	             :"=r" (high), "=r" (low), "=r" (tmp));

	now = high;
	now <<= 32;
	now += low;

	return now;
}




# 10 "/home/root/kernel/kernel/include/linux/ktimer.h" 2



#define KTIMER_RR			1		


#define KTIMER_EARLY		2		


typedef struct ktimer {
	heapqueue_node hq_node;		 
	cpu_tick_data_t expires;	 
	int flags;						 
	int cpu;							 


	void (*handler)(struct ktimer *);	 




	void *data;						 
	cpu_tick_data_t period;		 
} ktimer;

extern ktimer *(*ktimer_create_hook)(void);
ktimer *ktimer_create(void);
extern void (*ktimer_destroy_hook)(ktimer *tmr);
void ktimer_destroy(ktimer *tmr);
int  ktimer_arm(ktimer *tmr);
int  __ktimer_arm(ktimer *tmr);	 
int  __ktimer_arm_norun(ktimer *tmr);	 


int  ktimer_mod(ktimer *tmr, cpu_tick_data_t expires);
void ktimer_disarm(ktimer *tmr);
void __ktimer_disarm(ktimer *tmr);	 
int  __ktimer_disarm_norun(ktimer *tmr);  

void ktimer_init(void);
void run_timers(void);			 

extern old_spinlock_t ktimer_lock;

extern void (*timer_hook)(void);
extern int (*nanosleep_hook)(struct timespec *req, struct timespec *rem);
extern int set_hw_timer(ktimer *tmr);
extern void make_hw_timer_periodic(void);


# 16 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2







# 1 "/home/root/kernel/kernel/include/asm/mmu.h" 1
 


 





#define _PPC_MMU_H_





 
typedef unsigned long mm_context_t;

 
typedef struct _PTE {








	unsigned long v:1;	 
	unsigned long vsid:24;	 
	unsigned long h:1;	 
	unsigned long api:6;	 
	unsigned long rpn:20;	 

	unsigned long    :3;	 
	unsigned long r:1;	 
	unsigned long c:1;	 
	unsigned long w:1;	 
	unsigned long i:1;	 
	unsigned long m:1;	 
	unsigned long g:1;	 
	unsigned long  :1;	 
	unsigned long pp:2;	 
} PTE; 

 
#define PP_RWXX	0	
#define PP_RWRX 1	
#define PP_RWRW 2	
#define PP_RXRX 3	

 
typedef struct _SEGREG {
	unsigned long t:1;	 
	unsigned long ks:1;	 
	unsigned long kp:1;	 
	unsigned long n:1;	 
	unsigned long :4;	 
	unsigned long vsid:24;	 
} SEGREG;

 
typedef struct _P601_BATU {	 
	unsigned long bepi:15;	 
	unsigned long :8;	 
	unsigned long w:1;
	unsigned long i:1;	 
	unsigned long m:1;	 
	unsigned long ks:1;	 
	unsigned long kp:1;	 
	unsigned long pp:2;	 
} P601_BATU;

typedef struct _BATU {		 



	unsigned long bepi:15;	 

	unsigned long :4;	 
	unsigned long bl:11;	 
	unsigned long vs:1;	 
	unsigned long vp:1;	 
} BATU;   

typedef struct _P601_BATL {	 
	unsigned long brpn:15;	 
	unsigned long :10;	 
	unsigned long v:1;	 
	unsigned long bl:6;	 
} P601_BATL;

typedef struct _BATL {		 



	unsigned long brpn:15;	 

	unsigned long :10;	 
	unsigned long w:1;	 
	unsigned long i:1;	 
	unsigned long m:1;	 
	unsigned long g:1;	 
	unsigned long :1;	 
	unsigned long pp:2;	 
} BATL;

typedef struct _BAT {
	BATU batu;		 
	BATL batl;		 
} BAT;

typedef struct _P601_BAT {
	P601_BATU batu;		 
	P601_BATL batl;		 
} P601_BAT;

extern void _tlbie(unsigned long va);	 
extern void _tlbia(void);		 



 
#define BL_128K	0x000
#define BL_256K 0x001
#define BL_512K 0x003
#define BL_1M   0x007
#define BL_2M   0x00F
#define BL_4M   0x01F
#define BL_8M   0x03F
#define BL_16M  0x07F
#define BL_32M  0x0FF
#define BL_64M  0x1FF
#define BL_128M 0x3FF
#define BL_256M 0x7FF

 
#define BPP_XX	0x00		
#define BPP_RX	0x01		
#define BPP_RW	0x02		

 






#define MI_CTR		784	
#define MI_GPM		0x80000000	
#define MI_PPM		0x40000000	
#define MI_CIDEF	0x20000000	
#define MI_RSV4I	0x08000000	
#define MI_PPCS		0x02000000	
#define MI_IDXMASK	0x00001f00	
#define MI_RESETVAL	0x00000000	

 


#define MI_AP		786
#define MI_Ks		0x80000000	
#define MI_Kp		0x40000000	

 



#define MI_EPN		787
#define MI_EPNMASK	0xfffff000	
#define MI_EVALID	0x00000200	
#define MI_ASIDMASK	0x0000000f	
					 

 



#define MI_TWC		789
#define MI_APG		0x000001e0	
#define MI_GUARDED	0x00000010	
#define MI_PSMASK	0x0000000c	
#define MI_PS8MEG	0x0000000c	
#define MI_PS512K	0x00000004	
#define MI_PS4K_16K	0x00000000	
#define MI_SVALID	0x00000001	
					 

 



#define MI_RPN		790

 




#define MI_BOOTINIT	0x000001fd

#define MD_CTR		792	
#define MD_GPM		0x80000000	
#define MD_PPM		0x40000000	
#define MD_CIDEF	0x20000000	
#define MD_WTDEF	0x10000000	
#define MD_RSV4I	0x08000000	
#define MD_TWAM		0x04000000	
#define MD_PPCS		0x02000000	
#define MD_IDXMASK	0x00001f00	
#define MD_RESETVAL	0x04000000	

#define M_CASID		793	
#define MC_ASIDMASK	0x0000000f	


 


#define MD_AP		794
#define MD_Ks		0x80000000	
#define MD_Kp		0x40000000	

 



#define MD_EPN		795
#define MD_EPNMASK	0xfffff000	
#define MD_EVALID	0x00000200	
#define MD_ASIDMASK	0x0000000f	
					 

 



#define M_TWB		796
#define 	M_L1TB		0xfffff000	
#define M_L1INDX	0x00000ffc	
					 

 




#define MD_TWC		797
#define MD_L2TB		0xfffff000	
#define MD_L2INDX	0xfffffe00	
#define MD_APG		0x000001e0	
#define MD_GUARDED	0x00000010	
#define MD_PSMASK	0x0000000c	
#define MD_PS8MEG	0x0000000c	
#define MD_PS512K	0x00000004	
#define MD_PS4K_16K	0x00000000	
#define MD_WT		0x00000002	
#define MD_SVALID	0x00000001	
					 


 



#define MD_RPN		798

 


#define M_TW		799

 









#define        PPC4XX_TLB_SIZE 64

 








#define 	TLB_LO          1
#define 	TLB_HI          0
       
#define 	TLB_DATA        TLB_LO
#define 	TLB_TAG         TLB_HI

 

#define TLB_EPN_MASK    0xFFFFFC00      
#define TLB_PAGESZ_MASK 0x00000380
#define TLB_PAGESZ(x)   (((x) & 0x7) << 7)
#define   PAGESZ_1K		0
#define   PAGESZ_4K             1
#define   PAGESZ_16K            2
#define   PAGESZ_64K            3
#define   PAGESZ_256K           4
#define   PAGESZ_1M             5
#define   PAGESZ_4M             6
#define   PAGESZ_16M            7
#define TLB_VALID       0x00000040      

 
                 
#define TLB_RPN_MASK    0xFFFFFC00      
#define TLB_PERM_MASK   0x00000300
#define TLB_EX          0x00000200      
#define TLB_WR          0x00000100      
#define TLB_ZSEL_MASK   0x000000F0
#define TLB_ZSEL(x)     (((x) & 0xF) << 4)
#define TLB_ATTR_MASK   0x0000000F
#define TLB_W           0x00000008      
#define TLB_I           0x00000004      
#define TLB_M           0x00000002      
#define TLB_G           0x00000001      



# 23 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/asm/timex.h" 1
 


 





# 133 "/home/root/kernel/kernel/include/asm/timex.h"


# 24 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2


# 1 "/home/root/kernel/kernel/include/linux/smp.h" 1

#define __LINUX_SMP_H

 






# 74 "/home/root/kernel/kernel/include/linux/smp.h"


 


 
#define smp_num_cpus				1
#define smp_processor_id()			0
#define hard_smp_processor_id()			0
#define smp_threads_ready			1
#define kernel_lock()
#define cpu_logical_map(cpu)			({ (void)cpu; 0; })
#define cpu_number_map(cpu)			({ (void)cpu; 0; })
#define smp_call_function(func,info,retry,wait)	({ 0; })
#define cpu_online_map				1



# 26 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/tty.h" 1

#define _LINUX_TTY_H

 



 



#define MIN_NR_CONSOLES 1       
#define MAX_NR_CONSOLES	63	
#define MAX_NR_USER_CONSOLES 63	
		 





# 1 "/home/root/kernel/kernel/include/linux/major.h" 1

#define _LINUX_MAJOR_H

 




 

 



#define MAX_CHRDEV	255
#define MAX_BLKDEV	255

#define UNNAMED_MAJOR	0
#define MEM_MAJOR	1
#define RAMDISK_MAJOR	1
#define FLOPPY_MAJOR	2
#define PTY_MASTER_MAJOR 2
#define IDE0_MAJOR	3
#define PTY_SLAVE_MAJOR 3
#define HD_MAJOR	IDE0_MAJOR
#define TTY_MAJOR	4
#define TTYAUX_MAJOR	5
#define LP_MAJOR	6
#define VCS_MAJOR	7
#define LOOP_MAJOR	7
#define SCSI_DISK0_MAJOR 8
#define SCSI_TAPE_MAJOR	9
#define MD_MAJOR        9
#define MISC_MAJOR	10
#define SCSI_CDROM_MAJOR 11
#define QIC02_TAPE_MAJOR 12
#define XT_DISK_MAJOR	13
#define SOUND_MAJOR	14
#define CDU31A_CDROM_MAJOR 15
#define JOYSTICK_MAJOR	15
#define GOLDSTAR_CDROM_MAJOR 16
#define OPTICS_CDROM_MAJOR 17
#define SANYO_CDROM_MAJOR 18
#define CYCLADES_MAJOR  19
#define CYCLADESAUX_MAJOR 20
#define MITSUMI_X_CDROM_MAJOR 20
#define MFM_ACORN_MAJOR 21	
#define SCSI_GENERIC_MAJOR 21
#define Z8530_MAJOR 34
#define DIGI_MAJOR 23
#define IDE1_MAJOR	22
#define DIGICU_MAJOR 22
#define MITSUMI_CDROM_MAJOR 23
#define CDU535_CDROM_MAJOR 24
#define STL_SERIALMAJOR 24
#define MATSUSHITA_CDROM_MAJOR 25
#define STL_CALLOUTMAJOR 25
#define MATSUSHITA_CDROM2_MAJOR 26
#define QIC117_TAPE_MAJOR 27
#define MATSUSHITA_CDROM3_MAJOR 27
#define MATSUSHITA_CDROM4_MAJOR 28
#define STL_SIOMEMMAJOR 28
#define ACSI_MAJOR	28
#define AZTECH_CDROM_MAJOR 29
#define GRAPHDEV_MAJOR	29	
#define SHMIQ_MAJOR	85	
#define CM206_CDROM_MAJOR 32
#define IDE2_MAJOR	33
#define IDE3_MAJOR	34
#define XPRAM_MAJOR     35      
                                 
#define NETLINK_MAJOR	36
#define PS2ESDI_MAJOR	36
#define IDETAPE_MAJOR	37
#define Z2RAM_MAJOR	37
#define APBLOCK_MAJOR   38   
#define DDV_MAJOR       39   
#define NBD_MAJOR	43   
#define RISCOM8_NORMAL_MAJOR 48
#define DAC960_MAJOR	48	
#define RISCOM8_CALLOUT_MAJOR 49
#define MKISS_MAJOR	55
#define DSP56K_MAJOR    55   

#define IDE4_MAJOR	56
#define IDE5_MAJOR	57

#define LVM_BLK_MAJOR	58	

#define SCSI_DISK1_MAJOR	65
#define SCSI_DISK2_MAJOR	66
#define SCSI_DISK3_MAJOR	67
#define SCSI_DISK4_MAJOR	68
#define SCSI_DISK5_MAJOR	69
#define SCSI_DISK6_MAJOR	70
#define SCSI_DISK7_MAJOR	71


#define COMPAQ_SMART2_MAJOR	72
#define COMPAQ_SMART2_MAJOR1	73
#define COMPAQ_SMART2_MAJOR2	74
#define COMPAQ_SMART2_MAJOR3	75
#define COMPAQ_SMART2_MAJOR4	76
#define COMPAQ_SMART2_MAJOR5	77
#define COMPAQ_SMART2_MAJOR6	78
#define COMPAQ_SMART2_MAJOR7	79

#define SPECIALIX_NORMAL_MAJOR 75
#define SPECIALIX_CALLOUT_MAJOR 76

#define COMPAQ_CISS_MAJOR 	104
#define COMPAQ_CISS_MAJOR1	105
#define COMPAQ_CISS_MAJOR2      106
#define COMPAQ_CISS_MAJOR3      107
#define COMPAQ_CISS_MAJOR4      108
#define COMPAQ_CISS_MAJOR5      109
#define COMPAQ_CISS_MAJOR6      110
#define COMPAQ_CISS_MAJOR7      111

#define DASD_MAJOR      94	

#define MDISK_MAJOR     95	

#define I2O_MAJOR		80	

#define IDE6_MAJOR	88
#define IDE7_MAJOR	89
#define IDE8_MAJOR	90
#define IDE9_MAJOR	91

#define UBD_MAJOR	98

#define AURORA_MAJOR 79

#define JSFD_MAJOR	99

#define PHONE_MAJOR	100

#define LVM_CHAR_MAJOR	109	

#define RTF_MAJOR	150
#define RAW_MAJOR	162

#define USB_ACM_MAJOR		166
#define USB_ACM_AUX_MAJOR	167
#define USB_CHAR_MAJOR		180

#define UNIX98_PTY_MASTER_MAJOR	128
#define UNIX98_PTY_MAJOR_COUNT	8
#define UNIX98_PTY_SLAVE_MAJOR	(UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)

#define VXVM_MAJOR		199	
#define VXSPEC_MAJOR		200	
#define VXDMP_MAJOR		201	

#define MSR_MAJOR		202
#define CPUID_MAJOR		203

#define OSST_MAJOR	206	

#define IBM_TTY3270_MAJOR       227	
#define IBM_FS3270_MAJOR        228

 



#define SCSI_DISK_MAJOR(M) ((M) == SCSI_DISK0_MAJOR || ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR))

  
#define SCSI_BLK_MAJOR(M) (SCSI_DISK_MAJOR(M)	|| (M) == SCSI_CDROM_MAJOR)



static __inline__ int scsi_blk_major(int m) {
	return (((  m  ) == 8  || ((  m  ) >= 65  && (  m  ) <= 71 )) 	|| ( m ) == 11 ) ;
}


# 21 "/home/root/kernel/kernel/include/linux/tty.h" 2

# 1 "/home/root/kernel/kernel/include/linux/termios.h" 1

#define _LINUX_TERMIOS_H


# 1 "/home/root/kernel/kernel/include/asm/termios.h" 1
 



#define _PPC_TERMIOS_H

 






# 1 "/home/root/kernel/kernel/include/asm/ioctls.h" 1
 



#define _ASM_PPC_IOCTLS_H



#define FIOCLEX		_IO('f', 1)
#define FIONCLEX	_IO('f', 2)
#define FIOASYNC	_IOW('f', 125, int)
#define FIONBIO		_IOW('f', 126, int)
#define FIONREAD	_IOR('f', 127, int)
#define TIOCINQ		FIONREAD
#define FIOQSIZE	_IOR('f', 128, loff_t)

#define TIOCGETP	_IOR('t', 8, struct sgttyb)
#define TIOCSETP	_IOW('t', 9, struct sgttyb)
#define TIOCSETN	_IOW('t', 10, struct sgttyb)	

#define TIOCSETC	_IOW('t', 17, struct tchars)
#define TIOCGETC	_IOR('t', 18, struct tchars)
#define TCGETS		_IOR('t', 19, struct termios)
#define TCSETS		_IOW('t', 20, struct termios)
#define TCSETSW		_IOW('t', 21, struct termios)
#define TCSETSF		_IOW('t', 22, struct termios)

#define TCGETA		_IOR('t', 23, struct termio)
#define TCSETA		_IOW('t', 24, struct termio)
#define TCSETAW		_IOW('t', 25, struct termio)
#define TCSETAF		_IOW('t', 28, struct termio)

#define TCSBRK		_IO('t', 29)
#define TCXONC		_IO('t', 30)
#define TCFLSH		_IO('t', 31)

#define TIOCSWINSZ	_IOW('t', 103, struct winsize)
#define TIOCGWINSZ	_IOR('t', 104, struct winsize)
#define 	TIOCSTART	_IO('t', 110)		
#define 	TIOCSTOP	_IO('t', 111)		
#define TIOCOUTQ        _IOR('t', 115, int)     

#define TIOCGLTC	_IOR('t', 116, struct ltchars)
#define TIOCSLTC	_IOW('t', 117, struct ltchars)
#define TIOCSPGRP	_IOW('t', 118, int)
#define TIOCGPGRP	_IOR('t', 119, int)

#define TIOCEXCL	0x540C
#define TIOCNXCL	0x540D
#define TIOCSCTTY	0x540E

#define TIOCSTI		0x5412
#define TIOCMGET	0x5415
#define TIOCMBIS	0x5416
#define TIOCMBIC	0x5417
#define TIOCMSET	0x5418
#define TIOCM_LE	0x001
#define TIOCM_DTR	0x002
#define TIOCM_RTS	0x004
#define TIOCM_ST	0x008
#define TIOCM_SR	0x010
#define TIOCM_CTS	0x020
#define TIOCM_CAR	0x040
#define TIOCM_RNG	0x080
#define TIOCM_DSR	0x100
#define TIOCM_CD	TIOCM_CAR
#define TIOCM_RI	TIOCM_RNG

#define TIOCGSOFTCAR	0x5419
#define TIOCSSOFTCAR	0x541A
#define TIOCLINUX	0x541C
#define TIOCCONS	0x541D
#define TIOCGSERIAL	0x541E
#define TIOCSSERIAL	0x541F
#define TIOCPKT		0x5420
#define TIOCPKT_DATA		 0
#define TIOCPKT_FLUSHREAD	 1
#define TIOCPKT_FLUSHWRITE	 2
#define TIOCPKT_STOP		 4
#define TIOCPKT_START		 8
#define TIOCPKT_NOSTOP		16
#define TIOCPKT_DOSTOP		32


#define TIOCNOTTY	0x5422
#define TIOCSETD	0x5423
#define TIOCGETD	0x5424
#define TCSBRKP		0x5425	
#define TIOCTTYGSTRUCT	0x5426  
#define TIOCSBRK	0x5427  
#define TIOCCBRK	0x5428  
#define TIOCGSID	0x5429  
#define TIOCGPTN	_IOR('T',0x30, unsigned int) 
#define TIOCSPTLCK	_IOW('T',0x31, int)  

#define TIOCSERCONFIG	0x5453
#define TIOCSERGWILD	0x5454
#define TIOCSERSWILD	0x5455
#define TIOCGLCKTRMIOS	0x5456
#define TIOCSLCKTRMIOS	0x5457
#define TIOCSERGSTRUCT	0x5458 
#define TIOCSERGETLSR   0x5459 
   
#define TIOCSER_TEMT    0x01	
#define TIOCSERGETMULTI 0x545A 
#define TIOCSERSETMULTI 0x545B 

#define TIOCMIWAIT	0x545C	
#define TIOCGICOUNT	0x545D	


# 14 "/home/root/kernel/kernel/include/asm/termios.h" 2

# 1 "/home/root/kernel/kernel/include/asm/termbits.h" 1
 



#define _PPC_TERMBITS_H

typedef unsigned char	cc_t;
typedef unsigned int	speed_t;
typedef unsigned int	tcflag_t;

 





#define NCCS 19
struct termios {
	tcflag_t c_iflag;		 
	tcflag_t c_oflag;		 
	tcflag_t c_cflag;		 
	tcflag_t c_lflag;		 
	cc_t c_cc[19 ];		 
	cc_t c_line;			 
	speed_t c_ispeed;		 
	speed_t c_ospeed;		 
};

 
#define VINTR 	0
#define VQUIT 	1
#define VERASE 	2
#define VKILL	3
#define VEOF	4
#define VMIN	5
#define VEOL	6
#define VTIME	7
#define VEOL2	8
#define VSWTC	9

#define VWERASE 	10
#define VREPRINT	11
#define VSUSP 		12
#define VSTART		13
#define VSTOP		14
#define VLNEXT		15
#define VDISCARD	16

 
#define IGNBRK	0000001
#define BRKINT	0000002
#define IGNPAR	0000004
#define PARMRK	0000010
#define INPCK	0000020
#define ISTRIP	0000040
#define INLCR	0000100
#define IGNCR	0000200
#define ICRNL	0000400
#define IXON	0001000
#define IXOFF	0002000
#define IXANY		0004000
#define IUCLC		0010000
#define IMAXBEL	0020000

 
#define OPOST	0000001
#define ONLCR	0000002
#define OLCUC	0000004

#define OCRNL	0000010
#define ONOCR	0000020
#define ONLRET	0000040

#define OFILL	00000100
#define OFDEL	00000200
#define NLDLY	00001400
#define   NL0	00000000
#define   NL1	00000400
#define   NL2	00001000
#define   NL3	00001400
#define TABDLY	00006000
#define   TAB0	00000000
#define   TAB1	00002000
#define   TAB2	00004000
#define   TAB3	00006000
#define CRDLY	00030000
#define   CR0	00000000
#define   CR1	00010000
#define   CR2	00020000
#define   CR3	00030000
#define FFDLY	00040000
#define   FF0	00000000
#define   FF1	00040000
#define BSDLY	00100000
#define   BS0	00000000
#define   BS1	00100000
#define VTDLY	00200000
#define   VT0	00000000
#define   VT1	00200000
#define XTABS	01000000 

 
#define CBAUD	0000377
#define  B0	0000000		
#define  B50	0000001
#define  B75	0000002
#define  B110	0000003
#define  B134	0000004
#define  B150	0000005
#define  B200	0000006
#define  B300	0000007
#define  B600	0000010
#define  B1200	0000011
#define  B1800	0000012
#define  B2400	0000013
#define  B4800	0000014
#define  B9600	0000015
#define  B19200	0000016
#define  B38400	0000017
#define EXTA B19200
#define EXTB B38400
#define CBAUDEX 0000000
#define  B57600   00020
#define  B115200  00021
#define  B230400  00022
#define  B460800  00023
#define  B500000  00024
#define  B576000  00025
#define  B921600  00026
#define B1000000  00027
#define B1152000  00030
#define B1500000  00031
#define B2000000  00032
#define B2500000  00033
#define B3000000  00034
#define B3500000  00035
#define B4000000  00036

#define CSIZE	00001400
#define   CS5	00000000
#define   CS6	00000400
#define   CS7	00001000
#define   CS8	00001400

#define CSTOPB	00002000
#define CREAD	00004000
#define PARENB	00010000
#define PARODD	00020000
#define HUPCL	00040000

#define CLOCAL	00100000
#define CRTSCTS	  020000000000		

 
#define ISIG	0x00000080
#define ICANON	0x00000100
#define XCASE	0x00004000
#define ECHO	0x00000008
#define ECHOE	0x00000002
#define ECHOK	0x00000004
#define ECHONL	0x00000010
#define NOFLSH	0x80000000
#define TOSTOP	0x00400000
#define ECHOCTL	0x00000040
#define ECHOPRT	0x00000020
#define ECHOKE	0x00000001
#define FLUSHO	0x00800000
#define PENDIN	0x20000000
#define IEXTEN	0x00000400

 
#define 	TCOOFF		0
#define 	TCOON		1
#define 	TCIOFF		2
#define 	TCION		3

 
#define 	TCIFLUSH	0
#define 	TCOFLUSH	1
#define 	TCIOFLUSH	2

 
#define 	TCSANOW		0
#define 	TCSADRAIN	1
#define 	TCSAFLUSH	2


# 15 "/home/root/kernel/kernel/include/asm/termios.h" 2


struct sgttyb {
	char	sg_ispeed;
	char	sg_ospeed;
	char	sg_erase;
	char	sg_kill;
	short	sg_flags;
};

struct tchars {
	char	t_intrc;
	char	t_quitc;
	char	t_startc;
	char	t_stopc;
	char	t_eofc;
	char	t_brkc;
};

struct ltchars {
	char	t_suspc;
	char	t_dsuspc;
	char	t_rprntc;
	char	t_flushc;
	char	t_werasc;
	char	t_lnextc;
};












































































 








struct winsize {
	unsigned short ws_row;
	unsigned short ws_col;
	unsigned short ws_xpixel;
	unsigned short ws_ypixel;
};

#define NCC 10
struct termio {
	unsigned short c_iflag;		 
	unsigned short c_oflag;		 
	unsigned short c_cflag;		 
	unsigned short c_lflag;		 
	unsigned char c_line;		 
	unsigned char c_cc[10 ];	 
};

 
#define _VINTR	0
#define _VQUIT	1
#define _VERASE	2
#define _VKILL	3
#define _VEOF	4
#define _VMIN	5
#define _VEOL	6
#define _VTIME	7
#define _VEOL2	8
#define _VSWTC	9


 
#define INIT_C_CC "\003\034\177\025\004\001\000\000\000\000\027\022\032\021\023\026\025" 


 











#define TIOCM_OUT1	0x2000
#define TIOCM_OUT2	0x4000
#define TIOCM_LOOP	0x8000

 


 
#define N_TTY		0
#define N_SLIP		1
#define N_MOUSE		2
#define N_PPP		3
#define N_STRIP		4
#define N_AX25		5
#define N_X25		6	
#define N_6PACK		7
#define N_MASC		8	
#define N_R3964		9	
#define N_PROFIBUS_FDL	10	
#define N_IRDA		11	
#define N_SMSBLOCK	12	
#define N_HDLC		13	
#define N_SYNC_PPP	14
#define N_HCI		15  



 


#define SET_LOW_TERMIOS_BITS(termios, termio, x) { unsigned short __tmp; get_user(__tmp,&(termio)->x); (termios)->x = (0xffff0000 & (termios)->x) | __tmp; }





#define user_termio_to_kernel_termios(termios, termio) ({ SET_LOW_TERMIOS_BITS(termios, termio, c_iflag); SET_LOW_TERMIOS_BITS(termios, termio, c_oflag); SET_LOW_TERMIOS_BITS(termios, termio, c_cflag); SET_LOW_TERMIOS_BITS(termios, termio, c_lflag); copy_from_user((termios)->c_cc, (termio)->c_cc, NCC); })








 


#define kernel_termios_to_user_termio(termio, termios) ({ put_user((termios)->c_iflag, &(termio)->c_iflag); put_user((termios)->c_oflag, &(termio)->c_oflag); put_user((termios)->c_cflag, &(termio)->c_cflag); put_user((termios)->c_lflag, &(termio)->c_lflag); put_user((termios)->c_line,  &(termio)->c_line); copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); })
# 230 "/home/root/kernel/kernel/include/asm/termios.h"

#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))




# 5 "/home/root/kernel/kernel/include/linux/termios.h" 2



# 22 "/home/root/kernel/kernel/include/linux/tty.h" 2


# 1 "/home/root/kernel/kernel/include/linux/tty_driver.h" 1

#define _LINUX_TTY_DRIVER_H

 



















































































































struct tty_driver {
	int	magic;		 
	const char	*driver_name;
	const char	*name;
	int	name_base;	 
	short	major;		 
	short	minor_start;	 
	short	num;		 
	short	type;		 
	short	subtype;	 
	struct termios init_termios;  
	int	flags;		 
	int	*refcount;	 
	struct proc_dir_entry *proc_entry;  
	struct tty_driver *other;  

	 


	struct tty_struct **table;
	struct termios **termios;
	struct termios **termios_locked;
	void *driver_state;	 
	
	 



	int  (*open)(struct tty_struct * tty, struct file * filp);
	void (*close)(struct tty_struct * tty, struct file * filp);
	int  (*write)(struct tty_struct * tty, int from_user,
		      const unsigned char *buf, int count);
	void (*put_char)(struct tty_struct *tty, unsigned char ch);
	void (*flush_chars)(struct tty_struct *tty);
	int  (*write_room)(struct tty_struct *tty);
	int  (*chars_in_buffer)(struct tty_struct *tty);
	int  (*ioctl)(struct tty_struct *tty, struct file * file,
		    unsigned int cmd, unsigned long arg);
	void (*set_termios)(struct tty_struct *tty, struct termios * old);
	void (*throttle)(struct tty_struct * tty);
	void (*unthrottle)(struct tty_struct * tty);
	void (*stop)(struct tty_struct *tty);
	void (*start)(struct tty_struct *tty);
	void (*hangup)(struct tty_struct *tty);
	void (*break_ctl)(struct tty_struct *tty, int state);
	void (*flush_buffer)(struct tty_struct *tty);
	void (*set_ldisc)(struct tty_struct *tty);
	void (*wait_until_sent)(struct tty_struct *tty, int timeout);
	void (*send_xchar)(struct tty_struct *tty, char ch);
	int (*read_proc)(char *page, char **start, off_t off,
			  int count, int *eof, void *data);
	int (*write_proc)(struct file *file, const char *buffer,
			  unsigned long count, void *data);

	 


	struct tty_driver *next;
	struct tty_driver *prev;
};

 
#define TTY_DRIVER_MAGIC		0x5402

 




















#define TTY_DRIVER_INSTALLED		0x0001
#define TTY_DRIVER_RESET_TERMIOS	0x0002
#define TTY_DRIVER_REAL_RAW		0x0004
#define TTY_DRIVER_NO_DEVFS		0x0008

 
#define TTY_DRIVER_TYPE_SYSTEM		0x0001
#define TTY_DRIVER_TYPE_CONSOLE		0x0002
#define TTY_DRIVER_TYPE_SERIAL		0x0003
#define TTY_DRIVER_TYPE_PTY		0x0004
#define TTY_DRIVER_TYPE_SCC		0x0005	
#define TTY_DRIVER_TYPE_SYSCONS		0x0006

 
#define SYSTEM_TYPE_TTY			0x0001
#define SYSTEM_TYPE_CONSOLE		0x0002
#define SYSTEM_TYPE_SYSCONS		0x0003
#define SYSTEM_TYPE_SYSPTMX		0x0004

 
#define PTY_TYPE_MASTER			0x0001
#define PTY_TYPE_SLAVE			0x0002

 
#define SERIAL_TYPE_NORMAL	1
#define SERIAL_TYPE_CALLOUT	2


# 24 "/home/root/kernel/kernel/include/linux/tty.h" 2

# 1 "/home/root/kernel/kernel/include/linux/tty_ldisc.h" 1

#define _LINUX_TTY_LDISC_H

 


































































































struct tty_ldisc {
	int	magic;
	char	*name;
	int	num;
	int	flags;
	 


	int	(*open)(struct tty_struct *);
	void	(*close)(struct tty_struct *);
	void	(*flush_buffer)(struct tty_struct *tty);
	ssize_t	(*chars_in_buffer)(struct tty_struct *tty);
	ssize_t	(*read)(struct tty_struct * tty, struct file * file,
			unsigned char * buf, size_t nr);
	ssize_t	(*write)(struct tty_struct * tty, struct file * file,
			 const unsigned char * buf, size_t nr);	
	int	(*ioctl)(struct tty_struct * tty, struct file * file,
			 unsigned int cmd, unsigned long arg);
	void	(*set_termios)(struct tty_struct *tty, struct termios * old);
	unsigned int (*poll)(struct tty_struct *, struct file *,
			     struct poll_table_struct *);
	
	 


	void	(*receive_buf)(struct tty_struct *, const unsigned char *cp,
			       char *fp, int count);
	int	(*receive_room)(struct tty_struct *);
	void	(*write_wakeup)(struct tty_struct *);
};

#define TTY_LDISC_MAGIC	0x5403

#define LDISC_FLAG_DEFINED	0x00000001


# 25 "/home/root/kernel/kernel/include/linux/tty.h" 2





 





#define NR_PTYS		256	
#define NR_LDISCS	16

 





#define UNIX98_NR_MAJORS ((CONFIG_UNIX98_PTY_COUNT+NR_PTYS-1)/NR_PTYS)









 



struct screen_info {
	unsigned char  orig_x;			 
	unsigned char  orig_y;			 
	unsigned short dontuse1;		 
	unsigned short orig_video_page;		 
	unsigned char  orig_video_mode;		 
	unsigned char  orig_video_cols;		 
	unsigned short unused2;			 
	unsigned short orig_video_ega_bx;	 
	unsigned short unused3;			 
	unsigned char  orig_video_lines;	 
	unsigned char  orig_video_isVGA;	 
	unsigned short orig_video_points;	 

	 
	unsigned short lfb_width;		 
	unsigned short lfb_height;		 
	unsigned short lfb_depth;		 
	unsigned long  lfb_base;		 
	unsigned long  lfb_size;		 
	unsigned short dontuse2, dontuse3;	 
	unsigned short lfb_linelength;		 
	unsigned char  red_size;		 
	unsigned char  red_pos;			 
	unsigned char  green_size;		 
	unsigned char  green_pos;		 
	unsigned char  blue_size;		 
	unsigned char  blue_pos;		 
	unsigned char  rsvd_size;		 
	unsigned char  rsvd_pos;		 
	unsigned short vesapm_seg;		 
	unsigned short vesapm_off;		 
	unsigned short pages;			 
						 
};

extern struct screen_info screen_info;

#define ORIG_X			(screen_info.orig_x)
#define ORIG_Y			(screen_info.orig_y)
#define ORIG_VIDEO_MODE		(screen_info.orig_video_mode)
#define ORIG_VIDEO_COLS 	(screen_info.orig_video_cols)
#define ORIG_VIDEO_EGA_BX	(screen_info.orig_video_ega_bx)
#define ORIG_VIDEO_LINES	(screen_info.orig_video_lines)
#define ORIG_VIDEO_ISVGA	(screen_info.orig_video_isVGA)
#define ORIG_VIDEO_POINTS       (screen_info.orig_video_points)

#define VIDEO_TYPE_MDA		0x10	
#define VIDEO_TYPE_CGA		0x11	
#define VIDEO_TYPE_EGAM		0x20	
#define VIDEO_TYPE_EGAC		0x21	
#define VIDEO_TYPE_VGAC		0x22	
#define VIDEO_TYPE_VLFB		0x23	

#define VIDEO_TYPE_PICA_S3	0x30	
#define VIDEO_TYPE_MIPS_G364	0x31    
#define VIDEO_TYPE_SNI_RM	0x32    
#define VIDEO_TYPE_SGI          0x33    

#define VIDEO_TYPE_TGAC		0x40	

#define VIDEO_TYPE_SUN          0x50    
#define VIDEO_TYPE_SUNPCI       0x51    

#define VIDEO_TYPE_PMAC		0x60	

 




#define __DISABLED_CHAR '\0'

 




#define TTY_FLIPBUF_SIZE 512

struct tty_flip_buffer {
	struct tq_struct tqueue;
	struct semaphore pty_sem;
	char		*char_buf_ptr;
	unsigned char	*flag_buf_ptr;
	int		count;
	int		buf_num;
	unsigned char	char_buf[2* 512 ];
	char		flag_buf[2* 512 ];
	unsigned char	slop[4];  
};
 


#define PTY_BUF_SIZE	4*TTY_FLIPBUF_SIZE

 



#define TTY_NORMAL	0
#define TTY_BREAK	1
#define TTY_FRAME	2
#define TTY_PARITY	3
#define TTY_OVERRUN	4

#define INTR_CHAR(tty) ((tty)->termios->c_cc[VINTR])
#define QUIT_CHAR(tty) ((tty)->termios->c_cc[VQUIT])
#define ERASE_CHAR(tty) ((tty)->termios->c_cc[VERASE])
#define KILL_CHAR(tty) ((tty)->termios->c_cc[VKILL])
#define EOF_CHAR(tty) ((tty)->termios->c_cc[VEOF])
#define TIME_CHAR(tty) ((tty)->termios->c_cc[VTIME])
#define MIN_CHAR(tty) ((tty)->termios->c_cc[VMIN])
#define SWTC_CHAR(tty) ((tty)->termios->c_cc[VSWTC])
#define START_CHAR(tty) ((tty)->termios->c_cc[VSTART])
#define STOP_CHAR(tty) ((tty)->termios->c_cc[VSTOP])
#define SUSP_CHAR(tty) ((tty)->termios->c_cc[VSUSP])
#define EOL_CHAR(tty) ((tty)->termios->c_cc[VEOL])
#define REPRINT_CHAR(tty) ((tty)->termios->c_cc[VREPRINT])
#define DISCARD_CHAR(tty) ((tty)->termios->c_cc[VDISCARD])
#define WERASE_CHAR(tty) ((tty)->termios->c_cc[VWERASE])
#define LNEXT_CHAR(tty)	((tty)->termios->c_cc[VLNEXT])
#define EOL2_CHAR(tty) ((tty)->termios->c_cc[VEOL2])

#define _I_FLAG(tty,f)	((tty)->termios->c_iflag & (f))
#define _O_FLAG(tty,f)	((tty)->termios->c_oflag & (f))
#define _C_FLAG(tty,f)	((tty)->termios->c_cflag & (f))
#define _L_FLAG(tty,f)	((tty)->termios->c_lflag & (f))

#define I_IGNBRK(tty)	_I_FLAG((tty),IGNBRK)
#define I_BRKINT(tty)	_I_FLAG((tty),BRKINT)
#define I_IGNPAR(tty)	_I_FLAG((tty),IGNPAR)
#define I_PARMRK(tty)	_I_FLAG((tty),PARMRK)
#define I_INPCK(tty)	_I_FLAG((tty),INPCK)
#define I_ISTRIP(tty)	_I_FLAG((tty),ISTRIP)
#define I_INLCR(tty)	_I_FLAG((tty),INLCR)
#define I_IGNCR(tty)	_I_FLAG((tty),IGNCR)
#define I_ICRNL(tty)	_I_FLAG((tty),ICRNL)
#define I_IUCLC(tty)	_I_FLAG((tty),IUCLC)
#define I_IXON(tty)	_I_FLAG((tty),IXON)
#define I_IXANY(tty)	_I_FLAG((tty),IXANY)
#define I_IXOFF(tty)	_I_FLAG((tty),IXOFF)
#define I_IMAXBEL(tty)	_I_FLAG((tty),IMAXBEL)

#define O_OPOST(tty)	_O_FLAG((tty),OPOST)
#define O_OLCUC(tty)	_O_FLAG((tty),OLCUC)
#define O_ONLCR(tty)	_O_FLAG((tty),ONLCR)
#define O_OCRNL(tty)	_O_FLAG((tty),OCRNL)
#define O_ONOCR(tty)	_O_FLAG((tty),ONOCR)
#define O_ONLRET(tty)	_O_FLAG((tty),ONLRET)
#define O_OFILL(tty)	_O_FLAG((tty),OFILL)
#define O_OFDEL(tty)	_O_FLAG((tty),OFDEL)
#define O_NLDLY(tty)	_O_FLAG((tty),NLDLY)
#define O_CRDLY(tty)	_O_FLAG((tty),CRDLY)
#define O_TABDLY(tty)	_O_FLAG((tty),TABDLY)
#define O_BSDLY(tty)	_O_FLAG((tty),BSDLY)
#define O_VTDLY(tty)	_O_FLAG((tty),VTDLY)
#define O_FFDLY(tty)	_O_FLAG((tty),FFDLY)

#define C_BAUD(tty)	_C_FLAG((tty),CBAUD)
#define C_CSIZE(tty)	_C_FLAG((tty),CSIZE)
#define C_CSTOPB(tty)	_C_FLAG((tty),CSTOPB)
#define C_CREAD(tty)	_C_FLAG((tty),CREAD)
#define C_PARENB(tty)	_C_FLAG((tty),PARENB)
#define C_PARODD(tty)	_C_FLAG((tty),PARODD)
#define C_HUPCL(tty)	_C_FLAG((tty),HUPCL)
#define C_CLOCAL(tty)	_C_FLAG((tty),CLOCAL)
#define C_CIBAUD(tty)	_C_FLAG((tty),CIBAUD)
#define C_CRTSCTS(tty)	_C_FLAG((tty),CRTSCTS)

#define L_ISIG(tty)	_L_FLAG((tty),ISIG)
#define L_ICANON(tty)	_L_FLAG((tty),ICANON)
#define L_XCASE(tty)	_L_FLAG((tty),XCASE)
#define L_ECHO(tty)	_L_FLAG((tty),ECHO)
#define L_ECHOE(tty)	_L_FLAG((tty),ECHOE)
#define L_ECHOK(tty)	_L_FLAG((tty),ECHOK)
#define L_ECHONL(tty)	_L_FLAG((tty),ECHONL)
#define L_NOFLSH(tty)	_L_FLAG((tty),NOFLSH)
#define L_TOSTOP(tty)	_L_FLAG((tty),TOSTOP)
#define L_ECHOCTL(tty)	_L_FLAG((tty),ECHOCTL)
#define L_ECHOPRT(tty)	_L_FLAG((tty),ECHOPRT)
#define L_ECHOKE(tty)	_L_FLAG((tty),ECHOKE)
#define L_FLUSHO(tty)	_L_FLAG((tty),FLUSHO)
#define L_PENDIN(tty)	_L_FLAG((tty),PENDIN)
#define L_IEXTEN(tty)	_L_FLAG((tty),IEXTEN)

 













struct tty_struct {
	int	magic;
	struct tty_driver driver;
	struct tty_ldisc ldisc;
	struct termios *termios, *termios_locked;
	int pgrp;
	int session;
	kdev_t	device;
	unsigned long flags;
	int count;
	struct winsize winsize;
	unsigned char stopped:1, hw_stopped:1, flow_stopped:1, packet:1;
	unsigned char low_latency:1, warned:1;
	unsigned char ctrl_status;

	struct tty_struct *link;
	struct fasync_struct *fasync;
	struct tty_flip_buffer flip;
	int max_flip_cnt;
	int alt_speed;		 
	wait_queue_head_t write_wait;
	wait_queue_head_t read_wait;
	struct tq_struct tq_hangup;
	void *disc_data;
	void *driver_data;
	struct list_head tty_files;

#define N_TTY_BUF_SIZE 4096
	
	 



	unsigned int column;
	unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1;
	unsigned char closing:1;
	unsigned short minimum_to_wake;
	unsigned overrun_time;
	int num_overrun;
	unsigned long process_char_map[256/(8*sizeof(unsigned long))];
	char *read_buf;
	int read_head;
	int read_tail;
	int read_cnt;
	unsigned long read_flags[4096 /(8*sizeof(unsigned long))];
	int canon_data;
	unsigned long canon_head;
	unsigned int canon_column;
	struct semaphore atomic_read;
	struct semaphore atomic_write;
	mutex_t  read_lock;
	 
	struct tq_struct SAK_tq;
};

 
#define TTY_MAGIC		0x5401

 







#define TTY_THROTTLED 0
#define TTY_IO_ERROR 1
#define TTY_OTHER_CLOSED 2
#define TTY_EXCLUSIVE 3
#define TTY_DEBUG 4
#define TTY_DO_WRITE_WAKEUP 5
#define TTY_PUSH 6
#define TTY_CLOSING 7
#define TTY_DONT_FLIP 8
#define TTY_HW_COOK_OUT 14
#define TTY_HW_COOK_IN 15
#define TTY_PTY_LOCK 16
#define TTY_NO_WRITE_SPLIT 17

#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))

extern void tty_write_flush(struct tty_struct *);

extern struct termios tty_std_termios;
extern struct tty_struct * redirect;
extern struct tty_ldisc ldiscs[];
extern int fg_console, last_console, want_console;

extern int kmsg_redirect;

extern void con_init(void);
extern void console_init(void);

extern int lp_init(void);
extern int pty_init(void);
extern void tty_init(void);
extern int mxser_init(void);
extern int moxa_init(void);
extern int ip2_init(void);
extern int pcxe_init(void);
extern int pc_init(void);
extern int vcs_init(void);
extern int rp_init(void);
extern int cy_init(void);
extern int stl_init(void);
extern int stli_init(void);
extern int specialix_init(void);
extern int espserial_init(void);
extern int macserial_init(void);
extern int a2232board_init(void);

extern int tty_paranoia_check(struct tty_struct *tty, kdev_t device,
			      const char *routine);
extern char *tty_name(struct tty_struct *tty, char *buf);
extern void tty_wait_until_sent(struct tty_struct * tty, long timeout);
extern int tty_check_change(struct tty_struct * tty);
extern void stop_tty(struct tty_struct * tty);
extern void start_tty(struct tty_struct * tty);
extern int tty_register_ldisc(int disc, struct tty_ldisc *new_ldisc);
extern int tty_register_driver(struct tty_driver *driver);
extern int tty_unregister_driver(struct tty_driver *driver);
extern void tty_register_devfs (struct tty_driver *driver, unsigned int flags,
				unsigned minor);
extern void tty_unregister_devfs (struct tty_driver *driver, unsigned minor);
extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
			     int buflen);
extern void tty_write_message(struct tty_struct *tty, char *msg);

extern int is_orphaned_pgrp(int pgrp);
extern int is_ignored(int sig);
extern int tty_signal(int sig, struct tty_struct *tty);
extern void tty_hangup(struct tty_struct * tty);
extern void tty_vhangup(struct tty_struct * tty);
extern void tty_unhangup(struct file *filp);
extern int tty_hung_up_p(struct file * filp);
extern void do_SAK(struct tty_struct *tty);
extern void disassociate_ctty(int priv);
extern void tty_flip_buffer_push(struct tty_struct *tty);
extern int tty_get_baud_rate(struct tty_struct *tty);

 
extern struct tty_ldisc tty_ldisc_N_TTY;

 
extern int n_tty_ioctl(struct tty_struct * tty, struct file * file,
		       unsigned int cmd, unsigned long arg);

 

extern void serial_console_init(void);
 
 

extern int pcxe_open(struct tty_struct *tty, struct file *filp);

 

extern void console_print(const char *);

 

extern int vt_ioctl(struct tty_struct *tty, struct file * file,
		    unsigned int cmd, unsigned long arg);



# 27 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/sem.h" 1

#define _LINUX_SEM_H

# 1 "/home/root/kernel/kernel/include/linux/ipc.h" 1

#define _LINUX_IPC_H



#define IPC_PRIVATE ((__kernel_key_t) 0)  

 
struct ipc_perm
{
	__kernel_key_t	key;
	__kernel_uid_t	uid;
	__kernel_gid_t	gid;
	__kernel_uid_t	cuid;
	__kernel_gid_t	cgid;
	__kernel_mode_t	mode; 
	unsigned short	seq;
};

 
# 1 "/home/root/kernel/kernel/include/asm/ipcbuf.h" 1
 



#define __PPC_IPCBUF_H__

 










struct ipc64_perm
{
	__kernel_key_t		key;
	__kernel_uid_t		uid;
	__kernel_gid_t		gid;
	__kernel_uid_t		cuid;
	__kernel_gid_t		cgid;
	__kernel_mode_t		mode;
	unsigned long		seq;
	unsigned int		__pad2;
	unsigned long long	__unused1;
	unsigned long long	__unused2;
};


# 21 "/home/root/kernel/kernel/include/linux/ipc.h" 2


 
#define IPC_CREAT  00001000   
#define IPC_EXCL   00002000   
#define IPC_NOWAIT 00004000   

 

   
#define IPC_DIPC 00010000  
#define IPC_OWN  00020000  

 



#define IPC_RMID 0     
#define IPC_SET  1     
#define IPC_STAT 2     
#define IPC_INFO 3     

 



#define IPC_OLD 0	

#define IPC_64  0x0100  




#define IPCMNI 32768  

 
struct kern_ipc_perm
{
	key_t		key;
	uid_t		uid;
	gid_t		gid;
	uid_t		cuid;
	gid_t		cgid;
	mode_t		mode; 
	unsigned long	seq;
};






# 4 "/home/root/kernel/kernel/include/linux/sem.h" 2


 
#define SEM_UNDO        0x1000  

 
#define GETPID  11       
#define GETVAL  12       
#define GETALL  13       
#define GETNCNT 14       
#define GETZCNT 15       
#define SETVAL  16       
#define SETALL  17       

 
#define SEM_STAT 18
#define SEM_INFO 19

 
struct semid_ds {
	struct ipc_perm	sem_perm;		 
	__kernel_time_t	sem_otime;		 
	__kernel_time_t	sem_ctime;		 
	struct sem	*sem_base;		 
	struct sem_queue *sem_pending;		 
	struct sem_queue **sem_pending_last;	 
	struct sem_undo	*undo;			 
	unsigned short	sem_nsems;		 
};

 
# 1 "/home/root/kernel/kernel/include/asm/sembuf.h" 1
 



#define _PPC_SEMBUF_H

 



struct semid64_ds {
	struct ipc64_perm sem_perm;		 
	unsigned int	__unused1;
	__kernel_time_t	sem_otime;		 
	unsigned int	__unused2;
	__kernel_time_t	sem_ctime;		 
	unsigned long	sem_nsems;		 
	unsigned long	__unused3;
	unsigned long	__unused4;
};


# 35 "/home/root/kernel/kernel/include/linux/sem.h" 2


 
struct sembuf {
	unsigned short  sem_num;	 
	short		sem_op;		 
	short		sem_flg;	 
};

 
union semun {
	int val;			 
	struct semid_ds *buf;		 
	unsigned short *array;		 
	struct seminfo *__buf;		 
	void *__pad;
};

struct  seminfo {
	int semmap;
	int semmni;
	int semmns;
	int semmnu;
	int semmsl;
	int semopm;
	int semume;
	int semusz;
	int semvmx;
	int semaem;
};

#define SEMMNI  128             
#define SEMMSL  250             
#define SEMMNS  (SEMMNI*SEMMSL) 
#define SEMOPM  32	        
#define SEMVMX  32767           

 
#define SEMUME  SEMOPM          
#define SEMMNU  SEMMNS          
#define SEMAEM  (SEMVMX >> 1)   
#define SEMMAP  SEMMNS          
#define SEMUSZ  20		



 
struct sem {
	int	semval;		 
	int	sempid;		 
};

 
struct sem_array {
	struct kern_ipc_perm	sem_perm;	 
	time_t			sem_otime;	 
	time_t			sem_ctime;	 
	struct sem		*sem_base;	 
	struct sem_queue	*sem_pending;	 
	struct sem_queue	**sem_pending_last;  
	struct sem_undo		*undo;		 
	unsigned long		sem_nsems;	 
};

 
struct sem_queue {
	struct sem_queue *	next;	  
	struct sem_queue **	prev;	  
	struct task_struct*	sleeper;  
	struct sem_undo *	undo;	  
	int    			pid;	  
	int    			status;	  
	struct sem_array *	sma;	  
	int			id;	  
	struct sembuf *		sops;	  
	int			nsops;	  
	int			alter;	  
};

 


struct sem_undo {
	struct sem_undo *	proc_next;	 
	struct sem_undo *	id_next;	 
	int			semid;		 
	short *			semadj;		 
};

   long sys_semget (key_t key, int nsems, int semflg);
   long sys_semop (int semid, struct sembuf *sops, unsigned nsops);
   long sys_semctl (int semid, int semnum, int cmd, union semun arg);




# 28 "/home/root/kernel/kernel/include/linux/sched-defs.h" 2

# 1 "/home/root/kernel/kernel/include/linux/signal.h" 1

#define _LINUX_SIGNAL_H

# 1 "/home/root/kernel/kernel/include/asm/signal.h" 1
 



#define _ASMPPC_SIGNAL_H





 
struct siginfo;

 


#define _NSIG		64
#define _NSIG_BPW	32
#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)

typedef unsigned long old_sigset_t;		 

typedef struct {
	unsigned long sig[(64  / 32 ) ];
} sigset_t;

#define SIGHUP		 1
#define SIGINT		 2
#define SIGQUIT		 3
#define SIGILL		 4
#define SIGTRAP		 5
#define SIGABRT		 6
#define SIGIOT		 6
#define SIGBUS		 7
#define SIGFPE		 8
#define SIGKILL		 9
#define SIGUSR1		10
#define SIGSEGV		11
#define SIGUSR2		12
#define SIGPIPE		13
#define SIGALRM		14
#define SIGTERM		15
#define SIGSTKFLT	16
#define SIGCHLD		17
#define SIGCONT		18
#define SIGSTOP		19
#define SIGTSTP		20
#define SIGTTIN		21
#define SIGTTOU		22
#define SIGURG		23
#define SIGXCPU		24
#define SIGXFSZ		25
#define SIGVTALRM	26
#define SIGPROF		27
#define SIGWINCH	28
#define SIGIO		29
#define SIGPOLL		SIGIO
 


#define SIGPWR		30
#define SIGSYS		31
#define 	SIGUNUSED	31

 
#define SIGRTMIN	32
#define SIGRTMAX	(_NSIG-1)

 













#define SA_NOCLDSTOP	0x00000001
#define SA_NOCLDWAIT	0x00000002 
#define SA_SIGINFO	0x00000004
#define SA_ONSTACK	0x08000000
#define SA_RESTART	0x10000000
#define SA_NODEFER	0x40000000
#define SA_RESETHAND	0x80000000

#define SA_NOMASK	SA_NODEFER
#define SA_ONESHOT	SA_RESETHAND
#define SA_INTERRUPT	0x20000000 

#define SA_RESTORER	0x04000000

 


#define SS_ONSTACK	1
#define SS_DISABLE	2

#define MINSIGSTKSZ	2048
#define SIGSTKSZ	8192


 






#define SA_PROBE		SA_ONESHOT
#define SA_SAMPLE_RANDOM	SA_RESTART
#define SA_SHIRQ		0x04000000


#define SIG_BLOCK          0	
#define SIG_UNBLOCK        1	
#define SIG_SETMASK        2	

 
typedef void (*__sighandler_t)(int);

#define SIG_DFL	((__sighandler_t)0)	
#define SIG_IGN	((__sighandler_t)1)	
#define SIG_ERR	((__sighandler_t)-1)	

struct old_sigaction {
	__sighandler_t sa_handler;
	old_sigset_t sa_mask;
	unsigned long sa_flags;
	void (*sa_restorer)(void);
};

struct sigaction {
	__sighandler_t sa_handler;
	unsigned long sa_flags;
	void (*sa_restorer)(void);
	sigset_t sa_mask;		 
};

struct k_sigaction {
	struct sigaction sa;
};

typedef struct sigaltstack {
	void *ss_sp;
	int ss_flags;
	size_t ss_size;
} stack_t;


# 1 "/home/root/kernel/kernel/include/asm/sigcontext.h" 1
 



#define _ASM_PPC_SIGCONTEXT_H




struct sigcontext_struct {
	unsigned long	_unused[4];
	int		signal;
	unsigned long	handler;
	unsigned long	oldmask;
	struct pt_regs 	*regs;
};


# 155 "/home/root/kernel/kernel/include/asm/signal.h" 2





# 4 "/home/root/kernel/kernel/include/linux/signal.h" 2

# 1 "/home/root/kernel/kernel/include/asm/siginfo.h" 1
 



#define _PPC_SIGINFO_H

 



typedef union sigval {
	int sival_int;
	void *sival_ptr;
} sigval_t;

#define SI_MAX_SIZE	128
#define SI_PAD_SIZE	((SI_MAX_SIZE/sizeof(int)) - 3)

typedef struct siginfo {
	int si_signo;
	int si_errno;
	int si_code;

	union {
		int _pad[((128 /sizeof(int)) - 3) ];

		 
		struct {
			pid_t _pid;		 
			uid_t _uid;		 
		} _kill;

		 
		struct {
			unsigned int _timer1;
			unsigned int _timer2;
		} _timer;

		 
		struct {
			pid_t _pid;		 
			uid_t _uid;		 
			sigval_t _sigval;
		} _rt;

		 
		struct {
			pid_t _pid;		 
			uid_t _uid;		 
			int _status;		 
			clock_t _utime;
			clock_t _stime;
		} _sigchld;

		 
		struct {
			void *_addr;  
		} _sigfault;

		 
		struct {
			int _band;	 
			int _fd;
		} _sigpoll;
	} _sifields;
} siginfo_t;

 


#define si_pid		_sifields._kill._pid
#define si_uid		_sifields._kill._uid
#define si_status	_sifields._sigchld._status
#define si_utime	_sifields._sigchld._utime
#define si_stime	_sifields._sigchld._stime
#define si_value	_sifields._rt._sigval
#define si_int		_sifields._rt._sigval.sival_int
#define si_ptr		_sifields._rt._sigval.sival_ptr
#define si_addr		_sifields._sigfault._addr
#define si_band		_sifields._sigpoll._band
#define si_fd		_sifields._sigpoll._fd


#define __SI_MASK	0xffff0000
#define __SI_KILL	(0 << 16)
#define __SI_TIMER	(1 << 16)
#define __SI_POLL	(2 << 16)
#define __SI_FAULT	(3 << 16)
#define __SI_CHLD	(4 << 16)
#define __SI_RT		(5 << 16)
#define __SI_CODE(T,N)	((T) | ((N) & 0xffff))
# 100 "/home/root/kernel/kernel/include/asm/siginfo.h"


 



#define SI_USER		0		
#define SI_KERNEL	0x80		
#define SI_QUEUE	-1		
#define SI_TIMER __SI_CODE(__SI_TIMER,-2) 
#define SI_MESGQ	-3		
#define SI_ASYNCIO	-4		
#define SI_SIGIO	-5		

#define SI_FROMUSER(siptr)	((siptr)->si_code <= 0)
#define SI_FROMKERNEL(siptr)	((siptr)->si_code > 0)

 


#define ILL_ILLOPC	(__SI_FAULT|1)	
#define ILL_ILLOPN	(__SI_FAULT|2)	
#define ILL_ILLADR	(__SI_FAULT|3)	
#define ILL_ILLTRP	(__SI_FAULT|4)	
#define ILL_PRVOPC	(__SI_FAULT|5)	
#define ILL_PRVREG	(__SI_FAULT|6)	
#define ILL_COPROC	(__SI_FAULT|7)	
#define ILL_BADSTK	(__SI_FAULT|8)	
#define NSIGILL		8

 


#define FPE_INTDIV	(__SI_FAULT|1)	
#define FPE_INTOVF	(__SI_FAULT|2)	
#define FPE_FLTDIV	(__SI_FAULT|3)	
#define FPE_FLTOVF	(__SI_FAULT|4)	
#define FPE_FLTUND	(__SI_FAULT|5)	
#define FPE_FLTRES	(__SI_FAULT|6)	
#define FPE_FLTINV	(__SI_FAULT|7)	
#define FPE_FLTSUB	(__SI_FAULT|8)	
#define NSIGFPE		8

 


#define SEGV_MAPERR	(__SI_FAULT|1)	
#define SEGV_ACCERR	(__SI_FAULT|2)	
#define NSIGSEGV	2

 


#define BUS_ADRALN	(__SI_FAULT|1)	
#define BUS_ADRERR	(__SI_FAULT|2)	
#define BUS_OBJERR	(__SI_FAULT|3)	
#define NSIGBUS		3

 


#define TRAP_BRKPT	(__SI_FAULT|1)	
#define TRAP_TRACE	(__SI_FAULT|2)	
#define NSIGTRAP	2

 


#define CLD_EXITED	(__SI_CHLD|1)	
#define CLD_KILLED	(__SI_CHLD|2)	
#define CLD_DUMPED	(__SI_CHLD|3)	
#define CLD_TRAPPED	(__SI_CHLD|4)	
#define CLD_STOPPED	(__SI_CHLD|5)	
#define CLD_CONTINUED	(__SI_CHLD|6)	
#define NSIGCHLD	6

 


#define POLL_IN		(__SI_POLL|1)	
#define POLL_OUT	(__SI_POLL|2)	
#define POLL_MSG	(__SI_POLL|3)	
#define POLL_ERR	(__SI_POLL|4)	
#define POLL_PRI	(__SI_POLL|5)	
#define POLL_HUP	(__SI_POLL|6)	
#define NSIGPOLL	6

 







#define SIGEV_SIGNAL	0	
#define SIGEV_NONE	1	
#define SIGEV_THREAD	2	

#define SIGEV_MAX_SIZE	64
#define SIGEV_PAD_SIZE	((SIGEV_MAX_SIZE/sizeof(int)) - 3)

typedef struct sigevent {
	sigval_t sigev_value;
	int sigev_signo;
	int sigev_notify;
	union {
		int _pad[((64 /sizeof(int)) - 3) ];

		struct {
			void (*_function)(sigval_t);
			void *_attribute;	 
		} _sigev_thread;
	} _sigev_un;
} sigevent_t;

#define sigev_notify_function	_sigev_un._sigev_thread._function
#define sigev_notify_attributes	_sigev_un._sigev_thread._attribute




extern inline void copy_siginfo(siginfo_t *to, siginfo_t *from)
{
	if (from->si_code < 0)
		memcpy(to, from, sizeof(siginfo_t));
	else
		 
		memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
}

extern int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from);




# 5 "/home/root/kernel/kernel/include/linux/signal.h" 2



 





#define SIGQUEUE_DYNAMIC		0
#define SIGQUEUE_UNDELIVERED	1
#define SIGQUEUE_DELIVERED		2
#define SIGQUEUE_ZOMBIE			3

struct sigqueue {
	struct sigqueue *next;
	siginfo_t info;
	struct task_struct *task;
	int type;	 
	int prio;	 
	heapqueue_node hq_node;
};

struct sigpending {
	struct sigqueue *head, **tail;
	sigset_t signal;
};

 




# 1 "/home/root/kernel/kernel/include/asm/bitops.h" 1
 


 




# 376 "/home/root/kernel/kernel/include/asm/bitops.h"


# 38 "/home/root/kernel/kernel/include/linux/signal.h" 2


 

static inline void sigaddset(sigset_t *set, int _sig)
{
	unsigned long sig = _sig - 1;
	if ((64  / 32 )  == 1)
		set->sig[0] |= 1UL << sig;
	else
		set->sig[sig / 32 ] |= 1UL << (sig % 32 );
}

static inline void sigdelset(sigset_t *set, int _sig)
{
	unsigned long sig = _sig - 1;
	if ((64  / 32 )  == 1)
		set->sig[0] &= ~(1UL << sig);
	else
		set->sig[sig / 32 ] &= ~(1UL << (sig % 32 ));
}

static inline int sigismember(sigset_t *set, int _sig)
{
	unsigned long sig = _sig - 1;
	if ((64  / 32 )  == 1)
		return 1 & (set->sig[0] >> sig);
	else
		return 1 & (set->sig[sig / 32 ] >> (sig % 32 ));
}

static inline int sigfindinword(unsigned long word)
{
	return ffz(~word);
}

#define sigmask(sig)	(1UL << ((sig) - 1))






#define _SIG_SET_BINOP(name, op)	static inline void name(sigset_t *r, const sigset_t *a, const sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned long i;	for (i = 0; i < _NSIG_WORDS/4; ++i) {	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	a2 = a->sig[4*i+2]; a3 = a->sig[4*i+3];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3];	r->sig[4*i+0] = op(a0, b0);	r->sig[4*i+1] = op(a1, b1);	r->sig[4*i+2] = op(a2, b2);	r->sig[4*i+3] = op(a3, b3);	}	switch (_NSIG_WORDS % 4) {	case 3:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] = op(a0, b0);	r->sig[4*i+1] = op(a1, b1);	r->sig[4*i+2] = op(a2, b2);	break;	case 2:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	r->sig[4*i+0] = op(a0, b0);	r->sig[4*i+1] = op(a1, b1);	break;	case 1:	a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0];	r->sig[4*i+0] = op(a0, b0);	break;	}	}
# 117 "/home/root/kernel/kernel/include/linux/signal.h"

#define _sig_or(x,y)	((x) | (y))
static inline void  sigorsets (sigset_t *r, const sigset_t *a, const sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned long i;	for (i = 0; i < (64  / 32 ) /4; ++i) {	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	a2 = a->sig[4*i+2]; a3 = a->sig[4*i+3];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	b2 = b->sig[4*i+2]; b3 = b->sig[4*i+3];	r->sig[4*i+0] =   (( a0 ) | (  b0 )) ;	r->sig[4*i+1] =   (( a1 ) | (  b1 )) ;	r->sig[4*i+2] =   (( a2 ) | (  b2 )) ;	r->sig[4*i+3] =   (( a3 ) | (  b3 )) ;	}	switch ((64  / 32 )  % 4) {	case 3:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1]; a2 = a->sig[4*i+2]; b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1]; b2 = b->sig[4*i+2]; r->sig[4*i+0] =   (( a0 ) | (  b0 )) ;	r->sig[4*i+1] =   (( a1 ) | (  b1 )) ;	r->sig[4*i+2] =   (( a2 ) | (  b2 )) ;	break;	case 2:	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	b0 = b->sig[4*i+0]; b1 = b->sig[4*i+1];	r->sig[4*i+0] =   (( a0 ) | (  b0 )) ;	r->sig[4*i+1] =   (( a1 ) | (  b1 )) ;	break;	case 1:	a0 = a->sig[4*i+0]; b0 = b->sig[4*i+0];	r->sig[4*i+0] =   (( a0 ) | (  b0 )) ;	break;	}	} 

#define _sig_and(x,y)	((x) & (y))
static inline void  sigandsets (sigset_t *r, const sigset_t *a, const sigset_t *b) {	unsigned long a0, a1, a2, a3, b0, b1, b2, b3;	unsigned long i;	for (i = 0; i < (64  / 32 ) /4; ++i) {	a0 = a->sig[4*i+0]; a1 = a->sig[4*i+1];	a2 = a->sig[4*i+2]; a3 = a-


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-02-25 13:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-25  5:26 c/5775: Compilation stops abruptly varadhu_n

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).