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]
Other format: [Raw text]

c/7867: Internal compiler error in `gen_tagged_type_instatiateion_die', at dwarf2out.c:9315


>Number:         7867
>Category:       c
>Synopsis:       Internal compiler error in `gen_tagged_type_instatiateion_die', at dwarf2out.c:9315
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Sep 09 08:56:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Steven Collins
>Release:        gcc version 2.95.3 20010315 (release)
>Organization:
>Environment:
(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(-msep-data patches)
>Description:
Attempting to build inetd in linux-2.4.x distribution (linux-2.4.x/user/inetd/inetd.c) for Big Endian NET+ARM 40 produces an internal compiler error.

Error message reads:
  inetd.c: In function `stop_handler':
  inetd.c:317: Internal compiler error in `gen_tagged_type_instantiation_die', at dwarf2out.c:9315

Command line:
  arm-elf-gcc -Os -g  -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -I/uClinux-dist/lib/uClibc/include -I/uClinux-dist/lib/libm -I/uClinux-dist -fno-builtin  -I/uClinux-dist/linux-2.4.x/include -mbig-endian -DSERVICES=\"/etc/services\" -DINETD_CONF=\"/etc/inetd.conf\" -Wall -c -o inetd.o inetd.c

Preprocessed source file attached
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="inetd.i"
Content-Disposition: inline; filename="inetd.i"

# 1 "inetd.c"
 











 



 



# 1 "/uClinux-dist/lib/uClibc/include/stdio.h" 1
 


















 







# 1 "/uClinux-dist/lib/uClibc/include/features.h" 1
 




















 



 





























































 




















 





 



 







 
# 145 "/uClinux-dist/lib/uClibc/include/features.h"


 









 








 



























# 211 "/uClinux-dist/lib/uClibc/include/features.h"


































 



 


 




 










 












 
















 


# 1 "/uClinux-dist/lib/uClibc/include/sys/cdefs.h" 1
 




















 




 






 





 








 



# 65 "/uClinux-dist/lib/uClibc/include/sys/cdefs.h"


 





 




 









 







 

















 















 







 






 








 








 











 










 







 




 


















# 301 "/uClinux-dist/lib/uClibc/include/features.h" 2



 








 





 
# 332 "/uClinux-dist/lib/uClibc/include/features.h"


 

# 1 "/uClinux-dist/lib/uClibc/include/bits/uClibc_config.h" 1
 

























# 336 "/uClinux-dist/lib/uClibc/include/features.h" 2



 


 







 






 

# 370 "/uClinux-dist/lib/uClibc/include/features.h"


 
# 431 "/uClinux-dist/lib/uClibc/include/features.h"




# 28 "/uClinux-dist/lib/uClibc/include/stdio.h" 2


 



# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


































typedef long unsigned int size_t;






















 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 34 "/uClinux-dist/lib/uClibc/include/stdio.h" 2


# 1 "/uClinux-dist/lib/uClibc/include/bits/types.h" 1
 

















 









# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 29 "/uClinux-dist/lib/uClibc/include/bits/types.h" 2


 
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;

__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 48 "/uClinux-dist/lib/uClibc/include/bits/types.h"

typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;

typedef __quad_t *__qaddr_t;

typedef __u_quad_t __dev_t;		 
typedef __u_int __uid_t;		 
typedef __u_int __gid_t;		 
typedef __u_long __ino_t;		 
typedef __u_int __mode_t;		 
typedef __u_int __nlink_t; 		 
typedef long int __off_t;		 
typedef __quad_t __loff_t;		 
typedef int __pid_t;			 
typedef int __ssize_t;			 
typedef __u_long __rlim_t;		 
typedef __u_quad_t __rlim64_t;		 
typedef __u_int __id_t;			 

typedef struct
  {
    int __val[2];
  } __fsid_t;				 

 
typedef int __daddr_t;			 
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;		 

typedef long int __clock_t;

 
typedef int __clockid_t;

 
typedef int __timer_t;


 



typedef int __key_t;

 
typedef unsigned short int __ipc_pid_t;


 
typedef long int __blksize_t;

 

 
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;

 
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;

 
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;

 
typedef __u_quad_t __ino64_t;

 
typedef __loff_t __off64_t;

 
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;

 
typedef int __intptr_t;

 
typedef unsigned int __socklen_t;


 





# 36 "/uClinux-dist/lib/uClibc/include/stdio.h" 2








 
typedef struct _UC_FILE FILE;








 
typedef struct _UC_FILE __FILE;









# 1 "/uClinux-dist/lib/uClibc/include/sys/types.h" 1
 

















 








 





typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;











typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;











typedef __pid_t pid_t;




typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;









# 1 "/uClinux-dist/lib/uClibc/include/time.h" 1
 

















 














# 51 "/uClinux-dist/lib/uClibc/include/time.h"


# 61 "/uClinux-dist/lib/uClibc/include/time.h"








 
typedef __time_t time_t;










 
typedef __clockid_t clockid_t;










 
typedef __timer_t timer_t;





# 112 "/uClinux-dist/lib/uClibc/include/time.h"




# 366 "/uClinux-dist/lib/uClibc/include/time.h"



# 132 "/uClinux-dist/lib/uClibc/include/sys/types.h" 2


# 143 "/uClinux-dist/lib/uClibc/include/sys/types.h"



# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 146 "/uClinux-dist/lib/uClibc/include/sys/types.h" 2



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


 

# 180 "/uClinux-dist/lib/uClibc/include/sys/types.h"


 







typedef int int8_t __attribute__ ((__mode__ (  __QI__ ))) ;
typedef int int16_t __attribute__ ((__mode__ (  __HI__ ))) ;
typedef int int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
typedef int int64_t __attribute__ ((__mode__ (  __DI__ ))) ;


typedef unsigned int u_int8_t __attribute__ ((__mode__ (  __QI__ ))) ;
typedef unsigned int u_int16_t __attribute__ ((__mode__ (  __HI__ ))) ;
typedef unsigned int u_int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
typedef unsigned int u_int64_t __attribute__ ((__mode__ (  __DI__ ))) ;

typedef int register_t __attribute__ ((__mode__ (__word__)));


 






 
# 1 "/uClinux-dist/lib/uClibc/include/endian.h" 1
 






















 











 
# 1 "/uClinux-dist/lib/uClibc/include/bits/endian.h" 1
 











# 37 "/uClinux-dist/lib/uClibc/include/endian.h" 2


 



















# 212 "/uClinux-dist/lib/uClibc/include/sys/types.h" 2


 
# 1 "/uClinux-dist/lib/uClibc/include/sys/select.h" 1
 


















 






 


 
# 1 "/uClinux-dist/lib/uClibc/include/bits/select.h" 1
 






















 











# 31 "/uClinux-dist/lib/uClibc/include/sys/select.h" 2


 
# 1 "/uClinux-dist/lib/uClibc/include/bits/sigset.h" 1
 





















typedef int __sig_atomic_t;

 


typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int))) ];
  } __sigset_t;




 





# 125 "/uClinux-dist/lib/uClibc/include/bits/sigset.h"

# 34 "/uClinux-dist/lib/uClibc/include/sys/select.h" 2




typedef __sigset_t sigset_t;


 

# 1 "/uClinux-dist/lib/uClibc/include/time.h" 1
 

















 














# 51 "/uClinux-dist/lib/uClibc/include/time.h"


# 61 "/uClinux-dist/lib/uClibc/include/time.h"



# 72 "/uClinux-dist/lib/uClibc/include/time.h"



# 84 "/uClinux-dist/lib/uClibc/include/time.h"



# 96 "/uClinux-dist/lib/uClibc/include/time.h"








 

struct timespec
  {
    long int tv_sec;		 
    long int tv_nsec;		 
  };





# 366 "/uClinux-dist/lib/uClibc/include/time.h"



# 43 "/uClinux-dist/lib/uClibc/include/sys/select.h" 2


# 1 "/uClinux-dist/lib/uClibc/include/bits/time.h" 1
 


















 



# 53 "/uClinux-dist/lib/uClibc/include/bits/time.h"








 

struct timeval
  {
    __time_t tv_sec;		 
    __suseconds_t tv_usec;	 
  };


# 45 "/uClinux-dist/lib/uClibc/include/sys/select.h" 2



 
typedef long int __fd_mask;

 




 
typedef struct
  {
     





    __fd_mask __fds_bits[1024  / (8 * sizeof (__fd_mask)) ];


  } fd_set;

 



 
typedef __fd_mask fd_mask;

 




 






 

 




extern int select (int __nfds, fd_set *__restrict __readfds,
		   fd_set *__restrict __writefds,
		   fd_set *__restrict __exceptfds,
		   struct timeval *__restrict __timeout)  ;

# 110 "/uClinux-dist/lib/uClibc/include/sys/select.h"


 


# 215 "/uClinux-dist/lib/uClibc/include/sys/types.h" 2


 
# 1 "/uClinux-dist/lib/uClibc/include/sys/sysmacros.h" 1
 





















 








# 47 "/uClinux-dist/lib/uClibc/include/sys/sysmacros.h"



# 218 "/uClinux-dist/lib/uClibc/include/sys/types.h" 2









 


typedef __blkcnt_t blkcnt_t;	  



typedef __fsblkcnt_t fsblkcnt_t;  



typedef __fsfilcnt_t fsfilcnt_t;  


# 254 "/uClinux-dist/lib/uClibc/include/sys/types.h"








 


# 65 "/uClinux-dist/lib/uClibc/include/stdio.h" 2


# 1 "/uClinux-dist/lib/uClibc/include/bits/uClibc_stdio.h" 1
 

















 












 










 
# 54 "/uClinux-dist/lib/uClibc/include/bits/uClibc_stdio.h"












 
 


 








 
 
 

 


 


 

 






 


 
 

 
 
 
 

 

 














 

# 147 "/uClinux-dist/lib/uClibc/include/bits/uClibc_stdio.h"








 








typedef struct {
	__off_t __pos;
 
} __stdio_fpos_t;

typedef struct {
	__off64_t __pos;
 
} __stdio_fpos64_t;


 



typedef __off_t __offmax_t;		 


 



typedef __ssize_t __io_read_fn(void *cookie,
							   char *buf, size_t bufsize);
typedef __ssize_t __io_write_fn(void *cookie,
								const char *buf, size_t bufsize);
 



typedef int __io_seek_fn(void *cookie,
						 __offmax_t *pos, int whence);
typedef int __io_close_fn(void *cookie);

typedef struct {
	__io_read_fn *read;
	__io_write_fn *write;
	__io_seek_fn *seek;
	__io_close_fn *close;
} _IO_cookie_io_functions_t;












 











struct _UC_FILE  {
	unsigned short modeflags;
	 




	unsigned char ungot[2];

	int filedes;

	struct _UC_FILE  *nextopen;


	unsigned char *bufstart;	 
	unsigned char *bufend;		 
	unsigned char *bufwpos;		 
	unsigned char *bufrpos;		 

	unsigned char *bufgetc;		 


	unsigned char *bufputc;		 



	void *cookie;
	_IO_cookie_io_functions_t gcs;





 



};


 

























 


extern __ssize_t _cs_read(void *cookie, char *buf, size_t bufsize);
extern __ssize_t _cs_write(void *cookie, const char *buf, size_t bufsize);
extern int _cs_seek(void *cookie, __offmax_t *pos, int whence);
extern int _cs_close(void *cookie);


 

 









 








































 



extern FILE *_stdio_openlist;






extern int _stdio_adjpos(FILE * __restrict stream, __offmax_t * pos);
extern int _stdio_lseek(FILE *stream, __offmax_t *pos, int whence);
 
extern size_t _stdio_fwrite(const unsigned char *buffer, size_t bytes,
							  FILE *stream);
extern size_t _stdio_fread(unsigned char *buffer, size_t bytes,
							 FILE *stream);

extern FILE *_stdio_fopen(const char * __restrict filename,
							const char * __restrict mode,
							FILE * __restrict stream, int filedes);

extern FILE *_stdio_fsfopen(const char * __restrict filename,
							const char * __restrict mode,
							register FILE * __restrict stream);

extern void _stdio_init(void);
extern void _stdio_term(void);


extern void __stdio_validate_FILE(FILE *stream);




 


# 484 "/uClinux-dist/lib/uClibc/include/bits/uClibc_stdio.h"

 
 
 

 
typedef __stdio_fpos_t		_UC_fpos_t;
typedef __stdio_fpos64_t	_UC_fpos64_t;






# 67 "/uClinux-dist/lib/uClibc/include/stdio.h" 2


 

# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stdarg.h" 1 3
 
































































 






typedef void *__gnuc_va_list;



 

# 122 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stdarg.h" 3




















# 209 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stdarg.h" 3




# 71 "/uClinux-dist/lib/uClibc/include/stdio.h" 2


 

typedef _UC_fpos_t fpos_t;







 





 





 






 







 




 








# 1 "/uClinux-dist/lib/uClibc/include/bits/stdio_lim.h" 1
 








































# 124 "/uClinux-dist/lib/uClibc/include/stdio.h" 2



 
extern FILE *stdin;		 
extern FILE *stdout;		 
extern FILE *stderr;		 

 





 
extern int remove (__const char *__filename)  ;
 
extern int rename (__const char *__old, __const char *__new)  ;


 

extern FILE *tmpfile (void)  ;










 
extern char *tmpnam (char *__s)  ;


 

extern char *tmpnam_r (char *__s)  ;




 






extern char *tempnam (__const char *__dir, __const char *__pfx)
        ;



 
extern int fclose (FILE *__stream)  ;
 
extern int fflush (FILE *__stream)  ;


 
extern int fflush_unlocked (FILE *__stream)  ;









 
extern FILE *fopen (__const char *__restrict __filename,
		    __const char *__restrict __modes)  ;
 
extern FILE *freopen (__const char *__restrict __filename,
		      __const char *__restrict __modes,
		      FILE *__restrict __stream)  ;
# 217 "/uClinux-dist/lib/uClibc/include/stdio.h"










 
extern FILE *fdopen (int __fd, __const char *__modes)  ;


