# 1 "../utils/init/globals.c"

 







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

 
 
 




#pragma ident	"@(#)fcntl.h	1.7	92/07/14 SMI"	

# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 1 3
 
 

 
 
 




#pragma ident	"@(#)types.h	1.19	92/07/14 SMI"	

 



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

 
 
 




#pragma ident	"@(#)machtypes.h	1.7	92/07/14 SMI"





 





typedef struct  _physadr { int r[1]; } *physadr;

typedef	struct	_label_t { int	val[2]; } label_t;

typedef	unsigned char	lock_t;		 






# 17 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 2 3






 

typedef	unsigned char	uchar_t;
typedef	unsigned short	ushort_t;
typedef	unsigned int	uint_t;
typedef	unsigned long	ulong_t;

typedef	char *		caddr_t;	 
typedef	long		daddr_t;	 
typedef	long		off_t;		 
typedef	short		cnt_t;		 

typedef	ulong_t		paddr_t;	 
typedef	uchar_t		use_t;		 
typedef	short		sysid_t;
typedef	short		index_t;
typedef enum boolean { B_FALSE, B_TRUE } boolean_t;

 





typedef	long long		longlong_t;
typedef	unsigned long long	u_longlong_t;
# 59 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 3


typedef	longlong_t	offset_t;
typedef	longlong_t	diskaddr_t;

 






typedef union lloff {
	offset_t	_f;	 
	struct {
		long _u;	 
		off_t _l;	 
	} _p;
} lloff_t;

typedef union lldaddr {
	diskaddr_t	_f;	 
	struct {
		long _u;	 
		daddr_t _l;	 
	} _p;
} lldaddr_t;

typedef ulong_t k_fltset_t;	 

 







typedef long		id_t;		 
					 
					 
					 
					 


 

typedef ulong_t	major_t;	 
typedef ulong_t	minor_t;	 


 

typedef short	pri_t;

 










typedef	ushort_t o_mode_t;		 
typedef short	o_dev_t;		 
typedef	ushort_t o_uid_t;		 
typedef	o_uid_t	o_gid_t;		 
typedef	short	o_nlink_t;		 
typedef short	o_pid_t;		 
typedef ushort_t o_ino_t;		 


 

typedef	int	key_t;			 
typedef	ulong_t	mode_t;			 



typedef	long	uid_t;			 


typedef	uid_t	gid_t;			 
typedef	ulong_t nlink_t;		 
typedef ulong_t	dev_t;			 
typedef ulong_t	ino_t;			 
typedef long	pid_t;			 



typedef	uint_t	size_t;		 




typedef int	ssize_t;	 
				 




typedef	long		time_t;	 




typedef	long		clock_t;  





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

# 191 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 3





 












 




typedef	long	hostid_t;

 







typedef unsigned char	u_char;
typedef unsigned short	u_short;
typedef unsigned int	u_int;
typedef unsigned long	u_long;
typedef struct _quad { long val[2]; } quad;	 


 



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

 
 
 




#pragma ident	"@(#)select.h	1.10	92/07/14 SMI"	


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

 
 
 

 








#pragma ident	"@(#)time.h	2.28	93/02/05 SMI"	

 










struct timeval {
	long	tv_sec;		 
	long	tv_usec;	 
};

struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};







 



# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 1 3
 
 

 
 
 

# 254 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 3

# 50 "/usr/include/sys/time.h" 2 3




















 










 








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

 










 


typedef struct	timestruc {
	time_t 		tv_sec;		 
	long		tv_nsec;	 
} timestruc_t;

 


typedef	longlong_t	hrtime_t;

# 195 "/usr/include/sys/time.h" 3




int adjtime(struct timeval *, struct timeval *);
int getitimer(int, struct itimerval *);
int setitimer(int, struct itimerval *, struct itimerval *);
hrtime_t	gethrtime(void);
hrtime_t	gethrvtime(void);








# 1 "../port/svr4/time.h" 1
 



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

 
 
 




#pragma ident	"@(#)time.h	1.9	92/09/17 SMI"	
























struct	tm {	 
	int	tm_sec;
	int	tm_min;
	int	tm_hour;
	int	tm_mday;
	int	tm_mon;
	int	tm_year;
	int	tm_wday;
	int	tm_yday;
	int	tm_isdst;
};



extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime (const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);








# 82 "/usr/include/time.h" 3










# 111 "/usr/include/time.h" 3







# 5 "../port/svr4/time.h" 2

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

 
 
 

 
 

 
 




#pragma ident	"@(#)timeb.h	1.8	92/07/14 SMI"	





 



 







	#pragma	pack(2)


 


struct timeb {
	time_t	time;		 
	unsigned short millitm;	 
	short	timezone;	 
	short	dstflag;	 
};


	#pragma	pack()







# 6 "../port/svr4/time.h" 2


# 212 "/usr/include/sys/time.h" 2 3









# 14 "/usr/include/sys/select.h" 2 3







 













typedef	long	fd_mask;





typedef	struct fd_set {
	fd_mask	fds_bits[((( 1024  )+((  (sizeof (fd_mask) * 8 )	 )-1))/(  (sizeof (fd_mask) * 8 )	 )) ];
} fd_set;


















extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);










# 235 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/types.h" 2 3




 















# 13 "/usr/include/fcntl.h" 2 3

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

 
 
 




#pragma ident	"@(#)fcntl.h	1.12	92/07/14 SMI"	







 


















 







 










 


































 


typedef struct flock {
	short	l_type;
	short	l_whence;
	off_t	l_start;
	off_t	l_len;		 
	long	l_sysid;
	pid_t	l_pid;
	long	pad[4];		 
} flock_t;

# 115 "/usr/include/sys/fcntl.h" 3


 







 











# 14 "/usr/include/fcntl.h" 2 3








extern int fcntl(int, int, ...);
extern int open(const char *, int, ...);
extern int creat(const char *, mode_t);














# 10 "../utils/init/globals.c" 2

# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/stdio.h" 1 3
 
 

 
 
 

 





#pragma ident	"@(#)stdio.h	1.13	92/07/14 SMI"	










typedef long	fpos_t;




























































typedef struct	 
{




	int		_cnt;	 
	unsigned char	*_ptr;	 

	unsigned char	*_base;	 
	unsigned char	_flag;	 
	unsigned char	_file;	 
} FILE;


extern FILE		__iob[20	];



extern FILE		*_lastbuf;
extern unsigned char	*_bufendtab[];

extern unsigned char	 _sibuf[], _sobuf[];




extern int	remove(const char *);
extern int	rename(const char *, const char *);
extern FILE	*tmpfile(void);
extern char	*tmpnam(char *);
extern int	fclose(FILE *);
extern int	fflush(FILE *);
extern FILE	*fopen(const char *, const char *);
extern FILE	*freopen(const char *, const char *, FILE *);
extern void	setbuf(FILE *, char *);
extern int	setvbuf(FILE *, char *, int, size_t);
 
extern int	fprintf(FILE *, const char *, ...);
 
extern int	fscanf(FILE *, const char *, ...);
 
extern int	printf(const char *, ...);
 
extern int	scanf(const char *, ...);
 
extern int	sprintf(char *, const char *, ...);
 
extern int	sscanf(const char *, const char *, ...);
extern int	vfprintf(FILE *, const char *, void *);
extern int	vprintf(const char *, void *);
extern int	vsprintf(char *, const char *, void *);
extern int	fgetc(FILE *);
extern char	*fgets(char *, int, FILE *);
extern int	fputc(int, FILE *);
extern int	fputs(const char *, FILE *);
extern int	getc(FILE *);
extern int	getchar(void);
extern char	*gets(char *);
extern int	putc(int, FILE *);
extern int	putchar(int);
extern int	puts(const char *);
extern int	ungetc(int, FILE *);
extern size_t	fread(void *, size_t, size_t, FILE *);
	#pragma int_to_unsigned fread
extern size_t	fwrite(const void *, size_t, size_t, FILE *);
	#pragma int_to_unsigned fwrite
extern int	fgetpos(FILE *, fpos_t *);
extern int	fseek(FILE *, long, int);
extern int	fsetpos(FILE *, const fpos_t *);
extern long	ftell(FILE *);
extern void	rewind(FILE *);
extern void	clearerr(FILE *);
extern int	feof(FILE *);
extern int	ferror(FILE *);
extern void	perror(const char *);

extern int	__filbuf(FILE *);
extern int	__flsbuf(int, FILE *);












 




extern FILE	*fdopen(int, const char *);
extern char	*ctermid(char *);
extern int	fileno(FILE *);







 




extern FILE	*popen(const char *, const char *);
extern char	*cuserid(char *);
extern char	*tempnam(const char *, const char *);
extern int	getw(FILE *);
extern int	putw(int, FILE *);
extern int	pclose(FILE *);



# 235 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/stdio.h" 3







# 11 "../utils/init/globals.c" 2

# 1 "../port/svr4/strings.h" 1
 



# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/string.h" 1 3
 
 

 
 
 




#pragma ident	"@(#)string.h	1.9	92/07/14 SMI"	
















extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);

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

extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);

extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
	#pragma int_to_unsigned strcspn
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
	#pragma int_to_unsigned strspn
extern char *strstr(const char *, const char *);
extern char *strtok(char *, const char *);

extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern char *strsignal(int);
extern size_t strlen(const char *);
	#pragma int_to_unsigned strlen



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




extern char *strdup(const char *);
extern int ffs(const int);



# 99 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/string.h" 3







# 5 "../port/svr4/strings.h" 2

















# 12 "../utils/init/globals.c" 2

# 1 "../port/svr4/sys/file.h" 1
 




 



 

# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/unistd.h" 1 3
 
 

 
 
 




#pragma ident	"@(#)unistd.h	1.15	92/07/14 SMI"	


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








 








#pragma ident	"@(#)unistd.h	1.10	92/09/25 SMI"	

 













 





 






















# 14 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/unistd.h" 2 3






 













 





 




 





















extern int access(const char *, int);

extern int acct(const char *);

extern unsigned alarm(unsigned);

extern int brk(void *);

extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);

extern int chroot(const char *);

extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void exit(int);
extern void _exit(int);

extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);
extern int fdetach(const char *);

extern pid_t fork(void);
extern long fpathconf(int, int);

extern int fsync(int);
extern int ftruncate(int, off_t);

extern char *getcwd(char *, size_t);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern char *getlogin(void);

extern pid_t getpgid(pid_t);

extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);

char *gettxt(const char *, const char *);


extern pid_t getsid(pid_t);

extern uid_t getuid(void);

extern int ioctl(int, int, ...);

extern int isatty(int);
extern int link(const char *, const char *);

extern int lchown(const char *, uid_t, gid_t);
extern int lockf(int, int, long);

extern off_t lseek(int, off_t, int);

extern int mincore(caddr_t, size_t, char *);
extern int nice(int);

extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);

extern void profil(unsigned short *, size_t, int, unsigned);
extern int ptrace(int, pid_t, int, int);

extern ssize_t read(int, void *, unsigned);

extern int readlink(const char *, void *, int);

extern int rename(const char *, const char *);
extern int rmdir(const char *);

extern void *sbrk(int);

extern int setgid(gid_t);

extern int setegid(gid_t);


extern int setgroups(int, const gid_t *);

extern int setpgid(pid_t, pid_t);

extern pid_t setpgrp(void);

extern pid_t setsid(void);
extern int setuid(uid_t);

extern int seteuid(uid_t);

extern unsigned sleep(unsigned);

extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);

extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);

extern int truncate(const char *, off_t);

extern char *ttyname(int);
extern int unlink(const char *);

extern pid_t vfork(void);
extern void vhangup(void);

extern ssize_t write(int, const void *, unsigned);

# 318 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/unistd.h" 3


 






#pragma unknown_control_flow(vfork)








# 12 "../port/svr4/sys/file.h" 2





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

 
 
 




#pragma ident	"@(#)file.h	1.23	92/08/19 SMI"	

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



 









#pragma ident	"@(#)t_lock.h	1.30	92/12/28 SMI"






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






#pragma ident	"@(#)machlock.h	1.8	93/01/13 SMI"










extern void	lock_set(lock_t *lp);
extern int	lock_try(lock_t *lp);
extern void	lock_clear(lock_t *lp);

extern int	lock_set_spl(lock_t *lp, int pl);
extern void	lock_clear_splx(lock_t *lp, int s);














typedef	lock_t	disp_lock_t;		 

 





 












 




























# 22 "/usr/include/sys/t_lock.h" 2 3

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





#pragma ident	"@(#)dki_lkinfo.h	1.6	92/07/14 SMI"


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

 
 
 




#pragma ident	"@(#)dl.h	1.11	92/07/28 SMI"	





typedef	struct dl {
	long	dl_hop;
	ulong_t	dl_lop;
} dl_t;


extern dl_t	ladd(dl_t, dl_t);
extern dl_t	lsub(dl_t, dl_t);
extern dl_t	lmul(dl_t, dl_t);
extern dl_t	ldivide(dl_t, dl_t);
extern dl_t	lshiftl(dl_t, int);
extern dl_t	llog10(dl_t);
extern dl_t	lexp10(dl_t);
# 38 "/usr/include/sys/dl.h" 3


