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


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

gcc Internal compiler error


A gcc internal compiler error has been found in OpenBSD while doing:
	(cd /usr/src ; make build)



This bug report is filed according to the requests in:
	http://www.GNU.org/software/gcc/bugs.html



gcc version:
------------

Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd2.8/2.95.3/specs
gcc version 2.95.3 20010112 (prerelease)



System:
-------

OpenBSD 2.8	-current;
cvs up		as of Feb 27 or 28, 2001



Command line:
-------------

cc -O2   -I/usr/src/usr.sbin/mopd/moptrace -I/usr/src/usr.sbin/mopd/moptrace/.. -I/usr/src/usr.sbin/mopd/moptrace/../common   -c /usr/src/usr.sbin/mopd/moptrace/../common/device.c



Compiler Output:
----------------

/usr/src/usr.sbin/mopd/moptrace/../common/device.c: In function `deviceInitAll':
/usr/src/usr.sbin/mopd/moptrace/../common/device.c:345: Internal compiler error in `reload', at reload1.c:1061
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
*** Error code 1

Stop in /usr/src/usr.sbin/mopd/moptrace.
*** Error code 1

Stop in /usr/src/usr.sbin/mopd.
*** Error code 1

Stop in /usr/src/usr.sbin.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src (line 79 of Makefile).



Preprocessed File:
------------------

device.i is attached



gcc Options when gcc Built:
---------------------------

Unknown, but not changed from OpenBSD 2.8 -current
I couldn't figure this out with a cursory look.  Sorry.



-- 
PGP Key Fingerprint    02 6A 4F DE DD 77 A1 8B   21 D9 81 EB ED C8 3A DC
We are upping our standards ... so up yours.        Ken Hendrickson N8KH
# 1 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c"
 

 





























static char rcsid[] = "$OpenBSD: device.c,v 1.4 2000/02/20 17:45:33 bitblt Exp $";


# 1 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 1
 

 


































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

 









































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

 










































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

 





































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

 








































 







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

 

























# 39 "/usr/include/machine/cdefs.h" 3






# 53 "/usr/include/sys/cdefs.h" 2 3










 






















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


 






















 






# 42 "/usr/include/machine/types.h" 2 3



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

typedef struct label_t {
	int val[6];
} label_t;


typedef	unsigned long	vm_offset_t;
typedef	unsigned long	vm_size_t;

typedef unsigned long	vaddr_t;
typedef unsigned long	paddr_t;
typedef unsigned long	vsize_t;
typedef unsigned long	psize_t;

 




typedef	signed  char		   int8_t;
typedef	unsigned char		 u_int8_t;
typedef	unsigned char		  uint8_t;
typedef	short			  int16_t;
typedef	unsigned short		u_int16_t;
typedef	unsigned short		 uint16_t;
typedef	int			  int32_t;
typedef	unsigned int		u_int32_t;
typedef	unsigned int		 uint32_t;
 
typedef	long long		  int64_t;
 
typedef	unsigned long long	u_int64_t;
 
typedef	unsigned long long	 uint64_t;

typedef int32_t			register_t;




# 48 "/usr/include/sys/types.h" 2 3


# 1 "/usr/include/machine/ansi.h" 1 3
 
 

 





































 

















 

















 






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

# 1 "/usr/include/machine/endian.h" 1 3
 

 


























































 





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

 




























 







































# 83 "/usr/include/sys/endian.h" 3


 






























# 125 "/usr/include/sys/endian.h" 3

 
u_int32_t	htobe32  (u_int32_t)  ;
u_int16_t	htobe16  (u_int16_t)  ;
u_int32_t	betoh32  (u_int32_t)  ;
u_int16_t	betoh16  (u_int16_t)  ;

u_int32_t	htole32  (u_int32_t)  ;
u_int16_t	htole16  (u_int16_t)  ;
u_int32_t	letoh32  (u_int32_t)  ;
u_int16_t	letoh16  (u_int16_t)  ;
 



 



















# 180 "/usr/include/sys/endian.h" 3














# 68 "/usr/include/machine/endian.h" 2 3



# 51 "/usr/include/sys/types.h" 2 3



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

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


typedef	u_int64_t	u_quad_t;	 
typedef	int64_t		quad_t;
typedef	quad_t *	qaddr_t;

typedef	char *		caddr_t;	 
typedef	int32_t		daddr_t;	 
typedef	int32_t		dev_t;		 
typedef	u_int32_t	fixpt_t;	 
typedef	u_int32_t	gid_t;		 
typedef	u_int32_t	ino_t;		 
typedef	long		key_t;		 
typedef	u_int16_t	mode_t;		 
typedef	u_int16_t	nlink_t;	 
typedef	int32_t		pid_t;		 
typedef quad_t		rlim_t;		 
typedef	int32_t		segsz_t;	 
typedef	int32_t		swblk_t;	 
typedef	u_int32_t	uid_t;		 
typedef	u_int32_t	useconds_t;	 
typedef	int32_t		suseconds_t;	 

 






typedef u_int32_t	in_addr_t;	 
typedef u_int16_t	in_port_t;	 
typedef u_int8_t	sa_family_t;	 
typedef u_int32_t	socklen_t;	 


typedef	unsigned long 	clock_t;




typedef	unsigned int 	size_t;




typedef	int 	ssize_t;




typedef	int 	time_t;




typedef	int 	clockid_t;




typedef	int 	timer_t;




typedef	long long 	off_t;



 







 
off_t	 lseek  (int, off_t, int)  ;
int	 ftruncate  (int, off_t)  ;
int	 truncate  (const char *, off_t)  ;
 




 








 









typedef int32_t	fd_mask;






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












# 205 "/usr/include/sys/types.h" 3




# 46 "/usr/include/stdio.h" 2 3


























typedef off_t fpos_t;		 

 





 
struct __sbuf {
	unsigned char *_base;
	int	_size;
};

 