# 248 "/uClinux-dist/lib/uClibc/include/stdio.h"



 

extern void setbuf (FILE *__restrict __stream, char *__restrict __buf)  ;
 


extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
		    int __modes, size_t __n)  ;


 

extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
		       size_t __size)  ;

 
extern void setlinebuf (FILE *__stream)  ;



 
extern int fprintf (FILE *__restrict __stream,
		    __const char *__restrict __format, ...)  ;
 
extern int printf (__const char *__restrict __format, ...)  ;
 
extern int sprintf (char *__restrict __s,
		    __const char *__restrict __format, ...)  ;

 
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
		     __gnuc_va_list __arg)  ;
 
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
      ;
 
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
		     __gnuc_va_list __arg)  ;


 
extern int snprintf (char *__restrict __s, size_t __maxlen,
		     __const char *__restrict __format, ...)
       __attribute__ ((__format__ (__printf__, 3, 4)));

extern int vsnprintf (char *__restrict __s, size_t __maxlen,
		      __const char *__restrict __format, __gnuc_va_list __arg)
       __attribute__ ((__format__ (__printf__, 3, 0)));


# 320 "/uClinux-dist/lib/uClibc/include/stdio.h"



 
extern int fscanf (FILE *__restrict __stream,
		   __const char *__restrict __format, ...)  ;
 
extern int scanf (__const char *__restrict __format, ...)  ;
 
extern int sscanf (__const char *__restrict __s,
		   __const char *__restrict __format, ...)  ;

# 346 "/uClinux-dist/lib/uClibc/include/stdio.h"



 
extern int fgetc (FILE *__stream)  ;
extern int getc (FILE *__stream)  ;

 
extern int getchar (void)  ;

 




 
extern int getc_unlocked (FILE *__stream)  ;
extern int getchar_unlocked (void)  ;



 
extern int fgetc_unlocked (FILE *__stream)  ;



 
extern int fputc (int __c, FILE *__stream)  ;
extern int putc (int __c, FILE *__stream)  ;

 
extern int putchar (int __c)  ;

 




 
extern int fputc_unlocked (int __c, FILE *__stream)  ;



 
extern int putc_unlocked (int __c, FILE *__stream)  ;
extern int putchar_unlocked (int __c)  ;




 
extern int getw (FILE *__stream)  ;

 
extern int putw (int __w, FILE *__stream)  ;



 
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
      ;







 

extern char *gets (char *__s)  ;


# 436 "/uClinux-dist/lib/uClibc/include/stdio.h"



 
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
      ;







 
extern int puts (__const char *__s)  ;


 
extern int ungetc (int __c, FILE *__stream)  ;


 
extern size_t fread (void *__restrict __ptr, size_t __size,
		     size_t __n, FILE *__restrict __stream)  ;
 
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
		      size_t __n, FILE *__restrict __s)  ;


 
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
			      size_t __n, FILE *__restrict __stream)  ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
			       size_t __n, FILE *__restrict __stream)  ;



 
extern int fseek (FILE *__stream, long int __off, int __whence)  ;
 
extern long int ftell (FILE *__stream)  ;
 
extern void rewind (FILE *__stream)  ;

 












 
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
      ;
 
extern int fsetpos (FILE *__stream, __const fpos_t *__pos)  ;
# 519 "/uClinux-dist/lib/uClibc/include/stdio.h"










 
extern void clearerr (FILE *__stream)  ;
 
extern int feof (FILE *__stream)  ;
 
extern int ferror (FILE *__stream)  ;


 
extern void clearerr_unlocked (FILE *__stream)  ;
extern int feof_unlocked (FILE *__stream)  ;
extern int ferror_unlocked (FILE *__stream)  ;



 
extern void perror (__const char *__s)  ;

 


extern int sys_nerr;
extern __const char *__const sys_errlist[];









 
extern int fileno (FILE *__stream)  ;



 
extern int fileno_unlocked (FILE *__stream)  ;





 
extern FILE *popen (__const char *__command, __const char *__modes)  ;

 
extern int pclose (FILE *__stream)  ;




 
extern char *ctermid (char *__s)  ;









# 603 "/uClinux-dist/lib/uClibc/include/stdio.h"



# 618 "/uClinux-dist/lib/uClibc/include/stdio.h"










 






 




# 21 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/unistd.h" 1
 

















 








 

 


 



 


 


 


 



 



 



 



 






 


 




 


 


 



 



 



















































































# 1 "/uClinux-dist/lib/uClibc/include/bits/posix_opt.h" 1
 





















 


 


 


 


 


 


 






 






 






 


 


 


 



 


 


 






 


 






 








 


 


 


 






 


 


 


 






 










 


 














 


 


 


 


 


 


 


 



# 175 "/uClinux-dist/lib/uClibc/include/unistd.h" 2


 




 





 










# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 199 "/uClinux-dist/lib/uClibc/include/unistd.h" 2


# 236 "/uClinux-dist/lib/uClibc/include/unistd.h"




typedef __intptr_t intptr_t;






typedef __socklen_t socklen_t;




 






 
extern int access (__const char *__name, int __type)  ;









 







 






 





extern __off_t lseek (int __fd, __off_t __offset, int __whence)  ;
# 301 "/uClinux-dist/lib/uClibc/include/unistd.h"





 
extern int close (int __fd)  ;

 

extern ssize_t read (int __fd, void *__buf, size_t __nbytes)  ;

 
extern ssize_t write (int __fd, __const void *__buf, size_t __n)  ;

# 348 "/uClinux-dist/lib/uClibc/include/unistd.h"


 



extern int pipe (int __pipedes[2])  ;

 






extern unsigned int alarm (unsigned int __seconds)  ;

 






extern unsigned int sleep (unsigned int __seconds)  ;


 



extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
      ;

 

extern int usleep (__useconds_t __useconds)  ;



 

extern int pause (void)  ;


 
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
      ;


 
extern int fchown (int __fd, __uid_t __owner, __gid_t __group)  ;


 

extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
      ;



 
extern int chdir (__const char *__path)  ;


 
extern int fchdir (int __fd)  ;


 






extern char *getcwd (char *__buf, size_t __size)  ;










 


extern char *getwd (char *__buf)  ;



 
extern int dup (int __fd)  ;

 
extern int dup2 (int __fd, int __fd2)  ;

 
extern char **__environ;





 

extern int execve (__const char *__path, char *__const __argv[],
		   char *__const __envp[])  ;










 
extern int execv (__const char *__path, char *__const __argv[])  ;

 

extern int execle (__const char *__path, __const char *__arg, ...)  ;

 

extern int execl (__const char *__path, __const char *__arg, ...)  ;

 

extern int execvp (__const char *__file, char *__const __argv[])  ;

 


extern int execlp (__const char *__file, __const char *__arg, ...)  ;



 
extern int nice (int __inc)  ;



 
extern void _exit (int __status) __attribute__ ((__noreturn__));


 


# 1 "/uClinux-dist/lib/uClibc/include/bits/confname.h" 1
 






















 
enum
  {
    _PC_LINK_MAX,

    _PC_MAX_CANON,

    _PC_MAX_INPUT,

    _PC_NAME_MAX,

    _PC_PATH_MAX,

    _PC_PIPE_BUF,

    _PC_CHOWN_RESTRICTED,

    _PC_NO_TRUNC,

    _PC_VDISABLE,

    _PC_SYNC_IO,

    _PC_ASYNC_IO,

    _PC_PRIO_IO,

    _PC_SOCK_MAXBUF,

    _PC_FILESIZEBITS,

    _PC_REC_INCR_XFER_SIZE,

    _PC_REC_MAX_XFER_SIZE,

    _PC_REC_MIN_XFER_SIZE,

    _PC_REC_XFER_ALIGN,

    _PC_ALLOC_SIZE_MIN,

    _PC_SYMLINK_MAX

  };

 
enum
  {
    _SC_ARG_MAX,

    _SC_CHILD_MAX,

    _SC_CLK_TCK,

    _SC_NGROUPS_MAX,

    _SC_OPEN_MAX,

    _SC_STREAM_MAX,

    _SC_TZNAME_MAX,

    _SC_JOB_CONTROL,

    _SC_SAVED_IDS,

    _SC_REALTIME_SIGNALS,

    _SC_PRIORITY_SCHEDULING,

    _SC_TIMERS,

    _SC_ASYNCHRONOUS_IO,

    _SC_PRIORITIZED_IO,

    _SC_SYNCHRONIZED_IO,

    _SC_FSYNC,

    _SC_MAPPED_FILES,

    _SC_MEMLOCK,

    _SC_MEMLOCK_RANGE,

    _SC_MEMORY_PROTECTION,

    _SC_MESSAGE_PASSING,

    _SC_SEMAPHORES,

    _SC_SHARED_MEMORY_OBJECTS,

    _SC_AIO_LISTIO_MAX,

    _SC_AIO_MAX,

    _SC_AIO_PRIO_DELTA_MAX,

    _SC_DELAYTIMER_MAX,

    _SC_MQ_OPEN_MAX,

    _SC_MQ_PRIO_MAX,

    _SC_VERSION,

    _SC_PAGESIZE,


    _SC_RTSIG_MAX,

    _SC_SEM_NSEMS_MAX,

    _SC_SEM_VALUE_MAX,

    _SC_SIGQUEUE_MAX,

    _SC_TIMER_MAX,


     

    _SC_BC_BASE_MAX,

    _SC_BC_DIM_MAX,

    _SC_BC_SCALE_MAX,

    _SC_BC_STRING_MAX,

    _SC_COLL_WEIGHTS_MAX,

    _SC_EQUIV_CLASS_MAX,

    _SC_EXPR_NEST_MAX,

    _SC_LINE_MAX,

    _SC_RE_DUP_MAX,

    _SC_CHARCLASS_NAME_MAX,


    _SC_2_VERSION,

    _SC_2_C_BIND,

    _SC_2_C_DEV,

    _SC_2_FORT_DEV,

    _SC_2_FORT_RUN,

    _SC_2_SW_DEV,

    _SC_2_LOCALEDEF,


    _SC_PII,

    _SC_PII_XTI,

    _SC_PII_SOCKET,

    _SC_PII_INTERNET,

    _SC_PII_OSI,

    _SC_POLL,

    _SC_SELECT,

    _SC_UIO_MAXIOV,

    _SC_IOV_MAX = _SC_UIO_MAXIOV ,

    _SC_PII_INTERNET_STREAM,

    _SC_PII_INTERNET_DGRAM,

    _SC_PII_OSI_COTS,

    _SC_PII_OSI_CLTS,

    _SC_PII_OSI_M,

    _SC_T_IOV_MAX,


     
    _SC_THREADS,

    _SC_THREAD_SAFE_FUNCTIONS,

    _SC_GETGR_R_SIZE_MAX,

    _SC_GETPW_R_SIZE_MAX,

    _SC_LOGIN_NAME_MAX,

    _SC_TTY_NAME_MAX,

    _SC_THREAD_DESTRUCTOR_ITERATIONS,

    _SC_THREAD_KEYS_MAX,

    _SC_THREAD_STACK_MIN,

    _SC_THREAD_THREADS_MAX,

    _SC_THREAD_ATTR_STACKADDR,

    _SC_THREAD_ATTR_STACKSIZE,

    _SC_THREAD_PRIORITY_SCHEDULING,

    _SC_THREAD_PRIO_INHERIT,

    _SC_THREAD_PRIO_PROTECT,

    _SC_THREAD_PROCESS_SHARED,


    _SC_NPROCESSORS_CONF,

    _SC_NPROCESSORS_ONLN,

    _SC_PHYS_PAGES,

    _SC_AVPHYS_PAGES,

    _SC_ATEXIT_MAX,

    _SC_PASS_MAX,


    _SC_XOPEN_VERSION,

    _SC_XOPEN_XCU_VERSION,

    _SC_XOPEN_UNIX,

    _SC_XOPEN_CRYPT,

    _SC_XOPEN_ENH_I18N,

    _SC_XOPEN_SHM,


    _SC_2_CHAR_TERM,

    _SC_2_C_VERSION,

    _SC_2_UPE,


    _SC_XOPEN_XPG2,

    _SC_XOPEN_XPG3,

    _SC_XOPEN_XPG4,


    _SC_CHAR_BIT,

    _SC_CHAR_MAX,

    _SC_CHAR_MIN,

    _SC_INT_MAX,

    _SC_INT_MIN,

    _SC_LONG_BIT,

    _SC_WORD_BIT,

    _SC_MB_LEN_MAX,

    _SC_NZERO,

    _SC_SSIZE_MAX,

    _SC_SCHAR_MAX,

    _SC_SCHAR_MIN,

    _SC_SHRT_MAX,

    _SC_SHRT_MIN,

    _SC_UCHAR_MAX,

    _SC_UINT_MAX,

    _SC_ULONG_MAX,

    _SC_USHRT_MAX,


    _SC_NL_ARGMAX,

    _SC_NL_LANGMAX,

    _SC_NL_MSGMAX,

    _SC_NL_NMAX,

    _SC_NL_SETMAX,

    _SC_NL_TEXTMAX,


    _SC_XBS5_ILP32_OFF32,

    _SC_XBS5_ILP32_OFFBIG,

    _SC_XBS5_LP64_OFF64,

    _SC_XBS5_LPBIG_OFFBIG,


    _SC_XOPEN_LEGACY,

    _SC_XOPEN_REALTIME,

    _SC_XOPEN_REALTIME_THREADS,


    _SC_ADVISORY_INFO,

    _SC_BARRIERS,

    _SC_BASE,

    _SC_C_LANG_SUPPORT,

    _SC_C_LANG_SUPPORT_R,

    _SC_CLOCK_SELECTION,

    _SC_CPUTIME,

    _SC_THREAD_CPUTIME,

    _SC_DEVICE_IO,

    _SC_DEVICE_SPECIFIC,

    _SC_DEVICE_SPECIFIC_R,

    _SC_FD_MGMT,

    _SC_FIFO,

    _SC_PIPE,

    _SC_FILE_ATTRIBUTES,

    _SC_FILE_LOCKING,

    _SC_FILE_SYSTEM,

    _SC_MONOTONIC_CLOCK,

    _SC_MULTI_PROCESS,

    _SC_SINGLE_PROCESS,

    _SC_NETWORKING,

    _SC_READER_WRITER_LOCKS,

    _SC_SPIN_LOCKS,

    _SC_REGEXP,

    _SC_REGEX_VERSION,

    _SC_SHELL,

    _SC_SIGNALS,

    _SC_SPAWN,

    _SC_SPORADIC_SERVER,

    _SC_THREAD_SPORADIC_SERVER,

    _SC_SYSTEM_DATABASE,

    _SC_SYSTEM_DATABASE_R,

    _SC_TIMEOUTS,

    _SC_TYPED_MEMORY_OBJECTS,

    _SC_USER_GROUPS,

    _SC_USER_GROUPS_R,

    _SC_2_PBS,

    _SC_2_PBS_ACCOUNTING,

    _SC_2_PBS_LOCATE,

    _SC_2_PBS_MESSAGE,

    _SC_2_PBS_TRACK,

    _SC_SYMLOOP_MAX,

    _SC_STREAMS,

    _SC_2_PBS_CHECKPOINT,


    _SC_V6_ILP32_OFF32,

    _SC_V6_ILP32_OFFBIG,

    _SC_V6_LP64_OFF64,

    _SC_V6_LPBIG_OFFBIG,


    _SC_HOST_NAME_MAX,

    _SC_TRACE,

    _SC_TRACE_EVENT_FILTER,

    _SC_TRACE_INHERIT,

    _SC_TRACE_LOG

  };




 