extern dl_t	lzero;
extern dl_t	lone;
extern dl_t	lten;






# 10 "/usr/include/sys/dki_lkinfo.h" 2 3






 



typedef struct lkinfo {
	char	*lk_name;	 
	int	lk_flags;	 
	long	lk_pad[2];	 
} lkinfo_t;

typedef struct _lkstat_t {
	lkinfo_t	*ls_infop;	 
	ulong_t		ls_wrcnt;	 
	ulong_t		ls_rdcnt;	 
	ulong_t		ls_solordcnt;	 
	ulong_t		ls_fail;	 
	 
	union {
		dl_t lsu_time;		 
		struct _lkstat_t *lsu_next;  
	} un;

	dl_t		ls_wtime;	 
	dl_t		ls_htime;	 
} lkstat_t;

typedef struct lkstat_sum {
	lkstat_t	*sp;
	struct lkstat_sum *next;
} lkstat_sum_t;

 




 


typedef struct lksblk {
	struct lksblk *lsb_prev, *lsb_next;
	int lsb_nfree;				 
	lkstat_t *lsb_free;			 
	lkstat_t lsb_bufs[91 ];		 
} lksblk_t;


extern lkstat_t *lkstat_alloc(lkinfo_t *, int);
extern void	lkstat_free(lkstat_t *, int);
extern void *	startup_alloc(size_t, void **);
extern void	startup_free(void *, size_t, void **);







# 23 "/usr/include/sys/t_lock.h" 2 3

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






#pragma ident	"@(#)sleepq.h	1.9	92/10/28 SMI"






 






typedef enum syncobj
{
	SOBJ_NONE = 0,	 
	SOBJ_MTX  = 1,	 
	SOBJ_RDR  = 2,	 
	SOBJ_WRT  = 3,	 
	SOBJ_CV   = 4,	 
	SOBJ_SEM  = 5	 
} syncobj_t;

 





typedef struct sleepq
{
	struct _kthread * sq_first;
} sleepq_t;

# 66 "/usr/include/sys/sleepq.h" 3


 








 













extern sleepq_t	*sqhash(caddr_t, disp_lock_t **);

 


typedef struct sleepq_bucket
{
	sleepq_t	sb_queue;
	disp_lock_t	sb_lock;
} sleepq_bucket_t;







# 24 "/usr/include/sys/t_lock.h" 2 3

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






#pragma ident	"@(#)turnstile.h	1.15	92/12/21 SMI"


# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/param.h" 1 3
 
 

 
 
 

 

























#pragma ident	"@(#)param.h	1.19	92/08/13 SMI"	









 





























				 
				 
				 

 






 





 























 
























 



 

















 














 



 






























 




 






 


# 238 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/param.h" 3






 




# 335 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/param.h" 3


 
























# 11 "/usr/include/sys/turnstile.h" 2 3

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






#pragma ident	"@(#)pirec.h	1.10	93/01/04 SMI"





 

















typedef struct pirec
{
	struct pirec	*pi_forw;	 
	struct pirec	*pi_back;	 
	struct _kthread *pi_benef;	 
	u_int		pi_epri_hi;	 
} pirec_t;

# 66 "/usr/include/sys/pirec.h" 3







# 12 "/usr/include/sys/turnstile.h" 2 3









 




typedef enum
{
	QOBJ_DEF = 0,		 
	QOBJ_RDR = 0,		 
	QOBJ_WRT = 1,		 
	QOBJ_CV  = 0,		 
	QOBJ_MTX = 0,		 
	QOBJ_SEM = 0		 
} qobj_t;





typedef struct turnstile	turnstile_t;

typedef ushort_t		turnstile_id_t;

struct turnstile
{
	union tstile_un
	{
		 



		turnstile_t	*ts_forw;

		 




		pirec_t		ts_prioinv;
	} tsun;

	 



	sleepq_t	ts_sleepq[2	];
	 





	turnstile_id_t	ts_id;
	u_char		ts_flags;
	char		ts_pad0;
	int		ts_pad1;

};

# 162 "/usr/include/sys/turnstile.h" 3







# 25 "/usr/include/sys/t_lock.h" 2 3

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






#pragma ident	"@(#)mutex.h	1.6	92/10/28 SMI"













 
























typedef enum {
	MUTEX_ADAPTIVE = 0,	 
	MUTEX_SPIN,		 
	MUTEX_ADAPTIVE_STAT,	 
	MUTEX_SPIN_STAT,	 
	MUTEX_DRIVER_NOSTAT = 4,  
	MUTEX_DRIVER_STAT = 5,	 
	MUTEX_ADAPTIVE_DEF	 
} kmutex_type_t;











 








 




























typedef union mutex {
	 


	struct generic_mutex {
		char	_filler1[3];	 
		lock_t	m_lock;		 

		uchar_t	m_type;		 
		char	_filler2[3];	 
	} m_generic;

	 


	struct adaptive_mutex {
		uint_t	m_owner : 24;	 
		lock_t	m_lock;			 
		uchar_t	m_type;			 
		disp_lock_t	m_wlock;	 
		turnstile_id_t	m_waiters;  
	} m_adaptive;

	 


	struct adaptive_mutex2 {
		uint_t	m_owner_lock;		 
		uchar_t	m_type;			 
		disp_lock_t	m_wlock;	 
		turnstile_id_t	m_waiters;  
	} m_adaptive2;

	 


	struct spin_mutex {
		ushort_t m_oldspl;	 
		lock_t	m_spinlock;	 
		lock_t	m_dummylock;	 

		uchar_t	m_type;		 
		char	_filler;	 
		ushort_t m_minspl;	 
	} m_spin;

	 


	struct stat_mutex {
		uint_t	m_stats_lock;	 
					 
		uchar_t	m_type;		 
		uchar_t	_filler[3];	 
	} m_stats;
} kmutex_t;


 

















 


struct mutex_stats {
	kmutex_t	m_real;			 
	lkinfo_t	lkinfo;			 
	lkstat_t	*lkstat;		 
	char		name[18	];	 
	uchar_t		flag;			 
};

 




 



















# 26 "/usr/include/sys/t_lock.h" 2 3







extern int ncpus;

 



 


typedef enum {
	SEMA_DEFAULT,
	SEMA_DRIVER
} ksema_type_t;

typedef struct _ksema {
	unsigned char	type;
	disp_lock_t	wlock;		 
	turnstile_id_t	waiters;	 
					 
	int		count;
} ksema_t;

typedef enum {
	RW_SLEEP,			 
	RW_SLEEP_STAT,			 
	RW_DRIVER_NOSTAT = 2,		 
	RW_DRIVER_STAT = 3,		 
	RW_DEFAULT			 
} krw_type_t;

typedef enum {
	RW_WRITER,
	RW_READER
} krw_t;








typedef struct _krwlock {
	unsigned char 	type;
	disp_lock_t	rw_wlock;
	turnstile_id_t	waiters;	 
					 
	union {
		struct rwlock_stats *sp;
		struct {
			short	writewanted;	 
			short	holdcnt;	 
		} rw;
	} un;
	 




	struct _kthread *owner;
} krwlock_t;

 


struct rwlock_stats {
	krwlock_t	real;			 
	lkinfo_t	lkinfo;
	lkstat_t	*lkstat;		 
	char		name[18	+1];	 
	char		flag;			 
};

 




 



typedef struct {
	turnstile_id_t	waiters;	 
					 
} kcondvar_t;

typedef	enum {
	CV_DEFAULT,
	CV_DRIVER
} kcv_type_t;


# 207 "/usr/include/sys/t_lock.h" 3








# 13 "/usr/include/sys/file.h" 2 3






 











 




typedef struct file {
	struct file	*f_next;	 
	struct file	*f_prev;	 
	ushort_t	f_flag;
	cnt_t		f_count;	 
	struct vnode	*f_vnode;	 
	offset_t	f_offset;	 
	struct cred	*f_cred;	 



	caddr_t		f_audit_data;	 
	kmutex_t	f_tlock;	 
	kcondvar_t	f_done;
	int		f_refcnt;
} file_t;

 














 








 



# 100 "/usr/include/sys/file.h" 3


 







# 153 "/usr/include/sys/file.h" 3







# 17 "../port/svr4/sys/file.h" 2


 




# 13 "../utils/init/globals.c" 2


# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/math.h" 1 3
 










#pragma ident	"@(#)math.h	1.73	92/03/23"







 


typedef union _h_val {
  	unsigned long _i[2];
	double _d;
} _h_val;


extern const _h_val __huge_val;







 
















extern int signgam;




 


enum version {c_issue_4, ansi_1, strict_ansi};


extern const enum version _lib_version;




struct exception {
	int type;
	char *name;
	double arg1;
	double arg2;
	double retval;
};




























 


extern double acos  (double)  ;
extern double asin  (double)  ;
extern double atan  (double)  ;
extern double atan2  (double, double)  ;
extern double cos  (double)  ;
extern double sin  (double)  ;
extern double tan  (double)  ;

extern double cosh  (double)  ;
extern double sinh  (double)  ;
extern double tanh  (double)  ;

extern double exp  (double)  ;
extern double frexp  (double, int *)  ;
extern double ldexp  (double, int)  ;
extern double log  (double)  ;
extern double log10  (double)  ;
extern double modf  (double, double *)  ;

extern double pow  (double, double)  ;
extern double sqrt  (double)  ;

extern double ceil  (double)  ;
extern double fabs  (double)  ;
extern double floor  (double)  ;
extern double fmod  (double, double)  ;


 


extern double erf  (double)  ;
extern double erfc  (double)  ;
extern double gamma  (double)  ;
extern double hypot  (double, double)  ;
extern int isnan  (double)  ;
extern double j0  (double)  ;
extern double j1  (double)  ;
extern double jn  (int, double)  ;
extern double lgamma  (double)  ;
extern double y0  (double)  ;
extern double y1  (double)  ;
extern double yn  (int, double)  ;


 


extern double acosh  (double)  ;
extern double asinh  (double)  ;
extern double atanh  (double)  ;
extern double cbrt  (double)  ;
extern double logb  (double)  ;
extern double nextafter  (double, double)  ;
extern double remainder  (double, double)  ;
extern double scalb  (double, double)  ;

extern int matherr  (struct exception *)  ;

 


extern double significand  (double)  ;

 


extern float modff  (float, float *)  ;

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

 
 
 








#pragma ident	"@(#)floatingpoint.h	1.13 92/08/25 SunPro"

 




 












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






#pragma ident	"@(#)ieeefp.h	1.6 92/04/15 SunPro"





 


enum fp_direction_type {	 
	fp_nearest	= 0,
	fp_tozero	= 1,
	fp_positive	= 2,
	fp_negative	= 3
};

enum fp_precision_type {	 
	fp_extended	= 0,
	fp_single	= 1,
	fp_double	= 2,
	fp_precision_3	= 3
};

enum fp_exception_type {	 
	fp_inexact	= 0,
	fp_division	= 1,
	fp_underflow	= 2,
	fp_overflow	= 3,
	fp_invalid	= 4
};

enum fp_class_type {		 
	fp_zero		= 0,
	fp_subnormal	= 1,
	fp_normal	= 2,
	fp_infinity   	= 3,
	fp_quiet	= 4,
	fp_signaling	= 5
};






# 35 "/usr/include/floatingpoint.h" 2 3










typedef int sigfpe_code_type;	 

typedef void (*sigfpe_handler_type)();	 





extern sigfpe_handler_type sigfpe  (sigfpe_code_type, sigfpe_handler_type)  ;

 


typedef float single;			



typedef unsigned extended[3];


typedef long double quadruple;	 

typedef unsigned fp_exception_field_type;
				 



 




typedef char decimal_string[512	];	
				 

typedef struct {
	enum fp_class_type fpclass;
	int	sign;
	int	exponent;
	decimal_string ds;	 


	int	more;		 


	int 	ndigits;	 


} decimal_record;

enum decimal_form {
	fixed_form,		 


	floating_form		 

};

typedef struct {
	enum fp_direction_type rd;	
				 
	enum decimal_form df;	 

	int ndigits;		 
} decimal_mode;

enum decimal_string_form {	 
	invalid_form,		 
	whitespace_form,	 
	fixed_int_form,		 
	fixed_intdot_form,	 
	fixed_dotfrac_form,	 
	fixed_intdotfrac_form,	 
	floating_int_form,	 	
	floating_intdot_form,	 
	floating_dotfrac_form,	 
	floating_intdotfrac_form, 
	inf_form,		 
	infinity_form,		 
	nan_form,		 
	nanstring_form		 
};