typedef	struct __sFILE {
	unsigned char *_p;	 
	int	_r;		 
	int	_w;		 
	short	_flags;		 
	short	_file;		 
	struct	__sbuf _bf;	 
	int	_lbfsize;	 

	 
	void	*_cookie;	 
	int	(*_close)  (void *)  ;
	int	(*_read)   (void *, char *, int)  ;
	fpos_t	(*_seek)   (void *, fpos_t, int)  ;
	int	(*_write)  (void *, const char *, int)  ;

	 
	struct	__sbuf _ub;	 
	unsigned char *_up;	 
	int	_ur;		 

	 
	unsigned char _ubuf[3];	 
	unsigned char _nbuf[1];	 

	 
	struct	__sbuf _lb;	 

	 
	int	_blksize;	 
	fpos_t	_offset;	 
} FILE;

 
extern FILE __sF[];
 





	 












 















 







 




















 


 
void	 clearerr  (FILE *)  ;
int	 fclose  (FILE *)  ;
int	 feof  (FILE *)  ;
int	 ferror  (FILE *)  ;
int	 fflush  (FILE *)  ;
int	 fgetc  (FILE *)  ;
int	 fgetpos  (FILE *, fpos_t *)  ;
char	*fgets  (char *, int, FILE *)  ;
FILE	*fopen  (const char *, const char *)  ;
int	 fprintf  (FILE *, const char *, ...)  ;
int	 fputc  (int, FILE *)  ;
int	 fputs  (const char *, FILE *)  ;
size_t	 fread  (void *, size_t, size_t, FILE *)  ;
FILE	*freopen  (const char *, const char *, FILE *)  ;
int	 fscanf  (FILE *, const char *, ...)  ;
int	 fseek  (FILE *, long, int)  ;
int	 fseeko  (FILE *, off_t, int)  ;
int	 fsetpos  (FILE *, const fpos_t *)  ;
long	 ftell  (FILE *)  ;
off_t	 ftello  (FILE *)  ;
size_t	 fwrite  (const void *, size_t, size_t, FILE *)  ;
int	 getc  (FILE *)  ;
int	 getchar  (void)  ;
char	*gets  (char *)  ;



extern int sys_nerr;			 
extern char *sys_errlist[];

void	 perror  (const char *)  ;
int	 printf  (const char *, ...)  ;
int	 putc  (int, FILE *)  ;
int	 putchar  (int)  ;
int	 puts  (const char *)  ;
int	 remove  (const char *)  ;
int	 rename   (const char *, const char *)  ;
void	 rewind  (FILE *)  ;
int	 scanf  (const char *, ...)  ;
void	 setbuf  (FILE *, char *)  ;
int	 setvbuf  (FILE *, char *, int, size_t)  ;
int	 sprintf  (char *, const char *, ...)  ;
int	 sscanf  (const char *, const char *, ...)  ;
FILE	*tmpfile  (void)  ;
char	*tmpnam  (char *)  ;
int	 ungetc  (int, FILE *)  ;
int	 vfprintf  (FILE *, const char *, char * )  ;
int	 vprintf  (const char *, char * )  ;
int	 vsprintf  (char *, const char *, char * )  ;
 

 






 
char	*ctermid  (char *)  ;
char	*ctermid_r  (char *)  ;
char	*cuserid  (char *)  ;
FILE	*fdopen  (int, const char *)  ;
int	 fileno  (FILE *)  ;
void	 flockfile  (FILE *)  ;
int	 ftrylockfile  (FILE *)  ;
void	 funlockfile  (FILE *)  ;
void	 _flockfile_debug  (FILE *, const char *, int)  ;
int	 getc_unlocked  (FILE *)  ;
int	 putc_unlocked  (int, FILE *)  ;
int	 getchar_unlocked  (void)  ;
int	 putchar_unlocked  (int)  ;
 














 



 
int	 asprintf  (char **, const char *, ...)  
		__attribute__((__format__ (printf, 2, 3)));
char	*fgetln  (FILE *, size_t *)  ;
int	 fpurge  (FILE *)  ;
int	 getw  (FILE *)  ;
int	 pclose  (FILE *)  ;
FILE	*popen  (const char *, const char *)  ;
int	 putw  (int, FILE *)  ;
void	 setbuffer  (FILE *, char *, int)  ;
int	 setlinebuf  (FILE *)  ;
char	*tempnam  (const char *, const char *)  ;
int	 snprintf  (char *, size_t, const char *, ...)  
		__attribute__((__format__ (printf, 3, 4)));
int	 vasprintf  (char **, const char *, char * )  
		__attribute__((__format__ (printf, 2, 0)));
int	 vsnprintf  (char *, size_t, const char *, char * )  
		__attribute__((__format__ (printf, 3, 0)));
int	 vscanf  (const char *, char * )  
		__attribute__((__format__ (scanf, 1, 0)));
int	 vsscanf  (const char *, const char *, char * )  
		__attribute__((__format__ (scanf, 2, 0)));
 

 






 


 
FILE	*funopen  (const void *,
		int (*)(void *, char *, int),
		int (*)(void *, const char *, int),
		fpos_t (*)(void *, fpos_t, int),
		int (*)(void *))  ;
 




 


 
int	__srget  (FILE *)  ;
int	__svfscanf  (FILE *, const char *, char * )  ;
int	__swbuf  (int, FILE *)  ;
 

 





static __inline int __sputc(int _c, FILE *_p) {
	if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
		return (*_p->_p++ = _c);
	else
		return (__swbuf(_c, _p));
}
# 382 "/usr/include/stdio.h" 3























 

















# 38 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2


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

 




































 


















				 



# 88 "/usr/include/syslog.h" 3


 













	 











				 


# 145 "/usr/include/syslog.h" 3






 





 














 









 
void	closelog  (void)  ;
void	openlog  (const char *, int, int)  ;
int	setlogmask  (int)  ;
void	syslog  (int, const char *, ...)  
    __attribute__((__format__(__printf__,2,3)));
void	vsyslog  (int, const char *, char * )  ;
 

# 200 "/usr/include/syslog.h" 3

# 40 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 





































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

 











































# 1 "/usr/include/machine/signal.h" 1 3
 
 

 





































typedef int sig_atomic_t;


 


# 1 "/usr/include/machine/trap.h" 1 3
 
 

 





































 

























 

# 48 "/usr/include/machine/signal.h" 2 3


 






struct	sigcontext {
	int	sc_gs;
	int	sc_fs;
	int	sc_es;
	int	sc_ds;
	int	sc_edi;
	int	sc_esi;
	int	sc_ebp;
	int	sc_ebx;
	int	sc_edx;
	int	sc_ecx;
	int	sc_eax;
	 
	int	sc_eip;
	int	sc_cs;
	int	sc_eflags;
	int	sc_esp;
	int	sc_ss;

	int	sc_onstack;		 
	int	sc_mask;		 

	int	sc_trapno;		 
	int	sc_err;
};








# 48 "/usr/include/sys/signal.h" 2 3





















































 








typedef unsigned int sigset_t;

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

 































 
union sigval {
	int	sival_int;	 
	void	*sival_ptr;	 
};
 
 





 







 





































 






 










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





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

 







































 