enum
  {
    _CS_PATH,			 


# 492 "/uClinux-dist/lib/uClibc/include/bits/confname.h"


# 527 "/uClinux-dist/lib/uClibc/include/bits/confname.h"

# 561 "/uClinux-dist/lib/uClibc/include/bits/confname.h"


    _CS_V6_WIDTH_RESTRICTED_ENVS

  };

# 503 "/uClinux-dist/lib/uClibc/include/unistd.h" 2


 
extern long int pathconf (__const char *__path, int __name)  ;

 
extern long int fpathconf (int __fd, int __name)  ;

 
extern long int sysconf (int __name)   __attribute__ ((__const__));


 
extern size_t confstr (int __name, char *__buf, size_t __len)  ;



 
extern __pid_t getpid (void)  ;

 
extern __pid_t getppid (void)  ;

 


extern __pid_t getpgrp (void)  ;








 
extern __pid_t __getpgid (__pid_t __pid)  ;





 


extern int setpgid (__pid_t __pid, __pid_t __pgid)  ;


 











 

extern int setpgrp (void)  ;

# 577 "/uClinux-dist/lib/uClibc/include/unistd.h"



 


extern __pid_t setsid (void)  ;






 
extern __uid_t getuid (void)  ;

 
extern __uid_t geteuid (void)  ;

 
extern __gid_t getgid (void)  ;

 
extern __gid_t getegid (void)  ;

 


extern int getgroups (int __size, __gid_t __list[])  ;







 



extern int setuid (__uid_t __uid)  ;


 

extern int setreuid (__uid_t __ruid, __uid_t __euid)  ;



 
extern int seteuid (__uid_t __uid)  ;


 



extern int setgid (__gid_t __gid)  ;


 

extern int setregid (__gid_t __rgid, __gid_t __egid)  ;



 
extern int setegid (__gid_t __gid)  ;



 


extern __pid_t fork (void)  ;


 



extern __pid_t vfork (void)  ;



 

extern char *ttyname (int __fd)  ;

 

extern int ttyname_r (int __fd, char *__buf, size_t __buflen)  ;

 

extern int isatty (int __fd)  ;



 

extern int ttyslot (void)  ;



 
extern int link (__const char *__from, __const char *__to)  ;


 
extern int symlink (__const char *__from, __const char *__to)  ;

 


extern int readlink (__const char *__restrict __path, char *__restrict __buf,
		     size_t __len)  ;


 
extern int unlink (__const char *__name)  ;

 
extern int rmdir (__const char *__path)  ;


 
extern __pid_t tcgetpgrp (int __fd)  ;

 
extern int tcsetpgrp (int __fd, __pid_t __pgrp_id)  ;


 
extern char *getlogin (void)  ;








 
extern int setlogin (__const char *__name)  ;




 



# 1 "/uClinux-dist/lib/uClibc/include/getopt.h" 1
 
























 














 





extern char *optarg;

 











extern int optind;

 


extern int opterr;

 

extern int optopt;

# 113 "/uClinux-dist/lib/uClibc/include/getopt.h"



 

























 


extern int getopt (int __argc, char *const *__argv, const char *__shortopts);




# 162 "/uClinux-dist/lib/uClibc/include/getopt.h"

# 171 "/uClinux-dist/lib/uClibc/include/getopt.h"






 



# 730 "/uClinux-dist/lib/uClibc/include/unistd.h" 2





 


extern int gethostname (char *__name, size_t __len)  ;




 

extern int sethostname (__const char *__name, size_t __len)  ;

 

extern int sethostid (long int __id)  ;


 


extern int getdomainname (char *__name, size_t __len)  ;
extern int setdomainname (__const char *__name, size_t __len)  ;


 


extern int vhangup (void)  ;

 
extern int revoke (__const char *__file)  ;


 




extern int profil (unsigned short int *__sample_buffer, size_t __size,
		   size_t __offset, unsigned int __scale)  ;


 


extern int acct (__const char *__name)  ;


 
extern char *getusershell (void)  ;
extern void endusershell (void)  ;  
extern void setusershell (void)  ;  


 


extern int daemon (int __nochdir, int __noclose)  ;




 

extern int chroot (__const char *__path)  ;

 

extern char *getpass (__const char *__prompt)  ;




 
extern int fsync (int __fd)  ;





 
extern long int gethostid (void)  ;

 
extern void sync (void)  ;


 

extern int getpagesize (void)    __attribute__ ((__const__));


 

extern int truncate (__const char *__file, __off_t __length)  ;
# 838 "/uClinux-dist/lib/uClibc/include/unistd.h"





 

extern int ftruncate (int __fd, __off_t __length)  ;













 

extern int getdtablesize (void)  ;






 

extern int brk (void *__addr)  ;

 



extern void *sbrk (intptr_t __delta)  ;




 









extern long int syscall (long int __sysno, ...)  ;





 



 









extern int lockf (int __fd, int __cmd, __off_t __len)  ;














# 937 "/uClinux-dist/lib/uClibc/include/unistd.h"



 

extern int fdatasync (int __fildes)  ;



 

# 963 "/uClinux-dist/lib/uClibc/include/unistd.h"



 








 

 









extern int pthread_atfork (void (*__prepare) (void),
			   void (*__parent) (void),
			   void (*__child) (void))  ;


 


# 22 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/stdlib.h" 1
 

















 







 







# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 35 "/uClinux-dist/lib/uClibc/include/stdlib.h" 2


 




# 93 "/uClinux-dist/lib/uClibc/include/stdlib.h"


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

 

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



# 120 "/uClinux-dist/lib/uClibc/include/stdlib.h"



 



 











 
extern double atof (__const char *__nptr)    ;
 
extern int atoi (__const char *__nptr)    ;
 
extern long int atol (__const char *__nptr)    ;


 
__extension__ extern long long int atoll (__const char *__nptr)
        ;


 
extern double strtod (__const char *__restrict __nptr,
		      char **__restrict __endptr)  ;










 
extern long int strtol (__const char *__restrict __nptr,
			char **__restrict __endptr, int __base)  ;
 
extern unsigned long int strtoul (__const char *__restrict __nptr,
				  char **__restrict __endptr, int __base)
      ;


 
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
			     char **__restrict __endptr, int __base)  ;
 
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
				       char **__restrict __endptr, int __base)
      ;



 

 
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
			      char **__restrict __endptr, int __base)  ;
 
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
					char **__restrict __endptr, int __base)
      ;



# 248 "/uClinux-dist/lib/uClibc/include/stdlib.h"



 


extern double __strtod_internal (__const char *__restrict __nptr,
				 char **__restrict __endptr, int __group)
      ;
extern float __strtof_internal (__const char *__restrict __nptr,
				char **__restrict __endptr, int __group)
      ;
extern long double __strtold_internal (__const char *__restrict __nptr,
				       char **__restrict __endptr,
				       int __group)  ;

extern long int __strtol_internal (__const char *__restrict __nptr,
				   char **__restrict __endptr,
				   int __base, int __group)  ;



extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
					     char **__restrict __endptr,
					     int __base, int __group)  ;




__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
					 char **__restrict __endptr,
					 int __base, int __group)  ;



__extension__
extern unsigned long long int __strtoull_internal (__const char *
						   __restrict __nptr,
						   char **__restrict __endptr,
						   int __base, int __group)
      ;




# 381 "/uClinux-dist/lib/uClibc/include/stdlib.h"




 


extern char *l64a (long int __n)  ;

 
extern long int a64l (__const char *__s)    ;




 



 
extern long int random (void)  ;

 
extern void srandom (unsigned int __seed)  ;

 



extern char *initstate (unsigned int __seed, char *__statebuf,
			size_t __statelen)  ;

 

extern char *setstate (char *__statebuf)  ;



 



struct random_data
  {
    int32_t *fptr;		 
    int32_t *rptr;		 
    int32_t *state;		 
    int rand_type;		 
    int rand_deg;		 
    int rand_sep;		 
    int32_t *end_ptr;		 
  };

extern int random_r (struct random_data *__restrict __buf,
		     int32_t *__restrict __result)  ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf)  ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
			size_t __statelen,
			struct random_data *__restrict __buf)  ;

extern int setstate_r (char *__restrict __statebuf,
		       struct random_data *__restrict __buf)  ;




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


 
extern int rand_r (unsigned int *__seed)  ;




 

 
extern double drand48 (void)  ;
extern double erand48 (unsigned short int __xsubi[3])  ;

 
extern long int lrand48 (void)  ;
extern long int nrand48 (unsigned short int __xsubi[3])  ;

 
extern long int mrand48 (void)  ;
extern long int jrand48 (unsigned short int __xsubi[3])  ;

 
extern void srand48 (long int __seedval)  ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3])  ;
extern void lcong48 (unsigned short int __param[7])  ;


 


struct drand48_data
  {
    unsigned short int __x[3];	 
    unsigned short int __old_x[3];  
    unsigned short int __c;	 
    unsigned short int __init;	 
    unsigned long long int __a;	 
  };

 
extern int drand48_r (struct drand48_data *__restrict __buffer,
		      double *__restrict __result)  ;
extern int erand48_r (unsigned short int __xsubi[3],
		      struct drand48_data *__restrict __buffer,
		      double *__restrict __result)  ;

 
extern int lrand48_r (struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)  ;
extern int nrand48_r (unsigned short int __xsubi[3],
		      struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)  ;

 
extern int mrand48_r (struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)  ;
extern int jrand48_r (unsigned short int __xsubi[3],
		      struct drand48_data *__restrict __buffer,
		      long int *__restrict __result)  ;

 
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
      ;

extern int seed48_r (unsigned short int __seed16v[3],
		     struct drand48_data *__buffer)  ;

extern int lcong48_r (unsigned short int __param[7],
		      struct drand48_data *__buffer)  ;







 
extern void *malloc (size_t __size)    ;
 
extern void *calloc (size_t __nmemb, size_t __size)
        ;



 

extern void *realloc (void *__ptr, size_t __size)    ;
 
extern void free (void *__ptr)  ;


 
extern void cfree (void *__ptr)  ;



# 1 "/uClinux-dist/lib/uClibc/include/alloca.h" 1
 























# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 25 "/uClinux-dist/lib/uClibc/include/alloca.h" 2


 

 


 
extern void *alloca (size_t __size)  ;





 


# 550 "/uClinux-dist/lib/uClibc/include/stdlib.h" 2




 
extern void *valloc (size_t __size)    ;








 
extern void abort (void)   __attribute__ ((__noreturn__));


 
extern int atexit (void (*__func) (void))  ;

 




 

extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
      ;


 


extern void exit (int __status)   __attribute__ ((__noreturn__));








 
extern char *getenv (__const char *__name)  ;

 

extern char *__secure_getenv (__const char *__name)  ;


 
 

extern int putenv (char *__string)  ;



 

extern int setenv (__const char *__name, __const char *__value, int __replace)
      ;

 
extern int unsetenv (__const char *__name)  ;



 


extern int clearenv (void)  ;




 



extern char *mktemp (char *__template)  ;

 





extern int mkstemp (char *__template)  ;













 




extern char *mkdtemp (char *__template)  ;



 
extern int system (__const char *__command)  ;











 





extern char *realpath (__const char *__restrict __name,
		       char *__restrict __resolved)  ;



 


typedef int (*__compar_fn_t) (__const void *, __const void *);






 

extern void *bsearch (__const void *__key, __const void *__base,
		      size_t __nmemb, size_t __size, __compar_fn_t __compar);

 

extern void qsort (void *__base, size_t __nmemb, size_t __size,
		   __compar_fn_t __compar);


 
extern int abs (int __x)   __attribute__ ((__const__));
extern long int labs (long int __x)   __attribute__ ((__const__));






 

 
extern div_t div (int __numer, int __denom)
       __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
       __attribute__ ((__const__));








 


 


extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign)  ;

 


extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign)  ;

 


extern char *gcvt (double __value, int __ndigit, char *__buf)  ;



 
extern char *qecvt (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign)  ;
extern char *qfcvt (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign)  ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)  ;


 

extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign, char *__restrict __buf,
		   size_t __len)  ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
		   int *__restrict __sign, char *__restrict __buf,
		   size_t __len)  ;

extern int qecvt_r (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign,
		    char *__restrict __buf, size_t __len)  ;