extern void single_to_decimal  (single *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void double_to_decimal  (double *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void extended_to_decimal  (extended *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;
extern void quadruple_to_decimal  (quadruple *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;

extern void decimal_to_single  (single *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void decimal_to_double  (double *, decimal_mode *, decimal_record *,
				fp_exception_field_type *)  ;
extern void decimal_to_extended  (extended *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;
extern void decimal_to_quadruple  (quadruple *, decimal_mode *,
				decimal_record *, fp_exception_field_type *)  ;

extern void string_to_decimal  (char **, int, int, decimal_record *,
				enum decimal_string_form *, char **)  ;
extern void func_to_decimal  (char **, int, int, decimal_record *,
				enum decimal_string_form *, char **,
				int (*)(void), int *, int (*)(int))  ;
extern void file_to_decimal  (char **, int, int, decimal_record *,
				enum decimal_string_form *, char **,
				FILE *, int *)  ;

extern char *seconvert  (single *, int, int *, int *, char *)  ;
extern char *sfconvert  (single *, int, int *, int *, char *)  ;
extern char *sgconvert  (single *, int, int, char *)  ;
extern char *econvert  (double, int, int *, int *, char *)  ;
extern char *fconvert  (double, int, int *, int *, char *)  ;
extern char *gconvert  (double, int, int, char *)  ;
extern char *qeconvert  (quadruple *, int, int *, int *, char *)  ;
extern char *qfconvert  (quadruple *, int, int *, int *, char *)  ;
extern char *qgconvert  (quadruple *, int, int, char *)  ;

extern char *ecvt  (double, int, int *, int *)  ;
extern char *fcvt  (double, int, int *, int *)  ;
extern char *gcvt  (double, int, char *)  ;

 



extern double atof  (const char *)  ;
extern double strtod  (const char *, char **)  ;






# 177 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/math.h" 2 3










# 15 "../utils/init/globals.c" 2


 

# 1 ".././tmp/postgres.h" 1
 






































# 1 ".././tmp/c.h" 1
 
















































 




 
















 











 





# 100 ".././tmp/c.h"


 





# 119 ".././tmp/c.h"


 



 



 















typedef char 	*BoolPtr;




 














 



typedef void	*Pointer;









 





 










# 274 ".././tmp/c.h"














 




 




 



 




typedef signed char	int8;		 
typedef signed short	int16;		 
typedef signed long	int32;		 

 












 




typedef unsigned char	uint8;		 
typedef unsigned short	uint16;		 
typedef unsigned long	uint32;		 

 







typedef float		float32data;
typedef double		float64data;
typedef float		*float32;
typedef double		*float64;

 












 



typedef uint8		bool8;		 
typedef uint16		bool16;		 
typedef uint32		bool32;		 

 



typedef uint8		bits8;		 
typedef uint16		bits16;		 
typedef uint32		bits32;		 

 




typedef uint8		word8;		 
typedef uint16		word16;		 
typedef uint32		word32;		 

 



typedef int		IoChar;

 












typedef char		Address[];

 



typedef unsigned int	Size;

 






typedef unsigned int	Index;

 



typedef unsigned int	Count;

 







typedef signed int	Offset;

 



typedef char	*String;

typedef int	*intPtr;
 









typedef int	ReturnStatus;

 




# 475 ".././tmp/c.h"


# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/stdlib.h" 1 3
 
 

 
 
 




#pragma ident	"@(#)stdlib.h	1.17	92/07/14 SMI"	





typedef	struct {
	int	quot;
	int	rem;
} div_t;

typedef struct {
	long	quot;
	long	rem;
} ldiv_t;


typedef struct {
	long long	quot;
	long long	rem;
} lldiv_t;






















typedef long wchar_t;




extern unsigned char	__ctype[];



extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);

extern int rand(void);
extern void srand(unsigned int);

extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);

extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern char *getenv(const char *);
extern int system(const char *);

extern void *bsearch(const void *, const void *, size_t, size_t,
	int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
	int (*)(const void *, const void *));

extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);

extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);

extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);



extern long a64l(const char *);
extern int dup2(int, int);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern int getpw(uid_t, char *);
extern char *gcvt(double, int, char *);
extern int isatty(int);
extern char *l64a(long);
extern void *memalign(size_t, size_t);
extern char *mktemp(char *);
extern int putenv(char *);
extern char *realpath(char *, char *);
extern void swab(const char *, char *, int);
extern char *ttyname(int);
extern int ttyslot(void);
extern void *valloc(size_t);

extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);


extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);




# 241 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/stdlib.h" 3







# 477 ".././tmp/c.h" 2

# 489 ".././tmp/c.h"



 








 





 








 




 



 








 





 










 






 










 










 










 










 










 










 









 





 










 






 



 


 



 





 





 





 




 



typedef String	ExcMessage;
typedef struct Exception {
	ExcMessage	message;
} Exception;

extern Exception	FailedAssertion;
extern Exception	BadArg;
extern Exception	BadState;

extern
void
ExceptionalCondition  (
	const String	conditionName,
	const Exception	*exceptionP,
	const String	details,
	const String	fileName,
	int		lineNumber
)  ;

 








 

























 












    





# 782 ".././tmp/c.h"


 



























 










    





# 842 ".././tmp/c.h"


 



 








 








 





 



 





















 











 



 
































 




 



extern
String
form  ( int, ... )  ;

 




# 40 ".././tmp/postgres.h" 2


 




 






 


 



typedef long	dt;

 



typedef	int16	int2;

 



typedef int32	int4;

 



typedef float	float4;

 



typedef double	float8;

 



 



typedef uint32	oid;







 



typedef oid regproc;

typedef oid  RegProcedure;




 



 



struct varlena {
	long	vl_len;
	char	vl_dat[1];
};




 



typedef int4 aclitem;

 



typedef struct varlena bytea;

 



typedef struct char16 {
	char	data[16];
} char16;

typedef char16	*Char16;

 



typedef struct int28 {
    int2	data[8];
} int28;

 



typedef struct oid8 {
    oid		data[8];
} oid8;
 
 



typedef struct varlena text;

 





typedef struct varlena stub;

 





typedef struct OidInt4Data {
	oid 	oi_oid;
	int32		oi_int4;
} OidInt4Data;

typedef struct OidInt4Data	*OidInt4;

 





typedef struct OidChar16Data {
	oid 	id;
	char16		name;
} OidChar16Data;

typedef struct OidChar16Data	*OidChar16;

 



 







typedef char16		NameData;
typedef NameData	*Name;




 



 



























 



typedef struct AnyStruct {
	char    character;
	double  largeFloat;
} AnyStruct;

typedef unsigned long Datum;
typedef Datum *       DatumPtr;

 





# 285 ".././tmp/postgres.h"













 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 






 









 



 



typedef unsigned long		TransactionId;





typedef unsigned long		TransactionIdValueData;
typedef unsigned long		TransactionIdValue;

typedef unsigned short		CommandId;






 






typedef uint32	Time;			 

typedef uint32	RelativeTime;


 















 



typedef	long	XID;






typedef	char	*DATUM;


 





 


 


 









 














 




typedef Pointer (*VoidFunctionType)();

 





extern char  NameIsEqual  (Name name1, Name name2)  ;
extern uint32 NameComputeLength  (Name name)  ;

extern TransactionId	NullTransactionId;
extern TransactionId	AmiTransactionId;
extern TransactionId	FirstTransactionId;

extern char  TransactionIdIsValid  (TransactionId transactionId)  ;
extern void GetNewTransactionId  (TransactionId *xid)  ;
extern TransactionId StringFormTransactionId  (String representation)  ;
extern String TransactionIdFormString  (TransactionId transactionId)  ;
extern void TransactionIdStore
     (TransactionId	transactionId, TransactionId *destination)  ;
extern void PointerStoreInvalidTransactionId  (Pointer destination)  ;
extern char  TransactionIdEquals  (TransactionId id1,TransactionId id2)  ;
extern char  TransactionIdIsLessThan 
     (TransactionId	id1, TransactionId id2)  ;
extern char  TransactionIdValueIsValid  (TransactionIdValue value)  ;

extern void TransactionIdIncrement  (TransactionId *transactionId)  ;
    
 




# 19 "../utils/init/globals.c" 2


static char  _RcsId_ [] =    "$Header: /usr/local/devel/postgres/src/backend/utils/init/RCS/globals.c,v 1.14 1993/01/05 02:31:00 aoki Exp $"    ;

# 1 ".././access/heapam.h" 1
 







 








# 1 ".././access/att.h" 1
 







 





# 1 ".././access/skey.h" 1
 










 





# 1 ".././access/attnum.h" 1
 

















typedef int16		AttributeNumber;
typedef AttributeNumber	*AttributeNumberPtr;
typedef uint16		AttributeOffset;



 



 






 






 











 










 







# 18 ".././access/skey.h" 2


typedef uint16	ScanKeySize;

typedef	int	((*ScanKeyFunc)());	 

typedef struct ScanKeyEntryData {
	bits16		flags;
	AttributeNumber	attributeNumber;
	RegProcedure	procedure;
	int (*func) ();
	int32 nargs;
	Datum		argument;
} ScanKeyEntryData;










typedef ScanKeyEntryData	*ScanKeyEntry;

typedef struct ScanKeyData {
	ScanKeyEntryData	data[1];	 
} ScanKeyData;

typedef ScanKeyData	*ScanKey;

 






typedef ScanKey		*ScanKeyPtr;

 





	     
 





 







 



extern
void
ScanKeyEntrySetIllegal  (
	ScanKeyEntry	entry
)  ;

 







extern
void
ScanKeyEntryInitialize  (
	ScanKeyEntry	entry,
	bits16		flags,
	AttributeNumber	attributeNumber,
	RegProcedure	procedure,
	Datum		argument
)  ;

 



struct	skey {
	int16	sk_flags;	 
	int16	sk_attnum;	 
	oid 	sk_opr;		 
	int 	(*func) ();
	int32 	nargs;
	DATUM	sk_data;	 
};







# 15 ".././access/att.h" 2

# 1 ".././catalog/pg_attribute.h" 1
 




























   
 







 




typedef struct 	 FormData_pg_attribute       {
    oid  	attrelid;
    char16  	attname;
    oid  	atttypid;
    oid  	attdefrel;
    int4  	attnvals;
    oid  	atttyparg;
    int2 	attlen;
    int2  	attnum;
    int2 	attbound;
    char   	attbyval;
    char  	attcanindex;
    oid 	attproc;
    int4	attnelems;
    int4	attcacheoff;
} FormData_pg_attribute;

 




typedef FormData_pg_attribute	*Form_pg_attribute;

 





















 














 



# 125 ".././catalog/pg_attribute.h"

    
 




 




# 152 ".././catalog/pg_attribute.h"

 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;

 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 




# 248 ".././catalog/pg_attribute.h"

 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
        
 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 




# 360 ".././catalog/pg_attribute.h"

 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 




# 409 ".././catalog/pg_attribute.h"

 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 



 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 







    
 ;
    
 








 ;
    
 








 ;
    
 






 



 






typedef struct AttributeTupleFormD {
	oid 	attrelid;
	NameData	attname;
	oid 	atttypid;
	oid 	attdefrel;
	uint32		attnvals;
	oid 	atttyparg;	 
	int16		attlen;
	AttributeNumber	attnum;
	uint16		attbound;
	char  		attbyval;
	char  		attcanindex;
	oid 		attproc;	 
	uint32		attnelems;
	int32		attcacheoff;
 
} AttributeTupleFormD;

typedef AttributeTupleFormD	*AttributeTupleForm;




 






struct	attribute {
	oid 	attrelid;
	char	attname[16];
	oid 	atttypid;
	oid 	attdefrel;
	uint32	attnvals;
	oid 	atttyparg;		 
	int16	attlen;
	int16	attnum;
	uint16	attbound;
	char  	attbyval;
	char  	attcanindex;
	oid 	attproc;		 
	uint32	attnelems;
	int32	attcacheoff;
 
};



 












    


    

# 16 ".././access/att.h" 2


typedef AttributeTupleForm	Attribute;

typedef Attribute		*AttributePtr;

 






# 18 ".././access/heapam.h" 2


# 1 ".././access/htup.h" 1
 







 







# 1 ".././storage/form.h" 1
 












 







typedef struct FormData {
	long	filler;
} FormData;

typedef Pointer	Form;

 






# 17 ".././access/htup.h" 2

# 1 ".././storage/page.h" 1
 







 






typedef Pointer	Page;

 






# 18 ".././access/htup.h" 2

# 1 ".././storage/part.h" 1
 







 







typedef uint32	PagePartition;	 





 






 



extern
PagePartition
CreatePagePartition(); 
 




 




extern
Count
PagePartitionGetPagesPerBlock  (
	PagePartition	partition
)  ;


# 19 ".././access/htup.h" 2

# 1 ".././storage/itemptr.h" 1
 


















# 1 ".././storage/block.h" 1
 


















 

typedef uint32	BlockNumber;	 
typedef uint16	BlockSize;



typedef struct BlockIdData {
	int16	data[2];
} BlockIdData;

typedef BlockIdData	*BlockId;	 

 



 









 







 







 








 









 







 










# 20 ".././storage/itemptr.h" 2

# 1 ".././storage/off.h" 1
 

















# 1 "../port/svr4/machine.h" 1






# 19 ".././storage/off.h" 2

# 1 ".././storage/itemid.h" 1
 
















typedef uint16	ItemOffset;
typedef uint16	ItemLength;

typedef bits16	ItemIdFlags;

typedef struct ItemIdData {		 
	unsigned	lp_off:13,	 
					 
			lp_flags:6,	 
			lp_len:13;	 
} ItemIdData;

typedef struct ItemIdData	*ItemId;










 



 





 





 





 





 










 










 










 










 












# 20 ".././storage/off.h" 2