struct timeval {
	long	tv_sec;		 
	long	tv_usec;	 
};

 


struct timespec {
	time_t	tv_sec;		 
	long	tv_nsec;	 
};










struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};








 







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

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

 







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

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

 







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

 


struct clockinfo {
	int	hz;		 
	int	tick;		 
	int	tickadj;	 
	int	stathz;		 
	int	profhz;		 
};
















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

 






































































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;	 
	long	tm_gmtoff;	 
	char	*tm_zone;	 
};



 
char *asctime  (const struct tm *)  ;
clock_t clock  (void)  ;
char *ctime  (const time_t *)  ;
double difftime  (time_t, time_t)  ;
struct tm *gmtime  (const time_t *)  ;
struct tm *localtime  (const time_t *)  ;
time_t mktime  (struct tm *)  ;
size_t strftime  (char *, size_t, const char *, const struct tm *)  ;
char *strptime  (const char *, const char *, struct tm *)  ;
time_t time  (time_t *)  ;
char *asctime_r  (const struct tm *, char *)  ;
char *ctime_r  (const time_t *, char *)  ;
struct tm *gmtime_r  (const time_t *, struct tm *)  ;
struct tm *localtime_r  (const time_t *, struct tm *)  ;



extern char *tzname[2];
void tzset  (void)  ;



char *timezone  (int, int)  ;
void tzsetwall  (void)  ;
time_t timelocal  (struct tm *)  ;
time_t timegm  (struct tm *)  ;
time_t timeoff  (struct tm *, const long)  ;

 


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





 
int	adjtime  (const struct timeval *, struct timeval *)  ;
int	clock_getres  (clockid_t, struct timespec *)  ;
int	clock_gettime  (clockid_t, struct timespec *)  ;
int	clock_settime  (clockid_t, const struct timespec *)  ;
int	futimes  (int, const struct timeval *)  ;
int	getitimer  (int, struct itimerval *)  ;
int	gettimeofday  (struct timeval *, struct timezone *)  ;
int	nanosleep  (const struct timespec *, struct timespec *)  ;
int	setitimer  (int, const struct itimerval *, struct itimerval *)  ;
int	settimeofday  (const struct timeval *, const struct timezone *)  ;
int	utimes  (const char *, const struct timeval *)  ;
 





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


typedef struct {
	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;
					union sigval	_value;
				} _kill;
				struct {
					clock_t	_utime;
					int	_status;
					clock_t	_stime;
				} _cld;
			} _pdata;
		} _proc;
		struct {	 
			caddr_t	_addr;		 
			int	_trapno;	 
		} _fault;
# 174 "/usr/include/sys/siginfo.h" 3

	} _data;
} siginfo_t;


























# 112 "/usr/include/sys/signal.h" 2 3


 


struct	sigaction {
	union {		 
		void	(*__sa_handler)  (int)  ;
		void	(*__sa_sigaction)  (int, siginfo_t *, void *)  ;
	} __sigaction_u;
	sigset_t sa_mask;		 
	int	sa_flags;		 
};

 
















 










typedef	void (*sig_t)  (int)  ;	 

 


struct	sigaltstack {
	void	*ss_sp;			 
	int	ss_size;		 
	int	ss_flags;		 
};





 



struct	sigvec {
	void	(*sv_handler)  (int)  ;  
	int	sv_mask;		 
	int	sv_flags;		 
};





 


struct	sigstack {
	void	*ss_sp;			 
	int	ss_onstack;		 
};

 










 



 
void	(*signal  (int, void (*)  (int)  )  )  (int)  ;
 

# 42 "/usr/include/signal.h" 2 3







extern const  char * const  sys_signame[32 ];
extern const  char * const  sys_siglist[32 ];


 
int	raise  (int)  ;

int	kill  (pid_t, int)  ;
int	sigaction  (int, const struct sigaction *, struct sigaction *)  ;
int	sigaddset  (sigset_t *, int)  ;
int	sigdelset  (sigset_t *, int)  ;
int	sigemptyset  (sigset_t *)  ;
int	sigfillset  (sigset_t *)  ;
int	sigismember  (const sigset_t *, int)  ;
int	sigpending  (sigset_t *)  ;
int	sigprocmask  (int, const sigset_t *, sigset_t *)  ;
int	sigsuspend  (const sigset_t *)  ;


extern __inline int sigaddset(sigset_t *set, int signo) {
	extern int errno;

	if (signo <= 0 || signo >= 32 ) {
		errno = 22;			 
		return -1;
	}
	*set |= (1 << ((signo)-1));		 
	return (0);
}

extern __inline int sigdelset(sigset_t *set, int signo) {
	extern int errno;

	if (signo <= 0 || signo >= 32 ) {
		errno = 22;			 
		return -1;
	}
	*set &= ~(1 << ((signo)-1));		 
	return (0);
}

extern __inline int sigismember(const sigset_t *set, int signo) {
	extern int errno;

	if (signo <= 0 || signo >= 32 ) {
		errno = 22;			 
		return -1;
	}
	return ((*set & (1 << ((signo)-1))) != 0);
}


 




int	killpg  (pid_t, int)  ;
int	sigblock  (int)  ;
int	siginterrupt  (int, int)  ;
int	sigpause  (int)  ;
int	sigreturn  (struct sigcontext *)  ;
int	sigsetmask  (int)  ;
int	sigstack  (const struct sigstack *, struct sigstack *)  ;
int	sigaltstack  (const struct sigaltstack *, struct sigaltstack *)  ;
int	sigvec  (int, struct sigvec *, struct sigvec *)  ;
void	psignal  (unsigned int, const char *)  ;
int	sigwait  (const sigset_t *, int *)  ;


 


# 41 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2


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

 












































# 67 "/usr/include/sys/stat.h" 3


struct stat {
	dev_t	  st_dev;		 
	ino_t	  st_ino;		 
	mode_t	  st_mode;		 
	nlink_t	  st_nlink;		 
	uid_t	  st_uid;		 
	gid_t	  st_gid;		 
	dev_t	  st_rdev;		 

	struct	timespec st_atimespec;	 
	struct	timespec st_mtimespec;	 
	struct	timespec st_ctimespec;	 