extern int qfcvt_r (long double __value, int __ndigit,
		    int *__restrict __decpt, int *__restrict __sign,
		    char *__restrict __buf, size_t __len)  ;



# 799 "/uClinux-dist/lib/uClibc/include/stdlib.h"



 



extern int rpmatch (__const char *__response)  ;



# 820 "/uClinux-dist/lib/uClibc/include/stdlib.h"









 






# 851 "/uClinux-dist/lib/uClibc/include/stdlib.h"


# 862 "/uClinux-dist/lib/uClibc/include/stdlib.h"



 


extern int getloadavg (double __loadavg[], int __nelem)  ;





 


# 23 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/sys/stat.h" 1
 

















 










# 78 "/uClinux-dist/lib/uClibc/include/sys/stat.h"


# 94 "/uClinux-dist/lib/uClibc/include/sys/stat.h"


 

# 1 "/uClinux-dist/lib/uClibc/include/bits/stat.h" 1
 





















 






 





struct stat
  {
    __dev_t st_dev;			 
    unsigned short int __pad1;

    __ino_t st_ino;			 



    __mode_t st_mode;			 
    __nlink_t st_nlink;			 
    __uid_t st_uid;			 
    __gid_t st_gid;			 
    __dev_t st_rdev;			 
    unsigned short int __pad2;

    __off_t st_size;			 



    __blksize_t st_blksize;		 


    __blkcnt_t st_blocks;		 



    __time_t st_atime;			 
    unsigned long int __unused1;
    __time_t st_mtime;			 
    unsigned long int __unused2;
    __time_t st_ctime;			 
    unsigned long int __unused3;

    unsigned long int __unused4;
    unsigned long int __unused5;



  };

# 102 "/uClinux-dist/lib/uClibc/include/bits/stat.h"


 



 



 








 





 







# 98 "/uClinux-dist/lib/uClibc/include/sys/stat.h" 2




















 























 










 





 






 











 





 




 









 
extern int stat (__const char *__restrict __file,
		 struct stat *__restrict __buf)  ;

 

extern int fstat (int __fd, struct stat *__buf)  ;
# 217 "/uClinux-dist/lib/uClibc/include/sys/stat.h"









 

extern int lstat (__const char *__restrict __file,
		  struct stat *__restrict __buf)  ;
# 239 "/uClinux-dist/lib/uClibc/include/sys/stat.h"







 


extern int chmod (__const char *__file, __mode_t __mode)  ;

 

extern int fchmod (int __fd, __mode_t __mode)  ;



 

extern __mode_t umask (__mode_t __mask)  ;







 
extern int mkdir (__const char *__path, __mode_t __mode)  ;

 



extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
      ;



 
extern int mkfifo (__const char *__path, __mode_t __mode)  ;

 





















 

extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)  ;
extern int __xstat (int __ver, __const char *__filename,
		    struct stat *__stat_buf)  ;
extern int __lxstat (int __ver, __const char *__filename,
		     struct stat *__stat_buf)  ;
# 327 "/uClinux-dist/lib/uClibc/include/sys/stat.h"










extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
		     __dev_t *__dev)  ;


 

extern __inline__ int stat (__const char *__path,
			    struct stat *__statbuf)  
{
  return __xstat (3  , __path, __statbuf);
}


extern __inline__ int lstat (__const char *__path,
			     struct stat *__statbuf)  
{
  return __lxstat (3  , __path, __statbuf);
}


extern __inline__ int fstat (int __fd, struct stat *__statbuf)  
{
  return __fxstat (3  , __fd, __statbuf);
}


extern __inline__ int mknod (__const char *__path, __mode_t __mode,
			     __dev_t __dev)  
{
  return __xmknod (1  , __path, __mode, &__dev);
}


# 391 "/uClinux-dist/lib/uClibc/include/sys/stat.h"




 



# 24 "inetd.c" 2


# 1 "/uClinux-dist/lib/uClibc/include/sys/wait.h" 1
 

















 








 

# 1 "/uClinux-dist/lib/uClibc/include/signal.h" 1
 

















 











 

# 1 "/uClinux-dist/lib/uClibc/include/bits/sigset.h" 1
 


















# 33 "/uClinux-dist/lib/uClibc/include/bits/sigset.h"



 












 



 














# 97 "/uClinux-dist/lib/uClibc/include/bits/sigset.h"



 


extern int __sigismember (__const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);

# 122 "/uClinux-dist/lib/uClibc/include/bits/sigset.h"




# 33 "/uClinux-dist/lib/uClibc/include/signal.h" 2


 




typedef __sig_atomic_t sig_atomic_t;















# 1 "/uClinux-dist/lib/uClibc/include/bits/signum.h" 1
 




















 









 










































 





# 56 "/uClinux-dist/lib/uClibc/include/signal.h" 2


# 67 "/uClinux-dist/lib/uClibc/include/signal.h"



 
typedef void (*__sighandler_t) (int);

 


extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
      ;





 



extern __sighandler_t signal (int __sig, __sighandler_t __handler)  ;
# 98 "/uClinux-dist/lib/uClibc/include/signal.h"








 



extern int kill (__pid_t __pid, int __sig)  ;



 


extern int killpg (__pid_t __pgrp, int __sig)  ;


 
extern int raise (int __sig)  ;


 
extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)  ;
extern int gsignal (int __sig)  ;



 
extern void psignal (int __sig, __const char *__s)  ;



 




extern int __sigpause (int __sig_or_mask, int __is_sig)  ;


 

extern int sigpause (int __mask)  ;

# 155 "/uClinux-dist/lib/uClibc/include/signal.h"




 




 


 
extern int sigblock (int __mask)  ;

 
extern int sigsetmask (int __mask)  ;

 
extern int siggetmask (void)  ;











 

typedef __sighandler_t sig_t;





 

# 1 "/uClinux-dist/lib/uClibc/include/time.h" 1
 

















 














# 51 "/uClinux-dist/lib/uClibc/include/time.h"


# 61 "/uClinux-dist/lib/uClibc/include/time.h"



# 72 "/uClinux-dist/lib/uClibc/include/time.h"



# 84 "/uClinux-dist/lib/uClibc/include/time.h"



# 96 "/uClinux-dist/lib/uClibc/include/time.h"




# 112 "/uClinux-dist/lib/uClibc/include/time.h"




# 366 "/uClinux-dist/lib/uClibc/include/time.h"



# 196 "/uClinux-dist/lib/uClibc/include/signal.h" 2


 
# 1 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h" 1
 























# 1 "/uClinux-dist/lib/uClibc/include/bits/wordsize.h" 1
 


















# 25 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h" 2







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













typedef struct siginfo
  {
    int si_signo;		 
    int si_errno;		 

    int si_code;		 

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

	  
	struct
	  {
	    __pid_t si_pid;	 
	    __uid_t si_uid;	 
	  } _kill;

	 
	struct
	  {
	    unsigned int _timer1;
	    unsigned int _timer2;
	  } _timer;

	 
	struct
	  {
	    __pid_t si_pid;	 
	    __uid_t si_uid;	 
	    sigval_t si_sigval;	 
	  } _rt;

	 
	struct
	  {
	    __pid_t si_pid;	 
	    __uid_t si_uid;	 
	    int si_status;	 
	    __clock_t si_utime;
	    __clock_t si_stime;
	  } _sigchld;

	 
	struct
	  {
	    void *si_addr;	 
	  } _sigfault;

	 
	struct
	  {
	    long int si_band;	 
	    int si_fd;
	  } _sigpoll;
      } _sifields;
  } siginfo_t;


 















 

enum
{
  SI_ASYNCNL = -6,		 

  SI_SIGIO,			 

  SI_ASYNCIO,			 

  SI_MESGQ,			 

  SI_TIMER,			 

  SI_QUEUE,			 

  SI_USER,			 

  SI_KERNEL = 0x80		 

};


 
enum
{
  ILL_ILLOPC = 1,		 

  ILL_ILLOPN,			 

  ILL_ILLADR,			 

  ILL_ILLTRP,			 

  ILL_PRVOPC,			 

  ILL_PRVREG,			 

  ILL_COPROC,			 

  ILL_BADSTK			 

};

 
enum
{
  FPE_INTDIV = 1,		 

  FPE_INTOVF,			 

  FPE_FLTDIV,			 

  FPE_FLTOVF,			 

  FPE_FLTUND,			 

  FPE_FLTRES,			 

  FPE_FLTINV,			 

  FPE_FLTSUB			 

};

 
enum
{
  SEGV_MAPERR = 1,		 

  SEGV_ACCERR			 

};

 
enum
{
  BUS_ADRALN = 1,		 

  BUS_ADRERR,			 

  BUS_OBJERR			 

};

 
enum
{
  TRAP_BRKPT = 1,		 

  TRAP_TRACE			 

};

 
enum
{
  CLD_EXITED = 1,		 

  CLD_KILLED,			 

  CLD_DUMPED,			 

  CLD_TRAPPED,			 

  CLD_STOPPED,			 

  CLD_CONTINUED			 

};

 
enum
{
  POLL_IN = 1,			 

  POLL_OUT,			 

  POLL_MSG,			 

  POLL_ERR,			 

  POLL_PRI,			 

  POLL_HUP			 

};









 







 
struct __pthread_attr_s;

typedef struct sigevent
  {
    sigval_t sigev_value;
    int sigev_signo;
    int sigev_notify;

    union
      {
	int _pad[((64  / sizeof (int)) - 3) ];

	struct
	  {
	    void (*_function) (sigval_t);	   
	    struct __pthread_attr_s *_attribute;   
	  } _sigev_thread;
      } _sigev_un;
  } sigevent_t;

 



 
enum
{
  SIGEV_SIGNAL = 0,		 

  SIGEV_NONE,			 

  SIGEV_THREAD			 

};


# 199 "/uClinux-dist/lib/uClibc/include/signal.h" 2



 
extern int sigemptyset (sigset_t *__set)  ;

 
extern int sigfillset (sigset_t *__set)  ;

 
extern int sigaddset (sigset_t *__set, int __signo)  ;

 
extern int sigdelset (sigset_t *__set, int __signo)  ;

 
extern int sigismember (__const sigset_t *__set, int __signo)  ;

# 228 "/uClinux-dist/lib/uClibc/include/signal.h"


 

# 1 "/uClinux-dist/lib/uClibc/include/bits/sigaction.h" 1
 






















 
struct sigaction
  {
     

    union
      {
	 
	__sighandler_t sa_handler;
	 
	void (*sa_sigaction) (int, siginfo_t *, void *);
      }
    __sigaction_handler;






     
    __sigset_t sa_mask;

     
    int sa_flags;

     
    void (*sa_restorer) (void);
  };

 














 





 



# 232 "/uClinux-dist/lib/uClibc/include/signal.h" 2


 
extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
			sigset_t *__restrict __oset)  ;

 

extern int sigsuspend (__const sigset_t *__set)  ;

 
extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
		      struct sigaction *__restrict __oact)  ;

 
extern int sigpending (sigset_t *__set)  ;


 
extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
      ;


 
extern int sigwaitinfo (__const sigset_t *__restrict __set,
			siginfo_t *__restrict __info)  ;

 

extern int sigtimedwait (__const sigset_t *__restrict __set,
			 siginfo_t *__restrict __info,
			 __const struct timespec *__restrict __timeout)
      ;

 

extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
      ;






 

extern __const char *__const _sys_siglist[64 ];
extern __const char *__const sys_siglist[64 ];

 
struct sigvec
  {
    __sighandler_t sv_handler;	 
    int sv_mask;		 

    int sv_flags;		 

  };

 





 




extern int sigvec (int __sig, __const struct sigvec *__vec,
		   struct sigvec *__ovec)  ;


 
# 1 "/uClinux-dist/lib/uClibc/include/bits/sigcontext.h" 1
 






















 



# 1 "/uClinux-dist/lib/uClibc/include/asm/sigcontext.h" 1



 




struct sigcontext {
	unsigned long trap_no;
	unsigned long error_code;
	unsigned long oldmask;
	unsigned long arm_r0;
	unsigned long arm_r1;
	unsigned long arm_r2;
	unsigned long arm_r3;
	unsigned long arm_r4;
	unsigned long arm_r5;
	unsigned long arm_r6;
	unsigned long arm_r7;
	unsigned long arm_r8;
	unsigned long arm_r9;
	unsigned long arm_r10;
	unsigned long arm_fp;
	unsigned long arm_ip;
	unsigned long arm_sp;
	unsigned long arm_lr;
	unsigned long arm_pc;
	unsigned long arm_cpsr;
	unsigned long fault_address;
};



# 28 "/uClinux-dist/lib/uClibc/include/bits/sigcontext.h" 2


# 307 "/uClinux-dist/lib/uClibc/include/signal.h" 2


 
extern int sigreturn (struct sigcontext *__scp)  ;






 


extern int siginterrupt (int __sig, int __interrupt)  ;

# 1 "/uClinux-dist/lib/uClibc/include/bits/sigstack.h" 1
 























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


 
enum
{
  SS_ONSTACK = 1,

  SS_DISABLE

};

 


 



 
typedef struct sigaltstack
  {
    void *ss_sp;
    int ss_flags;
    size_t ss_size;
  } stack_t;
# 322 "/uClinux-dist/lib/uClibc/include/signal.h" 2





 


extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)  ;

 

extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
			struct sigaltstack *__restrict __oss)  ;



# 353 "/uClinux-dist/lib/uClibc/include/signal.h"








 


 
extern int __libc_current_sigrtmin (void)  ;
 
extern int __libc_current_sigrtmax (void)  ;



 


# 30 "/uClinux-dist/lib/uClibc/include/sys/wait.h" 2

# 1 "/uClinux-dist/lib/uClibc/include/sys/resource.h" 1
 






















 
# 1 "/uClinux-dist/lib/uClibc/include/bits/resource.h" 1
 
























 




 
enum __rlimit_resource
{
   
  RLIMIT_CPU = 0,


   
  RLIMIT_FSIZE = 1,


   
  RLIMIT_DATA = 2,


   
  RLIMIT_STACK = 3,


   
  RLIMIT_CORE = 4,


   