typedef uint16		OffsetNumber;	 
typedef uint16		OffsetIndex;	 
typedef int16		OffsetIdData;	 
typedef OffsetIdData	*OffsetId;	 




 



 







 






 






 







# 21 ".././storage/itemptr.h" 2

# 1 ".././storage/pagenum.h" 1
 







 








typedef uint16	PageNumber;



typedef uint32	LogicalPageNumber;



 






 








# 22 ".././storage/itemptr.h" 2



# 1 ".././storage/pos.h" 1
 
























typedef bits16	PositionIdData;	 
typedef PositionIdData	*PositionId;	 

 



 







 





 









 








 









# 25 ".././storage/itemptr.h" 2


typedef struct ItemPointerData {
	BlockIdData	blockData;
	PositionIdData	positionData;
} ItemPointerData;

typedef ItemPointerData	*ItemPointer;

 



 






 











 










 











 











 











 











 











 














 









 









 









 










 







 



 







extern
char 
ItemPointerEquals  (
	ItemPointer	pointer1,
	ItemPointer	pointer2
)  ;

 






extern
LogicalPageNumber
ItemPointerGetLogicalPageNumber  (
	ItemPointer	pointer,
	PagePartition	partition
)  ;

 






extern
void
ItemPointerSetLogicalPageNumber  (
	ItemPointer		pointer,
	PagePartition		partition,
	LogicalPageNumber	pageNumber
)  ;


# 20 ".././access/htup.h" 2

# 1 ".././rules/rlock.h" 1
 










# 1 ".././rules/prs2locks.h" 1
 














 









 





 




 



typedef char EventType;






 




















typedef char ActionType;






 



typedef uint16 Prs2PlanNumber;

 


 






 





































typedef char Prs2LockType;



# 145 ".././rules/prs2locks.h"


 












 


































typedef struct Prs2OneLockData {
    oid 		ruleId;	
    Prs2LockType	lockType;
    AttributeNumber	attributeNumber;
    Prs2PlanNumber	planNumber;
    int			partialindx;
    int			npartial;
} Prs2OneLockData;

typedef Prs2OneLockData *Prs2OneLock;

typedef struct Prs2LocksData {
    int			numberOfLocks;
    Prs2OneLockData	locks[1];	 
} Prs2LocksData;

typedef Prs2LocksData	*RuleLock;


 
















 




















 







 





 





 






 




 







# 12 ".././rules/rlock.h" 2



# 21 ".././access/htup.h" 2




 







 













 




typedef struct HeapTupleData {

     

	Size		t_len;		 

					 




	ItemPointerData	t_ctid;		 

					 


	ItemPointerData	t_chain;	 

					 

	union {
		ItemPointerData	l_ltid;	 
		RuleLock	l_lock;	 
	}		t_lock;

	oid 	t_oid;		 

	CommandId	t_cmin;		 
	CommandId	t_cmax;		 

	TransactionId	t_xmin;		 
	TransactionId	t_xmax;		 

	long 		t_tmin, t_tmax;	 

	AttributeNumber	t_natts;	 

	char		t_vtype;	 
	char		t_infomask;	 
	char		t_locktype;	 
	uint8		t_hoff;		 


	char		t_bits[32		 / 8];
					 
} HeapTupleData;	 

typedef HeapTupleData	*HeapTuple;

 

















 






 








 







 





 






 








# 20 ".././access/heapam.h" 2

# 1 ".././access/relscan.h" 1
 







 







# 1 ".././storage/buf.h" 1
 







 










typedef int	Buffer;

 



extern
BlockNumber
RelationGetNumberOfBlocks();  

 






extern
char 
BufferIsValid  (
	Buffer	buffer
)  ;

 






extern
char 
BufferIsInvalid  (
	Buffer	buffer
)  ;

 






extern
char 
BufferIsUnknown  (
	Buffer	buffer
)  ;




 







# 17 ".././access/relscan.h" 2



# 1 ".././access/tqual.h" 1
 











 





# 1 ".././utils/nabstime.h" 1
 








 





typedef uint32	AbsoluteTime;

typedef struct { 
	int32	status;
	Time	data[2];
} TimeIntervalData;
typedef TimeIntervalData *TimeInterval;







 


















 



 






 






 








 




 









 



 
typedef struct {
	char token[6	];
	char type;
	char value;		 
} datetkn;


 

AbsoluteTime nabstimein  (char *timestr )  ;
char *nabstimeout  (AbsoluteTime time )  ;

int prsabsdate  (char *timestr,struct timeb *now, struct tm *tm, int *tzp)  ;
int parsetime  (char *time , struct tm *tm )  ;
int split  (char *string , char *fields [], int nfields , char *sep )  ;
int MonthNumToStr  (int mnum , char *mstr )  ;
int WeekdayToStr  (int wday , char *wstr )  ;
int IsNowStr  (char *tstr )  ;
int IsEpochStr  (char *tstr )  ;

int tryabsdate  (char *fields[],int nf,struct timeb *now,struct tm *tm,int *tzp)  ;

datetkn *datebsearch  (char *key , datetkn *base , unsigned int nel )  ;
datetkn *datetoktype  (char *s , int *bigvalp )  ;

AbsoluteTime dateconv  (struct tm *tm , int zone )  ;
time_t qmktime  (struct tm *tp )  ;

char  AbsoluteTimeIsBefore  (AbsoluteTime time1 , AbsoluteTime time2 )  ;
char  AbsoluteTimeIsAfter  (AbsoluteTime time1 , AbsoluteTime time2 )  ;


# 19 ".././access/tqual.h" 2



typedef struct TimeQualSpace {
	char	data[12];
} TimeQualSpace;

typedef Pointer	TimeQual;

 


 
extern TimeQual	SelfTimeQual;





void setheapoverride  (char  on)  ;
char  heapisoverride  (void)  ;

 



extern
char 
TimeQualIsValid  (
	TimeQual	qual
)  ;

 








extern
char 
TimeQualIsLegal  (
	TimeQual	qual
)  ;

 






extern
char 
TimeQualIncludesNow  (
	TimeQual	qual
)  ;

 







extern
char 
TimeQualIncludesPast  (
	TimeQual	qual
)  ;

 






extern
char 
TimeQualIsSnapshot  (
	TimeQual	qual
)  ;

 






extern
char 
TimeQualIsRanged  (
	TimeQual	qual
)  ;

 







extern
char 
TimeQualIndicatesDisableValidityChecking  (
	TimeQual	qual
)  ;

 






extern
Time
TimeQualGetSnapshotTime  (
	TimeQual	qual
)  ;

 






extern
Time
TimeQualGetStartTime  (
	TimeQual	qual
)  ;

 






extern
Time
TimeQualGetEndTime  (
	TimeQual	qual
)  ;

 






extern
TimeQual
TimeFormSnapshotTimeQual  (
	AbsoluteTime	time
)  ;

 








extern
TimeQual
TimeFormRangedTimeQual  (
	AbsoluteTime	startTime,
	AbsoluteTime	endTime
)  ;

 







 







extern
char 
HeapTupleSatisfiesTimeQual  (	
	HeapTuple	tuple,
	TimeQual	qual
)  ;


# 20 ".././access/relscan.h" 2

# 1 ".././utils/rel.h" 1
 







 






# 1 ".././storage/fd.h" 1
 



























 







typedef String	FileName;



typedef int	File;
typedef int	FileNumber;
typedef int	Amount;

 



 
extern
File
FileNameOpenFile  (
	FileName	fileName,
	int		flags,
	int		mode
)  ;


extern
int
FileNameUnlink  (
        FileName        fileName
)  ;


extern
BlockNumber
FileGetNumberOfBlocks  (
        File    file
)  ;

 



extern
void
FileClose  (
	File	file
)  ;

 



extern
void
FileUnlink  (
	File	file
)  ;

 



extern
Amount
FileRead  (
	File	file,
	String	buffer,
	Amount	amount
)  ;

 



extern
Amount
FileWrite  (
	File	file,
	String	buffer,
	Amount	amount
)  ;

 

 



extern
long		 
FileSeek  (
	File	file,
	long	offset,
	int	whence
)  ;


 



extern
long		 
FileTell  (
	File	file
)  ;

 





extern
int
FileSync  (
	File	file
)  ;

 



extern
void
AllocateFile  (
	void
)  ;

 



extern
uint16
AllocateFiles  (
	uint16	fileCount
)  ;

 



extern
void
FreeFile  (
	void
)  ;

 



extern
void
FreeFiles  (
	int	numberOfFiles
)  ;

 




extern
char *
FileFindName  (
	File	file
)  ;

extern void closeAllVfds  ()  ;
extern void closeOneVfd  ()  ;

# 16 ".././utils/rel.h" 2

# 1 ".././access/istrat.h" 1
 







 








typedef uint16	StrategyNumber;









typedef struct StrategyMapData {
	ScanKeyEntryData	entry[1];	 
} StrategyMapData;	 

typedef StrategyMapData	*StrategyMap;

typedef struct IndexStrategyData {
	StrategyMapData	strategyMapData[1];	 
} IndexStrategyData;	 

typedef IndexStrategyData	*IndexStrategy;

 






 











 





 





 








extern
ScanKeyEntry
StrategyMapGetScanKeyEntry  (
	StrategyMap	map,
	StrategyNumber	strategyNumber
)  ;

 








extern
StrategyMap
IndexStrategyGetStrategyMap  (
	IndexStrategy	indexStrategy,
	StrategyNumber	maxStrategyNumber,
	AttributeNumber	attributeNumber
)  ;

 



extern
Size
AttributeNumberGetIndexStrategySize  (
	AttributeNumber	maxAttributeNumber,
	StrategyNumber	maxStrategyNumber
)  ;

 



extern
void
IndexSupportInitialize  (
	IndexStrategy	indexStrategy,
	RegProcedure	*indexSupport,
	oid 	indexObjectId,
	oid 	accessMethodObjectId,
	StrategyNumber	maxStrategyNumber,
	StrategyNumber	maxSupportNumber,
	AttributeNumber maxAttributeNumber
)  ;


# 17 ".././utils/rel.h" 2

# 1 ".././access/tupdesc.h" 1
 







 








typedef struct TupleDescriptorData {
	AttributeTupleForm	data[1];	 
} TupleDescriptorData;

typedef TupleDescriptorData	*TupleDescriptor;

typedef TupleDescriptorData	TupleDescD;

typedef TupleDescD		*TupleDesc;

 

typedef enum {ATTVAL, ATTTUP} AttributeTag;
typedef struct ExecAttDescData {
        AttributeTag	      tag;   

        int                   len;   
        TupleDescriptor       attdesc;  
} ExecAttDescData;
typedef ExecAttDescData *ExecAttDesc;

typedef struct ExecTupDescriptorData {
        ExecAttDesc data[1];             
} ExecTupDescriptorData;
typedef ExecTupDescriptorData *ExecTupDescriptor;

 





 






extern
TupleDesc
CreateTemplateTupleDesc  (
	AttributeNumber	numberOfAttributes
)  ;

 












extern
char 
TupleDescInitEntry  (
	TupleDesc	desc,
	AttributeNumber	attributeNumber,
	Name		attributeName,
	Name		typeName,
	int         attdim
)  ;


# 18 ".././utils/rel.h" 2


# 1 ".././catalog/pg_am.h" 1
 





















 







 



 
typedef struct 	 FormData_pg_am     {
    char16 	amname;
    oid 	amowner;
    char	amkind;
    int2 	amstrategies;
    int2 	amsupport;
    regproc 	amgettuple;
    regproc	aminsert;
    regproc 	amdelete;
    regproc 	amgetattr;
    regproc 	amsetlock;
    regproc 	amsettid;
    regproc	amfreetuple;
    regproc 	ambeginscan;
    regproc 	amrescan;
    regproc 	amendscan;
    regproc 	ammarkpos;
    regproc 	amrestrpos;
    regproc 	amopen;
    regproc 	amclose;
    regproc 	ambuild;
    regproc 	amcreate; 
    regproc 	amdestroy;
} FormData_pg_am;

 




typedef FormData_pg_am	*Form_pg_am;

 




























 




 ;
 ;

 





 

 






typedef struct AccessMethodTupleFormD {
	NameData	amname;
	oid 	amowner;
	char		amkind;		 
 
	uint16		amstrategies;
	uint16		amsupport;
	RegProcedure	amgettuple;
	RegProcedure	aminsert;
	RegProcedure	amdelete;
	RegProcedure	amgetattr;
	RegProcedure	amsetlock;
	RegProcedure	amsettid;
	RegProcedure	amfreetuple;
	RegProcedure	ambeginscan;
	RegProcedure	amrescan;
	RegProcedure	amendscan;
	RegProcedure	ammarkpos;
	RegProcedure	amrestrpos;
	RegProcedure	amopen;
	RegProcedure	amclose;
	RegProcedure	ambuild;
	RegProcedure	amcreate;
	RegProcedure	amdestroy;
} AccessMethodTupleFormD;

typedef AccessMethodTupleFormD		*AccessMethodTupleForm;



 