	off_t	  st_size;		 
	int64_t	  st_blocks;		 
	u_int32_t st_blksize;		 
	u_int32_t st_flags;		 
	u_int32_t st_gen;		 
	int32_t	  st_lspare;
	int64_t	  st_qspare[2];
};






























































							 

							 




 









 




















 
int	chmod  (const char *, mode_t)  ;
int	fstat  (int, struct stat *)  ;
int	mknod  (const char *, mode_t, dev_t)  ;
int	mkdir  (const char *, mode_t)  ;
int	mkfifo  (const char *, mode_t)  ;
int	stat  (const char *, struct stat *)  ;
mode_t	umask  (mode_t)  ;

int	chflags  (const char *, unsigned int)  ;
int	fchflags  (int, unsigned int)  ;
int	fchmod  (int, mode_t)  ;
int	lstat  (const char *, struct stat *)  ;

 


# 43 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 








































extern int errno;			 




















					 


























 



 






 













 

















 






 





 

























# 44 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 





































 


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

 





































 

















 































 









 















 

 




 



 



 



 







 










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


 



 








 













 












 


struct	linger {
	int	l_onoff;		 
	int	l_linger;		 
};

 




 






































 



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

 











struct sockaddr_storage {
	u_int8_t    ss_len;		 
	sa_family_t ss_family;		 
	u_char	    __ss_pad1[6];	 
	u_int64_t   __ss_pad2;		 
	u_char      __ss_pad3[240];	 
};

 



struct sockproto {
	u_short	sp_family;		 
	u_short	sp_protocol;		 
};

 






































 






 


struct sockcred {
	uid_t	sc_uid;			 
	uid_t	sc_euid;		 
	gid_t	sc_gid;			 
	gid_t	sc_egid;		 
	int	sc_ngroups;		 
	gid_t	sc_groups[1];		 
};

 





 










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

 



















 




 



struct msghdr {
	caddr_t		msg_name;	 
	socklen_t	msg_namelen;	 
	struct		iovec *msg_iov;	 
	u_int		msg_iovlen;	 
	caddr_t		msg_control;	 
	socklen_t	msg_controllen;	 
	int		msg_flags;	 
};












 





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

 



 









 





 


 


 



 


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

 


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







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



# 45 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 


































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

 





































 














































 






 


 




 
 












 





















# 151 "/usr/include/sys/queue.h" 3

 
















 












 











































 
















 












 






























 

















 







 















 








# 346 "/usr/include/sys/queue.h" 3









# 363 "/usr/include/sys/queue.h" 3


















# 389 "/usr/include/sys/queue.h" 3

 

















 




















 








# 446 "/usr/include/sys/queue.h" 3


# 456 "/usr/include/sys/queue.h" 3


# 466 "/usr/include/sys/queue.h" 3


# 476 "/usr/include/sys/queue.h" 3


# 489 "/usr/include/sys/queue.h" 3


# 502 "/usr/include/sys/queue.h" 3


# 39 "/usr/include/net/if.h" 2 3


 























 


struct mbuf;
struct proc;
struct rtentry;
struct socket;
struct ether_header;
struct arpcom;
struct rt_addrinfo;

 



struct	if_data {
	 
	u_char	ifi_type;		 
	u_char	ifi_addrlen;		 
	u_char	ifi_hdrlen;		 
	u_char	ifi_link_state;		 
	u_long	ifi_mtu;		 
	u_long	ifi_metric;		 
	u_long	ifi_baudrate;		 
	 
	u_long	ifi_ipackets;		 
	u_long	ifi_ierrors;		 
	u_long	ifi_opackets;		 
	u_long	ifi_oerrors;		 
	u_long	ifi_collisions;		 
	u_long	ifi_ibytes;		 
	u_long	ifi_obytes;		 
	u_long	ifi_imcasts;		 
	u_long	ifi_omcasts;		 
	u_long	ifi_iqdrops;		 
	u_long	ifi_noproto;		 
	struct	timeval ifi_lastchange;	 
};

 






 




struct  ifnet_head  {	struct   ifnet  *tqh_first;	struct   ifnet  **tqh_last;	} ;		 

 






struct ifnet {				 
	void	*if_softc;		 
	struct {	struct  ifnet  *tqe_next;	struct  ifnet  **tqe_prev;	}  if_list;	 
	struct    {	struct   ifaddr  *tqh_first;	struct   ifaddr  **tqh_last;	}  if_addrlist;  
	char	if_xname[16 ];	 
	int	if_pcount;		 
	caddr_t	if_bpf;			 
	caddr_t	if_bridge;		 
	u_short	if_index;		 
	short	if_timer;		 
	short	if_flags;		 
	struct	if_data if_data;	 
 
	int	(*if_output)		 
		 (struct ifnet *, struct mbuf *, struct sockaddr *,
		     struct rtentry *)  ;
	void	(*if_start)		 
		 (struct ifnet *)  ;
	int	(*if_ioctl)		 
		 (struct ifnet *, u_long, caddr_t)  ;
	int	(*if_reset)		 
		 (struct ifnet *)  ;
	void	(*if_watchdog)		 
		 (struct ifnet *)  ;
	struct	ifqueue {
		struct	mbuf *ifq_head;
		struct	mbuf *ifq_tail;
		int	ifq_len;
		int	ifq_maxlen;
		int	ifq_drops;
	} if_snd;			 
	struct ifprefix *if_prefixlist;  
};





































 




 







 








# 225 "/usr/include/net/if.h" 3








# 241 "/usr/include/net/if.h" 3




 





struct ifaddr {
	struct	sockaddr *ifa_addr;	 
	struct	sockaddr *ifa_dstaddr;	 

	struct	sockaddr *ifa_netmask;	 
	struct	ifnet *ifa_ifp;		 
	struct {	struct  ifaddr  *tqe_next;	struct  ifaddr  **tqe_prev;	}  ifa_list;	 
	void	(*ifa_rtrequest)	 
		     (int, struct rtentry *, struct rt_addrinfo *)  ;
	u_int	ifa_flags;		 
	u_int	ifa_refcnt;		 
	int	ifa_metric;		 
};


 





struct ifprefix {
	struct	sockaddr *ifpr_prefix;	 
	struct	ifnet *ifpr_ifp;	 
	struct ifprefix *ifpr_next;
	u_char	ifpr_plen;		 
	u_char	ifpr_type;		 
};

 



struct if_msghdr {
	u_short	ifm_msglen;	 
	u_char	ifm_version;	 
	u_char	ifm_type;	 
	int	ifm_addrs;	 
	int	ifm_flags;	 
	u_short	ifm_index;	 
	struct	if_data ifm_data; 
};

 