  RLIMIT_RSS = 5,


   
  RLIMIT_NOFILE = 7,
  RLIMIT_OFILE = RLIMIT_NOFILE,  



   
  RLIMIT_AS = 9,


   
  RLIMIT_NPROC = 6,


   
  RLIMIT_MEMLOCK = 8,


   
  RLIMIT_LOCKS = 10,


  RLIMIT_NLIMITS = 11,
  RLIM_NLIMITS = RLIMIT_NLIMITS


};

 










 




 

typedef __rlim_t rlim_t;







struct rlimit
  {
     
    rlim_t rlim_cur;
     
    rlim_t rlim_max;
  };

# 131 "/uClinux-dist/lib/uClibc/include/bits/resource.h"


 
enum __rusage_who
{
   
  RUSAGE_SELF = 0,


   
  RUSAGE_CHILDREN = -1,


   
  RUSAGE_BOTH = -2

};


# 1 "/uClinux-dist/lib/uClibc/include/bits/time.h" 1
 


















 



# 53 "/uClinux-dist/lib/uClibc/include/bits/time.h"




# 68 "/uClinux-dist/lib/uClibc/include/bits/time.h"


# 150 "/uClinux-dist/lib/uClibc/include/bits/resource.h" 2


 
struct rusage
  {
     
    struct timeval ru_utime;
     
    struct timeval ru_stime;
     
    long int ru_maxrss;
     

    long int ru_ixrss;
     
    long int ru_idrss;
     
    long int ru_isrss;
     

    long int ru_minflt;
     
    long int ru_majflt;
     
    long int ru_nswap;
     

    long int ru_inblock;
     
    long int ru_oublock;
     
    long int ru_msgsnd;
     
    long int ru_msgrcv;
     
    long int ru_nsignals;
     


    long int ru_nvcsw;
     

    long int ru_nivcsw;
  };

 



 

enum __priority_which
{
  PRIO_PROCESS = 0,		 

  PRIO_PGRP = 1,		 

  PRIO_USER = 2			 

};
# 25 "/uClinux-dist/lib/uClibc/include/sys/resource.h" 2







 

 








typedef int __rlimit_resource_t;
typedef int __rusage_who_t;
typedef int __priority_which_t;


 


extern int getrlimit (__rlimit_resource_t __resource,
		      struct rlimit *__rlimits)  ;
# 61 "/uClinux-dist/lib/uClibc/include/sys/resource.h"






 



extern int setrlimit (__rlimit_resource_t __resource,
		      __const struct rlimit *__rlimits)  ;
# 81 "/uClinux-dist/lib/uClibc/include/sys/resource.h"






 

extern int getrusage (__rusage_who_t __who, struct rusage *__usage)  ;

 



extern int getpriority (__priority_which_t __which, id_t __who)  ;

 

extern int setpriority (__priority_which_t __which, id_t __who, int __prio)
      ;

 


# 31 "/uClinux-dist/lib/uClibc/include/sys/wait.h" 2


 

 

# 1 "/uClinux-dist/lib/uClibc/include/bits/waitflags.h" 1
 























 





# 37 "/uClinux-dist/lib/uClibc/include/sys/wait.h" 2




 










 








 
typedef union
  {
    union wait *__uptr;
    int *__iptr;
  } __WAIT_STATUS __attribute__ ((__transparent_union__));











 
# 1 "/uClinux-dist/lib/uClibc/include/bits/waitstatus.h" 1
 























 


 


 


 


 


 








 


 


 









union wait
  {
    int w_status;
    struct
      {







	unsigned int:16;
	unsigned int __w_retcode:8;
	unsigned int __w_coredump:1;
	unsigned int __w_termsig:7;

      } __wait_terminated;
    struct
      {






	unsigned int:16;
	unsigned int __w_stopsig:8;  
	unsigned int __w_stopval:8;  

      } __wait_stopped;
  };








# 79 "/uClinux-dist/lib/uClibc/include/sys/wait.h" 2

















 

typedef enum
{
  P_ALL,		 
  P_PID,		 
  P_PGID		 
} idtype_t;



 

extern __pid_t wait (__WAIT_STATUS __stat_loc)  ;


 




 











extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options)  ;



# 1 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h" 1
 























# 1 "/uClinux-dist/lib/uClibc/include/bits/wordsize.h" 1
 


















# 25 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h" 2


# 38 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h"


# 255 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h"



# 306 "/uClinux-dist/lib/uClibc/include/bits/siginfo.h"

# 133 "/uClinux-dist/lib/uClibc/include/sys/wait.h" 2

 







extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop,
		   int __options)  ;



 

struct rusage;

 




extern __pid_t wait3 (__WAIT_STATUS __stat_loc, int __options,
		      struct rusage * __usage)  ;



 

struct rusage;

 
extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
		      struct rusage *__usage)  ;



 


# 26 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/sys/time.h" 1
 
























# 1 "/uClinux-dist/lib/uClibc/include/time.h" 1
 

















 














# 51 "/uClinux-dist/lib/uClibc/include/time.h"


# 61 "/uClinux-dist/lib/uClibc/include/time.h"



# 72 "/uClinux-dist/lib/uClibc/include/time.h"



# 84 "/uClinux-dist/lib/uClibc/include/time.h"



# 96 "/uClinux-dist/lib/uClibc/include/time.h"




# 112 "/uClinux-dist/lib/uClibc/include/time.h"




# 366 "/uClinux-dist/lib/uClibc/include/time.h"



# 26 "/uClinux-dist/lib/uClibc/include/sys/time.h" 2


# 1 "/uClinux-dist/lib/uClibc/include/bits/time.h" 1
 


















 



# 53 "/uClinux-dist/lib/uClibc/include/bits/time.h"




# 68 "/uClinux-dist/lib/uClibc/include/bits/time.h"


# 28 "/uClinux-dist/lib/uClibc/include/sys/time.h" 2





typedef __suseconds_t suseconds_t;




 

# 50 "/uClinux-dist/lib/uClibc/include/sys/time.h"




 

struct timezone
  {
    int tz_minuteswest;		 
    int tz_dsttime;		 
  };

typedef struct timezone *__restrict __timezone_ptr_t;




 




extern int gettimeofday (struct timeval *__restrict __tv,
			 __timezone_ptr_t __tz)  ;


 

extern int settimeofday (__const struct timeval *__tv,
			 __const struct timezone *__tz)  ;

 



extern int adjtime (__const struct timeval *__delta,
		    struct timeval *__olddelta)  ;



 
enum __itimer_which
  {
     
    ITIMER_REAL = 0,

     
    ITIMER_VIRTUAL = 1,

     

    ITIMER_PROF = 2

  };

 

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






typedef int __itimer_which_t;


 

extern int getitimer (__itimer_which_t __which,
		      struct itimerval *__value)  ;

 


extern int setitimer (__itimer_which_t __which,
		      __const struct itimerval *__restrict __new,
		      struct itimerval *__restrict __old)  ;

 

extern int utimes (__const char *__file, __const struct timeval __tvp[2])
      ;



 








# 160 "/uClinux-dist/lib/uClibc/include/sys/time.h"

# 169 "/uClinux-dist/lib/uClibc/include/sys/time.h"


 


# 27 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/dirent.h" 1
 

















 








 



# 45 "/uClinux-dist/lib/uClibc/include/dirent.h"


 














# 1 "/uClinux-dist/lib/uClibc/include/bits/dirent.h" 1
 





















struct dirent
  {

    __ino_t d_ino;
    __off_t d_off;




    unsigned short int d_reclen;



    char d_name[256];		 
  };

# 48 "/uClinux-dist/lib/uClibc/include/bits/dirent.h"












# 62 "/uClinux-dist/lib/uClibc/include/dirent.h" 2






 




























 
enum
  {
    DT_UNKNOWN = 0,

    DT_FIFO = 1,

    DT_CHR = 2,

    DT_DIR = 4,

    DT_BLK = 6,

    DT_REG = 8,

    DT_LNK = 10,

    DT_SOCK = 12,

    DT_WHT = 14

  };

 





 

typedef struct __dirstream DIR;

 

extern DIR *opendir (__const char *__name)  ;

 

extern int closedir (DIR *__dirp)  ;

 







extern struct dirent *readdir (DIR *__dirp)  ;













 


extern int readdir_r (DIR *__restrict __dirp,
		      struct dirent *__restrict __entry,
		      struct dirent **__restrict __result)  ;
# 176 "/uClinux-dist/lib/uClibc/include/dirent.h"









 
extern void rewinddir (DIR *__dirp)  ;




 
extern void seekdir (DIR *__dirp, long int __pos)  ;

 
extern long int telldir (DIR *__dirp)  ;




 
extern int dirfd (DIR *__dirp)  ;






 
# 1 "/uClinux-dist/lib/uClibc/include/bits/posix1_lim.h" 1
 

















 









 

 


 


 


 


 


 


 


 



 


 


 


 


 



 


 


 


 


 


 


 


 


 


 


 


 



 


 


 


 


 



 
# 1 "/uClinux-dist/lib/uClibc/include/bits/local_lim.h" 1
 


















 














 
# 1 "/uClinux-dist/lib/uClibc/include/linux/limits.h" 1



















# 36 "/uClinux-dist/lib/uClibc/include/bits/local_lim.h" 2


 




 




 





 

 


 

 


 

 


 



 


 

# 126 "/uClinux-dist/lib/uClibc/include/bits/posix1_lim.h" 2








 







# 209 "/uClinux-dist/lib/uClibc/include/dirent.h" 2


 








# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 220 "/uClinux-dist/lib/uClibc/include/dirent.h" 2


 




extern int scandir (__const char *__restrict __dir,
		    struct dirent ***__restrict __namelist,
		    int (*__selector) (__const struct dirent *),
		    int (*__cmp) (__const void *, __const void *))  ;
# 242 "/uClinux-dist/lib/uClibc/include/dirent.h"











 

extern int alphasort (__const void *__e1, __const void *__e2)
        ;
# 266 "/uClinux-dist/lib/uClibc/include/dirent.h"







# 293 "/uClinux-dist/lib/uClibc/include/dirent.h"


 




extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
				size_t __nbytes,
				__off_t *__restrict __basep)  ;
# 313 "/uClinux-dist/lib/uClibc/include/dirent.h"










 


# 28 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/errno.h" 1
 

















 





 






 

 

# 1 "/uClinux-dist/lib/uClibc/include/bits/errno.h" 1
 























# 1 "/uClinux-dist/lib/uClibc/include/linux/errno.h" 1



# 1 "/uClinux-dist/lib/uClibc/include/asm/errno.h" 1




































































































































# 4 "/uClinux-dist/lib/uClibc/include/linux/errno.h" 2


# 24 "/uClinux-dist/lib/uClibc/include/linux/errno.h"



# 25 "/uClinux-dist/lib/uClibc/include/bits/errno.h" 2


 


 




 
extern int errno;

 
extern int *__errno_location (void)   __attribute__ ((__const__));







 













# 36 "/uClinux-dist/lib/uClibc/include/errno.h" 2





 








# 58 "/uClinux-dist/lib/uClibc/include/errno.h"



 



 










# 29 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/string.h" 1
 

















 








 

 


# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 33 "/uClinux-dist/lib/uClibc/include/string.h" 2



 
extern void *memcpy (void *__restrict __dest,
		     __const void *__restrict __src, size_t __n)  ;
 

extern void *memmove (void *__dest, __const void *__src, size_t __n)
      ;

 



extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
		      int __c, size_t __n)
      ;



 
extern void *memset (void *__s, int __c, size_t __n)  ;

 
extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
        ;

 
extern void *memchr (__const void *__s, int __c, size_t __n)
         ;

 






 
extern void *memrchr (__const void *__s, int __c, size_t __n)
         ;


 
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
      ;
 
extern char *strncpy (char *__restrict __dest,
		      __const char *__restrict __src, size_t __n)  ;

 
extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
      ;
 
extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
		      size_t __n)  ;

 
extern int strcmp (__const char *__s1, __const char *__s2)
        ;
 
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
        ;

 
extern int strcoll (__const char *__s1, __const char *__s2)
        ;
 
extern size_t strxfrm (char *__restrict __dest,
		       __const char *__restrict __src, size_t __n)  ;

# 118 "/uClinux-dist/lib/uClibc/include/string.h"



 
extern char *strdup (__const char *__s)    ;


 







# 154 "/uClinux-dist/lib/uClibc/include/string.h"


 
extern char *strchr (__const char *__s, int __c)    ;
 
extern char *strrchr (__const char *__s, int __c)    ;








 

extern size_t strcspn (__const char *__s, __const char *__reject)
        ;
 

extern size_t strspn (__const char *__s, __const char *__accept)
        ;
 
extern char *strpbrk (__const char *__s, __const char *__accept)
        ;
 
extern char *strstr (__const char *__haystack, __const char *__needle)
        ;







 
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
      ;

 

extern char *__strtok_r (char *__restrict __s,
			 __const char *__restrict __delim,
			 char **__restrict __save_ptr)  ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
		       char **__restrict __save_ptr)  ;


# 219 "/uClinux-dist/lib/uClibc/include/string.h"



 
extern size_t strlen (__const char *__s)    ;









 
extern char *strerror (int __errnum)  ;

 

extern int strerror_r (int __errnum, char *__buf, size_t buflen)  ;


 

extern void __bzero (void *__s, size_t __n)  ;


 
extern void bcopy (__const void *__src, void *__dest, size_t __n)  ;

 
extern void bzero (void *__s, size_t __n)  ;

 
extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
        ;

 
extern char *index (__const char *__s, int __c)    ;

 
extern char *rindex (__const char *__s, int __c)    ;

 

extern int ffs (int __i)   __attribute__ ((__const__));

 










 
extern int strcasecmp (__const char *__s1, __const char *__s2)
        ;

 
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
        ;


# 296 "/uClinux-dist/lib/uClibc/include/string.h"



 