struct	am {
	char	amname[16];
	oid 	amowner;
	char	amkind;
	uint16  amstrategies;
	uint16  amsupport;
	oid			amgettuple;
	oid			aminsert;
	oid			amdelete;
	oid			amgetattr;
	oid			amsetlock;
	oid			amsettid;
	oid			amfreetuple;
	oid			ambeginscan;
	oid			amrescan;
	oid			amendscan;
	oid			ammarkpos;
	oid			amrestrpos;
	oid			amopen;
	oid			amclose;
	oid			ambuild;
	oid			amcreate;
	oid			amdestroy;
};



 






    

# 20 ".././utils/rel.h" 2

# 1 ".././catalog/pg_operator.h" 1
 





















 







 




typedef struct 	 FormData_pg_operator     {
    char16 	oprname;
    oid 	oprowner;
    int2 	oprprec;
    char 	oprkind;
    char  	oprisleft;
    char 	oprcanhash;
    oid 	oprleft;
    oid 	oprright;
    oid		oprresult;
    oid 	oprcom;
    oid 	oprnegate;
    oid 	oprlsortop;
    oid 	oprrsortop;
    regproc 	oprcode;
    regproc 	oprrest;
    regproc 	oprjoin;
} FormData_pg_operator;

 




typedef FormData_pg_operator	*Form_pg_operator;

 






















 




 ;
 ;


 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
    
 ;
 ;
 ;
 ;
    
 ;
 ;
 ;
 ;

 ;
 ;
 ;
 ;
 ;

 ;
 ;
 ;
 ;
 ;
 ;
 ;
 ;

 ;
 ;
 ;
 ;
 ;
 ;

 ;
 ;
 ;
 ;
 ;
 ;

 ;
 ;
 ;
 ;
 ;
 ;

 ;
 ;
 ;

 






typedef struct OperatorTupleFormD {
	NameData	oprname;
	oid 	oprowner;
	uint16		oprprec;
	char		oprkind;
	char  		oprisleft;
	char  		oprcanhash;
	oid 	oprleft;
	oid 	oprright;
	oid 	oprresult;
	oid 	oprcom;
	oid 	oprnegate;
	oid 	oprlsortop;
	oid 	oprrsortop;
	RegProcedure	oprcode;
	RegProcedure	oprrest;
	RegProcedure	oprjoin;
} OperatorTupleFormD;

typedef OperatorTupleFormD	*OperatorTupleForm;



 






struct	operator {
	char	oprname[16];
	oid 	oprowner;
	uint16	oprprec;
	char	oprkind;
	char  	oprisleft;
	char  	oprcanhash;
	oid 	oprleft;
	oid 	oprright;
	oid 	oprresult;
	oid 	oprcom;
	oid 	oprnegate;
	oid 	oprlsortop;
	oid 	oprrsortop;
	oid			oprcode;
	oid			oprrest;
	oid			oprjoin;
};




 














    
 


    




    




# 21 ".././utils/rel.h" 2

# 1 ".././catalog/pg_relation.h" 1
 






















 







 















 








typedef struct 	 FormData_pg_relation       {
     char16 	relname;
     oid 	relowner;
     oid 	relam;
     int4 	relpages;
     int4 	reltuples;
     dt 	relexpires;
     dt 	relpreserved;
     char  	relhasindex;
     char  	relisshared;
     char 	relkind;
     char 	relarch;
     int2 	relnatts;
     int2	relsmgr;
     int28 	relkey;
     oid8	relkeyop;
     aclitem	relacl[1];
} FormData_pg_relation;

 




typedef FormData_pg_relation	*Form_pg_relation;

 



 



 
























 




 ;
 ;
 ;
 ;
 ;
 ;
 ;
 
 ;
    
 ;
 ;
 ;
 ;
 ;
 ;















    
 







    
 






typedef struct RelationTupleFormD {
	NameData	relname;
	oid 	relowner;
	oid 	relam;
	uint32		relpages;
	uint32		reltuples;
	long 		relexpires;
	long 		relpreserved;
	char  		relhasindex;
	char  		relisshared;
	char		relkind;
	char		relarch;
	AttributeNumber	relnatts;
	int2		relsmgr;
	AttributeNumber	relkey[8];
	oid 	relkeyop[8];
 
 
} RelationTupleFormD;

typedef RelationTupleFormD	*RelationTupleForm;



 






struct	relation {
	char	relname[16];
	oid 	relowner;
	oid 	relam;
	uint32	relpages;
	uint32	reltuples;
	long 	relexpires;
	long 	relpreserved;
	char  	relhasindex;
	char  	relisshared;
	char	relkind;
	char	relarch;
	uint16	relnatts;
	int2	relsmgr;
	int16	relkey[8];
	oid 	relkeyop[8];
 
 
};



    
 





















    

# 22 ".././utils/rel.h" 2


typedef struct RelationData {
	File			rd_fd;		 
	int                     rd_nblocks;      
	uint16			rd_refcnt;	 
	char 			rd_ismem;	 
	char 			rd_isnailed;	 
	AccessMethodTupleForm	rd_am;		 
	RelationTupleForm	rd_rel;		 
	oid 		rd_id;		 
	Pointer			lockInfo;	 
	TupleDescriptorData	rd_att;		 
 
 	 
} RelationData;

typedef RelationData	*Relation;

 





typedef Relation	*RelationPtr;



typedef char	ArchiveMode;

 





 








 






 









 





 





 





 








 








 








 







 







 






 






 







extern
IndexStrategy
RelationGetIndexStrategy  (
	Relation	relation
)  ;

 








extern
void
RelationSetIndexSupport  (
	Relation	relation,
	IndexStrategy	strategy,
	RegProcedure	*support
)  ;


# 21 ".././access/relscan.h" 2


typedef ItemPointerData	MarkData;

typedef struct HeapScanDescData {
	Relation	rs_rd;		 
	HeapTuple	rs_ptup;	 
	HeapTuple	rs_ctup;	 
	HeapTuple	rs_ntup;	 
	Buffer		rs_pbuf;	 
	Buffer		rs_cbuf;	 
	Buffer		rs_nbuf;	 
	struct	dchain	*rs_dc;		 
	ItemPointerData	rs_mptid;	 
	ItemPointerData	rs_mctid;	 
	ItemPointerData	rs_mntid;	 
	ItemPointerData	rs_mcd;		 
	char  		rs_atend;	 
	TimeQual	rs_tr;		 
	uint16		rs_cdelta;	 
	char 		rs_parallel_ok;  
	uint16		rs_nkeys;	 
	ScanKeyData	rs_key;		 
	 
} HeapScanDescData;

typedef HeapScanDescData *HeapScanDesc;

typedef struct IndexScanDescData {
	Relation	relation;		 
	Pointer		opaque;			 
	ItemPointerData	previousItemData;	 
	ItemPointerData	currentItemData;	 
	ItemPointerData	nextItemData;		 
	MarkData	previousMarkData;	 
	MarkData	currentMarkData;	 
	MarkData	nextMarkData;		 
	uint8		flags;			 
	char  		scanFromEnd;		 
	uint16		numberOfKeys;		 
	ScanKeyData	keyData;			 
	 
} IndexScanDescData;

typedef IndexScanDescData	*IndexScanDesc;

 





typedef IndexScanDesc		*IndexScanDescPtr;

 





 






# 21 ".././access/heapam.h" 2





# 1 ".././storage/smgr.h" 1
 












extern int	smgrinit();
extern void	smgrshutdown();
extern int	smgrcreate();
extern int	smgrunlink();
extern int	smgrextend();
extern int	smgropen();
extern int	smgrclose();
extern int	smgrread();
extern int	smgrwrite();
extern int	smgrflush();
extern int	smgrblindwrt();
extern int	smgrnblocks();
extern int	smgrcommit();
extern int	smgrabort();
extern char 	smgriswo();


# 26 ".././access/heapam.h" 2





 




typedef struct HeapAccessStatisticsData {
    time_t  init_global_timestamp;	 
    time_t  local_reset_timestamp;	 
    time_t  last_request_timestamp;	 

    int global_open;			
    int global_openr;
    int global_close;
    int global_beginscan;
    int global_rescan;
    int global_endscan;
    int global_getnext;
    int global_fetch;
    int global_insert;
    int global_delete;
    int global_replace; 
    int global_markpos; 
    int global_restrpos;
    int global_BufferGetRelation;
    int global_RelationIdGetRelation;
    int global_RelationIdGetRelation_Buf;
    int global_RelationNameGetRelation;
    int global_getreldesc;
    int global_heapgettup;
    int global_RelationPutHeapTuple;
    int global_RelationPutLongHeapTuple;

    int local_open;			
    int local_openr;
    int local_close;
    int local_beginscan;
    int local_rescan;
    int local_endscan;
    int local_getnext;
    int local_fetch;
    int local_insert;
    int local_delete;
    int local_replace; 
    int local_markpos; 
    int local_restrpos;
    int local_BufferGetRelation;
    int local_RelationIdGetRelation;
    int local_RelationIdGetRelation_Buf;
    int local_RelationNameGetRelation;
    int local_getreldesc;
    int local_heapgettup;
    int local_RelationPutHeapTuple;
    int local_RelationPutLongHeapTuple;
} HeapAccessStatisticsData;

typedef HeapAccessStatisticsData *HeapAccessStatistics;




extern HeapAccessStatistics heap_access_stats;

 



 
# 1 ".././lib/heap.h" 1
 












Relation heap_creatr  (char relname [], unsigned natts , unsigned smgr , struct attribute *att [])  ;
void CheckAttributeNames  (unsigned natts , struct attribute *tupdesc [])  ;
int RelationAlreadyExists  (Relation pg_relation_desc , char relname [])  ;
void AddNewAttributeTuples  (oid  new_rel_oid , oid  new_type_oid , unsigned natts , struct attribute *tupdesc [])  ;
void AddPgRelationTuple  (Relation pg_relation_desc , Relation new_rel_desc , oid  new_rel_oid , int arch , unsigned natts )  ;
oid  heap_create  (char relname [], int arch , unsigned natts , unsigned smgr , struct attribute *tupdesc [])  ;
void RelationRemoveInheritance  (Relation relation )  ;
void RelationRemoveIndexes  (Relation relation )  ;
void DeletePgRelationTuple  (Relation rdesc )  ;
void DeletePgAttributeTuples  (Relation rdesc )  ;
void DeletePgTypeTuple  (Relation rdesc )  ;
void UnlinkRelationFile  (Relation rdesc )  ;
void heap_destroy  (char relname [])  ;

# 98 ".././access/heapam.h" 2

extern Relation 	heap_open();
extern Relation 	heap_openr();
extern void		heap_close();
extern HeapTuple	heap_fetch();
extern oid  	heap_insert();
extern RuleLock 	heap_delete();
extern RuleLock 	heap_replace();
extern char *   	heap_getattr();
extern HeapScanDesc 	heap_beginscan();
extern void 		heap_rescan();
extern void 		heap_endscan();
extern void 		heap_markpos();
extern void 		heap_restrpos();
extern HeapTuple 	heap_getnext();

extern int		heap_attisnull();
extern int		heap_sysattrlen();
extern char 		heap_sysattrbyval();
extern HeapTuple	heap_addheader();
extern HeapTuple	heap_copytuple();
extern HeapTuple	heap_formtuple();
extern HeapTuple	heap_modifytuple();

 



extern
RuleLock
doinsert  (
	Relation	relation,
	HeapTuple	heapTuple
)  ;

 




 









 









 









 









 









 









 









 









 









 









 






 









 









 









 









 









 









 





 





 





 






# 23 "../utils/init/globals.c" 2


# 1 ".././storage/sinval.h" 1
 











# 1 ".././storage/ipci.h" 1
 













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

 
 
 




#pragma ident	"@(#)ipc.h	1.10	92/07/14 SMI"	





 

 



 



# 38 "/usr/include/sys/ipc.h" 3


struct ipc_perm {
	uid_t	uid;	 
	gid_t	gid;	 
	uid_t	cuid;	 
	gid_t	cgid;	 
	mode_t	mode;	 
	ulong	seq;	 
	key_t	key;	 
	long	pad[4];  
};

 
 





 


 













key_t ftok(const char *, int);







# 15 ".././storage/ipci.h" 2





# 1 ".././storage/ipc.h" 1
 
















 








typedef unsigned char   slock_t;



union semun {
    int val;
    struct semid_ds *buf;
    unsigned short *array;
};


typedef uint16	SystemPortAddress;


 













typedef uint32	IpcSemaphoreKey;		 
typedef int	IpcSemaphoreId;


  






typedef uint32  IpcMemoryKey;			 
typedef int	IpcMemoryId;

 


extern IpcSemaphoreId IpcSemaphoreCreate();
extern void IpcSemaphoreKill();
extern void IpcSemaphoreLock();
extern void IpcSemaphoreUnlock();
extern int IpcSemaphoreGetCount();
extern int IpcSemaphoreGetValue();
extern IpcMemoryId IpcMemoryCreate();
extern IpcMemoryId IpcMemoryIdGet();
extern char *IpcMemoryAttach();
extern void IpcMemoryKill();

extern int on_exitpg();

# 97 ".././storage/ipc.h"









typedef enum _LockId_ {
    BUFMGRLOCKID,
    LOCKLOCKID,
    OIDGENLOCKID,
    SHMEMLOCKID,
    BINDINGLOCKID,
    LOCKMGRLOCKID,
    SINVALLOCKID,


    SJCACHELOCKID,
    JBSPINLOCKID,



    MMCACHELOCKID,


    PROCSTRUCTLOCKID,
    FIRSTFREELOCKID
} _LockId_;