struct ifa_msghdr {
	u_short	ifam_msglen;	 
	u_char	ifam_version;	 
	u_char	ifam_type;	 
	int	ifam_addrs;	 
	int	ifam_flags;	 
	u_short	ifam_index;	 
	int	ifam_metric;	 
};

 





struct	ifreq {
	char	ifr_name[16 ];		 
	union {
		struct	sockaddr ifru_addr;
		struct	sockaddr ifru_dstaddr;
		struct	sockaddr ifru_broadaddr;
		short	ifru_flags;
		int	ifru_metric;
		caddr_t	ifru_data;
	} ifr_ifru;








};

struct ifaliasreq {
	char	ifra_name[16 ];		 
	struct	sockaddr ifra_addr;
	struct	sockaddr ifra_dstaddr;

	struct	sockaddr ifra_mask;
};

struct ifmediareq {
	char	ifm_name[16 ];		 
	int	ifm_current;			 
	int	ifm_mask;			 
	int	ifm_status;			 
	int	ifm_active;			  
	int	ifm_count;			 

	int	*ifm_ulist;			 
};

 





struct	ifconf {
	int	ifc_len;		 
	union {
		caddr_t	ifcu_buf;
		struct	ifreq *ifcu_req;
	} ifc_ifcu;


};

 


struct if_laddrreq {
	char iflr_name[16 ];
	unsigned int flags;

	unsigned int prefixlen;		 
	struct sockaddr_storage addr;	 
	struct sockaddr_storage dstaddr;  
};

struct if_nameindex {
	unsigned int	if_index;
	char 		*if_name;
};


 
unsigned int if_nametoindex  (const char *)  ;
char 	*if_indextoname  (unsigned int, char *)  ;
struct	if_nameindex *if_nameindex  (void)  ;
 



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

 


































 









struct	arphdr {
	u_int16_t ar_hrd;	 



	u_int16_t ar_pro;	 
	u_int8_t  ar_hln;	 
	u_int8_t  ar_pln;	 
	u_int16_t ar_op;	 






 









};

 


struct arpreq {
	struct	sockaddr arp_pa;		 
	struct	sockaddr arp_ha;		 
	int	arp_flags;			 
};
 





# 395 "/usr/include/net/if.h" 2 3


# 448 "/usr/include/net/if.h" 3

# 46 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 


































 

















 


struct sockaddr_dl {
	u_char	  sdl_len;	 
	u_char	  sdl_family;	 
	u_int16_t sdl_index;	 
	u_char	  sdl_type;	 
	u_char	  sdl_nlen;	 
	u_char	  sdl_alen;	 
	u_char	  sdl_slen;	 
	char	  sdl_data[12];	 

};







 
void	link_addr  (const char *, struct sockaddr_dl *)  ;
char	*link_ntoa  (const struct sockaddr_dl *)  ;
 


# 47 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 


































 





























































 





# 48 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 










































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

 










































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

 





































 










				 

				 

				 

				 

				 







 



# 47 "/usr/include/sys/ttycom.h" 2 3


 




 



struct winsize {
	unsigned short	ws_row;		 
	unsigned short	ws_col;		 
	unsigned short	ws_xpixel;	 
	unsigned short	ws_ypixel;	 
};












						 


						 

						 






						 






						 





































 










# 47 "/usr/include/sys/ioctl.h" 2 3


 




struct ttysize {
	unsigned short	ts_lines;
	unsigned short	ts_cols;
	unsigned short	ts_xxx;
	unsigned short	ts_yyy;
};





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

 





































 


		 





 















# 65 "/usr/include/sys/ioctl.h" 2 3

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

 












































 










# 66 "/usr/include/sys/ioctl.h" 2 3

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

 







































 

































 
 






























































# 67 "/usr/include/sys/ioctl.h" 2 3






 
int	ioctl  (int, unsigned long, ...)  ;
 



 










# 49 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 
















































 

typedef	int 	wchar_t;




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

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


typedef struct {
	quad_t quot;		 
	quad_t rem;		 
} qdiv_t;




















 
  void	 abort  (void)  ;
int	 abs  (int)  ;
int	 atexit  (void (*)(void))  ;
double	 atof  (const char *)  ;
int	 atoi  (const char *)  ;
long	 atol  (const char *)  ;
void	*bsearch  (const void *, const void *, size_t,
	    size_t, int (*)(const void *, const void *))  ;
void	*calloc  (size_t, size_t)  ;
div_t	 div  (int, int)  ;
  void	 exit  (int)  ;
void	 free  (void *)  ;
char	*getenv  (const char *)  ;
long	 labs  (long)  ;
ldiv_t	 ldiv  (long, long)  ;
void	*malloc  (size_t)  ;
void	 qsort  (void *, size_t, size_t,
	    int (*)(const void *, const void *))  ;
int	 rand  (void)  ;
int	 rand_r  (unsigned int *)  ;
void	*realloc  (void *, size_t)  ;
void	 srand  (unsigned)  ;
double	 strtod  (const char *, char **)  ;
long	 strtol  (const char *, char **, int)  ;
unsigned long
	 strtoul  (const char *, char **, int)  ;
int	 system  (const char *)  ;

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





void  *alloca  (size_t)  ; 
 

char	*getbsize  (int *, long *)  ;
char	*cgetcap  (char *, const char *, int)  ;
int	 cgetclose  (void)  ;
int	 cgetent  (char **, char **, const char *)  ;
int	 cgetfirst  (char **, char **)  ;
int	 cgetmatch  (char *, const char *)  ;
int	 cgetnext  (char **, char **)  ;
int	 cgetnum  (char *, const char *, long *)  ;
int	 cgetset  (const char *)  ;
int	 cgetstr  (char *, const char *, char **)  ;
int	 cgetustr  (char *, const char *, char **)  ;

int	 daemon  (int, int)  ;
char	*devname  (int, int)  ;
int	 getloadavg  (double [], int)  ;

long	 a64l  (const char *)  ;
char	*l64a  (long)  ;

void	 cfree  (void *)  ;

int	 getopt  (int, char * const *, const char *)  ;
extern	 char *optarg;			 
extern	 int opterr;
extern	 int optind;
extern	 int optopt;
extern	 int optreset;
int	 getsubopt  (char **, char * const *, char **)  ;
extern	 char *suboptarg;		 

int	 heapsort  (void *, size_t, size_t,
	    int (*)(const void *, const void *))  ;
int	 mergesort  (void *, size_t, size_t,
	    int (*)(const void *, const void *))  ;
int	 radixsort  (const unsigned char **, int, const unsigned char *,
	    unsigned)  ;