extern char *strsep (char **__restrict __stringp,
		     __const char *__restrict __delim)  ;


# 343 "/uClinux-dist/lib/uClibc/include/string.h"


# 374 "/uClinux-dist/lib/uClibc/include/string.h"


 


# 30 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/termios.h" 1
 

















 
















 

 

# 1 "/uClinux-dist/lib/uClibc/include/bits/termios.h" 1
 






















typedef unsigned char	cc_t;
typedef unsigned int	speed_t;
typedef unsigned int	tcflag_t;


struct termios
  {
    tcflag_t c_iflag;		 
    tcflag_t c_oflag;		 
    tcflag_t c_cflag;		 
    tcflag_t c_lflag;		 
    cc_t c_line;			 
    cc_t c_cc[32 ];		 
    speed_t c_ispeed;		 
    speed_t c_ospeed;		 
  };

 


















 















 






































 


























































 




















 





 




 







# 40 "/uClinux-dist/lib/uClibc/include/termios.h" 2



 




 
extern speed_t cfgetospeed (__const struct termios *__termios_p)  ;

 
extern speed_t cfgetispeed (__const struct termios *__termios_p)  ;

 
extern int cfsetospeed (struct termios *__termios_p, speed_t __speed)  ;

 
extern int cfsetispeed (struct termios *__termios_p, speed_t __speed)  ;


 
extern int cfsetspeed (struct termios *__termios_p, speed_t __speed)  ;



 
extern int tcgetattr (int __fd, struct termios *__termios_p)  ;

 

extern int tcsetattr (int __fd, int __optional_actions,
		      __const struct termios *__termios_p)  ;



 
extern void cfmakeraw (struct termios *__termios_p)  ;


 
extern int tcsendbreak (int __fd, int __duration)  ;

 
extern int tcdrain (int __fd)  ;

 

extern int tcflush (int __fd, int __queue_selector)  ;

 

extern int tcflow (int __fd, int __action)  ;









# 1 "/uClinux-dist/lib/uClibc/include/sys/ttydefaults.h" 1
 



































 





 








 





























 




 


 










# 102 "/uClinux-dist/lib/uClibc/include/termios.h" 2



 


# 31 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/ctype.h" 1
 
















 






# 1 "/uClinux-dist/lib/uClibc/include/bits/uClibc_ctype.h" 1
 
















 

















 









enum {
	__CTYPE_unclassified = 0,
	__CTYPE_alpha_nonupper_nonlower,
	__CTYPE_alpha_lower,
	__CTYPE_alpha_upper_lower,
	__CTYPE_alpha_upper,
	__CTYPE_digit,
	__CTYPE_punct,
	__CTYPE_graph,
	__CTYPE_print_space_nonblank,
	__CTYPE_print_space_blank,
	__CTYPE_space_nonblank_noncntrl,
	__CTYPE_space_blank_noncntrl,
	__CTYPE_cntrl_space_nonblank,
	__CTYPE_cntrl_space_blank,
	__CTYPE_cntrl_nonspace,
};

 













 


 
enum {
	_CTYPE_unclassified = 0,
	_CTYPE_isalnum,
	_CTYPE_isalpha,
	_CTYPE_isblank,
	_CTYPE_iscntrl,
	_CTYPE_isdigit,
	_CTYPE_isgraph,
	_CTYPE_islower,
	_CTYPE_isprint,
	_CTYPE_ispunct,
	_CTYPE_isspace,
	_CTYPE_isupper,
	_CTYPE_isxdigit				 
};


 






 


# 122 "/uClinux-dist/lib/uClibc/include/bits/uClibc_ctype.h"














 

enum {
	_CTYPE_tolower = 1,
	_CTYPE_toupper,
	_CTYPE_totitle
};



 

 



























































 
 
 
 

 

 




















 














# 25 "/uClinux-dist/lib/uClibc/include/ctype.h" 2


 

extern int isalnum(int c)  ;
extern int isalpha(int c)  ;



extern int iscntrl(int c)  ;
extern int isdigit(int c)  ;
extern int isgraph(int c)  ;
extern int islower(int c)  ;
extern int isprint(int c)  ;
extern int ispunct(int c)  ;
extern int isspace(int c)  ;
extern int isupper(int c)  ;
extern int isxdigit(int c)  ;

extern int tolower(int c)  ;
extern int toupper(int c)  ;


extern int isascii(int c)  ;
extern int toascii(int c)  ;


 




extern int isxlower(int c)  ;	 
extern int isxupper(int c)  ;	 


 
 








 







 



 





















 


















 


# 32 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/fcntl.h" 1
 

















 








 
 

 

# 1 "/uClinux-dist/lib/uClibc/include/bits/fcntl.h" 1
 

























 


























 







 



































 


 




 




 














# 135 "/uClinux-dist/lib/uClibc/include/bits/fcntl.h"


struct flock
  {
    short int l_type;	 
    short int l_whence;	 

    __off_t l_start;	 
    __off_t l_len;	 




    __pid_t l_pid;	 
  };

# 160 "/uClinux-dist/lib/uClibc/include/bits/fcntl.h"


 









 








# 33 "/uClinux-dist/lib/uClibc/include/fcntl.h" 2


 















 






 


extern int fcntl (int __fd, int __cmd, ...)  ;









 



extern int open (__const char *__file, int __oflag, ...)  ;












 



extern int creat (__const char *__file, __mode_t __mode)  ;












# 133 "/uClinux-dist/lib/uClibc/include/fcntl.h"


# 172 "/uClinux-dist/lib/uClibc/include/fcntl.h"


 


# 33 "inetd.c" 2


# 1 "/uClinux-dist/lib/uClibc/include/sys/utsname.h" 1
 

















 








 

# 1 "/uClinux-dist/lib/uClibc/include/bits/utsname.h" 1
 





















 


 



# 30 "/uClinux-dist/lib/uClibc/include/sys/utsname.h" 2






 
struct utsname
  {
     
    char sysname[65 ];

     
    char nodename[65  ];

     
    char release[65 ];
     
    char version[65 ];

     
    char machine[65 ];


     



    char __domainname[65  ];


  };






 
extern int uname (struct utsname *__name)  ;


 


# 35 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/net/if.h" 1
 

























# 1 "/uClinux-dist/lib/uClibc/include/sys/socket.h" 1
 























 

# 1 "/uClinux-dist/lib/uClibc/include/sys/uio.h" 1
 
























 

 
# 1 "/uClinux-dist/lib/uClibc/include/bits/uio.h" 1
 

























 



 









 
struct iovec
  {
    void *iov_base;	 
    size_t iov_len;	 
  };
# 29 "/uClinux-dist/lib/uClibc/include/sys/uio.h" 2



 




extern ssize_t readv (int __fd, __const struct iovec *__vector, int __count)
      ;

 




extern ssize_t writev (int __fd, __const struct iovec *__vector, int __count)
      ;

 


# 27 "/uClinux-dist/lib/uClibc/include/sys/socket.h" 2


# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 29 "/uClinux-dist/lib/uClibc/include/sys/socket.h" 2



 


# 1 "/uClinux-dist/lib/uClibc/include/bits/socket.h" 1
 



























# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 29 "/uClinux-dist/lib/uClibc/include/bits/socket.h" 2


# 1 "/uClinux-dist/lib/uClibc/include/limits.h" 1
 

















 









 





 

# 113 "/uClinux-dist/lib/uClibc/include/limits.h"




  





 
# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/limits.h" 1 3
 


 











 



 



 




 





 



 












 

 




 



 








 



 













 



# 107 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/limits.h" 3




 









# 124 "/uClinux-dist/lib/uClibc/include/limits.h" 2


 


# 139 "/uClinux-dist/lib/uClibc/include/limits.h"




 




# 1 "/uClinux-dist/lib/uClibc/include/bits/posix2_lim.h" 1
 

















 







 


 


 


 


 



 



 


 



 




 




























 



# 148 "/uClinux-dist/lib/uClibc/include/limits.h" 2






# 31 "/uClinux-dist/lib/uClibc/include/bits/socket.h" 2



 





 
enum __socket_type
{
  SOCK_STREAM = 1,		 


  SOCK_DGRAM = 2,		 


  SOCK_RAW = 3,			 

  SOCK_RDM = 4,			 

  SOCK_SEQPACKET = 5,		 


  SOCK_PACKET = 10		 



};

 































 































 











 


 
# 1 "/uClinux-dist/lib/uClibc/include/bits/sockaddr.h" 1
 


















 







 
typedef unsigned short int sa_family_t;

 









# 142 "/uClinux-dist/lib/uClibc/include/bits/socket.h" 2


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


 









struct sockaddr_storage
  {
    sa_family_t  ss_family ;	 
    __uint32_t  __ss_align;	 
    char __ss_padding[(128  - (2 * sizeof (__uint32_t ))) ];
  };


 
enum
  {
    MSG_OOB		= 0x01,	 

    MSG_PEEK		= 0x02,	 

    MSG_DONTROUTE	= 0x04,	 






    MSG_CTRUNC		= 0x08,	 

    MSG_PROXY		= 0x10,	 

    MSG_TRUNC		= 0x20,

    MSG_DONTWAIT	= 0x40,  

    MSG_EOR		= 0x80,  

    MSG_WAITALL		= 0x100,  

    MSG_FIN		= 0x200,

    MSG_SYN		= 0x400,

    MSG_CONFIRM		= 0x800,  

    MSG_RST		= 0x1000,

    MSG_ERRQUEUE	= 0x2000,  

    MSG_NOSIGNAL	= 0x4000,  

    MSG_MORE		= 0x8000   

  };


 

struct msghdr
  {
    void *msg_name;		 
    socklen_t msg_namelen;	 

    struct iovec *msg_iov;	 
    int msg_iovlen;		 

    void *msg_control;		 
    socklen_t msg_controllen;	 

    int msg_flags;		 
  };

 
struct cmsghdr
  {
    size_t cmsg_len;		 

    int cmsg_level;		 
    int cmsg_type;		 

    __extension__ unsigned char __cmsg_data [0] ;  

  };

 















extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
				      struct cmsghdr *__cmsg)  ;
# 280 "/uClinux-dist/lib/uClibc/include/bits/socket.h"


 

enum
  {
    SCM_RIGHTS = 0x01,		 


    SCM_CREDENTIALS = 0x02,      


    __SCM_CONNECT = 0x03	 
  };

 

struct ucred
{
  pid_t pid;			 
  uid_t uid;			 
  gid_t gid;			 
};

 
# 1 "/uClinux-dist/lib/uClibc/include/asm/socket.h" 1



# 1 "/uClinux-dist/lib/uClibc/include/asm/sockios.h" 1



 








# 4 "/uClinux-dist/lib/uClibc/include/asm/socket.h" 2


 
















 







 






 









 
# 62 "/uClinux-dist/lib/uClibc/include/asm/socket.h"



# 305 "/uClinux-dist/lib/uClibc/include/bits/socket.h" 2



 
struct linger
  {
    int l_onoff;		 
    int l_linger;		 
  };


# 35 "/uClinux-dist/lib/uClibc/include/sys/socket.h" 2



 

struct osockaddr
  {
    unsigned short int sa_family;
    unsigned char sa_data[14];
  };


 

enum
{
  SHUT_RD = 0,		 

  SHUT_WR,		 

  SHUT_RDWR		 

};

 








# 94 "/uClinux-dist/lib/uClibc/include/sys/socket.h"



 


extern int socket (int __domain, int __type, int __protocol)  ;

 



extern int socketpair (int __domain, int __type, int __protocol,
		       int __fds[2])  ;

 
extern int bind (int __fd, __const struct sockaddr *  __addr, socklen_t __len)
      ;

 
extern int getsockname (int __fd, struct sockaddr *__restrict  __addr,
			socklen_t *__restrict __len)  ;

 



extern int connect (int __fd, __const struct sockaddr *  __addr, socklen_t __len)
      ;

 

extern int getpeername (int __fd, struct sockaddr *__restrict  __addr,
			socklen_t *__restrict __len)  ;


 
extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags)
      ;

 

extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags)
      ;

 

extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
		       int __flags, __const struct sockaddr *  __addr,
		       socklen_t __addr_len)  ;

 



extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
			 struct sockaddr *__restrict  __addr, socklen_t *__restrict __addr_len)
      ;


 

extern ssize_t sendmsg (int __fd, __const struct msghdr *__message, int __flags)
      ;

 

extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags)
      ;


 


extern int getsockopt (int __fd, int __level, int __optname,
		       void *__restrict __optval,
		       socklen_t *__restrict __optlen)  ;

 


extern int setsockopt (int __fd, int __level, int __optname,
		       __const void *__optval, socklen_t __optlen)  ;


 


extern int listen (int __fd, int __n)  ;

 




extern int accept (int __fd, struct sockaddr *__restrict  __addr,
		   socklen_t *__restrict __addr_len)
      ;

 





extern int shutdown (int __fd, int __how)  ;









 


extern int isfdtype (int __fd, int __fdtype)  ;


 


# 27 "/uClinux-dist/lib/uClibc/include/net/if.h" 2




 


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



 
enum
  {
    IFF_UP = 0x1,		 

    IFF_BROADCAST = 0x2,	 

    IFF_DEBUG = 0x4,		 

    IFF_LOOPBACK = 0x8,		 

    IFF_POINTOPOINT = 0x10,	 

    IFF_NOTRAILERS = 0x20,	 

    IFF_RUNNING = 0x40,		 

    IFF_NOARP = 0x80,		 

    IFF_PROMISC = 0x100,	 


     
    IFF_ALLMULTI = 0x200,	 


    IFF_MASTER = 0x400,		 

    IFF_SLAVE = 0x800,		 


    IFF_MULTICAST = 0x1000,	 


    IFF_PORTSEL = 0x2000,	 

    IFF_AUTOMEDIA = 0x4000	 

  };

 




struct ifaddr
  {
    struct sockaddr ifa_addr;	 
    union
      {
	struct sockaddr	ifu_broadaddr;
	struct sockaddr	ifu_dstaddr;
      } ifa_ifu;
    struct iface *ifa_ifp;	 
    struct ifaddr *ifa_next;	 
  };




 