typedef struct slock {
    slock_t		locklock;
    unsigned char	flag;
    short		nshlocks;
    slock_t		shlock;
    slock_t		exlock;
    slock_t		comlock;
    struct slock	*next;
} SLock;
extern void CreateAndInitSLockMemory();
extern void AttachSLockMemory();
extern int CreateLock();
extern void RelinquishLock();
extern void SharedLock();
extern void SharedUnlock();
extern void ExclusiveLock();
extern void ExclusiveUnlock();
extern char  LockIsFree();
# 173 ".././storage/ipc.h"


# 1 ".././storage/execipc.h" 1
 










 



struct m1lock {
    int		count;

    slock_t	waitlock;

};
typedef struct m1lock M1Lock;

 



struct sharedcounter {
    int		count;

    slock_t	exlock;

};
typedef struct sharedcounter SharedCounter;

void SetParallelExecutorEnabled();
void SetNumberSlaveBackends();
void ExecImmediateReleaseSemaphore();
void Exec_I();
void Exec_P();
void Exec_V();
void I_Start();
void P_Start();
void V_Start();
void I_Finished();
void V_Finished();
void P_Finished();
void P_FinishedAbort();
void V_FinishedAbort();
void I_SharedMemoryMutex();
void P_SharedMemoryMutex();
void V_SharedMemoryMutex();
void I_Abort();
void P_Abort();
void V_Abort();
void ExecInitExecutorSemaphore();
void ExecSemaphoreOnExit();
void ExecCreateExecutorSharedMemory();
void ExecSharedMemoryOnExit();
void ExecLocateExecutorSharedMemory();
void ExecAttachExecutorSharedMemory();
void InitMWaitOneLock();
void MWaitOne();
void OneSignalM();

# 175 ".././storage/ipc.h" 2


# 20 ".././storage/ipci.h" 2


typedef uint32	IPCKey;




 








































 









 



extern
IPCKey
SystemPortAddressCreateMemoryKey  (
	SystemPortAddress	address
)  ;

 



extern
void
CreateSharedMemoryAndSemaphores  (
	IPCKey	key
)  ;

 



extern
void
AttachSharedMemoryAndSemaphores  (
	IPCKey	key
)  ;


# 13 ".././storage/sinval.h" 2


# 1 ".././storage/backendid.h" 1
 










 




typedef int16	BackendId;	 



typedef int32	BackendTag;	 



extern BackendId	MyBackendId;	 
extern BackendTag	MyBackendTag;	 


# 15 ".././storage/sinval.h" 2


 


extern
void
GenerateMyBackendId  (
	void
)  ;

 



void
CreateSharedInvalidationState  (
	IPCKey	key
)  ;

 



void
AttachSharedInvalidationState  (
	IPCKey	key
)  ;

 



void
InitSharedInvalidationState  (void)  ;

 







extern
void
RegisterSharedInvalid  (
    int	    cacheId,	
    Index   	hashIndex,
    ItemPointer	pointer
)  ;

 



extern
void
InvalidateSharedInvalid  (
    void    (*invalFunction)(),
    void    (*resetFunction)()
)  ;


# 25 "../utils/init/globals.c" 2

# 1 ".././storage/sinvaladt.h" 1
 















 
 



 






















 






typedef struct ProcState {
    	int 	limit;      	 
    	char  	resetState; 	 
	int	tag;		 
} ProcState;


typedef struct SISeg {
    IpcSemaphoreId  	criticalSectionSemaphoreId;  
    IpcSemaphoreId  	generalSemaphoreId; 	     
    Offset      startEntrySection;  	 
    Offset      endEntrySection;    	 
    Offset      startFreeSpace;	    	 
    Offset      startEntryChain;    	 
    Offset      endEntryChain;           
    int         numEntries;
    int         maxNumEntries;
    ProcState   procState[32      	    ];  
     
} SISeg;


typedef struct SharedInvalidData {
    int	    	    	cacheId;     
    Index   	    	hashIndex;
    ItemPointerData 	pointerData;
} SharedInvalidData;

typedef SharedInvalidData   *SharedInvalid;


typedef struct SISegEntry {
    SharedInvalidData	entryData;  	    	     
    char                 isfree;	    	    	     
    Offset  	    	next;	    	    	     
} SISegEntry;


    
typedef struct SISegOffsets {
    Offset  startSegment;   	    	 
    Offset  offsetToFirstEntry;          
    Offset  offsetToEndOfSegemnt;        
} SISegOffsets;


 
 
 
 






# 26 "../utils/init/globals.c" 2

# 1 ".././storage/lmgr.h" 1
 














# 1 ".././storage/lock.h" 1
 






# 1 ".././storage/spin.h" 1
 









 









typedef int SPINLOCK;




# 8 ".././storage/lock.h" 2

# 1 ".././storage/procq.h" 1
 


 




# 1 ".././storage/shmem.h" 1
 







 




 



typedef unsigned int SHMEM_OFFSET;



 


extern SHMEM_OFFSET ShmemBase;


 



 






 



 
typedef struct SHM_QUEUE {
  SHMEM_OFFSET	prev;
  SHMEM_OFFSET	next;
} SHM_QUEUE;

 
int *ShmemAlloc();
int *ShmemInitStruct();
 
 

typedef int TableID;
typedef char *Addr;

 
         

         

         


 
typedef struct {
         
  char          key[ (50) ];
         
  unsigned int  location;
         
  unsigned int  size;
} BindingEnt;

# 9 ".././storage/procq.h" 2



typedef struct procQueue {
  SHM_QUEUE	links;
  int		size;
} PROC_QUEUE;


# 9 ".././storage/lock.h" 2


# 1 ".././utils/hsearch.h" 1
 












 













 



typedef struct element {
	unsigned int next;	        
	int key;
} ELEMENT;

typedef unsigned int BUCKET_INDEX;
 
typedef BUCKET_INDEX *SEGMENT;
typedef unsigned int SEG_OFFSET;

typedef struct hashhdr {
	int bsize;	 
	int bshift;	 
	int dsize;	 
	int ssize;	 
	int sshift;	 
	int max_bucket;	 
	int high_mask;	 
	int low_mask;	 
	int ffactor;	 
	int nkeys;	 
	int nsegs;	 
	int keysize;	 
	int datasize;	 
	int max_dsize;    
	BUCKET_INDEX freeBucketIndex;
			 




} HHDR;

typedef struct htab {
  	HHDR		*hctl;	  
	int 		(*hash)();  
	char *	 	segbase;    

	SEG_OFFSET	*dir;	    
	int *		(*alloc)(); 
	 

} HTAB;

typedef struct hashctl {
	int bsize;	 
	int ssize;	 
	int dsize;	 
	int ffactor;	 
	int (*hash)();	 
	int keysize;	 
	int datasize;	 
	int max_size;   
	int *segbase;   
	int * (*alloc)();  
	int *dir;	 
	int *hctl;	 
} HASHCTL;

 











 


 


 
typedef enum { HASH_FIND, HASH_ENTER, HASH_REMOVE, HASH_FIND_SAVE, HASH_REMOVE_SAVED } HASHACTION;

 
HTAB *hash_create  (int nelem , HASHCTL *info , int flags )  ;
void hash_destroy  (HTAB *hashp )  ;
void hash_stats  (char *where , HTAB *hashp )  ;
int *hash_seq  (HTAB *hashp )  ;
int *hash_search  (
	HTAB *hashp,
	char *keyPtr,
	HASHACTION action,
	char   *foundPtr
)  ;

 

int string_hash  (char *key, int keysize )  ;
int tag_hash  (int *key, int keysize )  ;
int disk_hash  (char *key )  ;


# 11 ".././storage/lock.h" 2


extern SPINLOCK LockMgrLock;
typedef int MASK;




 












typedef int LOCK_TYPE;
typedef int LOCKT;
typedef int LockTableId;

 


 








 


typedef struct ltag {
  oid			relId;
  oid			dbId;
  ItemPointerData	tupleId;
} LOCKTAG;



 



















typedef struct lockctl {
  LockTableId	tableId;
  int		nLockTypes;
  int		conflictTab[6 ];
  int		prio[6 ];
  SPINLOCK	masterLock;
} LOCKCTL;

 





typedef struct ltable {
  HTAB		*lockHash;
  HTAB		*xidHash;
  LOCKCTL	*ctl;
} LOCKTAB;

 




























typedef struct XIDTAG {
  SHMEM_OFFSET		lock;
  int			pid;
  TransactionId		xid;
} XIDTAG;

typedef struct XIDLookupEnt {
   
  XIDTAG tag;

   
  int			holders[6 ];
  int			nHolding;
  SHM_QUEUE		queue;

} XIDLookupEnt;



 










typedef struct Lock {
   
  LOCKTAG		tag;

   
  int			mask;
  PROC_QUEUE		waitProcs;
  int			holders[6 ];
  int			nHolding;
  int			activeHolders[6 ];
  int			nActive;
} LOCK;










 


void InitLocks();
void GrantLock  (LOCK *lock, LOCKT lockt)  ;
void LockDisable  (int status)  ;
char  LockAcquire  (LockTableId tableId, LOCKTAG *lockName, LOCKT lockt)  ;
char  LockRelease  (LockTableId tableId, LOCKTAG *lockName, LOCKT lockt)  ;
char  LockReleaseAll  (LockTableId tableId, SHM_QUEUE *lockQueue)  ;
char  LockingDisabled();
LockTableId LockTabRename  (LockTableId tableId)  ;
int LockShmemSize();

int WaitOnLock  (
	LOCKTAB *ltable, 
	LockTableId tableId, 
	LOCK *lock, 
	LOCKT lockt
)  ;

int LockResolveConflicts  (
	LOCKTAB *ltable,
	LOCK *lock,
	LOCKT lockt,
	TransactionId xid,
	int pid
)  ;

LockTableId LockTabInit  (
	char *tabName, 
	MASK *conflictsP, 
	int *prioP, 
	int ntypes
)  ;


# 16 ".././storage/lmgr.h" 2



 



typedef struct LRelId {
    oid 	 relId;      
    oid      dbId;       
} LRelId;

typedef struct LockInfoData  {
        char                     initialized;
        LRelId                  lRelId;
        TransactionId           transactionIdData;
        uint16                  flags;
} LockInfoData;
typedef LockInfoData    *LockInfo;



 



extern
LRelId
RelationGetLRelId  (
	Relation	relation
)  ;

 



extern
oid 
LRelIdGetDatabaseId  (
	LRelId  lRelId
)  ;

 



extern
oid 
LRelIdGetRelationId  (
	LRelId	relation
)  ;

 



extern
char 
DatabaseIdIsMyDatabaseId  (
	oid 	databaseId
)  ;

 



extern
char 
LRelIdContainsMyDatabaseId  (
	LRelId	lRelId
)  ;

 



extern
void
RelationInitLockInfo  (
	Relation	relation
)  ;

 



extern
void
RelationDiscardLockInfo  (
	Relation	relation
)  ;

 



extern
void
RelationSetLockForDescriptorOpen  (
	Relation	relation
)  ;

 



extern
void
RelationSetLockForRead  (
	Relation	relation
)  ;

 



extern
void
RelationSetLockForWrite  (
	Relation	relation
)  ;

 



extern
void
RelationUnsetLockForRead  (
	Relation	relation
)  ;

 



extern
void
RelationUnsetLockForWrite  (
	Relation	relation
)  ;

 



extern
void
RelationSetLockForTupleRead  (
	Relation	relation,
	ItemPointer	itemPointer
)  ;

 



extern
void
RelationSetLockForReadPage  (
	Relation	relation,
	PagePartition	partition,
	ItemPointer	itemPointer
)  ;

 



extern
void
RelationSetLockForWritePage  (
	Relation	relation,
	PagePartition	partition,
	ItemPointer	itemPointer
)  ;

 



extern
void
RelationUnsetLockForReadPage  (
	Relation	relation,
	PagePartition	partition,
	ItemPointer	itemPointer
)  ;

 



extern
void
RelationUnsetLockForWritePage  (
	Relation	relation,
	PagePartition	partition,
	ItemPointer	itemPointer
)  ;

void
LRelIdAssign  (
	LRelId		*lRelId,
	oid 	dbId,
	oid 	relId
)  ;


# 27 "../utils/init/globals.c" 2

# 1 ".././tmp/master.h" 1



 




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

 
 
 




#pragma ident	"@(#)socket.h	1.13	92/07/14 SMI"	

 























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

 
 
 




#pragma ident	"@(#)netconfig.h	1.11	92/07/14 SMI"	








struct  netconfig {
	char		*nc_netid;	 
	unsigned long	nc_semantics;	 
	unsigned long	nc_flag;	 
	char		*nc_protofmly;	 
	char		*nc_proto;	 
	char		*nc_device;	 
	unsigned long	nc_nlookups;	 
	char		**nc_lookups;	 
	unsigned long	nc_unused[8];
};

typedef struct {
	struct netconfig **nc_head;
	struct netconfig **nc_curr;
} NCONF_HANDLE;

 








 







 



























 