int	 sradixsort  (const unsigned char **, int, const unsigned char *,
	    unsigned)  ;

char	*initstate  (unsigned int, char *, size_t)  ;
long	 random  (void)  ;
char	*realpath  (const char *, char *)  ;
char	*setstate  (const char *)  ;
void	 srandom  (unsigned int)  ;
void	 srandomdev  (void)  ;

int	 putenv  (const char *)  ;
int	 setenv  (const char *, const char *, int)  ;
void	 unsetenv  (const char *)  ;
void	 setproctitle  (const char *, ...)  ;

quad_t	 qabs  (quad_t)  ;
qdiv_t	 qdiv  (quad_t, quad_t)  ;
quad_t	 strtoq  (const char *, char **, int)  ;
u_quad_t strtouq  (const char *, char **, int)  ;

double	 drand48  (void)  ;
double	 erand48  (unsigned short[3])  ;
long	 jrand48  (unsigned short[3])  ;
void	 lcong48  (unsigned short[7])  ;
long	 lrand48  (void)  ;
long	 mrand48  (void)  ;
long	 nrand48  (unsigned short[3])  ;
unsigned short *seed48  (unsigned short[3])  ;
void	 srand48  (long)  ;

u_int32_t arc4random  (void)  ;
void	arc4random_stir  (void)  ;
void	arc4random_addrandom  (unsigned char *, int)  ;


 


# 50 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2



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

 










































 









 






 





 






























 







 


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


 













 



 













 


 









 



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



 










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

int	flock  (int, int)  ;

 



# 53 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 





















































 
void	*memchr  (const void *, int, size_t)  ;
int	 memcmp  (const void *, const void *, size_t)  ;
void	*memcpy  (void *, const void *, size_t)  ;
void	*memmove  (void *, const void *, size_t)  ;
void	*memset  (void *, int, size_t)  ;
char	*strcat  (char *, const char *)  ;
char	*strchr  (const char *, int)  ;
int	 strcmp  (const char *, const char *)  ;
int	 strcoll  (const char *, const char *)  ;
char	*strcpy  (char *, const char *)  ;
size_t	 strcspn  (const char *, const char *)  ;
char	*strerror  (int)  ;
size_t	 strlen  (const char *)  ;
char	*strncat  (char *, const char *, size_t)  ;
int	 strncmp  (const char *, const char *, size_t)  ;
char	*strncpy  (char *, const char *, size_t)  ;
char	*strpbrk  (const char *, const char *)  ;
char	*strrchr  (const char *, int)  ;
size_t	 strspn  (const char *, const char *)  ;
char	*strstr  (const char *, const char *)  ;
char	*strtok  (char *, const char *)  ;
char	*strtok_r  (char *, const char *, char **)  ;
size_t	 strxfrm  (char *, const char *, size_t)  ;

 

int	 bcmp  (const void *, const void *, size_t)  ;
void	 bcopy  (const void *, void *, size_t)  ;
void	 bzero  (void *, size_t)  ;
int	 ffs  (int)  ;
char	*index  (const char *, int)  ;
void	*memccpy  (void *, const void *, int, size_t)  ;
char	*rindex  (const char *, int)  ;
int	 strcasecmp  (const char *, const char *)  ;
char	*strdup  (const char *)  ;
size_t	 strlcat  (char *, const char *, size_t)  ;
size_t	 strlcpy  (char *, const char *, size_t)  ;
void	 strmode  (int, char *)  ;
int	 strncasecmp  (const char *, const char *, size_t)  ;
char	*strsep  (char **, const char *)  ;
char	*strsignal  (int)  ;

 


# 54 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2

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

 







































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

 





































 







 
				 

				 

				 

				 


 





 





 





 










 
































 

















 



# 44 "/usr/include/unistd.h" 2 3














 
  void	 _exit  (int)   __attribute__((__noreturn__));
int	 access  (const char *, int)  ;
unsigned int alarm  (unsigned int)  ;
int	 chdir  (const char *)  ;
int	 chown  (const char *, uid_t, gid_t)  ;
int	 close  (int)  ;
size_t	 confstr  (int, char *, size_t)  ;
char	*cuserid  (char *)  ;
int	 dup  (int)  ;
int	 dup2  (int, int)  ;
int	 execl  (const char *, const char *, ...)  ;
int	 execle  (const char *, const char *, ...)  ;
int	 execlp  (const char *, const char *, ...)  ;
int	 execv  (const char *, char * const *)  ;
int	 execve  (const char *, char * const *, char * const *)  ;
int	 execvp  (const char *, char * const *)  ;
pid_t	 fork  (void)  ;
long	 fpathconf  (int, int)  ;
char	*getcwd  (char *, size_t)  ;
gid_t	 getegid  (void)  ;
uid_t	 geteuid  (void)  ;
gid_t	 getgid  (void)  ;
int	 getgroups  (int, gid_t *)  ;
char	*getlogin  (void)  ;
int	 getlogin_r  (char *, size_t)  ;
pid_t	 getpgrp  (void)  ;
pid_t	 getpid  (void)  ;
pid_t	 getpgid  (pid_t)  ;
pid_t	 getppid  (void)  ;
pid_t	 getsid  (pid_t)  ;
uid_t	 getuid  (void)  ;
int	 isatty  (int)  ;
int	 link  (const char *, const char *)  ;
off_t	 lseek  (int, off_t, int)  ;
long	 pathconf  (const char *, int)  ;
int	 pause  (void)  ;
int	 pipe  (int *)  ;
ssize_t	 read  (int, void *, size_t)  ;
int	 rmdir  (const char *)  ;
int	 setgid  (gid_t)  ;
int	 setpgid  (pid_t, pid_t)  ;
pid_t	 setsid  (void)  ;
int	 setuid  (uid_t)  ;
unsigned int sleep  (unsigned int)  ;
long	 sysconf  (int)  ;
pid_t	 tcgetpgrp  (int)  ;
int	 tcsetpgrp  (int, pid_t)  ;
char	*ttyname  (int)  ;
int	 ttyname_r  (int, char *, size_t)  ;
int	 unlink  (const char *)  ;
ssize_t	 write  (int, const void *, size_t)  ;



 


 




ssize_t  pread  (int, void *, size_t, off_t)  ;
ssize_t  pwrite  (int, const void *, size_t, off_t)  ;