struct ifmap
  {
    unsigned long int mem_start;
    unsigned long int mem_end;
    unsigned short int base_addr;
    unsigned char irq;
    unsigned char dma;
    unsigned char port;
     
  };

 



struct ifreq
  {


    union
      {
	char ifrn_name[16  ];	 
      } ifr_ifrn;

    union
      {
	struct sockaddr ifru_addr;
	struct sockaddr ifru_dstaddr;
	struct sockaddr ifru_broadaddr;
	struct sockaddr ifru_netmask;
	struct sockaddr ifru_hwaddr;
	short int ifru_flags;
	int ifru_ivalue;
	int ifru_mtu;
	struct ifmap ifru_map;
	char ifru_slave[16  ];	 
	char ifru_newname[16  ];
	__caddr_t ifru_data;
      } ifr_ifru;
  };





















 



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





 

 
extern unsigned int if_nametoindex (__const char *__ifname)  ;
extern char *if_indextoname (unsigned int __ifindex, char *__ifname)  ;

 
extern struct if_nameindex *if_nameindex (void)  ;

 
extern void if_freenameindex (struct if_nameindex *__ptr)  ;

 


# 36 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/netinet/in.h" 1
 





















# 1 "/uClinux-dist/lib/uClibc/include/stdint.h" 1
 

















 










# 1 "/uClinux-dist/lib/uClibc/include/bits/wordsize.h" 1
 


















# 30 "/uClinux-dist/lib/uClibc/include/stdint.h" 2


 

 

 
# 48 "/uClinux-dist/lib/uClibc/include/stdint.h"


 
typedef unsigned char		uint8_t;
typedef unsigned short int	uint16_t;

typedef unsigned int		uint32_t;





__extension__
typedef unsigned long long int	uint64_t;



 

 
typedef signed char		int_least8_t;
typedef short int		int_least16_t;
typedef int			int_least32_t;



__extension__
typedef long long int		int_least64_t;


 
typedef unsigned char		uint_least8_t;
typedef unsigned short int	uint_least16_t;
typedef unsigned int		uint_least32_t;



__extension__
typedef unsigned long long int	uint_least64_t;



 

 
typedef signed char		int_fast8_t;





typedef int			int_fast16_t;
typedef int			int_fast32_t;
__extension__
typedef long long int		int_fast64_t;


 
typedef unsigned char		uint_fast8_t;





typedef unsigned int		uint_fast16_t;
typedef unsigned int		uint_fast32_t;
__extension__
typedef unsigned long long int	uint_fast64_t;



 











typedef unsigned int		uintptr_t;



 




__extension__
typedef long long int		intmax_t;
__extension__
typedef unsigned long long int	uintmax_t;



 











 

 




 





 






 




 





 






 









 










 











 











 

 


 

# 257 "/uClinux-dist/lib/uClibc/include/stdint.h"


 

 








 



 






# 292 "/uClinux-dist/lib/uClibc/include/stdint.h"





 



 









 









 











# 23 "/uClinux-dist/lib/uClibc/include/netinet/in.h" 2




 

 
enum
  {
    IPPROTO_IP = 0,	    

    IPPROTO_HOPOPTS = 0,    

    IPPROTO_ICMP = 1,	    

    IPPROTO_IGMP = 2,	    

    IPPROTO_IPIP = 4,	    

    IPPROTO_TCP = 6,	    

    IPPROTO_EGP = 8,	    

    IPPROTO_PUP = 12,	    

    IPPROTO_UDP = 17,	    

    IPPROTO_IDP = 22,	    

    IPPROTO_TP = 29,	    

    IPPROTO_IPV6 = 41,      

    IPPROTO_ROUTING = 43,   

    IPPROTO_FRAGMENT = 44,  

    IPPROTO_RSVP = 46,	    

    IPPROTO_GRE = 47,	    

    IPPROTO_ESP = 50,       

    IPPROTO_AH = 51,        

    IPPROTO_ICMPV6 = 58,    

    IPPROTO_NONE = 59,      

    IPPROTO_DSTOPTS = 60,   

    IPPROTO_MTP = 92,	    

    IPPROTO_ENCAP = 98,	    

    IPPROTO_PIM = 103,	    

    IPPROTO_COMP = 108,	    

    IPPROTO_RAW = 255,	    

    IPPROTO_MAX
  };


 
typedef uint16_t in_port_t;

 
enum
  {
    IPPORT_ECHO = 7,		 
    IPPORT_DISCARD = 9,		 
    IPPORT_SYSTAT = 11,		 
    IPPORT_DAYTIME = 13,	 
    IPPORT_NETSTAT = 15,	 
    IPPORT_FTP = 21,		 
    IPPORT_TELNET = 23,		 
    IPPORT_SMTP = 25,		 
    IPPORT_TIMESERVER = 37,	 
    IPPORT_NAMESERVER = 42,	 
    IPPORT_WHOIS = 43,		 
    IPPORT_MTP = 57,

    IPPORT_TFTP = 69,		 
    IPPORT_RJE = 77,
    IPPORT_FINGER = 79,		 
    IPPORT_TTYLINK = 87,
    IPPORT_SUPDUP = 95,		 


    IPPORT_EXECSERVER = 512,	 
    IPPORT_LOGINSERVER = 513,	 
    IPPORT_CMDSERVER = 514,
    IPPORT_EFSSERVER = 520,

     
    IPPORT_BIFFUDP = 512,
    IPPORT_WHOSERVER = 513,
    IPPORT_ROUTESERVER = 520,

     
    IPPORT_RESERVED = 1024,

     
    IPPORT_USERRESERVED = 5000
  };


 
typedef uint32_t in_addr_t;
struct in_addr
  {
    in_addr_t s_addr;
  };


 



























 

 

 


 

 




 






 
struct in6_addr
  {
    union
      {
	uint8_t	u6_addr8[16];
	uint16_t u6_addr16[8];
	uint32_t u6_addr32[4];
      } in6_u;



  };

extern const struct in6_addr in6addr_any;         
extern const struct in6_addr in6addr_loopback;    






 



 
struct sockaddr_in
  {
    sa_family_t  sin_family ;
    in_port_t sin_port;			 
    struct in_addr sin_addr;		 

     
    unsigned char sin_zero[sizeof (struct sockaddr) -
			   (sizeof (unsigned short int))  -
			   sizeof (in_port_t) -
			   sizeof (struct in_addr)];
  };

 
struct sockaddr_in6
  {
    sa_family_t  sin6_family ;
    in_port_t sin6_port;	 
    uint32_t sin6_flowinfo;	 
    struct in6_addr sin6_addr;	 
    uint32_t sin6_scope_id;	 
  };

 
struct ipv6_mreq
  {
     
    struct in6_addr ipv6mr_multiaddr;

     
    unsigned int ipv6mr_interface;
  };

 
# 1 "/uClinux-dist/lib/uClibc/include/bits/in.h" 1
 

















 





 






















 


 




 






 


struct ip_opts
  {
    struct in_addr ip_dst;	 
    char ip_opts[40];		 
  };

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

 
struct ip_mreqn
  {
    struct in_addr imr_multiaddr;	 
    struct in_addr imr_address;		 
    int	imr_ifindex;			 
  };

 
struct in_pktinfo
  {
    int ipi_ifindex;			 
    struct in_addr ipi_spec_dst;	 
    struct in_addr ipi_addr;		 
  };

 

























 






 




 



 




# 250 "/uClinux-dist/lib/uClibc/include/netinet/in.h" 2


 






extern uint32_t ntohl (uint32_t __netlong)   __attribute__ ((__const__));
extern uint16_t ntohs (uint16_t __netshort)
       __attribute__ ((__const__));
extern uint32_t htonl (uint32_t __hostlong)
       __attribute__ ((__const__));
extern uint16_t htons (uint16_t __hostshort)
       __attribute__ ((__const__));



 
# 1 "/uClinux-dist/lib/uClibc/include/bits/byteswap.h" 1
 

























 













 
















 

# 68 "/uClinux-dist/lib/uClibc/include/bits/byteswap.h"


# 82 "/uClinux-dist/lib/uClibc/include/bits/byteswap.h"



# 270 "/uClinux-dist/lib/uClibc/include/netinet/in.h" 2






 



 






















































 
extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in)  ;

 
extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
      ;






















 
struct in6_pktinfo
  {
    struct in6_addr	ipi6_addr;     
    unsigned int	ipi6_ifindex;  
  };

 


# 37 "inetd.c" 2

# 1 "/uClinux-dist/lib/uClibc/include/netdb.h" 1
 

















 











 

# 1 "/uClinux-dist/lib/uClibc/include/rpc/netdb.h" 1
 
 



























 

 









# 1 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 1 3






 


# 19 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3



 


 





 


# 61 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 





 


















 





 

 

# 131 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 


# 188 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3





 




 

# 271 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


# 283 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3


 

 

# 317 "/usr/local/lib/gcc-lib/arm-elf/2.95.3/include/stddef.h" 3




 





















# 42 "/uClinux-dist/lib/uClibc/include/rpc/netdb.h" 2


 

struct rpcent
{
  char *r_name;		 
  char **r_aliases;	 
  int r_number;		 
};

extern void setrpcent (int __stayopen)  ;
extern void endrpcent (void)  ;
extern struct rpcent *getrpcbyname (__const char *__name)  ;
extern struct rpcent *getrpcbynumber (int __number)  ;
extern struct rpcent *getrpcent (void)  ;


extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf,
			   char *__buffer, size_t __buflen,
			   struct rpcent **__result)  ;

extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf,
			     char *__buffer, size_t __buflen,
			     struct rpcent **__result)  ;

extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer,
			size_t __buflen, struct rpcent **__result)  ;


 


# 33 "/uClinux-dist/lib/uClibc/include/netdb.h" 2










# 1 "/uClinux-dist/lib/uClibc/include/bits/netdb.h" 1
 






















 


struct netent
{
  char *n_name;			 
  char **n_aliases;		 
  int n_addrtype;		 
  uint32_t n_net;		 
};
# 43 "/uClinux-dist/lib/uClibc/include/netdb.h" 2


 








 

 
extern int h_errno;

 
extern int *__h_errno_location (void)   __attribute__ ((__const__));

# 72 "/uClinux-dist/lib/uClibc/include/netdb.h"




 




 





















 

extern void herror (__const char *__str)  ;

 
extern __const char *hstrerror (int __err_num)  ;



 
struct hostent
{
  char *h_name;			 
  char **h_aliases;		 
  int h_addrtype;		 
  int h_length;			 
  char **h_addr_list;		 

};

 

extern void sethostent (int __stay_open)  ;

 
extern void endhostent (void)  ;

 

extern struct hostent *gethostent (void)  ;

 

extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len,
				      int __type)  ;

 
extern struct hostent *gethostbyname (__const char *__name)  ;


 


extern struct hostent *gethostbyname2 (__const char *__name, int __af)  ;

 




extern int gethostent_r (struct hostent *__restrict __result_buf,
			 char *__restrict __buf, size_t __buflen,
			 struct hostent **__restrict __result,
			 int *__restrict __h_errnop)  ;

extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len,
			    int __type,
			    struct hostent *__restrict __result_buf,
			    char *__restrict __buf, size_t __buflen,
			    struct hostent **__restrict __result,
			    int *__restrict __h_errnop)  ;

extern int gethostbyname_r (__const char *__restrict __name,
			    struct hostent *__restrict __result_buf,
			    char *__restrict __buf, size_t __buflen,
			    struct hostent **__restrict __result,
			    int *__restrict __h_errnop)  ;

extern int gethostbyname2_r (__const char *__restrict __name, int __af,
			     struct hostent *__restrict __result_buf,
			     char *__restrict __buf, size_t __buflen,
			     struct hostent **__restrict __result,
			     int *__restrict __h_errnop)  ;



 

extern void setnetent (int __stay_open)  ;

 
extern void endnetent (void)  ;

 

extern struct netent *getnetent (void)  ;

 

extern struct netent *getnetbyaddr (uint32_t __net, int __type)
      ;

 
extern struct netent *getnetbyname (__const char *__name)  ;


 




extern int getnetent_r (struct netent *__restrict __result_buf,
			char *__restrict __buf, size_t __buflen,
			struct netent **__restrict __result,
			int *__restrict __h_errnop)  ;

extern int getnetbyaddr_r (uint32_t __net, int __type,
			   struct netent *__restrict __result_buf,
			   char *__restrict __buf, size_t __buflen,
			   struct netent **__restrict __result,
			   int *__restrict __h_errnop)  ;

extern int getnetbyname_r (__const char *__restrict __name,
			   struct netent *__restrict __result_buf,
			   char *__restrict __buf, size_t __buflen,
			   struct netent **__restrict __result,
			   int *__restrict __h_errnop)  ;



 
struct servent
{
  char *s_name;			 
  char **s_aliases;		 
  int s_port;			 
  char *s_proto;		 
};

 

extern void setservent (int __stay_open)  ;

 
extern void endservent (void)  ;

 

extern struct servent *getservent (void)  ;

 

extern struct servent *getservbyname (__const char *__name,
				      __const char *__proto)  ;

 

extern struct servent *getservbyport (int __port, __const char *__proto)
      ;



 

extern int getservent_r (struct servent *__restrict __result_buf,
			 char *__restrict __buf, size_t __buflen,
			 struct servent **__restrict __result)  ;

extern int getservbyname_r (__const char *__restrict __name,
			    __const char *__restrict __proto,
			    struct servent *__restrict __result_buf,
			    char *__restrict __buf, size_t __buflen,
			    struct servent **__restrict __result)  ;

extern int getservbyport_r (int __port, __const char *__restrict __proto,
			    struct servent *__restrict __result_buf,
			    char *__restrict __buf, size_t __buflen,
			    struct servent **__restrict __result)  ;



 
struct protoent
{
  char *p_name;			 
  char **p_aliases;		 
  int p_proto;			 
};

 