extern void		*setnetconfig(void);
extern int		endnetconfig(void *);
extern struct netconfig	*getnetconfig(void *);
extern struct netconfig	*getnetconfigent(char *);
extern void		freenetconfigent(struct netconfig *);
extern void		*setnetpath(void);
extern int		endnetpath(void *);
extern struct netconfig *getnetpath(void *);








# 37 "/usr/include/sys/socket.h" 2 3







 










 








 












 





 












 


struct	linger {
	int	l_onoff;		 
	int	l_linger;		 
};

 




 



























 



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

 



struct sockproto {
	u_short	sp_family;		 
	u_short	sp_protocol;		 
};

 




























 




 


struct msghdr {
	caddr_t	msg_name;		 
	int	msg_namelen;		 
	struct	iovec *msg_iov;		 
	int	msg_iovlen;		 
	caddr_t	msg_accrights;		 
	int	msg_accrightslen;
};







 






struct opthdr {
	long	level;		 
	long	name;		 
	long	len;		 
};




 



struct optdefault {
	int	optname;	 
	char	*val;		 
	int	len;		 
};

 



struct opproc {
	int	level;		 
	int	(*func)();	 
};

 


struct socksysreq {
	int	args[7];
};

 




struct socknewproto {
	int	family;	 
	int	type;	 
	int	proto;	 
	dev_t	dev;	 
	int	flags;	 
};


 




























extern int accept(int, struct sockaddr *, int *);
extern int bind(int, struct sockaddr *, int);
extern int connect(int, struct sockaddr *, int);
extern int getpeername(int, struct sockaddr *, int *);
extern int getsockname(int, struct sockaddr *, int *);
extern int getsockopt(int, int, int, char *, int *);
extern int listen(int, int);
extern int recv(int, char *, int, int);
extern int recvfrom(int, char *, int, int, struct sockaddr *, int *);
extern int send(int, const char *, int, int);
extern int sendto(int, const char *, int, int, struct sockaddr *, int);
extern int setsockopt(int, int, int, const char *, int);
extern int socket(int, int, int);
extern int recvmsg(int, struct msghdr *, int);
extern int sendmsg(int, struct msghdr *, int);
extern int shutdown(int, int);
extern int socketpair(int, int, int, int *);
# 327 "/usr/include/sys/socket.h" 3








# 9 ".././tmp/master.h" 2

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

 











 











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

 
 
 




#pragma ident	"@(#)stream.h	1.31	92/10/01 SMI"	

 


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

 
 
 

 

























#pragma ident	"@(#)vnode.h	1.32	93/02/03 SMI"	




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

 
 
 

 

























#pragma ident	"@(#)cred.h	1.13	92/07/14 SMI"	







 





typedef struct cred {
	ushort	cr_ref;			 
	ushort	cr_ngroups;		 
	uid_t	cr_uid;			 
	gid_t	cr_gid;			 
	uid_t	cr_ruid;		 
	gid_t	cr_rgid;		 
	uid_t	cr_suid;		 
	gid_t	cr_sgid;		 
	gid_t	cr_groups[1];		 
} cred_t;

# 100 "/usr/include/sys/cred.h" 3







# 39 "/usr/include/sys/vnode.h" 2 3

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

 
 
 




#pragma ident	"@(#)uio.h	1.13	92/07/14 SMI"	







 






typedef struct iovec {
	caddr_t	iov_base;
	int	iov_len;
} iovec_t;

 


typedef enum uio_seg { UIO_USERSPACE, UIO_SYSSPACE, UIO_USERISPACE } uio_seg_t;

typedef struct uio {
	iovec_t	*uio_iov;	 
	int	uio_iovcnt;	 
	lloff_t	_uio_offset;	 
	uio_seg_t uio_segflg;	 
	short	uio_fmode;	 
	lldaddr_t _uio_limit;	 
	int	uio_resid;	 
} uio_t;







 


typedef enum uio_rw { UIO_READ, UIO_WRITE } uio_rw_t;

# 65 "/usr/include/sys/uio.h" 3




extern ssize_t readv(int, struct iovec *, int);
extern ssize_t writev(int, const struct iovec *, int);













# 40 "/usr/include/sys/vnode.h" 2 3






 





 



typedef enum vtype {
	VNON	= 0,
	VREG	= 1,
	VDIR	= 2,
	VBLK	= 3,
	VCHR	= 4,
	VLNK	= 5,
	VFIFO	= 6,
	VXNAM	= 7,
	VBAD	= 8
} vtype_t;

 







typedef struct vnode {
	kmutex_t	v_lock;			 
	u_short		v_flag;			 
	u_long		v_count;		 
	struct vfs	*v_vfsmountedhere;	 
	struct vnodeops	*v_op;			 
	struct vfs	*v_vfsp;		 
	struct stdata	*v_stream;		 
	struct page	*v_pages;		 
	enum vtype	v_type;			 
	dev_t		v_rdev;			 
	caddr_t		v_data;			 
	struct filock	*v_filocks;		 
	kcondvar_t	v_cv;			 
} vnode_t;

 









 





 




 

 

 


typedef struct vnodeops {
	int	(*vop_open)();
	int	(*vop_close)();
	int	(*vop_read)();
	int	(*vop_write)();
	int	(*vop_ioctl)();
	int	(*vop_setfl)();
	int	(*vop_getattr)();
	int	(*vop_setattr)();
	int	(*vop_access)();
	int	(*vop_lookup)();
	int	(*vop_create)();
	int	(*vop_remove)();
	int	(*vop_link)();
	int	(*vop_rename)();
	int	(*vop_mkdir)();
	int	(*vop_rmdir)();
	int	(*vop_readdir)();
	int	(*vop_symlink)();
	int	(*vop_readlink)();
	int	(*vop_fsync)();
	void	(*vop_inactive)();
	int	(*vop_fid)();
	void	(*vop_rwlock)();
	void	(*vop_rwunlock)();
	int	(*vop_seek)();
	int	(*vop_cmp)();
	int	(*vop_frlock)();
	int	(*vop_space)();
	int	(*vop_realvp)();
	int	(*vop_getpage)();
	int	(*vop_putpage)();
	int	(*vop_map)();
	int	(*vop_addmap)();
	int	(*vop_delmap)();
	int	(*vop_poll)();
	int	(*vop_dump)();
	int	(*vop_pathconf)();
	int	(*vop_pageio)();
} vnodeops_t;

extern	int setswappingon();
extern	int setswappingoff();



























































 




 




typedef struct vattr {
	long		va_mask;	 
	vtype_t		va_type;	 
	mode_t		va_mode;	 
	uid_t		va_uid;		 
	gid_t		va_gid;		 
	dev_t		va_fsid;	 
	ino_t		va_nodeid;	 
	nlink_t		va_nlink;	 
	u_long		va_size0;	 
	u_long		va_size;	 
	timestruc_t	va_atime;	 
	timestruc_t	va_mtime;	 
	timestruc_t	va_ctime;	 
	dev_t		va_rdev;	 
	u_long		va_blksize;	 
	u_long		va_nblocks;	 
	u_long		va_vcode;	 
} vattr_t;

 






























 






 









 



 







 

 


enum rm		{ RMFILE, RMDIRECTORY };	 
enum symfollow	{ NO_FOLLOW, FOLLOW };		 
enum vcexcl	{ NONEXCL, EXCL };		 
enum create	{ CRCREAT, CRMKNOD, CRMKDIR, CRCORE };  

typedef enum rm		rm_t;
typedef enum symfollow	symfollow_t;
typedef enum vcexcl	vcexcl_t;
typedef enum create	create_t;

 




extern int vn_open(char *, enum uio_seg, int, int, struct vnode **,
    enum create);
extern int vn_create(char *, enum uio_seg, struct vattr *, enum vcexcl, int,
    struct vnode **, enum create);
extern int vn_rdwr(enum uio_rw, struct vnode *, caddr_t, int, off_t,
    enum uio_seg, int, long, cred_t *, int *);
extern int vn_close(struct vnode *, int, int, int, struct cred *);
extern void vn_rele(struct vnode *);
extern int vn_link(char *, char *, enum uio_seg);
extern int vn_rename(char *, char *, int);
extern int vn_remove(char *, enum uio_seg, enum rm);
extern vnode_t *specvp(struct vnode *, dev_t, vtype_t, struct cred *);
extern vnode_t *makespecvp(dev_t, vtype_t);

# 358 "/usr/include/sys/vnode.h" 3


















# 385 "/usr/include/sys/vnode.h" 3

 







 






 






# 424 "/usr/include/sys/vnode.h" 3







# 16 "/usr/include/sys/stream.h" 2 3

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

 
 
 




#pragma ident	"@(#)poll.h	1.14	92/12/09 SMI"	





 



typedef struct pollfd {
	int fd;				 
	short events;			 
	short revents;			 
} pollfd_t;

 












 







# 113 "/usr/include/sys/poll.h" 3



int poll(struct pollfd *, unsigned long, int);







# 17 "/usr/include/sys/stream.h" 2 3

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

 
 
 




#pragma ident	"@(#)strmdep.h	1.8	92/07/14 SMI"	





 




 





 





 










# 18 "/usr/include/sys/stream.h" 2 3








 


























 



struct	queue {
	struct	qinit	*q_qinfo;	 
	struct	msgb	*q_first;	 
	struct	msgb	*q_last;	 
	struct	queue	*q_next;	 
	struct	queue	*q_link;	 
	void 		*q_ptr;		 
	ulong		q_count;	 
	ulong		q_flag;		 
	long		q_minpsz;	 
					 
	long		q_maxpsz;	 
					 
	ulong		q_hiwat;	 
	ulong		q_lowat;	 
	struct qband	*q_bandp;	 
	kmutex_t	q_lock;		 
	struct stdata 	*q_stream;	 
	struct	syncq	*q_syncq;	 
	long		q_pad2[2];	 
	unsigned char	q_nband;	 
	kcondvar_t	q_wait;		 
	kcondvar_t	q_sync;		 
};

typedef struct queue queue_t;

 














					 

					 

					 



					 



 



struct qband {
	struct qband	*qb_next;	 
	ulong		qb_count;	 
	struct msgb	*qb_first;	 
	struct msgb	*qb_last;	 
	ulong		qb_hiwat;	 
	ulong		qb_lowat;	 
	ulong		qb_flag;	 
};

typedef struct qband qband_t;

 






 




 


typedef enum qfields {
	QHIWAT	= 0,		 
	QLOWAT	= 1,		 
	QMAXPSZ	= 2,		 
	QMINPSZ	= 3,		 
	QCOUNT	= 4,		 
	QFIRST	= 5,		 
	QLAST	= 6,		 
	QFLAG	= 7,		 
	QBAD	= 8
} qfields_t;

 


struct module_info {
	ushort	mi_idnum;		 
	char 	*mi_idname;		 
	long	mi_minpsz;		 
	long	mi_maxpsz;		 
	ulong	mi_hiwat;		 
	ulong 	mi_lowat;		 
};

 


struct	qinit {
	int	(*qi_putp)();		 
	int	(*qi_srvp)();		 
	int	(*qi_qopen)();		 
	int	(*qi_qclose)();		 
	int	(*qi_qadmin)();		 
	struct module_info *qi_minfo;	 
	struct module_stat *qi_mstat;	 
};

 



struct streamtab {
	struct qinit *st_rdinit;
	struct qinit *st_wrinit;
	struct qinit *st_muxrinit;
	struct qinit *st_muxwinit;
};

 



struct linkblk {
	queue_t *l_qtop;	 
				 
	queue_t *l_qbot;	 
	int	l_index;	 
};

 


struct free_rtn {
	void (*free_func)();
	char *free_arg;
	struct	free_rtn	*free_next;
	int free_unsafe;	 
};

 



 









struct datab {
	struct	free_rtn	*db_frtnp;
	unsigned char	*db_base;
	unsigned char	*db_lim;
	unsigned char	db_ref;
	unsigned char	db_type;
	unsigned char	db_refmin;
	unsigned int	db_size;
	char		filler[8];
	long		db_reserved;	 
};

 



struct	msgb {
	struct	msgb	*b_next;
	struct  msgb	*b_prev;
	struct	msgb	*b_cont;
	unsigned char	*b_rptr;
	unsigned char	*b_wptr;
	struct datab 	*b_datap;
	unsigned char	b_band;
	unsigned short	b_flag;
	queue_t		*b_queue;	 
};

typedef struct msgb mblk_t;
typedef struct datab dblk_t;
typedef struct free_rtn frtn_t;


 




					 



 



 





 












 



















 


 





 



struct iocblk {
	int 	ioc_cmd;		 
	cred_t	*ioc_cr;		 
	uint	ioc_id;			 
	uint	ioc_count;		 
	int	ioc_error;		 
	int	ioc_rval;		 
	long	ioc_filler[4];		 
};





 



struct copyreq {
	int	cq_cmd;			 
	cred_t	*cq_cr;			 
	uint	cq_id;			 
	caddr_t	cq_addr;		 
	uint	cq_size;		 
	int	cq_flag;		 
	mblk_t *cq_private;		 
	long	cq_filler[4];		 
};




 


					 

					 
					 

 



struct copyresp {
	int	cp_cmd;			 
	cred_t	*cp_cr;			 
	uint	cp_id;			 
	caddr_t	cp_rval;		 
					 