int	 acct  (const char *)  ;
char	*brk  (const char *)  ;
int	 chroot  (const char *)  ;
char	*crypt  (const char *, const char *)  ;
int	 des_cipher  (const char *, char *, long, int)  ;
int	 des_setkey  (const char *key)  ;
int	 encrypt  (char *, int)  ;
void	 endusershell  (void)  ;
int	 exect  (const char *, char * const *, char * const *)  ;
int	 fchdir  (int)  ;
int	 fchown  (int, uid_t, gid_t)  ;
char	*fflagstostr  (u_int32_t)  ;
int	 fsync  (int)  ;
int	 ftruncate  (int, off_t)  ;
int	 getdomainname  (char *, size_t)  ;
int	 getdtablesize  (void)  ;
int	 getgrouplist  (const char *, gid_t, gid_t *, int *)  ;
long	 gethostid  (void)  ;
int	 gethostname  (char *, size_t)  ;
mode_t	 getmode  (const void *, mode_t)  ;
int	 getpagesize  (void)  ;
char	*getpass  (const char *)  ;
char	*getusershell  (void)  ;
char	*getwd  (char *)  ;			 
int	 initgroups  (const char *, gid_t)  ;
int	 iruserok  (u_int32_t, int, const char *, const char *)  ;
int	 iruserok_sa  (const void *, int, int, const char *, const char *)  ;
int	 lchown  (const char *, uid_t, gid_t)  ;
char	*mkdtemp  (char *)  ;
int	 mkstemp  (char *)  ;
int	 mkstemps  (char *, int)  ;
char	*mktemp  (char *)  ;
int	 nfssvc  (int, void *)  ;
int	 nice  (int)  ;
void	 psignal  (unsigned int, const char *)  ;
extern const  char * const  sys_siglist[];
int	 profil  (char *, size_t, unsigned long, unsigned int)  ;
int	 rcmd  (char **, int, const char *,
		const char *, const char *, int *)  ;
int	 rcmd_af  (char **, int, const char *,
		const char *, const char *, int *, int)  ;
int	 rcmdsh  (char **, int, const char *,
		const char *, const char *, char *)  ;
char	*re_comp  (const char *)  ;
int	 re_exec  (const char *)  ;
int	 readlink  (const char *, char *, size_t)  ;
int	 reboot  (int)  ;
int	 revoke  (const char *)  ;
int	 rfork  (int opts)  ;
int	 rresvport  (int *)  ;
int	 rresvport_af  (int *, int)  ;
int	 ruserok  (const char *, int, const char *, const char *)  ;
int	 quotactl  (const char *, int, int, char *)  ;
char	*sbrk  (int)  ;


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


int	 setdomainname  (const char *, size_t)  ;
int	 setegid  (gid_t)  ;
int	 seteuid  (uid_t)  ;
int	 setgroups  (int, const gid_t *)  ;
int	 sethostid  (long)  ;
int	 sethostname  (const char *, size_t)  ;
int	 setkey  (const char *)  ;
int	 setlogin  (const char *)  ;
void	*setmode  (const char *)  ;
int	 setpgrp  (pid_t pid, pid_t pgrp)  ;	 
int	 setregid  (int, int)  ;
int	 setreuid  (int, int)  ;
int	 setrgid  (gid_t)  ;
int	 setruid  (uid_t)  ;
void	 setusershell  (void)  ;
int	 strtofflags  (char **, u_int32_t *, u_int32_t *)  ;
void	 swab  (const void *, void *, size_t)  ;
int	 swapon  (const char *)  ;
int	 swapctl  (int cmd, const void *arg, int misc)  ;
int	 symlink  (const char *, const char *)  ;
void	 sync  (void)  ;
int	 syscall  (int, ...)  ;
int	 truncate  (const char *, off_t)  ;
int	 ttyslot  (void)  ;
unsigned int	 ualarm  (unsigned int, unsigned int)  ;
int	 undelete  (const char *)  ;
int	 usleep  (useconds_t)  ;
void	*valloc  (size_t)  ;			 
pid_t	 vfork  (void)  ;
int	 issetugid  (void)  ;

int	 getopt  (int, char * const *, const char *)  ;
extern	 char *optarg;			 
extern	 int opterr;
extern	 int optind;
extern	 int optopt;
extern	 int optreset;
int	 getsubopt  (char **, char * const *, char **)  ;
extern	 char *suboptarg;		 









int     lockf  (int, int, off_t)  ;

 


# 55 "/usr/src/usr.sbin/mopd/moptrace/../common/os.h" 2





# 36 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c" 2

# 1 "/usr/src/usr.sbin/mopd/moptrace/../common/common.h" 1
 

 















































 




struct if_info {
	int	fd;			 
	int	trans;			 
	u_char	eaddr[6];		 
	char	if_name[32 ];	 
	int	(*iopen)();		 
	int	(*write)();		 
	void	(*read)();		 
	struct if_info *next;		 
};






struct dllist {
	u_char	status;			 
	struct if_info *ii;		 
	u_char	eaddr[6];		 
	int	ldfd;			 
	u_short	dl_bsz;			 
	int	timeout;		 
	u_char	count;			 
	u_long	loadaddr;		 
	u_long	xferaddr;		 
	u_long	nloadaddr;		 
	long	lseek;			 
	int	aout;			 
	u_long	a_text;			 
	u_long	a_text_fill;		 
	u_long	a_data;			 
	u_long	a_data_fill;		 
	u_long	a_bss;			 
	u_long	a_bss_fill;		 
	long	a_lseek;		 
};


# 37 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c" 2

# 1 "/usr/src/usr.sbin/mopd/moptrace/../common/mopdef.h" 1
 

 


















































 








































































































































extern char dl_mcst[];
extern char rc_mcst[];
extern char dl_802_proto[];
extern char rc_802_proto[];
extern char lp_802_proto[];



# 38 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c" 2


struct	if_info *iflist;		 

void mopReadDL();
void mopReadRC();




int  mopOpenDL(struct if_info *, int);
int  mopOpenRC(struct if_info *, int);

int pfTrans();
int pfInit();
int pfWrite();


 