extern void setprotoent (int __stay_open)  ;

 
extern void endprotoent (void)  ;

 

extern struct protoent *getprotoent (void)  ;

 
extern struct protoent *getprotobyname (__const char *__name)  ;

 
extern struct protoent *getprotobynumber (int __proto)  ;



 

extern int getprotoent_r (struct protoent *__restrict __result_buf,
			  char *__restrict __buf, size_t __buflen,
			  struct protoent **__restrict __result)  ;

extern int getprotobyname_r (__const char *__restrict __name,
			     struct protoent *__restrict __result_buf,
			     char *__restrict __buf, size_t __buflen,
			     struct protoent **__restrict __result)  ;

extern int getprotobynumber_r (int __proto,
			       struct protoent *__restrict __result_buf,
			       char *__restrict __buf, size_t __buflen,
			       struct protoent **__restrict __result)  ;



 
extern int setnetgrent (__const char *__netgroup)  ;

 
extern void endnetgrent (void)  ;

 

extern int getnetgrent (char **__restrict __hostp,
			char **__restrict __userp,
			char **__restrict __domainp)  ;


 
extern int innetgr (__const char *__netgroup, __const char *__host,
		    __const char *__user, __const char *domain)  ;

 
extern int getnetgrent_r (char **__restrict __hostp,
			  char **__restrict __userp,
			  char **__restrict __domainp,
			  char *__restrict __buffer, size_t __buflen)  ;




 





extern int rcmd (char **__restrict __ahost, unsigned short int __rport,
		 __const char *__restrict __locuser,
		 __const char *__restrict __remuser,
		 __const char *__restrict __cmd, int *__restrict __fd2p)
      ;

 

extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport,
		    __const char *__restrict __locuser,
		    __const char *__restrict __remuser,
		    __const char *__restrict __cmd, int *__restrict __fd2p,
		    sa_family_t __af)  ;

 




extern int rexec (char **__restrict __ahost, int __rport,
		  __const char *__restrict __name,
		  __const char *__restrict __pass,
		  __const char *__restrict __cmd, int *__restrict __fd2p)
      ;

 

extern int rexec_af (char **__restrict __ahost, int __rport,
		     __const char *__restrict __name,
		     __const char *__restrict __pass,
		     __const char *__restrict __cmd, int *__restrict __fd2p,
		     sa_family_t __af)  ;

 


extern int ruserok (__const char *__rhost, int __suser,
		    __const char *__remuser, __const char *__locuser)  ;

 

extern int ruserok_af (__const char *__rhost, int __suser,
		       __const char *__remuser, __const char *__locuser,
		       sa_family_t __af)  ;

 


extern int rresvport (int *__alport)  ;

 

extern int rresvport_af (int *__alport, sa_family_t __af)  ;



 

 
struct addrinfo
{
  int ai_flags;			 
  int ai_family;		 
  int ai_socktype;		 
  int ai_protocol;		 
  socklen_t ai_addrlen;		 
  struct sockaddr *ai_addr;	 
  char *ai_canonname;		 
  struct addrinfo *ai_next;	 
};

# 438 "/uClinux-dist/lib/uClibc/include/netdb.h"


 




 




























 

extern int getaddrinfo (__const char *__restrict __name,
			__const char *__restrict __service,
			__const struct addrinfo *__restrict __req,
			struct addrinfo **__restrict __pai)  ;

 
extern void freeaddrinfo (struct addrinfo *__ai)  ;

 
extern __const char *gai_strerror (int __ecode)  ;

 
extern int getnameinfo (__const struct sockaddr *__restrict __sa,
			socklen_t __salen, char *__restrict __host,
			socklen_t __hostlen, char *__restrict __serv,
			socklen_t __servlen, unsigned int __flags)  ;

# 512 "/uClinux-dist/lib/uClibc/include/netdb.h"



 


# 38 "inetd.c" 2

# 1 "cfgfile.h" 1




char ** cfgread(FILE *fp);
char ** cfgfind(FILE *fp, char *var);


# 39 "inetd.c" 2


 








static void read_config(void);

static void
set_signal(int sig, void (*handler)(int), int flags)
{
  struct sigaction action, oaction;
  memset(&action, 0, sizeof(struct sigaction));
  action. __sigaction_handler.sa_handler  = handler;
  action.sa_flags = flags;
  (void) sigaction(sig, &action, &oaction);
}

static void close_on_exec(int f)
{
	if (fcntl(f, 2 , 1))
		perror("close on exec: ");
}

static inline void close_all_fds(int keep_top)
{
	int i, n;
	n = getdtablesize();
	for(i=keep_top+1;i<n;i++)
		close(i);
}

struct stService {
	struct stService *next;			 
	int               port;			 
	int               master_socket;
	
	pid_t             pid[8 ];	 
        char             *args[6];		 

	short             limit;		 
	short             current;		 

	 
	unsigned	  enabled :1;		 
	unsigned	  changed :1;
	unsigned	  tcp :1;		 
	unsigned	  reconfig :1;
	
	 
        char		  arg[0];
} *servicelist = ((void *)0) ;


static inline int reap_child(int pid) {
  int reaped = 0;
  struct stService *p;

  for(p=servicelist; p!= ((void *)0) ; p=p->next) {
    int j;
    for(j=0;j< 8 ;j++)
      if (p->pid[j] == pid) {
        p->pid[j] = 0;
        p->current--;
      }
  }
  return reaped;
}

static inline int generate_select_fds(fd_set * readmask, fd_set * writemask)
{
  int max=0;
  struct stService *p;
  do {	unsigned int __i;	fd_set *__arr = (  readmask  );	for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	(( __arr )->__fds_bits) [__i] = 0;	} while (0)  ;
  do {	unsigned int __i;	fd_set *__arr = (  writemask  );	for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	(( __arr )->__fds_bits) [__i] = 0;	} while (0)  ;


  for(p=servicelist; p!= ((void *)0) ; p=p->next) {
    if (!strlen(p->args[0]) || (p->current >= p->limit) || !p->enabled)
      continue;

    (((    (  readmask )   )->__fds_bits) [((   ( p->master_socket )   ) / (8 * sizeof (__fd_mask)) ) ] |= ((__fd_mask) 1 << ((   ( p->master_socket )   ) % (8 * sizeof (__fd_mask)) )) )  ; if (( p->master_socket )>max) max = ( p->master_socket ); ;

  }

  return max+1;
}


static pid_t
start_child(struct stService *p, int fd)
{
	pid_t	pid;

	pid = vfork();

	if (pid == 0) {
		if (fd != 0)
			dup2(fd, 0);
		if (fd != 1)
			dup2(fd, 1);
		if (fd != 2)
			dup2(fd, 2);
		if (fd > 2)
			close(fd);
		close_all_fds(2);
		execlp(p->args[0],
				p->args[0],
				p->args[1],
				p->args[2],
				p->args[3],
				p->args[4],
				p->args[5],
				((void *)0) 
				);
		_exit(0);
	}
	return(pid);
}


static inline void handle_incoming_fds(fd_set * readmask, fd_set * writemask)
{
  struct stService *p;


  for(p=servicelist; p!= ((void *)0) ; p=p->next) {
    int fd;
    if (p->master_socket && ((((     readmask   )->__fds_bits) [((   p->master_socket   ) / (8 * sizeof (__fd_mask)) ) ] & ((__fd_mask) 1 << ((   p->master_socket   ) % (8 * sizeof (__fd_mask)) )) ) != 0)  ) {
      int j;
      for(j=0;j< 8 ;j++)
        if (p->pid[j] == 0)
          break;

      if (p->tcp) {
        struct sockaddr_in remote;
        int remotelen = sizeof(remote);
        fd = accept(p->master_socket, (struct sockaddr*)&remote, &remotelen);
        if (fd < 0) {
          printf("accept failed\n");
          break;
        }
      } else {
        fd = p->master_socket;
      }

	  p->current++;
	  if ((p->pid[j] = start_child(p, fd)) == -1) {
		   


          p->enabled = 0;
          close(p->master_socket);
          p->master_socket = 0;
		  p->current--;
	  }

      if (p->tcp) {
        close(fd);
      }
    }
  }
}

static inline void start_services(void) {
  int s;
  struct stService *p;
  struct server_sockaddr;

  for(p=servicelist; p!= ((void *)0) ; p=p->next) {
    struct sockaddr_in server_sockaddr;

    if (p->master_socket || !strlen(p->args[0]))
      continue;

    if (p->tcp) {
      int true;
      
      if ((s = socket(2  , SOCK_STREAM , IPPROTO_TCP )) == -1) {
        printf("Unable to create socket\n");
      }

      close_on_exec(s);

      server_sockaddr.sin_family = 2  ;
      server_sockaddr.sin_port = ( p->port ) ;
      server_sockaddr.sin_addr.s_addr = ( ((in_addr_t) 0x00000000)  ) ;
     
      true = 1;

      if((setsockopt(s, 1 , 2 , (void *)&true, 
         sizeof(true))) == -1) {
        perror("setsockopt: ");
      }

      if(bind(s, (struct sockaddr *)&server_sockaddr, 
        sizeof(server_sockaddr)) == -1)  {
        perror("Unable to bind server socket: ");
        close(s);
      }

      if(listen(s, 1) == -1) {
        printf("Unable to listen to socket\n");
      }
    
    } else {

      if ((s = socket(2  , SOCK_DGRAM , IPPROTO_UDP )) == -1) {
        printf("Unable to create socket\n");
      }

      close_on_exec(s);

      server_sockaddr.sin_family = 2  ;
      server_sockaddr.sin_port = ( p->port ) ;
      server_sockaddr.sin_addr.s_addr = ( ((in_addr_t) 0x00000000)  ) ;

      if(bind(s, (struct sockaddr *)&server_sockaddr,
        sizeof(server_sockaddr)) == -1)  {
        printf("Unable to bind socket\n");
        close(s);
      }
    }
    p->master_socket = s;
    p->reconfig = 1;
    p->changed = 0;
  }  
}

static inline void stop_services(void) {
  struct stService *p;
  struct server_sockaddr;
  
  for(p=servicelist; p!= ((void *)0) ; p=p->next) {
    if(p->master_socket)
      close(p->master_socket);
    p->master_socket = 0;
  }
}

static void reap_children(void)
{
  int child;
  int status;
  while ((child = waitpid(-1, &status, 1 )) > 0) {
    reap_child(child);
  }
}









volatile int got_cont;
static void cont_handler(int signo)
{
	got_cont = 1;
}

static void stop_handler(int signo)
{
	got_cont = 0;
	 
	stop_services(); 
	while(!got_cont) {
		pause();
		reap_children();
	}
	got_cont = 0;
}

static void child_handler(int signo)
{
	 
}

static inline void kill_changed_things(void)
{
  struct stService *p;

	for(p=servicelist; p!= ((void *)0) ; p=p->next) {
		int j;

		if (!p->changed || !p->reconfig)
			continue;
		
		if (p->master_socket) {
			close(p->master_socket);
			p->master_socket = 0;
		}

		for (j=0;j< 8 ;j++) {
			if (p->pid[j] != 0) {
				kill(p->pid[j], 15 );
				kill(p->pid[j], 1 );
				p->pid[j] = 0;
			}
		}
		p->changed = p->reconfig = 0;
	}
}

static inline void run(void)
{
  fd_set rfds, wfds;
  struct timeval tv;
  int max;
  for(;;) {
    reap_children();
    start_services();

    max = generate_select_fds(&rfds, &wfds);
    tv.tv_sec = 1;
    tv.tv_usec = 0;
    if (select(max, &rfds, &wfds, 0, &tv) > 0) {
      handle_incoming_fds(&rfds, &wfds);
    }








  }
}

 






static inline void

read_config()
{
  FILE *cfp;
  char **args;
  char *ap;

  int j, k;
  struct stService *p;
  size_t sz;
  struct servent *sent;
# 405 "inetd.c"


  if (!(cfp = fopen("/etc/inetd.conf" ,"r"))) {
    perror("Can't open " "/etc/inetd.conf" );
    exit(1);
  }

  for (;;) {
    if (!(args = cfgread(cfp))) break;

    for (j=0; (j<11) && (args[j]); j++);
    if (j<6) {
      fprintf(stderr ,"Bad line in config file %s...\n",
	      args[0] ? args[0] : "");
      continue;
    }

    sz = sizeof(struct stService);
    for (k=5; k<j; k++) {
	    sz += strlen(args[k]) + 1;		 
    }
    
    p = malloc(sz);
    if (p == ((void *)0) ) {
	    fprintf(stderr , "Malloc failed\n");
	    continue;
    }
    bzero(p, sz);

     
     
 
    ap = p->arg;
    for (k=5; k<j; k++) {                        
      p->args[k - 5] = ap;              	 
      if (args[k]) {                             
        strcpy(ap, args[k]);               	 
        ap += strlen(args[k]);                   
      }                                          
      *ap++ = '\0';
    }

    p->tcp = !strcmp(args[2], "tcp") ? 1 : 0;

	 

    p->limit = (strcmp(args[3], "wait") == 0) ? 1 : 8 ;

    sent = getservbyname(args[0], args[2]);
    if (sent == ((void *)0) ) {
      fprintf(stderr , "can't find service\n");
      free(p);
      continue;
    }

    p->port = ( sent->s_port ) ;

    p->master_socket = 0;
    p->changed = 1;
    p->enabled = 1;

    p->next = servicelist;
    servicelist = p;
  }

  fclose(cfp);
# 481 "inetd.c"

}

int
main(int argc, char *argv[], char *env[])
{

  set_signal(13 , ((__sighandler_t) 1) , 0);
  set_signal(19 , stop_handler, 0);
  set_signal(20 , stop_handler, 0);
  set_signal(18 , cont_handler, 0);
  set_signal(17 , child_handler, 0x20000000 );




   


  if (fcntl(0, 3 ) == -1)
  	open("/dev/null", 02 );


   
  open("/dev/null", 02 );

  read_config();

  run();
  
   
}


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