	uint	cp_pad1;
	int	cp_pad2;
	mblk_t *cp_private;		 
	long	cp_filler[4];
};




 




struct stroptions {
	ulong	so_flags;		 
	short	so_readopt;		 
	ushort	so_wroff;		 
	long	so_minpsz;		 
	long	so_maxpsz;		 
	ulong	so_hiwat;		 
	ulong	so_lowat;		 
	unsigned char so_band;		 
};

 





















 





struct str_evmsg {
	long		 sv_event;	 
	vnode_t		*sv_vp;		 
	long		 sv_eid;	 
	long		 sv_evpri;	 
	long		 sv_flags;	 
	uid_t		 sv_uid;	 
	pid_t		 sv_pid;	 
	hostid_t	 sv_hostid;	 
	long		 sv_pad[4];	 
};

 



 




 







 






 




 





 




 





 





 




 



 







 




 








 






 









 




 




 




 




extern mblk_t *allocb(int, ...);
extern mblk_t *esballoc(unsigned char *, int, int, frtn_t *);
extern int testb(int, uint);
extern int bufcall(uint, int, void (*)(), long);
extern int esbbcall(int, void (*)(), long);
extern void freeb(struct msgb *);
extern void freemsg(mblk_t *);
extern mblk_t *dupb(mblk_t *);
extern mblk_t *dupmsg(mblk_t *);
extern mblk_t *copyb(mblk_t *);
extern mblk_t *copymsg(mblk_t *);
extern void linkb(mblk_t *, mblk_t *);
extern mblk_t *unlinkb(mblk_t *);
extern mblk_t *rmvb(mblk_t *, mblk_t *);
extern int pullupmsg(struct msgb *, int);
extern mblk_t *msgpullup(struct msgb *, int);
extern int adjmsg(struct msgb *, int);
extern int msgdsize(struct msgb *);
extern mblk_t *getq(queue_t *);
extern void rmvq(queue_t *, mblk_t *);
extern void flushq(queue_t *, int);
extern void flushband(queue_t *, unsigned char, int);
extern int canput(queue_t *);
extern int bcanput(queue_t *, unsigned char);
extern int canputnext(queue_t *);
extern int bcanputnext(queue_t *, unsigned char);
extern int putq(queue_t *, mblk_t *);
extern int putbq(queue_t *, mblk_t *);
extern int insq(queue_t *, mblk_t *, mblk_t *);
extern int putctl(queue_t *, int);
extern int putctl1(queue_t *, int, int);
extern int putnextctl(queue_t *, int);
extern int putnextctl1(queue_t *, int, int);
extern queue_t *backq(queue_t *);
extern void qreply(queue_t *, mblk_t *);
extern void qenable(queue_t *);
extern int qsize(queue_t *);
extern void noenable(queue_t *);
extern void enableok(queue_t *);
extern int strqset(queue_t *, qfields_t, unsigned char, long);
extern int strqget(queue_t *, qfields_t, unsigned char, long *);
extern void unbufcall(int);
extern void qprocson(queue_t *);
extern void qprocsoff(queue_t *);
extern void freezestr(queue_t *);
extern void unfreezestr(queue_t *);

# 654 "/usr/include/sys/stream.h" 3


 


extern int nstrpush;			 






# 27 "/usr/include/netinet/in.h" 2 3

# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/byteorder.h" 1 3



 






















static  __inline__ unsigned long htonl (unsigned long);
static  __inline__ unsigned short htons (unsigned int);
static  __inline__ unsigned long ntohl (unsigned long);
static  __inline__ unsigned short ntohs (unsigned int);


# 94 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/sys/byteorder.h" 3


 

static  __inline__ unsigned long
htonl (unsigned long __arg)
{
  return __arg;
}

 

static  __inline__ unsigned short
htons (unsigned int __arg)
{
  return __arg;
}



 

static  __inline__ unsigned long
ntohl (unsigned long __arg)
{
  return htonl (__arg);
}

 

static  __inline__ unsigned short
ntohs (unsigned int __arg)
{
  return htons (__arg);
}





# 28 "/usr/include/netinet/in.h" 2 3


 


















 















 








 







 






 








 






 






struct in_addr {
	union {
		struct { u_char s_b1, s_b2, s_b3, s_b4; } S_un_b;
		struct { u_short s_w1, s_w2; } S_un_w;
		u_long S_addr;
	} S_un;






};

 








































 






 


struct sockaddr_in {
	short	sin_family;
	u_short	sin_port;
	struct	in_addr sin_addr;
	char	sin_zero[8];
};

 



















 


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

 



# 226 "/usr/include/netinet/in.h" 3







# 10 ".././tmp/master.h" 2

# 1 "../port/svr4/sys/wait.h" 1
 




union wait {
	int w_status;
	struct {
		unsigned short w_fill1:16;
		unsigned short w_Retcode:8;
		unsigned short w_Coredump:1;
		unsigned short w_Termsig:7;
		} w_T;
	struct {
		unsigned short w_Fill2:16;
		unsigned short w_Stopsig:8;
		unsigned short w_Stopval:8;
		} w_S;
	};






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

 
 
 




#pragma ident	"@(#)wait.h	1.11	92/07/14 SMI"	




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

 
 
 




#pragma ident	"@(#)siginfo.h	1.18	92/07/14 SMI"	







 










 




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

 
 
 




#pragma ident	"@(#)machsig.h	1.9	92/07/14 SMI"
 





 



 









 













 






 













 







 















# 35 "/usr/include/sys/siginfo.h" 2 3


 




 







 











 











 









typedef struct siginfo {

	int	si_signo;			 
	int 	si_code;			 
	int	si_errno;			 

	union {

		int	_pad[	((128  / sizeof (int)) - 3) ];		 

		struct {			 
			pid_t	_pid;		 
			union {
				struct {
					uid_t	_uid;
				} _kill;
				struct {
					clock_t _utime;
					int	_status;
					clock_t _stime;
				} _cld;
			} _pdata;
		} _proc;

		struct {	 
			caddr_t	_addr;		 
			int	_trapno;	 
		} _fault;

		struct {			 
		 
			int	_fd;		 
			long	_band;
		} _file;

		struct {			 
			caddr_t	_faddr;		 
			timestruc_t _tstamp;	 
			short	_syscall;	 
			char	_nsysarg;	 
			char	_fault;		 
			long	_sysarg[8];	 
			long	_mstate[17];	 
		} _prof;

	} _data;

} siginfo_t;

 




typedef struct k_siginfo {

	int	si_signo;			 
	int 	si_code;			 
	int	si_errno;			 

	union {
		struct {			 
			pid_t	_pid;		 
			union {
				struct {
					uid_t	_uid;
				} _kill;
				struct {
					clock_t _utime;
					int	_status;
					clock_t _stime;
				} _cld;
			} _pdata;
		} _proc;

		struct {	 
			caddr_t	_addr;		 
			int	_trapno;	 
		} _fault;

		struct {			 
		 
			int	_fd;		 
			long	_band;
		} _file;

		struct {			 
			caddr_t	_faddr;		 
			timestruc_t _tstamp;	 
			short	_syscall;	 
			char	_nsysarg;	 
			char	_fault;		 
			 
			 
			 
		} _prof;

	} _data;

} k_siginfo_t;

typedef struct sigqueue {
	struct sigqueue		*sq_next;
	struct k_siginfo	sq_info;
} sigqueue_t;


























# 16 "/usr/include/sys/wait.h" 2 3

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

 
 
 




#pragma ident	"@(#)procset.h	1.13	92/07/14 SMI"	





 










 




typedef enum idtype {
	P_PID,		 
	P_PPID,		 
	P_PGID,		 
			 
	P_SID,		 
	P_CID,		 
	P_UID,		 
	P_GID,		 
	P_ALL,		 
	P_LWPID		 
} idtype_t;


 




typedef enum idop {
	POP_DIFF,	 
			 
			 
	POP_AND,	 
			 
			 
	POP_OR,		 
			 
			 
	POP_XOR		 
			 
			 
} idop_t;


 




typedef struct procset {
	idop_t		p_op;	 
				 
				 
				 

	idtype_t	p_lidtype;
				 
				 
	id_t		p_lid;	 

	idtype_t	p_ridtype;
				 
				 
	id_t		p_rid;	 
} procset_t;


 










# 121 "/usr/include/sys/procset.h" 3







# 17 "/usr/include/sys/wait.h" 2 3







 


















 

































extern pid_t wait(int *);
extern pid_t waitpid(pid_t, int *, int);

extern int waitid(idtype_t, id_t, siginfo_t *, int);


# 91 "/usr/include/sys/wait.h" 3








# 26 "../port/svr4/sys/wait.h" 2



# 11 ".././tmp/master.h" 2


# 1 "../port/svr4/sys/resource.h" 1
 





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

 
 
 




#pragma ident	"@(#)times.h	1.9	92/08/18 SMI"	







 


struct tms {
	clock_t	tms_utime;		 
	clock_t	tms_stime;		 
	clock_t	tms_cutime;		 
	clock_t	tms_cstime;		 
};



clock_t times(struct tms *);










# 7 "../port/svr4/sys/resource.h" 2


# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/limits.h" 1 3
 


 





 
# 1 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/syslimits.h" 1 3
 
 

 
 
 




#pragma ident	"@(#)limits.h	1.14	92/07/14 SMI"	





 


























 





























 

























				 
















						 



						 

















 






































 













# 11 "/local/gcc/lib/gcc-lib/sun4os5/2.4.5/include/limits.h" 2 3





 



 



 



 





 



 












 





 



 





 



 






 




 





 






 



# 9 "../port/svr4/sys/resource.h" 2

struct rusage {
	struct timeval ru_utime;
	struct timeval ru_stime;
	}




# 13 ".././tmp/master.h" 2


 
 
 
 






struct	bcommon {
	char	user[16];	 
	short	pid;		 
	short	debuglvl;	 
	long	key;		 
};

struct	backend	{
	struct	bcommon	bcomm;	 
	char	database[64];	 
	char	globdata[64];	 
	char	tty[16];	 
	char	options[16];	 
	char	dblog[64];	 
	char	back[64];	 
	struct	sockaddr_in sin;  
	struct	rusage	ruse;	 
	union	wait	ecode;	 
	struct	backend	*next, *last;
};

struct	dpacket	{
	long	len;		 
	long	key;		 
	short	pid;		 
	short	type;		 
	char	data[1000];	 
};


# 28 "../utils/init/globals.c" 2

# 1 ".././utils/log.h" 1
 































extern int	Cline;
extern char	*Cfile;
extern int	ElogDebugIndentLevel;









void
EnableELog  (int enable)  ;

 



extern
void
elog  ( int, ... )  ;

extern
int
dlog  (long lvl, char *mess)  ;


# 29 "../utils/init/globals.c" 2


# 1 ".././catalog/catname.h" 1
 







 






extern Name	AggregateRelationName;
extern Name	AccessMethodRelationName;
extern Name	AccessMethodOperatorRelationName;
extern Name	AccessMethodProcedureRelationName;
extern Name	AttributeRelationName;
extern Name	DatabaseRelationName;
extern Name	DefaultsRelationName;
extern Name	DemonRelationName;
extern Name	GroupRelationName;
extern Name	IndexRelationName;
extern Name	InheritProcedureRelationName;
extern Name	InheritsRelationName;
extern Name	InheritancePrecidenceListRelationName;
extern Name	LanguageRelationName;
extern Name	ListenerRelationName;
extern Name     LargeObjectAssocRelationName;
extern Name	ListenerRelationName;
extern Name	LogRelationName;
extern Name	MagicRelationName;
extern Name     NamingRelationName;
extern Name	OperatorClassRelationName;
extern Name	OperatorRelationName;
extern Name	ProcedureArgumentRelationName;
extern Name	PlatterRelationName;
extern Name	PlatterMapRelationName;
extern Name	ProcedureRelationName;
extern Name	Prs2PlansRelationName;
extern Name	Prs2RuleRelationName;
extern Name	Prs2StubRelationName;
extern Name	RelationRelationName;
extern Name	RewriteRelationName;
extern Name	ServerRelationName;
extern Name	StatisticRelationName;
extern Name	TimeRelationName;
extern Name	TypeRelationName;
extern Name	UserRelationName;
extern Name	VariableRelationName;
extern Name	VersionRelationName;

extern Name	SharedSystemRelationNames[10];


 



extern
char 
NameIsSystemRelationName  (
	Name	name
)  ;

 



extern
char 
NameIsSharedSystemRelationName  (
	Name	name
)  ;


# 31 "../utils/init/globals.c" 2


int		Portfd;
int		Noversion = 0;

char		OutputFileName[128 ] = "";

BackendId	MyBackendId;
BackendTag	MyBackendTag;
NameData	MyDatabaseNameData;
Name		MyDatabaseName = &MyDatabaseNameData;
char 		MyDatabaseIdIsInitialized = ((char) 0) ;
oid 	MyDatabaseId = 0 ;
char 		TransactionInitWasProcessed = ((char) 0) ;

char 		IsUnderPostmaster = ((char) 0) ;
char 		IsPostmaster = ((char) 0) ;

short		DebugLvl = 0;