void
deviceEthAddr(ifname, eaddr)
	char *ifname;
        u_char *eaddr;
{
	char inbuf[8192];
	struct ifconf ifc;
	struct ifreq *ifr;
	struct sockaddr_dl *sdl;
	int fd;
	int i, len;

	 



	 
	if ((fd = socket(2 , 2 , 0)) < 0) {
		syslog(3 , "deviceEthAddr: socket: %m");
		exit(1);
	}

	ifc.ifc_len = sizeof(inbuf);
	ifc. ifc_ifcu.ifcu_buf  = inbuf;
	if (ioctl(fd, ( ((unsigned long)0x80000000 | (unsigned long)0x40000000 )   | ((  sizeof(  struct ifconf )  & 0x1fff ) << 16) | (( 	( 'i' ) ) << 8) | (  (  36 ) ))   , (caddr_t)&ifc) < 0 ||
	    ifc.ifc_len < sizeof(struct ifreq)) {
		syslog(3 , "deviceEthAddr: SIOGIFCONF: %m");
		exit(1);
	}
	ifr = ifc. ifc_ifcu.ifcu_req ;
	for (i = 0; i < ifc.ifc_len;
	     i += len, ifr = (struct ifreq *)((caddr_t)ifr + len)) {
		len = sizeof(ifr->ifr_name) + ifr-> ifr_ifru.ifru_addr .sa_len;
		sdl = (struct sockaddr_dl *)&ifr-> ifr_ifru.ifru_addr ;
		if (sdl->sdl_family != 18  || sdl->sdl_type != 0x6  ||
		    sdl->sdl_alen != 6)
			continue;
		if (!strncmp(ifr->ifr_name, ifname, sizeof(ifr->ifr_name))) {
			bcopy((caddr_t)((caddr_t)(( sdl )->sdl_data + ( sdl )->sdl_nlen)) , (caddr_t)eaddr, 6);
			return;
		}
	}

	syslog(3 , "deviceEthAddr: Never saw interface `%s'!", ifname);
	exit(1);
}


void
deviceOpen(ifname, proto, trans)
	char	*ifname;
	u_short	 proto;
	int	 trans;
{
	struct if_info *p, tmp;

	strncpy(tmp.if_name,ifname,sizeof(tmp.if_name) - 1);
	tmp.if_name[sizeof(tmp.if_name)] = 0;
	tmp.iopen   = pfInit;
	
	switch (proto) {
	case 0x6002 :
		tmp.read = mopReadRC;
		tmp.fd   = mopOpenRC(&tmp, trans);
		break;
	case 0x6001 :
		tmp.read = mopReadDL;
		tmp.fd   = mopOpenDL(&tmp, trans);
		break;
	default:
		break;
	}
	
	if (tmp.fd != -1) {
		
		p = (struct if_info *)malloc(sizeof(*p));
		if (p == 0) {
		syslog(3 , "deviceOpen: malloc: %m");
		exit(1);
		}
	
		p->next = iflist;
		iflist = p;

		strncpy(p->if_name,tmp.if_name, 32  -1);
		p->if_name[32  -1] = 0;
		p->iopen   = tmp.iopen;
		p->write   = pfWrite;
		p->read    = tmp.read;
		bzero((char *)p->eaddr,sizeof(p->eaddr));
		p->fd      = tmp.fd;


		deviceEthAddr(p->if_name,&p->eaddr[0]);








	
# 172 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c"

	}
}

void
deviceInitOne(ifname)
	char	*ifname;
{
	char	interface[32 ];
	struct if_info *p;
	int	trans;
# 206 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c"

	snprintf(interface,sizeof(interface),"%s",ifname);


	 
	
	p = iflist;
	for (p = iflist; p; p = p->next)  {
		if (strcmp(p->if_name,interface) == 0) {
			return;
		}
	}

	syslog(6 , "Initialized %s", interface);

	 
	
	trans = pfTrans(interface);


	 

	switch (trans) {
	case 1 :
		deviceOpen(interface,0x6002 ,1 );
		break;
	case 2 :
		deviceOpen(interface,0x6002 ,2 );
		break;
	case 1 + 2 :
		deviceOpen(interface,0x6002 ,1 );
		deviceOpen(interface,0x6002 ,2 );
		break;
	case 1 + 2 + 0x1000 :
		deviceOpen(interface,0x6002 ,1 + 2 );
		break;
	}



	 

	switch (trans) {
	case 1 :
		deviceOpen(interface,0x6001 ,1 );
		break;
	case 2 :
		deviceOpen(interface,0x6001 ,2 );
		break;
	case 1 + 2 :
		deviceOpen(interface,0x6001 ,1 );
		deviceOpen(interface,0x6001 ,2 );
		break;
	case 1 + 2 + 0x1000 :
		deviceOpen(interface,0x6001 ,1 + 2 );
		break;
	}


}

 




void
deviceInitAll()
{

	char inbuf[8192];
	struct ifconf ifc;
	struct ifreq *ifr;
	struct sockaddr_dl *sdl;
	int fd;
	int i, len;

	if ((fd = socket(2 , 2 , 0)) < 0) {
		syslog(3 , "deviceInitAll: socket: %m");
		exit(1);
	}

	ifc.ifc_len = sizeof(inbuf);
	ifc. ifc_ifcu.ifcu_buf  = inbuf;
	if (ioctl(fd, ( ((unsigned long)0x80000000 | (unsigned long)0x40000000 )   | ((  sizeof(  struct ifconf )  & 0x1fff ) << 16) | (( 	( 'i' ) ) << 8) | (  (  36 ) ))   , (caddr_t)&ifc) < 0 ||
	    ifc.ifc_len < sizeof(struct ifreq)) {
		syslog(3 , "deviceInitAll: SIOCGIFCONF: %m");
		exit(1);
	}
	ifr = ifc. ifc_ifcu.ifcu_req ;
	for (i = 0; i < ifc.ifc_len;
	     i += len, ifr = (struct ifreq *)((caddr_t)ifr + len)) {
		len = sizeof(ifr->ifr_name) + ifr-> ifr_ifru.ifru_addr .sa_len;
		sdl = (struct sockaddr_dl *)&ifr-> ifr_ifru.ifru_addr ;
		if (sdl->sdl_family != 18  || sdl->sdl_type != 0x6  ||
		    sdl->sdl_alen != 6)
			continue;
		if (ioctl(fd, ( ((unsigned long)0x80000000 | (unsigned long)0x40000000 )   | ((  sizeof(  struct ifreq )  & 0x1fff ) << 16) | (( 	( 'i' ) ) << 8) | (  (  17 ) ))   , (caddr_t)ifr) < 0) {
			syslog(3 , "deviceInitAll: SIOCGIFFLAGS: %m");
			continue;
		}
		if ((ifr-> ifr_ifru.ifru_flags  &
		    (0x1  | 0x8  | 0x10 )) != 0x1 )
			continue;
		deviceInitOne(ifr->ifr_name);
	}
	(void) close(fd);
# 344 "/usr/src/usr.sbin/mopd/moptrace/../common/device.c"

}

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