# 1 "cmlogClient.cc"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
# 1 "../Common/cmlogProtocol.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



# 1 "../Common/cmlog.h" 1
 






































 





















 


















typedef long                 cmlog_client_t;


extern "C" {


 



 
 
extern cmlog_client_t cmlog_open (char* progname);

 
 
extern int  cmlog_logmsg (cmlog_client_t client, int verbosity,
			  int severity, int code, char* facility,
			  char* format, ...);

 
 
extern int  cmlog_logtext (cmlog_client_t client, char* format, ...);

 
extern int  cmlog_set_severity_threshold (cmlog_client_t client, 
					  int threshold);
extern int  cmlog_get_severity_threshold (cmlog_client_t client,
					  int *threshold);

 
extern int  cmlog_set_verbosity_threshold (cmlog_client_t client, 
					   int threshold);
extern int  cmlog_get_verbosity_threshold (cmlog_client_t client,
					   int *threshold);

 
extern int  cmlog_set_throttle (cmlog_client_t client,
				char* tag, int valuerange,
				int limit, double interval);
extern int  cmlog_get_throttle (cmlog_client_t client,
				char** tag, int* valuerange,
				int* limit, double* interval);



 
extern int  cmlog_logmsgI (cmlog_client_t client,
			   int verbosity, int severity, 
			   int code, char* facility,
			   char* format, int arg0, int arg1,
			   int   arg2,   int arg3, int arg4,
			   int   arg5);

 
extern int  cmlog_logtextI (cmlog_client_t client,
			    char* format, 
			    int arg0, int arg1,
			    int   arg2,   int arg3, int arg4,
			    int   arg5,   int arg6, int arg7,
			    int   arg8,   int arg9);


 
extern void cmlog_close  (cmlog_client_t client);


 
extern int  daLogOpen     (char *name, char *type);


extern void daLogMsg      (char *sev,char *fmt,
                           int a,int b,int c,int d,int e,int f,int g,
                           int h,int i);




extern void daLogMsgI     (char *sev,char *fmt,
			   int a,int b,int c,int d,int e,int f,int g,
			   int h,int i);

extern void daLogMsg2     (char *name,char *sev,char *fmt,
			   int a,int b,int c,int d,int e,int f,
			   int g,int h,int i);

 

};




# 40 "../Common/cmlogProtocol.h" 2

# 1 "../Common/cmlogConfig.h" 1
 





































































 
 
 




 
 

 
 

 
 

 


 
 

 
 

 
 
 
 


 


 


 


 


 
 


 
 
 

 


 


 
 

 

 








 
 


 


 
 
 

 
 
 

 


 


 


 
 




 


 


 


 


 


 
 


 
 


 


 


 


 


 




# 271 "../Common/cmlogConfig.h"

# 1 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 1
 

 

 




















































extern "C" {































 




 




 





 




 





 









 







 






 




























 





# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxCpu.h" 1
 

 

 








 





























































 










extern "C" {


 

 










 





























































































# 206 "/usr/local/tornado2.2/ppc/target/h/types/vxCpu.h"




















































# 270 "/usr/local/tornado2.2/ppc/target/h/types/vxCpu.h"












# 295 "/usr/local/tornado2.2/ppc/target/h/types/vxCpu.h"


# 305 "/usr/local/tornado2.2/ppc/target/h/types/vxCpu.h"
























 














}



# 177 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxArch.h" 1
 

 

 



























 











extern "C" {
























































# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/archPpc.h" 1
 

 

 






















extern "C" {




	
 



 


 

















 






 
































 






typedef	unsigned int	_RType;		 











































# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/ppc604.h" 1
 

 

 
























extern "C" {


 


 





 


















 





















 
































 















 




















 

 













 

 






 

 







 



 




}



# 150 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/archPpc.h" 2







# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/toolPpc.h" 1
 

 
 




























extern "C" {






 

 





































   











# 531 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/toolPpc.h"




# 553 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/toolPpc.h"



}






# 157 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/archPpc.h" 2



}



# 102 "/usr/local/tornado2.2/ppc/target/h/types/vxArch.h" 2































 















 






}



# 178 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxParams.h" 1
 

 

 










 










extern "C" {





























}



# 180 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxTypesBase.h" 1
 

 

 



















 











extern "C" {




# 1 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 1 3 4






 







 

 




 


 





 


# 61 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4


 





 


















 





 

 





















typedef int ptrdiff_t;









 




 

 


































typedef unsigned int size_t;






















 




 





























 



















































typedef unsigned int  wint_t;




 

 

# 317 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4




 













 







# 42 "/usr/local/tornado2.2/ppc/target/h/types/vxTypesBase.h" 2


 






struct __timer;































































 






 




















 










































































 






















































































































 






 



























}



# 181 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxTypes.h" 1
 

 

 












 










































extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxANSI.h" 1
 

 

 








 















extern "C" {


 
















}



# 64 "/usr/local/tornado2.2/ppc/target/h/types/vxTypes.h" 2



typedef int ssize_t ;




typedef unsigned long time_t ;




typedef long fpos_t ;




typedef signed char int8_t ;




typedef unsigned char uint8_t ;




typedef short int16_t ;




typedef unsigned short uint16_t ;




typedef long int32_t ;




typedef unsigned long uint32_t ;




typedef long long int64_t ;




typedef unsigned long long uint64_t ;



 

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

typedef	struct	_quad { long val[2]; } quad;
typedef	long	daddr_t;
typedef	char *	caddr_t;
typedef	char *	addr_t;
typedef	long	swblk_t;

 

typedef short		dev_t;
typedef unsigned short	gid_t;
typedef	unsigned long	ino_t;
typedef int		mode_t;
typedef unsigned long	nlink_t;
typedef long		off_t;
typedef int		pid_t;
typedef unsigned short	uid_t;


}



# 182 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/types/vxTypesOld.h" 1
 

 

 





















































 

















extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/sys/types.h" 1
 

 
 








 






















extern "C" {





}



# 80 "/usr/local/tornado2.2/ppc/target/h/types/vxTypesOld.h" 2


 

typedef	char		INT8;
typedef	short		INT16;
typedef	int		INT32;
typedef	long long	INT64;

typedef	unsigned char	UINT8;
typedef	unsigned short	UINT16;
typedef	unsigned int	UINT32;
typedef	unsigned long long UINT64;

typedef	unsigned char	UCHAR;
typedef unsigned short	USHORT;
typedef	unsigned int	UINT;
typedef unsigned long	ULONG;

typedef	int		BOOL;
typedef	int		STATUS;
typedef int 		ARGINT;

typedef void		VOID;


typedef int 		(*FUNCPTR) (...);      
typedef void 		(*VOIDFUNCPTR) (...);  
typedef double 		(*DBLFUNCPTR) (...);   
typedef float 		(*FLTFUNCPTR) (...);   








 




typedef union
    {
    long pm_int;
    void *pm_v;
    const void *pm_cv;
    char *pm_c;
    unsigned char *pm_uc;

    signed char *pm_sc;
    const char *pm_cc;
    const unsigned char *pm_cuc;
    const signed char *pm_csc;
    short *pm_s;
    ushort_t *pm_us;
    const short *pm_cs;
    const ushort_t *pm_cus;
    int *pm_i;
    uint_t *pm_ui;
    const int *pm_ci;
    const uint_t *pm_cui;
    long *pm_l;
    ulong_t *pm_ul;
    const long *pm_cl;
    const ulong_t *pm_cul;

    int8_t *pm_i8;
    uint8_t *pm_ui8;
    const int8_t *pm_ci8;
    const uint8_t *pm_cui8;
    int16_t *pm_i16;
    uint16_t *pm_ui16;
    const int16_t *pm_ci16;
    const uint16_t *pm_cui16;
    int32_t *pm_i32;
    uint32_t *pm_ui32;
    const int32_t *pm_ci32;
    const uint32_t *pm_cui32;








    } pointer_mix_t;













 





 














typedef long	fd_mask;





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







 

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


 

typedef char		TBOOL;		 


 
























typedef unsigned long INSTR;             
















 

# 292 "/usr/local/tornado2.2/ppc/target/h/types/vxTypesOld.h"








}



# 183 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2














 












 





 

# 1 "/usr/local/tornado2.2/ppc/target/h/tool/gnu/toolMacros.h" 1
 

 

 


















 









 












# 218 "/usr/local/tornado2.2/ppc/target/h/vxWorks.h" 2




 














}



# 272 "../Common/cmlogConfig.h" 2




# 1 "/usr/local/tornado2.2/ppc/target/h/stdio.h" 1
 

 
 

 















































extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/classLib.h" 1
 

 

 




















extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/vwModNum.h" 1
 

 

 






























































































extern "C" {


 












































































































































 






}



# 30 "/usr/local/tornado2.2/ppc/target/h/classLib.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/objLib.h" 1
 

 

 
































extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/errno.h" 1
 

 

 







 



























extern "C" {




 








































 



 

	 












	 


















 






 



 






 



 


 




 




extern int *	__errno(void);







inline int &__errnoRef()
    {
    return (*__errno());
    }













}



# 42 "/usr/local/tornado2.2/ppc/target/h/objLib.h" 2




 









 

typedef struct obj_core  *OBJ_ID;		 


 















# 91 "/usr/local/tornado2.2/ppc/target/h/objLib.h"


 



extern STATUS 	objShow (OBJ_ID objId, int showType);










}



# 31 "/usr/local/tornado2.2/ppc/target/h/classLib.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/memLib.h" 1
 

 

 
















































extern "C" {





 







 



typedef struct mem_part *PART_ID;

 

typedef struct
    {

    unsigned long numBytesFree,	    
		  numBlocksFree,    
		  maxBlockSizeFree, 
		  numBytesAlloc,    
		  numBlocksAlloc;   

    }  MEM_PART_STATS;


 

 



 




 




 






 









 

 

extern PART_ID memSysPartId;

 

extern FUNCPTR  smMemPartOptionsSetRtn;
extern FUNCPTR  smMemPartFindMaxRtn;
extern FUNCPTR  smMemPartReallocRtn;
extern FUNCPTR  smMemPartShowRtn;

 



extern STATUS 	memInit (char *pPool, unsigned poolSize);
extern STATUS 	memPartLibInit (char *pPool, unsigned poolSize);
extern PART_ID 	memPartCreate (char *pPool, unsigned poolSize);
extern void 	memPartInit (PART_ID partId, char *pPool, unsigned poolSize);
extern STATUS 	memPartAddToPool (PART_ID partId, char *pPool,
				  unsigned poolSize);
extern void 	memAddToPool (char *pPool, unsigned poolSize);
extern void *	memPartAlloc (PART_ID partId, unsigned nBytes);
extern void *   memPartAlignedAlloc (PART_ID partId, unsigned nBytes,
				     unsigned alignment);
extern void *	memalign (unsigned alignment, unsigned size);
extern void *   valloc (unsigned size);
extern STATUS 	memPartFree (PART_ID partId, char *pBlock);
extern STATUS 	memPartOptionsSet (PART_ID partId, unsigned options);
extern int 	memFindMax (void);
extern int 	memPartFindMax (PART_ID partId);
extern void *	memPartRealloc (PART_ID partId, char *pBlock, unsigned nBytes);
extern void 	memOptionsSet (unsigned options);
extern STATUS 	cfree (char *pBlock);
extern void 	memShowInit (void);
extern void 	memShow (int type);
extern STATUS 	memPartShow (PART_ID partId, int type);
extern STATUS   memPartInfoGet (PART_ID	partId, MEM_PART_STATS * ppartStats);

# 186 "/usr/local/tornado2.2/ppc/target/h/memLib.h"





}



# 32 "/usr/local/tornado2.2/ppc/target/h/classLib.h" 2


 






typedef struct obj_class *CLASS_ID;		 

extern CLASS_ID classClassId;			 

 



extern STATUS 	classLibInit (void);
extern STATUS 	classMemPartIdSet (CLASS_ID classId, PART_ID memPartId);
extern void 	classShowInit (void);
extern STATUS 	classShow (CLASS_ID classId, int level);













}



# 58 "/usr/local/tornado2.2/ppc/target/h/stdio.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/private/objLibP.h" 1
 

 

 












extern "C" {













typedef struct obj_core		 
    {
    struct obj_class *pObjClass;	 
    } OBJ_CORE;






 



extern OBJ_ID 	objCreate (CLASS_ID classId, ...);
extern STATUS 	objInit (CLASS_ID classId, OBJ_ID objId, ...);
extern STATUS 	objDelete (OBJ_ID objId);
extern STATUS 	objDestroy (OBJ_ID objId, BOOL dealloc, int timeout);
extern STATUS 	objFree (CLASS_ID classId, char *pObject);
extern STATUS 	objTerminate (OBJ_ID objId);
extern void *	objAlloc (CLASS_ID classId);
extern void *	objAllocExtra (CLASS_ID classId, unsigned nExtraBytes,
			       void ** ppExtra);
extern void 	objCoreInit (OBJ_CORE *pObjCore, CLASS_ID pObjClass);
extern void 	objCoreTerminate (OBJ_CORE *pObjCore);

# 71 "/usr/local/tornado2.2/ppc/target/h/private/objLibP.h"





}



# 60 "/usr/local/tornado2.2/ppc/target/h/stdio.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/private/classLibP.h" 1
 

 
 













extern "C" {









 









typedef struct obj_class	 
    {
    OBJ_CORE		objCore;	 
    struct mem_part	*objPartId;	 
    unsigned		objSize;	 
    unsigned		objAllocCnt;	 
    unsigned		objFreeCnt;	 
    unsigned		objInitCnt;	 
    unsigned		objTerminateCnt; 
    int			coreOffset;	 
    FUNCPTR		createRtn;	 
    FUNCPTR		initRtn;	 
    FUNCPTR		destroyRtn;	 
    FUNCPTR		showRtn;	 
    FUNCPTR		instRtn;	 
    } OBJ_CLASS;


 



extern CLASS_ID	classCreate (unsigned objectSize, int coreOffset,
			     FUNCPTR createRtn, FUNCPTR initRtn,
			     FUNCPTR destroyRtn);
extern STATUS	classInit (OBJ_CLASS *pObjClass, unsigned objectSize,
			   int coreOffset, FUNCPTR createRtn, FUNCPTR initRtn,
			   FUNCPTR destroyRtn);
extern STATUS	classDestroy (CLASS_ID classId);
extern STATUS	classInstConnect (CLASS_ID classId, FUNCPTR instRtn);
extern STATUS	classShowConnect (CLASS_ID classId, FUNCPTR showRtn);
extern STATUS   classInstrument ( OBJ_CLASS * pObjClass, 
				  OBJ_CLASS * pObjInstClass );


# 82 "/usr/local/tornado2.2/ppc/target/h/private/classLibP.h"









   


}



# 61 "/usr/local/tornado2.2/ppc/target/h/stdio.h" 2



# 1 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stdarg.h" 1 3 4
 








































# 1 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/va-ppc.h" 1 3 4
 

# 68 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/va-ppc.h" 3 4


 
 







 



 

typedef struct __va_list_tag {
  unsigned char gpr;		 


  unsigned char fpr;		 


  char *overflow_arg_area;	 

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









 



 


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

 
 









 









 























 







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





# 267 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/va-ppc.h" 3 4



 






# 330 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/va-ppc.h" 3 4


# 42 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stdarg.h" 2 3 4

# 131 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stdarg.h" 3 4












 
 













# 175 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stdarg.h" 3 4


 




 

 

 

typedef __gnuc_va_list va_list;
























# 64 "/usr/local/tornado2.2/ppc/target/h/stdio.h" 2



# 77 "/usr/local/tornado2.2/ppc/target/h/stdio.h"


 

struct __sbuf 			 
    {
    uchar_t * _base;		 
    int	      _size;		 
    };

typedef	struct __sFILE
    {
    OBJ_CORE		objCore;	 
    uchar_t *		_p;		 
    int			_r;		 
    int			_w;		 
    short		_flags;		 
    short		_file;		 
    struct __sbuf	_bf;		 
    int			_lbfsize;	 
    struct __sbuf	_ub;		 
    uchar_t *		_up;		 
    int			_ur;		 
    uchar_t		_ubuf[3];	 
    uchar_t		_nbuf[1];	 
    struct __sbuf	_lb;		 
    int			_blksize;	 
    int			_offset;	 
    int			taskId;		 
    } FILE;

 

extern CLASS_ID fpClassId;		 

 

























































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

 

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

 

 



extern int	fdprintf (int fd, const char *fmt, ...);
extern int	vfdprintf (int fd, const char *fmt, va_list ap);
extern int	printErr (const char *fmt, ...);
extern int	getw (FILE *);
extern int	putw (int, FILE *);
extern void	setbuffer (FILE *, char *, int);
extern int	setlinebuf (FILE *);
extern FILE *   stdioFp (int std);
extern STATUS   stdioShow (FILE * fp, int level);
extern STATUS   stdioShowInit (void);
extern STATUS   stdioInit (void);



# 310 "/usr/local/tornado2.2/ppc/target/h/stdio.h"



 


extern FILE **	__stdin(void);		 
extern FILE **	__stdout(void);		 
extern FILE **	__stderr(void);		 











 






































}



# 276 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/string.h" 1
 

 

 


















extern "C" {




# 39 "/usr/local/tornado2.2/ppc/target/h/string.h"




extern void *	memchr (const void *__s, int __c, size_t __n);
extern int 	memcmp (const void *__s1, const void *__s2, size_t __n);
extern void *	memcpy (void *__s1, const void *__s2, size_t __n);
extern void *	memmove (void *__s1, const void *__s2, size_t __n);
extern void *	memset (void *__s, int __c, size_t __n);

extern char *	strcat (char *__s1, const char *__s2);
extern char *	strchr (const char *__s, int __c);
extern int 	strcmp (const char *__s1, const char *__s2);
extern int 	strcoll (const char *__s1, const char *__s2);
extern char *	strcpy (char *__s1, const char *__s2);
extern size_t 	strcspn (const char *__s1, const char *__s2);
extern size_t 	strlen (const char *__s);
extern char *	strncat (char *__s1, const char *__s2, size_t __n);
extern int 	strncmp (const char *__s1, const char *__s2, size_t __n);
extern char *	strncpy (char *__s1, const char *__s2, size_t __n);
extern char *	strpbrk (const char *__s1, const char *__s2);
extern char *	strrchr (const char *__s, int __c);
extern size_t 	strspn (const char *__s1, const char *__s2);
extern char *	strstr (const char *__s1, const char *__s2);
extern char *	strtok (char *__s, const char *__sep);
extern size_t 	strxfrm (char *__s1, const char *__s2, size_t __n);
extern char *	strerror(int __errcode);


extern char *	strtok_r (char *__s, const char *__sep, char **__ppLast);



extern int	strerror_r (int __errcode, char *__buf);
extern void 	bcopy (const char *source, char *dest, int nbytes);
extern void 	bcopyBytes (char *source, char *dest, int nbytes);
extern void 	bcopyWords (char *source, char *dest, int nwords);
extern void 	bcopyLongs (char *source, char *dest, int nlongs);
extern void 	bfill (char *buf, int nbytes, int ch);
extern void 	bfillBytes (char *buf, int nbytes, int ch);
extern void 	bzero (char *buffer, int nbytes);
extern int 	bcmp (char *buf1, char *buf2, int nbytes);
extern void 	binvert (char *buf, int nbytes);
extern void 	bswap (char *buf1, char *buf2, int nbytes);
extern void 	uswab (char *source, char *destination, int nbytes);
extern void 	swab (char *source, char *dest, int nbytes);
extern char *	index (const char *s, int c);
extern char *	rindex (const char *s, int c);


# 137 "/usr/local/tornado2.2/ppc/target/h/string.h"



}



# 277 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/stdlib.h" 1
 

 

 




































extern "C" {











# 64 "/usr/local/tornado2.2/ppc/target/h/stdlib.h"


 















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




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



typedef struct {		 
	unsigned char __state;
	unsigned short __wchar;
	} _Mbsave;



extern void	abort (void);
extern int	abs (int __i);
extern int	atexit (void (*__func)(void));
extern double	atof (const char *__s);
extern int	atoi (const char *__s);
extern long	atol (const char *__s);
extern void *	bsearch (const void *__key, const void *__base,
		         size_t __nelem, size_t __size,
		         int  (*__cmp)(const void *__ck, const void *__ce));
extern div_t	div (int __numer, int __denom);
extern long	labs (long __i);
extern ldiv_t	ldiv (long __numer, long __denom);
extern int	mblen (const char *__s, size_t __n);
extern size_t	mbstowcs (wchar_t *__wcs, const char *__s, size_t __n);
extern int	mbtowc (wchar_t *__pwc, const char *__s, size_t __n);
extern void	qsort (void *__base, size_t __nelem, size_t __size,
		       int  (*__cmp)(const void *__e1, const void *__e2));
extern int	rand (void);
extern void *	srand (unsigned int __seed);
extern double	strtod (const char *__s, char **__endptr);
extern long	strtol (const char *__s, char **__endptr, int __base);
extern unsigned long strtoul (const char *__s, char **__endptr, int __base);
extern int	system (const char *__s);
extern size_t	wcstombs (char *__s, const wchar_t *__wcs, size_t __n);
extern int	wctomb (char *__s, wchar_t __wchar);

extern void *	calloc (size_t __nelem, size_t __size);
extern void	exit (int __status);
extern void	free (void *__ptr);
extern char *	getenv (const char *__name);
extern void *	malloc (size_t __size);
extern void *	realloc (void *__ptr, size_t __size);



extern void     div_r (int numer, int denom, div_t * divStructPtr);
extern void     ldiv_r (long numer, long denom, ldiv_t * divStructPtr);



# 177 "/usr/local/tornado2.2/ppc/target/h/stdlib.h"





}



# 278 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/ctype.h" 1
 

 

 

















extern "C" {






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

# 60 "/usr/local/tornado2.2/ppc/target/h/ctype.h"












extern  const unsigned char *__ctype;




















# 107 "/usr/local/tornado2.2/ppc/target/h/ctype.h"



}



# 280 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/signal.h" 1
 

 

 

























extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/sigevent.h" 1
 

 

 













extern "C" {


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

struct sigevent
    {
    int			sigev_signo;
    union sigval	sigev_value;
    int			sigev_notify;
    };


}



# 35 "/usr/local/tornado2.2/ppc/target/h/signal.h" 2


struct timespec;





 






































 
















 








 






 









typedef unsigned long sigset_t;
typedef unsigned char sig_atomic_t;

typedef struct siginfo
    {
    int			si_signo;
    int			si_code;
    union sigval	si_value;
    } siginfo_t;

struct sigaction
    {
    union
	{

	void		(*__sa_handler)(int);
	void		(*__sa_sigaction)(int, siginfo_t *, void *);




	}		sa_u;


    sigset_t		sa_mask;
    int			sa_flags;
    };



extern void 	(*signal(int __sig, void (*__handler)(int)))(int);
extern int      raise(int __signo);
extern int	kill(int __tid, int __signo);

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);
extern int 	sigaction(int __sig, const struct sigaction *__act,
			  struct sigaction *__oact);
extern int 	sigprocmask(int __how, const sigset_t *__set, sigset_t *__oset);
extern int 	sigpending(sigset_t *__set);
extern int 	sigsuspend(const sigset_t *__sigmask);
extern int 	sigwait(const sigset_t *__set, int* sig);
extern int 	sigwaitinfo(const sigset_t *__set, struct siginfo *__value);
extern int 	sigtimedwait(const sigset_t *__set, struct siginfo *__value,
				const struct timespec *);
extern int	sigqueue (int tid, int signo, const union sigval value);

# 194 "/usr/local/tornado2.2/ppc/target/h/signal.h"



 









struct sigvec
    {

    void (*sv_handler)(int);	 



    int sv_mask;		 
    int sv_flags;		 
    };

struct sigcontext;



extern int 	sigvec(int __sig, const struct sigvec *__vec,
		       struct sigvec *__ovec);
extern void 	sigreturn(struct sigcontext *__context);
extern int 	sigsetmask(int __mask);
extern int 	sigblock(int __mask);













}



# 281 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/fcntl.h" 1
 

 

 














extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/sys/fcntlcom.h" 1
 

 
 





 












extern "C" {




 























 









 












 









 










 










 


 



















 









 
struct flock {
	short	l_type;		 
	short	l_whence;	 
	long	l_start;	 
	long	l_len;		 
	short	l_pid;		 
	short	l_xxx;		 
};


 
struct eflock {
	short	l_type;		 
	short	l_whence;	 
	long	l_start;	 
	long	l_len;		 
	short	l_pid;		 
	short	l_xxx;		 
	long	l_rpid;		 
	long	l_rsys;		 
};



 


}



# 24 "/usr/local/tornado2.2/ppc/target/h/fcntl.h" 2






extern int      open (const char *name, int flags, int mode );
extern int      creat (const char *name, int mode );









}



# 282 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/time.h" 1
 

 

 





















extern "C" {








# 46 "/usr/local/tornado2.2/ppc/target/h/time.h"



typedef struct __timer *timer_t ;




typedef unsigned int clock_t ;








typedef int clockid_t;





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

struct timespec
    {
    					 
    time_t tv_sec;			 
    long tv_nsec;			 
    };

struct itimerspec
    {
    struct timespec it_interval;	 
    struct timespec it_value;		 
    };






 



extern uint_t      _clocks_per_sec(void);
extern char *	   asctime (const struct tm *_tptr);
extern clock_t	   clock (void);
extern char *	   ctime (const time_t *_cal);
extern double	   difftime (time_t _t1, time_t _t0);
extern struct tm * gmtime (const time_t *_tod);
extern struct tm * localtime (const time_t *_tod);
extern time_t	   mktime (struct tm *_tptr);
extern size_t	   strftime (char *_s, size_t _n, const char *_format,
		   	      const struct tm *_tptr);
extern time_t	   time (time_t *_tod);

extern int 	clock_gettime (clockid_t clock_id, struct timespec *tp);
extern int 	clock_settime (clockid_t clock_id, const struct timespec *tp);
extern int 	clock_getres (clockid_t clock_id, struct timespec *res);

extern int 	timer_create (clockid_t clock_id, struct sigevent *evp,
			      timer_t *ptimer);
extern int 	timer_delete (timer_t timerid);
extern int 	timer_gettime (timer_t timerid, struct itimerspec *value);
extern int 	timer_settime (timer_t timerid, int flags,
		               const struct itimerspec *value,
			       struct itimerspec *ovalue);
extern int 	timer_getoverrun (timer_t timerid);

extern int      timer_connect (timer_t timerid, VOIDFUNCPTR routine, int arg);
extern int      timer_cancel (timer_t timerid);
extern int      timer_show (timer_t timerid);

extern int 	nanosleep (const struct timespec *rqtp, struct timespec *rmtp);




extern int	   asctime_r(const struct tm *_tm, char *_buffer,
			     size_t *_buflen);
extern char *	   ctime_r (const time_t *_cal, char *_buffer, size_t *_buflen);
extern int	   gmtime_r (const time_t *_tod, struct tm *_result);
extern int	   localtime_r (const time_t *_tod, struct tm *_result);



# 184 "/usr/local/tornado2.2/ppc/target/h/time.h"



}



# 284 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/sys/ioctl.h" 1
 

 

 






















extern "C" {


 

 











 

 






 














# 87 "/usr/local/tornado2.2/ppc/target/h/sys/ioctl.h"






































 





}



# 286 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sys/socket.h" 1
 

 

 

 


































 


































extern "C" {








 



 








 















 














 






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




 


struct	linger {
	int	l_onoff;		 
	int	l_linger;		 
};

 




 





































 



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

typedef struct sockaddr SOCKADDR;

 



struct sockproto {
	u_short	sp_family;		 
	u_short	sp_protocol;		 
};

 

































 










# 290 "/usr/local/tornado2.2/ppc/target/h/sys/socket.h"

 



















 




extern UINT32 somaxconn;

 



struct msghdr {
	caddr_t	msg_name;		 
	u_int	msg_namelen;		 
	struct	iovec *msg_iov;		 
	u_int	msg_iovlen;		 
	caddr_t	msg_control;		 
	u_int	msg_controllen;		 
 


	int	msg_flags;		 
};
















 





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

 



 








 







}



# 287 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sys/times.h" 1
 

 

 






















extern "C" {






 




struct timeval
    {
    long tv_sec;	 
    long tv_usec;	 
    };

struct timezone
    {
    int	tz_minuteswest;	 
    int	tz_dsttime;	 
    };








}



# 288 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sys/wait.h" 1
 

 
 















extern "C" {


 



union wait
    {
    int	w_status;

     

    struct
	{
	unsigned short	w_Fill1:16;	 
	unsigned short	w_Retcode:8;	 
	unsigned short	w_Coredump:1;	 
	unsigned short	w_Termsig:7;	 
	} w_T;

     

    struct
	{
	unsigned short	w_Fill2:16;	 
	unsigned short	w_Stopsig:8;	 
	unsigned short	w_Stopval:8;	 
	} w_S;
    };









}



# 289 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sys/stat.h" 1
 

 
 



























extern "C" {









struct	stat
    {
    ULONG	st_dev;		 
    ULONG	st_ino;		 
    USHORT	st_mode;	 
    short	st_nlink;	 
    short	st_uid;		 
    short	st_gid;		 
    ULONG	st_rdev;	 
    ULONG	st_size;	 
    ULONG 	st_atime;	 
    ULONG 	st_mtime;	 
    ULONG 	st_ctime;	 
    long	st_blksize;
    long	st_blocks;
    UINT8	st_attrib;	 
    int		reserved1;	 
    int		reserved2;	 
    int		reserved3;	 
    int		reserved4;	 
    int		reserved5;	 
    int		reserved6;	 
    };

typedef struct
    {
    long val[2];                     
    } fsid_t;

 


struct statfs
    {
    long f_type;                     
    long f_bsize;                    
    long f_blocks;                   
    long f_bfree;                    
    long f_bavail;                   
    long f_files;                    
    long f_ffree;                    
    fsid_t f_fsid;                   
    long f_spare[7];                 
    };

 





























 







 



extern    STATUS       mkdir (const char *dirName);
extern	  STATUS       fstat (int fd, struct stat *pStat);
extern	  STATUS       stat (char *name, struct stat *pStat);
extern	  STATUS       fstatfs (int fd, struct statfs *pStat);
extern	  STATUS       statfs (char *name, struct statfs *pStat);

# 143 "/usr/local/tornado2.2/ppc/target/h/sys/stat.h"







}



# 290 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/in.h" 1
 

 

 











extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/netinet/in.h" 1
 

 


































 















extern "C" {




# 1 "/usr/local/tornado2.2/ppc/target/h/net/if.h" 1
 

 

 


































 

























extern "C" {




# 1 "/usr/local/tornado2.2/ppc/target/h/net/if_arp.h" 1
 

 

 


































 













extern "C" {





 









struct	arphdr {
	u_short	ar_hrd;		 


	u_short	ar_pro;		 
	u_char	ar_hln;		 
	u_char	ar_pln;		 
	u_short	ar_op;		 






 









};

 


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












}



# 71 "/usr/local/tornado2.2/ppc/target/h/net/if.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/net/route.h" 1
 

 

 


































 

















extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/net/socketvar.h" 1
 

 
 













 
































extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/semLib.h" 1
 

 

 

































extern "C" {





 






 











 

typedef enum		 
    {
    SEM_EMPTY,			 
    SEM_FULL			 
    } SEM_B_STATE;

typedef struct semaphore *SEM_ID;

 



extern STATUS 	semGive (SEM_ID semId);
extern STATUS 	semTake (SEM_ID semId, int timeout);
extern STATUS 	semFlush (SEM_ID semId);
extern STATUS 	semDelete (SEM_ID semId);
extern int 	semInfo (SEM_ID semId, int idList[], int maxTasks);
extern STATUS 	semBLibInit (void);
extern SEM_ID 	semBCreate (int options, SEM_B_STATE initialState);
extern STATUS 	semCLibInit (void);
extern SEM_ID 	semCCreate (int options, int initialCount);
extern STATUS 	semMLibInit (void);
extern SEM_ID 	semMCreate (int options);
extern STATUS   semMGiveForce (SEM_ID semId);
extern STATUS 	semOLibInit (void);
extern SEM_ID 	semCreate (void);
extern void 	semShowInit (void);
extern STATUS 	semShow (SEM_ID semId, int level);

# 114 "/usr/local/tornado2.2/ppc/target/h/semLib.h"




}



# 55 "/usr/local/tornado2.2/ppc/target/h/net/socketvar.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/selectLib.h" 1
 

 

 































extern "C" {





 





typedef enum
    {
    SELREAD,
    SELWRITE
    } SELECT_TYPE;

# 1 "/usr/local/tornado2.2/ppc/target/h/private/selectLibP.h" 1
 

 

 









extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/lstLib.h" 1
 

 

 





























extern "C" {




 

typedef struct node		 
    {
    struct node *next;		 
    struct node *previous;	 
    } NODE;


 

typedef struct			 
    {
    NODE node;			 
    int count;			 
    } LIST;

 


 




extern void	lstLibInit (void);
extern NODE *	lstFirst (LIST *pList);
extern NODE *	lstGet (LIST *pList);
extern NODE *	lstLast (LIST *pList);
extern NODE *	lstNStep (NODE *pNode, int nStep);
extern NODE *	lstNext (NODE *pNode);
extern NODE *	lstNth (LIST *pList, int nodenum);
extern NODE *	lstPrevious (NODE *pNode);
extern int 	lstCount (LIST *pList);
extern int 	lstFind (LIST *pList, NODE *pNode);
extern void 	lstAdd (LIST *pList, NODE *pNode);
extern void 	lstConcat (LIST *pDstList, LIST *pAddList);
extern void 	lstDelete (LIST *pList, NODE *pNode);
extern void 	lstExtract (LIST *pSrcList, NODE *pStartNode, NODE *pEndNode,
	  		    LIST *pDstList);
extern void 	lstFree (LIST *pList);
extern void 	lstInit (LIST *pList);
extern void 	lstInsert (LIST *pList, NODE *pPrev, NODE *pNode);

# 104 "/usr/local/tornado2.2/ppc/target/h/lstLib.h"



}





# 19 "/usr/local/tornado2.2/ppc/target/h/private/selectLibP.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/private/semLibP.h" 1
 

 

 



















extern "C" {






# 1 "/usr/local/tornado2.2/ppc/target/h/qLib.h" 1
 

 

 



























extern "C" {




# 1 "/usr/local/tornado2.2/ppc/target/h/qClass.h" 1
 

 

 





















extern "C" {






 

typedef struct q_class		 
    {
    FUNCPTR createRtn;		 
    FUNCPTR initRtn;		 
    FUNCPTR deleteRtn;		 
    FUNCPTR terminateRtn;	 
    FUNCPTR putRtn;		 
    FUNCPTR getRtn;		 
    FUNCPTR removeRtn;		 
    FUNCPTR resortRtn;		 
    FUNCPTR advanceRtn;		 
    FUNCPTR getExpiredRtn;	 
    FUNCPTR keyRtn;		 
    FUNCPTR calibrateRtn;	 
    FUNCPTR infoRtn;		 
    FUNCPTR eachRtn;		 
    struct q_class *valid;	 
    } Q_CLASS;

typedef Q_CLASS *Q_CLASS_ID;	 

 

 






















}



# 38 "/usr/local/tornado2.2/ppc/target/h/qLib.h" 2


 





 

extern  Q_CLASS_ID		qFifoClassId;
extern  Q_CLASS_ID		qPriListClassId;
extern  Q_CLASS_ID		qPriListFromTailClassId;
extern  Q_CLASS_ID		qPriDeltaClassId;
extern  Q_CLASS_ID		qPriHeapClassId;
extern  Q_CLASS_ID		qPriBMapClassId;

 








 

 








typedef struct		 
    {
    UINT     qPriv1;			 
    UINT     qPriv2;			 
    UINT     qPriv3;			 
    UINT     qPriv4;			 
    } Q_NODE;


 








typedef struct		 
    {
    Q_NODE  *pFirstNode;		 
    UINT     qPriv1;			 
    UINT     qPriv2;			 
    Q_CLASS *pQClass;			 
    } Q_HEAD;





 


 
















 













 

















 












 













 














 




















 
















 













 



















 

























extern Q_HEAD *	qCreate (Q_CLASS *pQClass, ...);
extern Q_NODE *	qEach (Q_HEAD *pQHead, FUNCPTR routine, int routineArg);
extern Q_NODE *	qFirst (Q_HEAD *pQHead);
extern Q_NODE *	qGet (Q_HEAD *pQHead);
extern Q_NODE *	qGetExpired (Q_HEAD *pQHead);
extern STATUS 	qDelete (Q_HEAD *pQHead);
extern STATUS 	qInit (Q_HEAD *pQHead, Q_CLASS *pQClass, ...);
extern STATUS 	qTerminate (Q_HEAD *pQHead);
extern ULONG 	qKey (Q_HEAD *pQHead, Q_NODE *pQNode, int keyType);
extern int 	qInfo (Q_HEAD *pQHead, Q_NODE *nodeArray [ ], int maxNodes);
extern void 	qAdvance (Q_HEAD *pQHead);
extern void 	qCalibrate (Q_HEAD *pQHead, ULONG keyDelta);
extern void 	qPut (Q_HEAD *pQHead, Q_NODE *pQNode, ULONG key);
extern STATUS 	qRemove (Q_HEAD *pQHead, Q_NODE *pQNode);
extern void 	qResort (Q_HEAD *pQHead, Q_NODE *pQNode, ULONG newKey);

# 331 "/usr/local/tornado2.2/ppc/target/h/qLib.h"





}



# 32 "/usr/local/tornado2.2/ppc/target/h/private/semLibP.h" 2



# 1 "/usr/local/tornado2.2/ppc/target/h/private/eventLibP.h" 1
 

 

 













extern "C" {









extern VOIDFUNCPTR eventEvtRtn;  

 

typedef struct eventsCb
    {
    UINT32 wanted;	 
    volatile UINT32 received;	 
    UINT8  options;	 
    UINT8  sysflags;	 
    UINT8  pad[2];	 
    } EVENTS;		 

 



 



					 


 

typedef struct eventsResourceCb
    {
    UINT32 registered;	 
    int    taskId;	 
    UINT8  options;	 
    UINT8  pad[3];	 
    } EVENTS_RSRC;	 





 














extern void 	eventLibInit	(void);
extern void 	eventInit	(EVENTS_RSRC * pEvRsrc);
extern void 	eventTerminate 	(const EVENTS_RSRC * pEvRsrc);
extern void 	semEvLibInit	(void);
extern void 	msgQEvLibInit	(void);
extern STATUS 	eventStart	(OBJ_ID objId, EVENTS_RSRC * pEvRsrc,
				 FUNCPTR isRsrcFree, UINT32 events,
				 UINT8 options);
extern STATUS	eventRsrcSend	(int taskId, UINT32 events);
extern STATUS	eventRsrcShow	(EVENTS_RSRC * pEvRsrc);
extern STATUS   eventTaskShow	(EVENTS	* pEvents);

# 106 "/usr/local/tornado2.2/ppc/target/h/private/eventLibP.h"











}




# 35 "/usr/local/tornado2.2/ppc/target/h/private/semLibP.h" 2






 













typedef struct semaphore  
    {
    OBJ_CORE	objCore;	 
    UINT8	semType;	 
    UINT8	options;	 
    UINT16	recurse;	 
    Q_HEAD	qHead;		 
    union
	{
	UINT		 count;	 
	struct windTcb	*owner;	 
	} state;
    EVENTS_RSRC	events;		 

    } SEMAPHORE;




 












 
















 

extern OBJ_CLASS	semClass;		 
extern OBJ_CLASS	semInstClass;		 
extern CLASS_ID		semClassId;		 
extern CLASS_ID		semInstClassId;		 
extern FUNCPTR		semGiveTbl [];		 
extern FUNCPTR		semTakeTbl [];		 
extern FUNCPTR		semFlushTbl [];		 
extern FUNCPTR		semGiveDeferTbl [];	 
extern FUNCPTR		semFlushDeferTbl [];	 
extern int		semMGiveKernWork;	 

extern FUNCPTR  semSmShowRtn;	 
extern FUNCPTR  semSmInfoRtn;	 

 



extern STATUS	semLibInit (void);
extern STATUS	semTerminate (SEM_ID semId);
extern STATUS	semDestroy (SEM_ID semId, BOOL dealloc);
extern STATUS	semGiveDefer (SEM_ID semId);
extern STATUS	semFlushDefer (SEM_ID semId);
extern STATUS	semInvalid (SEM_ID semId);
extern STATUS	semIntRestrict (SEM_ID semId);
extern STATUS	semQInit (SEMAPHORE *pSemaphore, int options);
extern STATUS	semQFlush (SEM_ID semId);
extern void	semQFlushDefer (SEM_ID semId);
extern STATUS	semBInit (SEMAPHORE *pSem,int options,SEM_B_STATE initialState);
extern STATUS	semBCoreInit (SEMAPHORE *pSemaphore, int options,
			      SEM_B_STATE initialState);
extern STATUS	semBGive (SEM_ID semId);
extern STATUS	semBTake (SEM_ID semId, int timeout);
extern void	semBGiveDefer (SEM_ID semId);
extern STATUS	semMInit (SEMAPHORE *pSem, int options);
extern STATUS	semMCoreInit (SEMAPHORE *pSemaphore, int options);
extern STATUS	semMGive (SEM_ID semId);
extern STATUS	semMTake (SEM_ID semId, int timeout);
extern STATUS	semMGiveKern (SEM_ID semId);
extern STATUS	semMPendQPut (SEM_ID semId, int timeout);
extern STATUS	semCInit (SEMAPHORE *pSem,int options,int initialCount);
extern STATUS	semCCoreInit (SEMAPHORE *pSemaphore, int options,
			      int initialCount);
extern STATUS	semCGive (SEM_ID semId);
extern STATUS	semCTake (SEM_ID semId, int timeout);
extern void	semCGiveDefer (SEM_ID semId);
extern STATUS	semOTake (SEM_ID semId);

# 184 "/usr/local/tornado2.2/ppc/target/h/private/semLibP.h"


# 200 "/usr/local/tornado2.2/ppc/target/h/private/semLibP.h"








}



# 20 "/usr/local/tornado2.2/ppc/target/h/private/selectLibP.h" 2


typedef struct selWkNode
    {
    NODE		linkedListHooks; 
    BOOL		dontFree;	 
    int			taskId;		 
    int			fd;		 
    SELECT_TYPE		type;		 
    } SEL_WAKEUP_NODE;

typedef struct
    {
    SEMAPHORE		listMutex;	 
    SEL_WAKEUP_NODE	firstNode;	 
    LIST		wakeupList;	 
    } SEL_WAKEUP_LIST;

typedef struct selContext
    {
    SEMAPHORE	wakeupSem;		 
    BOOL     	pendedOnSelect;		 

    fd_set     *pReadFds;		 
    fd_set     *pWriteFds;		 

     

    fd_set     *pOrigReadFds;		 
    fd_set     *pOrigWriteFds;		 
    int		width;			 

     











    } SEL_CONTEXT;


 



extern void	selectInit		(int numFiles);
extern void	selTaskDeleteHookAdd 	(void);











}



# 55 "/usr/local/tornado2.2/ppc/target/h/selectLib.h" 2


 



extern SELECT_TYPE  selWakeupType 	(SEL_WAKEUP_NODE *pWakeupNode);
extern STATUS 	    selNodeAdd 	      	(SEL_WAKEUP_LIST *pWakeupList,
			    		 SEL_WAKEUP_NODE *pWakeupNode);
extern STATUS 	    selNodeDelete 	(SEL_WAKEUP_LIST *pWakeupList,
			       		 SEL_WAKEUP_NODE *pWakeupNode);
extern int 	    selWakeupListLen 	(SEL_WAKEUP_LIST *pWakeupList);
extern void 	    selWakeup 		(SEL_WAKEUP_NODE *pWakeupNode);
extern void 	    selWakeupAll 	(SEL_WAKEUP_LIST *pWakeupList, 
					 SELECT_TYPE type);
extern void 	    selWakeupListInit 	(SEL_WAKEUP_LIST *pWakeupList);
extern void 	    selWakeupListTerm 	(SEL_WAKEUP_LIST *pWakeupList);
extern int	    select 		(int width, fd_set *pReadFds, 
					 fd_set *pWriteFds, fd_set *pExceptFds,
					 struct timeval *pTimeOut);

# 88 "/usr/local/tornado2.2/ppc/target/h/selectLib.h"



}



# 56 "/usr/local/tornado2.2/ppc/target/h/net/socketvar.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/net/uio.h" 1
 

 

 


































 










extern "C" {










struct iovec {
	caddr_t	iov_base;
	int	iov_len;
};

enum	uio_rw { UIO_READ, UIO_WRITE };

 
enum uio_seg {
	UIO_USERSPACE,		 
	UIO_SYSSPACE,		 
	UIO_USERISPACE		 
};

struct uio {
	struct	iovec *uio_iov;
	int	uio_iovcnt;
	off_t	uio_offset;
	int	uio_resid;
	enum	uio_seg uio_segflg;
	enum	uio_rw uio_rw;



};











}



# 57 "/usr/local/tornado2.2/ppc/target/h/net/socketvar.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/net/mbuf.h" 1
 

 

 


































 


























extern "C" {




# 1 "/usr/local/tornado2.2/ppc/target/h/net/unixLib.h" 1
 

 
 















extern "C" {








 

















 































            
 



extern int 	splnet (void);
extern int 	splimp (void);
extern void 	splx (int x);
extern void 	panic (char *msg);
extern void 	wakeup (SEM_ID semId);
extern void 	ksleep (SEM_ID semId);
extern char *	_netMalloc (int bufSize, UCHAR type, int canWait); 
extern void	_netFree (char * pBuf); 
extern void * 	hashinit (int 	elements, int type, u_long * hashmask);

# 106 "/usr/local/tornado2.2/ppc/target/h/net/unixLib.h"




}



# 72 "/usr/local/tornado2.2/ppc/target/h/net/mbuf.h" 2




# 1 "/usr/local/tornado2.2/ppc/target/h/netBufLib.h" 1
 

 

 


























extern "C" {






 


















 






























 













 
 
 
 

























 











 







































 























 






 




 

 









 




 



 








 



 



 



 





    











                    











                    



                    








 









typedef struct
    {
    int		mBlkNum;		 
    int		clBlkNum;		 
    char * 	memArea;		 
    int		memSize;		 
    } M_CL_CONFIG;

 







typedef struct clDesc
    {
    int		clSize;			 
    int		clNum;			 
    char *	memArea;		 
    int		memSize;		 
    } CL_DESC; 

 

typedef struct clBuff
    {
    struct clBuff *	pClNext; 	 
    } CL_BUF;

typedef CL_BUF * CL_BUF_ID; 

 

typedef struct clPool
    {
    int			clSize;		 
    int			clLg2;		 
    int			clNum; 		 
    int			clNumFree; 	 
    int			clUsage;	 
    CL_BUF_ID		pClHead;	 
    struct netPool *	pNetPool;	 
    } CL_POOL; 

typedef CL_POOL * CL_POOL_ID; 

 

typedef struct mHdr
    {
    struct mBlk *	mNext;		 
    struct mBlk *	mNextPkt;	 
    char *		mData;		 
    int			mLen;		 
    UCHAR		mType;		 
    UCHAR		mFlags;		 
    USHORT		reserved; 
    } M_BLK_HDR;

 

typedef struct	pktHdr
    {
    struct ifnet *	rcvif;		 
    int			len;		 
    } M_PKT_HDR;

typedef union clBlkList
    {
    struct clBlk * 	pClBlkNext;	 
    char * 		pClBuf;		 
    } CL_BLK_LIST;
    
 

typedef struct clBlk
    {
    CL_BLK_LIST 	clNode;		 
    UINT		clSize;		 
    int			clRefCnt;	 
    FUNCPTR		pClFreeRtn;	 
    int			clFreeArg1;	 
    int			clFreeArg2;	 
    int			clFreeArg3;	 
    struct netPool *	pNetPool;	 
    } CL_BLK;

 

typedef struct mBlk
    {
    M_BLK_HDR 	mBlkHdr; 		 
    M_PKT_HDR	mBlkPktHdr;		 
    CL_BLK *	pClBlk;			 
    } M_BLK;

 

typedef struct mbstat
    {
    ULONG	mNum;			 
    ULONG	mDrops;			 
    ULONG	mWait;			 
    ULONG	mDrain;			 
    ULONG	mTypes[256];		 
    } M_STAT;

typedef M_BLK * 	M_BLK_ID;
typedef CL_BLK *	CL_BLK_ID;
typedef struct netPool 	NET_POOL;
typedef struct poolFunc POOL_FUNC;
typedef NET_POOL * 	NET_POOL_ID;

struct	poolFunc			 
    {
     
    STATUS	(*pInitRtn) (NET_POOL_ID pNetPool, M_CL_CONFIG * pMclBlkConfig,
                             CL_DESC * pClDescTbl, int clDescTblNumEnt,
			     BOOL fromKheap);

     
    void	(*pMblkFreeRtn) (NET_POOL_ID pNetPool, M_BLK_ID pMblk);

     
    void	(*pClBlkFreeRtn) (CL_BLK_ID pClBlk);

     
    void	(*pClFreeRtn) (NET_POOL_ID pNetPool, char * pClBuf);

     
    M_BLK_ID 	(*pMblkClFreeRtn) (NET_POOL_ID pNetPool, M_BLK_ID pMblk);

     
    M_BLK_ID	(*pMblkGetRtn) (NET_POOL_ID pNetPool, int canWait, UCHAR type);

     
    CL_BLK_ID	(*pClBlkGetRtn) (NET_POOL_ID pNetPool, int canWait);
    
     
    char *	(*pClGetRtn) (NET_POOL_ID pNetPool, CL_POOL_ID pClPool);

     
    STATUS	(*pMblkClGetRtn) (NET_POOL_ID pNetPool, M_BLK_ID pMblk,
                                  int bufSize, int canWait, BOOL bestFit);

     
    CL_POOL_ID	(*pClPoolIdGetRtn) (NET_POOL_ID pNetPool, int	bufSize,
                                    BOOL bestFit);
    };

struct netPool				 
    {
    M_BLK_ID	pmBlkHead;		 
    CL_BLK_ID	pClBlkHead;		 
    int		mBlkCnt;		 
    int		mBlkFree;		 


    int		clMask;			 
    int		clLg2Max;		 
    int		clSizeMax;		 
    int		clLg2Min;		 
    int		clSizeMin;		 
    CL_POOL * 	clTbl [((16   - 6  )  + 1) ];	 
    M_STAT *	pPoolStat;		 
    POOL_FUNC *	pFuncTbl;		 
    };

                     
                    
extern  STATUS 		netBufLibInit (void);
extern  STATUS 		netPoolInit (NET_POOL_ID pNetPool,
                                     M_CL_CONFIG * pMclBlkConfig,
                                     CL_DESC * pClDescTbl, int clDescTblNumEnt,
                                     POOL_FUNC * pFuncTbl);
extern  STATUS		netPoolDelete (NET_POOL_ID);
extern  void		netMblkFree (NET_POOL_ID pNetPool, M_BLK_ID pMblk);
extern  void		netClBlkFree (NET_POOL_ID pNetPool, CL_BLK_ID pClBlk);
extern  void 		netClFree (NET_POOL_ID pNetPool, UCHAR * pClBuf);
extern  M_BLK_ID 	netMblkClFree (M_BLK_ID pMblk);
extern  void		netMblkClChainFree (M_BLK_ID pMblk);
extern  M_BLK_ID 	netMblkGet (NET_POOL_ID pNetPool, int canWait,
                                    UCHAR type);
extern  CL_BLK_ID	netClBlkGet (NET_POOL_ID pNetPool, int canWait);
extern  char *	 	netClusterGet (NET_POOL_ID pNetPool,
                                       CL_POOL_ID pClPool);
extern  STATUS 	 	netMblkClGet (NET_POOL_ID pNetPool, M_BLK_ID pMblk,
                                      int bufSize, int canWait, BOOL bestFit);
extern  M_BLK_ID 	netTupleGet (NET_POOL_ID pNetPool, int bufSize,
                                     int canWait, UCHAR type, BOOL bestFit);

extern  M_BLK_ID 	netTupleGet2 (NET_POOL_ID, int, int);

extern  CL_BLK_ID  	netClBlkJoin (CL_BLK_ID pClBlk, char * pClBuf,
                                      int size, FUNCPTR pFreeRtn, int arg1,
                                      int arg2, int arg3);
extern  M_BLK_ID  	netMblkClJoin (M_BLK_ID pMblk, CL_BLK_ID pClBlk);
extern  CL_POOL_ID 	netClPoolIdGet (NET_POOL_ID pNetPool, int bufSize,
                                        BOOL bestFit);

extern  int 		netMblkToBufCopy (M_BLK_ID pMblk, char * pBuf,
                                          FUNCPTR pCopyRtn);
extern  int		netMblkOffsetToBufCopy (M_BLK_ID pMblk, int offset,
                                                char * pBuf, int len,
                                                FUNCPTR	pCopyRtn);
extern  M_BLK_ID 	netMblkDup (M_BLK_ID pSrcMblk, M_BLK_ID	pDestMblk);
extern  M_BLK_ID 	netMblkChainDup (NET_POOL_ID pNetPool, M_BLK_ID	pMblk,
                                         int offset, int len, int canWait);






}




# 76 "/usr/local/tornado2.2/ppc/target/h/net/mbuf.h" 2






 























 



 


 













 





 





 





 





 






 








# 176 "/usr/local/tornado2.2/ppc/target/h/net/mbuf.h"
# 193 "/usr/local/tornado2.2/ppc/target/h/net/mbuf.h"


 










 








 















 

 












 






















        




    
 















 

extern  struct mbstat 	mbstat;			 
extern  M_CL_CONFIG	mClBlkConfig;		 
extern  CL_DESC 		clDescTbl [];		 
extern  int		clDescTblNumEnt; 	 
extern  M_CL_CONFIG	sysMclBlkConfig;	 
extern  CL_DESC 		sysClDescTbl [];	 
extern  int		sysClDescTblNumEnt; 	 


extern  NET_POOL_ID	_pNetDpool;		 
extern  NET_POOL_ID	_pNetSysPool;		 


 

extern int max_linkhdr;		 
extern int max_protohdr;	 
extern int max_hdr;		 
extern int max_datalen;		 

extern struct	mBlk  * netMblkClFree( struct mBlk  * ) ;
extern struct	mBlk  *m_getclr (int, UCHAR, int, BOOL);
extern struct	mBlk  *m_prepend (struct mBlk  *, int, int);
extern struct	mBlk  *m_pullup (struct mBlk  *, int);
extern void	m_adj (struct mBlk  *, int);
extern void	netMblkClChainFree( struct mBlk  * ) ;
extern void 	m_cat (struct mBlk  *, struct mBlk  *);
extern struct 	mBlk  *m_devget (char *, int, int, struct ifnet *,
				void (*copy)());
struct mBlk  *	mBufClGet (int, UCHAR, register  int, BOOL); 
struct mBlk  * 	mHdrClGet (int, UCHAR, register  int, BOOL); 

extern  struct mBlk  * bcopy_to_mbufs (u_char * buf, int totlen, int off0,
                                     struct ifnet * ifp, int width);
extern  struct mBlk  * build_cluster (u_char * buf, int totlen,
                                    struct ifnet * ifp, u_char ctype,
                                    u_char * pRefcnt, FUNCPTR freeRtn,
                                    int arg1, int arg2, int arg3);
extern  int	copyFromMbufs (char * pIobuf, struct mBlk  * pMbuf, int width);


}



# 58 "/usr/local/tornado2.2/ppc/target/h/net/socketvar.h" 2






 






struct socket
    {
    short	so_type;		 
    short	so_options;		 
    short	so_linger;		 
    short	so_state;		 
    caddr_t	so_pcb;			 
    struct	protosw *so_proto;	 

     



    int		so_userArg;		 
    SEM_ID	so_timeoSem;		 
    int		so_fd;			 

     











    struct	socket *so_head;	 
    struct	socket *so_q0;		 
    struct	socket *so_q;		 
    short	so_q0len;		 
    short	so_qlen;		 
    short	so_qlimit;		 
    short	so_timeo;		 
    u_short	so_error;		 
    short	so_pgrp;		 
    u_long	so_oobmark;		 

     

    struct	sockbuf
	{
	u_long		sb_cc;		 
	u_long		sb_hiwat;	 
	u_long		sb_mbcnt;	 
	u_long		sb_mbmax;	 
	u_long		sb_lowat;	 
	struct		mBlk  *sb_mb;	 
	struct		proc *sb_sel;	 
	short		sb_timeo;	 
	short		sb_flags;	 

	SEM_ID		sb_Sem;		 
	int		sb_want;	 
	} so_rcv, so_snd;










    void	(*so_upcall) (struct socket *so, caddr_t arg, int waitf);
    caddr_t	so_upcallarg;		 
    BOOL 	selectFlag; 		 
    SEL_WAKEUP_LIST so_selWakeupList;  
    int         vsid;                  
    };






 















 



 









 



 





 







 







 







 








 















extern  VOIDFUNCPTR sowakeupHook;

extern u_long	sb_max;

 


 
extern	char netio[], netcon[], netcls[];

 


extern int soo_ioctl (struct socket * so, int cmd, caddr_t data);
extern int soo_select (struct socket *so, SEL_WAKEUP_NODE *wakeupNode);
extern int soo_unselect (struct socket *so, SEL_WAKEUP_NODE *wakeupNode); 

struct mBlk ;
struct sockaddr;

extern void	sbappend (struct sockbuf *sb, struct mBlk  *m);
extern int	sbappendaddr (struct sockbuf *sb, struct sockaddr *asa,
	    struct mBlk  *m0, struct mBlk  *control);
extern int	sbappendcontrol (struct sockbuf *sb, struct mBlk  *m0,
	    struct mBlk  *control);
extern void	sbappendrecord (struct sockbuf *sb, struct mBlk  *m0);
extern void	sbcheck (struct sockbuf *sb);
extern void	sbcompress (struct sockbuf *sb, struct mBlk  *m, struct mBlk  *n);
extern void	sbdrop (struct sockbuf *sb, int len);
extern void	sbdroprecord (struct sockbuf *sb);
extern void	sbflush (struct sockbuf *sb);
extern void	sbinsertoob (struct sockbuf *sb, struct mBlk  *m0);
extern void	sbrelease (struct sockbuf *sb);
extern int	sbreserve (struct sockbuf *sb, u_long cc);
extern void	sbwait (struct sockbuf *sb);
extern void	sbwakeup(struct socket *so, struct sockbuf *sb,
			 SELECT_TYPE wakeupType);
extern int	sb_lock (struct sockbuf *sb);
extern int	soabort (struct socket *so);
extern int	soaccept (struct socket *so, struct mBlk  *nam);
extern int	sobind (struct socket *so, struct mBlk  *nam);
extern void	socantrcvmore (struct socket *so);
extern void	socantsendmore (struct socket *so);
extern int	soclose (struct socket *so);
extern int	soconnect (struct socket *so, struct mBlk  *nam);
extern int	soconnect2 (struct socket *so1, struct socket *so2);
extern int	socreate (int dom, struct socket **aso, int type, int proto);
extern int	sodisconnect (struct socket *so);
extern void	sofree (struct socket *so);
extern int	sogetopt (struct socket *so, int level, int optname,
	    struct mBlk  **mp);
extern void	sohasoutofband (struct socket *so);
extern void	soisconnected (struct socket *so);
extern void	soisconnecting (struct socket *so);
extern void	soisdisconnected (struct socket *so);
extern void	soisdisconnecting (struct socket *so);
extern int	solisten (struct socket *so, int backlog);
extern struct socket *
	sonewconn1 (struct socket *head, int connstatus);
extern void	soqinsque (struct socket *head, struct socket *so, int q);
extern int	soqremque (struct socket *so, int q);
extern int	soreceive (struct socket *so, struct mBlk  **paddr, 
			   struct uio *pUio, struct mBlk  **mp0, struct mBlk  **
			   controlp, int *flagsp);
extern int	soreserve (struct socket *so, u_long sndcc, u_long rcvcc);
extern void	sorflush (struct socket *so);
extern int	sosend (struct socket *so, struct mBlk  *addr, struct uio *uio,
	    struct mBlk  *top, struct mBlk  *control, int flags);
extern int	sosetopt (struct socket *so, int level, int optname,
	    struct mBlk  *m0);
extern int	soshutdown (struct socket *so, int how);
extern void	sowakeup (struct socket *so, struct sockbuf *sb, 
			  SELECT_TYPE wakeupType);


}



# 61 "/usr/local/tornado2.2/ppc/target/h/net/route.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/net/radix.h" 1
 

 

 


































 













extern "C" {








 



struct radix_node {
	struct	radix_mask *rn_mklist;	 
	struct	radix_node *rn_p;	 
	short	rn_b;			 
	char	rn_bmask;		 
	u_char	rn_flags;		 




	union {
		struct {			 
			caddr_t	rn_Key;	 
			caddr_t	rn_Mask;	 
			struct	radix_node *rn_Dupedkey;
		} rn_leaf;
		struct {			 
			int	rn_Off;		 
			struct	radix_node *rn_L; 
			struct	radix_node *rn_R; 
		}rn_node;
	}		rn_u;





};








 



extern struct radix_mask {
	short	rm_b;			 
	char	rm_unused;		 
	u_char	rm_flags;		 
	struct	radix_mask *rm_mklist;	 
	union	{
		caddr_t	rmu_mask;		 
		struct	radix_node *rmu_leaf;	 
	}	rm_rmu;
	int	rm_refs;		 
} *rn_mkfreelist;













struct radix_node_head {
	struct	radix_node *rnh_treetop;
	int	rnh_addrsize;		 
	int	rnh_pktsize;		 
	struct	radix_node *(*rnh_addaddr)	 
		(void *v, void *mask,
		     struct radix_node_head *head, struct radix_node nodes[]);
	struct	radix_node *(*rnh_addpkt)	 
		(void *v, void *mask,
		     struct radix_node_head *head, struct radix_node nodes[]);
	struct	radix_node *(*rnh_deladdr)	 
		(void *v, void *mask, struct radix_node_head *head);
	struct	radix_node *(*rnh_delpkt)	 
		(void *v, void *mask, struct radix_node_head *head);
	struct	radix_node *(*rnh_matchaddr)	 
		(void *v, struct radix_node_head *head, int);
        struct  radix_node *(*rnh_lookup)        
                (void *v, void *mask, struct radix_node_head *head);
	struct	radix_node *(*rnh_matchpkt)	 
		(void *v, struct radix_node_head *head);
	int	(*rnh_walktree)			 
		(struct radix_node_head *head, int (*f)(), void *w);
	struct	radix_node rnh_nodes[3];	 
};















void	 rn_init (void);

int	 rn_inithead (struct radix_node_head **, int);
int	 rn_destroyhead (struct radix_node_head *);
int	 rn_refines (void *, void *);
int	 rn_walksubtree (struct radix_node_head *, void *, void *,
                         int (*)(), void *);
int	 rn_walktree (struct radix_node_head *, int (*)(), void *);
struct radix_node
	 *rn_addmask (void *, int, int),
	 *rn_addroute (void *, void *, struct radix_node_head *,
			struct radix_node [2]),
	 *rn_delete (void *, void *, struct radix_node_head *),
	 *rn_insert (void *, struct radix_node_head *, int *,
			struct radix_node [2]),
	 *rn_match (void *, struct radix_node_head *, int),
	 *rn_newpair (void *, int, struct radix_node[2]),
	 *rn_search (void *, struct radix_node *),
	 *rn_search_m (void *, struct radix_node *, void *);


}




# 62 "/usr/local/tornado2.2/ppc/target/h/net/route.h" 2







 






 




struct route
    {
    struct	rtentry *ro_rt;
    struct	sockaddr ro_dst;
    };

 



struct rt_metrics {
	u_long	rmx_locks;	 
	u_long	rmx_mtu;	 
	u_long	rmx_expire;	 
	u_long	rmx_recvpipe;	 
	u_long	rmx_sendpipe;	 
	u_long	rmx_ssthresh;	 
	u_long	rmx_rtt;	 
	u_long	rmx_rttvar;	 
	u_short	rmx_hopcount;	 
        u_short rmx_mss; 	 

         

        long 	value1;
        long 	value2;
        long 	value3;
        long 	value4;
        long 	value5;
        long 	routeTag;
        u_char  weight;
};

 






struct sockaddr_gate
    {
    u_char         gate_len;
    u_char         gate_family;
    u_char         routeProto;
    u_char         weight;
    u_long         gate_addr;
    long           value1;
    long           value2;
    long           value3;
    long           value4;
    long           value5;
    long           routeTag;
    };

 







 










struct rtentry {
	struct	radix_node rt_nodes[2];	 


	struct	sockaddr *rt_gateway;	 
	short	rt_flags;		 
	short	rt_refcnt;		 
	u_long	rt_use;			 
	struct	ifnet *rt_ifp;		 
	struct	ifaddr *rt_ifa;		 
	struct	sockaddr *rt_genmask;	 
	caddr_t	rt_llinfo;		 
	struct	rtentry *rt_gwroute;	 
        int	rt_mod;			  
	struct	rt_metrics rt_rmx;	 
        struct  rtentry *rt_parent;      
};

 



struct ortentry {
	u_long	rt_hash;		 
	struct	sockaddr rt_dst;	 
	struct	sockaddr rt_gateway;	 
	short	rt_flags;		 
	short	rt_refcnt;		 
	u_long	rt_use;			 
	struct	ifnet *rt_ifp;		 
        int	rt_mod;			 
};
























 

struct	rtstat
    {
    short	rts_badredirect;	 
    short	rts_dynamic;		 
    short	rts_newgateway;		 
    short	rts_unreach;		 
    short	rts_wildcard;		 
    };

 


struct rt_msghdr {
	u_short	rtm_msglen;	 
	u_char	rtm_version;	 
	u_char	rtm_type;	 
	u_short	rtm_index;	 
	int	rtm_flags;	 
	int	rtm_addrs;	 
	pid_t	rtm_pid;	 
	int	rtm_seq;	 
	int	rtm_errno;	 
	int	rtm_use;	 
	u_long	rtm_inits;	 
	struct	rt_metrics rtm_rmx;  
};


















# 271 "/usr/local/tornado2.2/ppc/target/h/net/route.h"











# 294 "/usr/local/tornado2.2/ppc/target/h/net/route.h"


 











 












 










struct rt_addrinfo {
	int	rti_addrs;
	struct	sockaddr *rti_info[8 ];
};

struct route_cb {
	int	ip_count;
	int	ns_count;
	int	iso_count;
	int	any_count;
};











extern	struct	rtstat	rtstat;
extern	struct	radix_node_head *rt_tables[];
extern  int	rtmodified; 




int	 route_init (void);

void	 rt_maskedcopy (struct sockaddr *,
	    struct sockaddr *, struct sockaddr *);
int	 rt_setgate (struct rtentry *,
	    struct sockaddr *, struct sockaddr *);
void	 rtable_init (void **);
void	 rtalloc (struct route *);
struct rtentry *
	 rtalloc1 (struct sockaddr *, int, int);
void	 rtfree (struct rtentry *);
int	 rtinit (struct ifaddr *, int, int);
int	 rtioctl (int, caddr_t);
int	 rtredirect (struct sockaddr *, struct sockaddr *,
	    struct sockaddr *, int, struct sockaddr *, struct rtentry **);
int	 rtrequest (int, struct sockaddr *,
	    struct sockaddr *, struct sockaddr *, int, struct rtentry **);


}



# 72 "/usr/local/tornado2.2/ppc/target/h/net/if.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/ifLib.h" 1
 

 

 
















extern "C" {



 


extern STATUS   ifAddrAdd (char *interfaceName, char *interfaceAddress,
                           char *broadcastAddress, int subnetMask);
extern STATUS 	ifAddrSet (char *interfaceName, char *interfaceAddress);
extern STATUS 	ifAddrDelete (char *interfaceName, char *interfaceAddress);
extern STATUS 	ifAddrGet (char *interfaceName, char *interfaceAddress);
extern STATUS 	ifBroadcastSet (char *interfaceName, char *broadcastAddress);
extern STATUS 	ifBroadcastGet (char *interfaceName, char *broadcastAddress);
extern STATUS 	ifDstAddrSet (char *interfaceName, char *dstAddress);
extern STATUS 	ifDstAddrGet (char *interfaceName, char *dstAddress);
extern STATUS 	ifMaskSet (char *interfaceName, int netMask);
extern STATUS 	ifMaskGet (char *interfaceName, int *netMask);
extern STATUS 	ifFlagChange (char *interfaceName, int flags, BOOL on);
extern STATUS 	ifFlagSet (char *interfaceName, int flags);
extern STATUS 	ifFlagGet (char *interfaceName, int *flags);
extern STATUS 	ifMetricSet (char *interfaceName, int metric);
extern STATUS 	ifMetricGet (char *interfaceName, int *pMetric);
extern int 	ifRouteDelete (char *ifName, int unit);
extern struct 	ifnet *ifunit (char *ifname);
extern struct	ifnet *ifIndexToIfpNoLock (int ifIndex);
extern struct	ifnet *ifIndexToIfp (int ifIndex);
extern unsigned short	ifNameToIfIndex (char *ifname);
extern STATUS	ifIndexToIfName (unsigned short ifIndex, char *ifname);
extern STATUS	ifUnnumberedSet(char *, char *, char *, char *);
extern int 	ifAllRoutesDelete (char *, int);
# 78 "/usr/local/tornado2.2/ppc/target/h/ifLib.h"


}



# 73 "/usr/local/tornado2.2/ppc/target/h/net/if.h" 2






 
























struct	ifqueue {
	struct	mBlk  *ifq_head;
	struct	mBlk  *ifq_tail;
	int	ifq_len;
	int	ifq_maxlen;
	int	ifq_drops;
};

struct mBlk ;
struct proc;
struct rtentry;
struct socket;
struct ether_header;

 



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

 





struct ifnet {
	char	*if_name;		 
	struct	ifnet *if_next;		 
	struct	ifaddr *if_addrlist;	 
	int	if_pcount;		 
	caddr_t	if_bpf;			 
	u_short	if_index;		 
	short	if_unit;		 
	short	if_timer;		 
	short	if_flags;		 
	struct	if_data if_data;	 
	struct	mBlk *	pInmMblk; 	 
	int	(*if_init) 
		(int unit);		 
	int	(*if_output)		 
		(struct ifnet *, struct mBlk  *, struct sockaddr *, 
		 struct rtentry *);	
	int	(*if_start) 		 
    		(struct ifnet *);
	int	(*if_ioctl)		 
		(struct ifnet *, int cmd, caddr_t data);
	int	(*if_reset)		 
		(int unit);	
	int	(*if_resolve)();	 
	void	(*if_watchdog)		 
		(int unit);
	struct	ifqueue if_snd;		 
        void * 	pCookie; 		 



};







































 







 








# 247 "/usr/local/tornado2.2/ppc/target/h/net/if.h"








 






# 270 "/usr/local/tornado2.2/ppc/target/h/net/if.h"
# 284 "/usr/local/tornado2.2/ppc/target/h/net/if.h"


# 296 "/usr/local/tornado2.2/ppc/target/h/net/if.h"


# 306 "/usr/local/tornado2.2/ppc/target/h/net/if.h"




 





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

	struct	sockaddr *ifa_netmask;	 
	struct	ifnet *ifa_ifp;		 
	struct	ifaddr *ifa_next;	 
	void	(*ifa_rtrequest)();	 
	u_short	ifa_flags;		 
	short	ifa_refcnt;		 
	int	ifa_metric;		 
};


 



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

 



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

 





struct	ifreq {

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






};

struct ifaliasreq {
	char	ifra_name[16 ];		 
	struct	sockaddr ifra_addr;
	struct	sockaddr ifra_broadaddr;
	struct	sockaddr ifra_mask;
};

 



struct	ifmreq {

	char	ifr_name[16 ];		 
	int	ifr_tableLen;
	char 	*ifr_table;
};

 





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


};

 




typedef struct mtuQuery_t 
	{
	UCHAR family;
	UINT32 dstIpAddr;
	UINT32 mtu;
	} MTU_QUERY;











extern struct ifnet * 	ifnet;		 
extern struct ifqueue 	rawintrq;	 

extern STATUS		if_attach (struct ifnet *);
extern void		if_down (struct ifnet *);
extern void		if_qflush (struct ifqueue *);


extern void		if_slowtimo (void);




extern void		if_up (struct ifnet *);
extern int		ifconf (int, caddr_t);
extern void		ifinit (void);
extern int		ifioctl (struct socket *, u_long, caddr_t);
extern int		ifpromisc (struct ifnet *, int);
extern struct ifaddr *	ifa_ifwithaddr (struct sockaddr *);
extern struct ifaddr *	ifa_ifwithaf (int);
extern struct ifaddr *	ifa_ifwithdstaddr (struct sockaddr *);
extern struct ifaddr *	ifa_ifwithnet (struct sockaddr *);
extern struct ifaddr *	ifaof_ifpforaddr (struct sockaddr *, struct ifnet *);
extern struct ifaddr *	ifa_ifwithroute(int, struct sockaddr *, 
					struct sockaddr*);
extern void		ifafree (struct ifaddr *);
extern void		link_rtrequest (int, struct rtentry *,
                                        struct sockaddr *);


}



# 59 "/usr/local/tornado2.2/ppc/target/h/netinet/in.h" 2







 




 




















 









 


struct in_addr {
	u_long s_addr;
};

 










































 


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

 





struct sockaddr_rt {
	u_char	srt_len;
	u_char	srt_family;
        u_char  srt_proto;
        u_char  srt_tos;          
	struct	in_addr srt_addr;
	char	sin_zero[8];
        };












 






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

 

















 






 


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





 








# 271 "/usr/local/tornado2.2/ppc/target/h/netinet/in.h"

 



















 
















# 338 "/usr/local/tornado2.2/ppc/target/h/netinet/in.h"


extern	struct domain inetdomain;
extern  BOOL inet_netmatch(struct sockaddr_in *sin1, struct sockaddr_in *sin2);
extern  void in_makeaddr_b(u_long net, u_long host, struct in_addr * pAddr);
extern 	u_long in_lnaof();
extern	void in_ifaddr_remove();
extern	int in_broadcast (struct in_addr, struct ifnet *);
extern	int in_canforward (struct in_addr);
extern	int in_cksum (struct mBlk  *, int);
extern	int in_localaddr (struct in_addr);
extern	u_long in_netof (struct in_addr);
extern	void in_socktrim (struct sockaddr_in *);
extern  struct in_ifaddr *in_iaonnetof(u_long net);


}



# 20 "/usr/local/tornado2.2/ppc/target/h/in.h" 2



}



# 291 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/ioLib.h" 1
 

 

 
























































































extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/limits.h" 1
 

 

 
















extern "C" {




 








# 1 "/usr/local/tornado2.2/ppc/target/h/tool/gnu/limits.h" 1



 



 



 




 





 



 












 

 




 



 








 



 













 



# 95 "/usr/local/tornado2.2/ppc/target/h/tool/gnu/limits.h"




# 36 "/usr/local/tornado2.2/ppc/target/h/limits.h" 2






























}



# 98 "/usr/local/tornado2.2/ppc/target/h/ioLib.h" 2



# 1 "/usr/local/tornado2.2/ppc/target/h/unistd.h" 1
 

 

 



















extern "C" {










 









 



extern STATUS 		unlink (char *name);
extern STATUS 		close (int fd);
extern int 		read (int fd, char *buffer, size_t maxbytes);
extern int 		write (int fd, char *buffer, size_t nbytes);
extern int 		lseek (int fd, long offset, int whence);
extern STATUS 		chdir (char *pathname);
extern STATUS 		pause (void);
extern BOOL 		isatty (int fd);
extern STATUS 		rmdir (const char *dirName);
extern char *		getcwd (char *buffer, int size);
extern int    		ftruncate (int fildes, off_t length);
extern unsigned int	sleep (unsigned int);
extern unsigned int	alarm (unsigned int);

# 78 "/usr/local/tornado2.2/ppc/target/h/unistd.h"



}



# 101 "/usr/local/tornado2.2/ppc/target/h/ioLib.h" 2










 















 




















































 










 


 


















 








 









 

 

typedef struct		 
    {
    int entryNum;		 
    char name[(255   + 1) ];	 
    int nChars;			 
    short day;			 
    short month;		 
    short year;			 
    } REQ_DIR_ENTRY;

 
						 
typedef struct
    {
    ULONG  inode;		 
    char * fileName;		 
    } INODE_TO_NAME_IOCTL;
					 
 













 

extern int ioMaxLinkLevels;	 
						 
 







extern STATUS 	ioFullFileNameGet ();

extern STATUS 	ioDefPathCat (char *name);
extern STATUS 	ioDefPathSet (char *name);
extern char *	getwd (char *pathname);
extern int 	ioGlobalStdGet (int stdFd);
extern int 	ioTaskStdGet (int taskId, int stdFd);
extern int 	ioctl (int fd, int function, int arg);
extern int      readv (int fd, struct iovec *iov, int iovcnt);
extern void 	ioDefDevGet (char *devName);
extern void 	ioDefDirGet (char *dirName);
extern void 	ioDefPathGet (char *pathname);
extern void 	ioGlobalStdSet (int stdFd, int newFd);
extern void 	ioTaskStdSet (int taskId, int stdFd, int newFd);
extern int      writev (int fd, struct iovec *iov, int iovcnt);

# 313 "/usr/local/tornado2.2/ppc/target/h/ioLib.h"



 









 












}




# 293 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/iosLib.h" 1
 

 

 



































extern "C" {




# 1 "/usr/local/tornado2.2/ppc/target/h/dllLib.h" 1
 

 

 



















extern "C" {



 

typedef struct dlnode		 
    {
    struct dlnode *next;	 
    struct dlnode *previous;	 
    } DL_NODE;


 

typedef struct			 
    {
    DL_NODE *head;	 
    DL_NODE *tail;	 
    } DL_LIST;

 

 


















 

















 

















 

















 
















 



extern DL_LIST *dllCreate (void);
extern DL_NODE *dllEach (DL_LIST *pList, FUNCPTR routine, int routineArg);
extern DL_NODE *dllGet (DL_LIST *pList);
extern STATUS 	dllDelete (DL_LIST *pList);
extern STATUS 	dllInit (DL_LIST *pList);
extern STATUS 	dllTerminate (DL_LIST *pList);
extern int 	dllCount (DL_LIST *pList);
extern void 	dllAdd (DL_LIST *pList, DL_NODE *pNode);
extern void 	dllInsert (DL_LIST *pList, DL_NODE *pPrev, DL_NODE *pNode);
extern void 	dllRemove (DL_LIST *pList, DL_NODE *pNode);

# 166 "/usr/local/tornado2.2/ppc/target/h/dllLib.h"


}



# 46 "/usr/local/tornado2.2/ppc/target/h/iosLib.h" 2



 









typedef struct 		 
    {
    DL_NODE	node;		 
    short	drvNum;		 
    char *	name;		 
    } DEV_HDR;


 




extern STATUS 	iosInit (int max_drivers, int max_files, char *nullDevName);
extern void 	iosShowInit (void);
extern DEV_HDR *iosDevFind (char *name, char ** pNameTail);
extern DEV_HDR *iosFdDevFind (int fd);
extern DEV_HDR *iosNextDevGet (DEV_HDR *pDev);
extern STATUS 	iosClose (int fd);
extern STATUS 	iosDevAdd (DEV_HDR *pDevHdr, char *name, int drvnum);
extern STATUS 	iosDrvRemove (int drvnum, BOOL forceClose);
extern int 	iosCreate (DEV_HDR *pDevHdr, char *fileName, int mode);
extern int 	iosDelete (DEV_HDR *pDevHdr, char *fileName);
extern int 	iosDrvInstall (FUNCPTR pCreate, FUNCPTR pDelete, FUNCPTR pOpen,
			       FUNCPTR pClose, FUNCPTR pRead, FUNCPTR pWrite,
			       FUNCPTR pIoctl);
extern int 	iosFdNew (DEV_HDR *pDevHdr, char *name, int value);
extern int 	iosFdValue (int fd);
extern int 	iosIoctl (int fd, int function, int arg);
extern int 	iosOpen (DEV_HDR *pDevHdr, char *fileName, int flags, int mode);
extern int 	iosRead (int fd, char *buffer, int maxbytes);
extern int 	iosWrite (int fd, char *buffer, int nbytes);
extern void 	iosDevDelete (DEV_HDR *pDevHdr);
extern void 	iosDevShow (void);
extern void 	iosDrvShow (void);
extern void 	iosFdFree (int fd);
extern STATUS 	iosFdSet (int fd, DEV_HDR *pDevHdr, char *name, int value);
extern void 	iosFdShow (void);

# 124 "/usr/local/tornado2.2/ppc/target/h/iosLib.h"



}



# 294 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/logLib.h" 1
 

 

 






















extern "C" {


 




extern STATUS 	logFdAdd (int fd);
extern STATUS 	logFdDelete (int fd);
extern STATUS 	logInit (int fd, int maxMsgs);




extern int	logMsg (char *fmt, int arg1, int arg2,
			int arg3, int arg4, int arg5, int arg6);


extern void 	logFdSet (int fd);
extern void 	logShow (void);
extern void 	logTask (void);

# 61 "/usr/local/tornado2.2/ppc/target/h/logLib.h"




}



# 295 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/inetLib.h" 1
 

 

 



























extern "C" {





# 1 "/usr/local/tornado2.2/ppc/target/h/arpa/inet.h" 1
 

 

 



















 

















extern "C" {


 






extern 	unsigned long 	inet_addr (char *);
extern 	char * 		inet_ntoa (struct in_addr);
extern 	struct in_addr 	inet_makeaddr (int, int);
extern 	unsigned long 	inet_network (char *);











}



# 39 "/usr/local/tornado2.2/ppc/target/h/inetLib.h" 2


 




 



 




extern int 	inet_lnaof (int inetAddress);
extern int 	inet_netof (struct in_addr inetAddress);
extern void 	inet_makeaddr_b (int netAddr, int hostAddr,
				 struct in_addr *pInetAddr);
extern void 	inet_netof_string (char *inetString, char *netString);
extern void 	inet_ntoa_b (struct in_addr inetAddress, char *pString);
extern STATUS   inet_aton (char * pString, struct in_addr * inetAddress);


# 73 "/usr/local/tornado2.2/ppc/target/h/inetLib.h"



}



# 296 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/hostLib.h" 1
 

 

 

























extern "C" {







 









typedef struct hostname_struct
    {
    struct hostname_struct *link;
    char *name;
    } HOSTNAME;

typedef struct
    {
    NODE node;
    HOSTNAME hostName;
    struct in_addr netAddr;
    } HOSTENTRY;





 



extern STATUS 	hostAdd (char *hostName, char *hostAddr);
extern STATUS 	hostDelete (char *name, char *addr);
extern STATUS 	hostGetByAddr (int addr, char *name);
extern int 	gethostname (char *name, int nameLen);
extern int 	hostGetByName (char *name);
extern int 	sethostname (char *name, int nameLen);
extern void 	hostTblInit (void);
extern int      hostTblSearchByName (char *name);
extern STATUS   hostTblSearchByAddr (int addr, char *name);



# 94 "/usr/local/tornado2.2/ppc/target/h/hostLib.h"



}



# 297 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sysLib.h" 1
 

 

 




































































extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/bootLib.h" 1
 

 

 


























extern "C" {


 
















typedef struct				 
    {
    char bootDev [40 ];	 
    char hostName [20 ];	 
    char targetName [20 ];	 
    char ead [50 ];	 
    char bad [50 ];	 
    char had [30 ];		 
    char gad [30 ];		 
    char bootFile [160 ];	 
    char startupScript [160 ];	 
    char usr [20 ];		 
    char passwd [20 ];	 
    char other [80 ];	 
    int  procNum;			 
    int  flags;				 
    int  unitNum;                        
    } BOOT_PARAMS;

 



extern STATUS 	bootBpAnchorExtract (char *string, char ** pAnchorAdrs);
extern STATUS 	bootLeaseExtract (char *string, u_long *pLeaseLen, 
                                  u_long *pLeaseStart);
extern STATUS 	bootNetmaskExtract (char *string, int *pNetmask);
extern STATUS 	bootScanNum (char ** ppString, int *pValue, BOOL hex);
extern STATUS 	bootStructToString (char *paramString, BOOT_PARAMS
		*pBootParams);
extern char *	bootStringToStruct (char *bootString, BOOT_PARAMS *pBootParams);
extern void 	bootParamsErrorPrint (char *bootString, char *pError);
extern void 	bootParamsPrompt (char *string);
extern void 	bootParamsShow (char *paramString);

# 99 "/usr/local/tornado2.2/ppc/target/h/bootLib.h"



}



# 78 "/usr/local/tornado2.2/ppc/target/h/sysLib.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/ttyLib.h" 1
 

 

 











# 1 "/usr/local/tornado2.2/ppc/target/h/sioLib.h" 1
 

 

 
























extern "C" {


 











 




 
















 





 




 





 

 

 











 




 
 

 















 
















 






















 



















 

typedef struct sio_drv_funcs SIO_DRV_FUNCS;

typedef struct sio_chan				 
    {
    SIO_DRV_FUNCS * pDrvFuncs;
     
    } SIO_CHAN;

struct sio_drv_funcs				 
    {
    int		(*ioctl)
			(
			SIO_CHAN *	pSioChan,
			int		cmd,
			void *		arg
			);

    int		(*txStartup)
			(
			SIO_CHAN *	pSioChan
			);

    int		(*callbackInstall)
			(
			SIO_CHAN *	pSioChan,
			int		callbackType,
			STATUS		(*callback)(void *, ...),
			void *		callbackArg
			);

    int		(*pollInput)
			(
			SIO_CHAN *	pSioChan,
			char *		inChar
			);

    int		(*pollOutput)
			(
			SIO_CHAN *	pSioChan,
			char 		outChar
			);
    };


 














}



# 17 "/usr/local/tornado2.2/ppc/target/h/ttyLib.h" 2



extern "C" {




extern STATUS ttyDrv	   ();
extern STATUS ttyDevCreate (char *name, SIO_CHAN *pChan, int rdBufSize,
			    int wrtBufSize);








}




# 79 "/usr/local/tornado2.2/ppc/target/h/sysLib.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/drv/timer/timerDev.h" 1
 

 

 








 








extern "C" {


 




extern 	STATUS	sysClkConnect (FUNCPTR routine, int arg);
extern 	void	sysClkDisable (void);
extern 	void	sysClkEnable (void);
extern 	int	sysClkRateGet (void);
extern 	STATUS	sysClkRateSet (int ticksPerSecond);
extern 	STATUS	sysAuxClkConnect (FUNCPTR routine, int arg);
extern 	void	sysAuxClkDisable (void);
extern 	void	sysAuxClkEnable (void);
extern 	int	sysAuxClkRateGet (void);
extern 	STATUS	sysAuxClkRateSet (int ticksPerSecond);
extern 	STATUS	sysTimestampConnect (FUNCPTR routine, int arg);
extern 	STATUS	sysTimestampEnable (void);
extern 	STATUS	sysTimestampDisable (void);
extern 	UINT32	sysTimestampFreq (void);
extern 	UINT32	sysTimestampPeriod (void);
extern 	UINT32	sysTimestamp (void);
extern 	UINT32	sysTimestampLock (void);


# 71 "/usr/local/tornado2.2/ppc/target/h/drv/timer/timerDev.h"





}



# 81 "/usr/local/tornado2.2/ppc/target/h/sysLib.h" 2


typedef struct   
    {
    char *ifName;  		     	 
    FUNCPTR attachRtn;  		 
    char *arg1;				 
    int arg2;				 
    int arg3;				 
    int arg4;
    int arg5;
    int arg6;
    int arg7;
    int arg8;
    } NETIF;



 






 







 

 







 










                                         










 



extern int 	sysBus;		 
extern int 	sysCpu;		 
extern int 	sysProcNum;	 
extern char *	sysBootLine;	 
extern char *	sysExcMsg;	 
extern int	sysFlags;	 
extern BOOT_PARAMS sysBootParams;  

 

extern char	sysBootHost[];	 
extern char	sysBootFile[];	 

 



extern char *	sysModel (void);
extern char *	sysBspRev (void);
extern void 	sysHwInit (void);
extern void 	sysHwInit2 (void);
extern char *	sysMemTop (void);
extern char *	sysPhysMemTop (void);
extern STATUS 	sysToMonitor (int startType);
extern int 	sysProcNumGet (void);
extern void 	sysProcNumSet (int procNum);
extern BOOL 	sysBusTas (char *adrs);
extern STATUS 	sysNvRamGet (char *string, int strLen, int offset);
extern STATUS 	sysNvRamSet (char *string, int strLen, int offset);
extern STATUS 	sysScsiInit (void);
extern STATUS 	sysScsiConfig (void);
extern void	sysSerialHwInit (void);
extern void	sysSerialHwInit2 (void);
extern SIO_CHAN * sysSerialChanGet (int channel);
extern void	sysSerialReset (void);
extern STATUS	sysLocalToBusAdrs (int adrsSpace, char *localAdrs,
				   char **pBusAdrs);
extern STATUS	sysBusToLocalAdrs (int adrsSpace, char *busAdrs,
				   char **pLocalAdrs);
extern STATUS	sysIntDisable (int intLevel);
extern STATUS	sysIntEnable (int intLevel);
extern int	sysBusIntAck (int intLevel);
extern STATUS	sysBusIntGen (int level, int vector);
extern STATUS	sysMailboxConnect (FUNCPTR routine, int arg);
extern STATUS	sysMailboxEnable (char *mailboxAdrs);
extern int	tyCoDrv (void);
extern int	tyCoDevCreate (char *name, int channel, int rdBufSize,
			       int wrtBufSize);

# 218 "/usr/local/tornado2.2/ppc/target/h/sysLib.h"


 

extern UCHAR	sysInByte		(ULONG port);
extern USHORT	sysInWord		(ULONG port);
extern ULONG	sysInLong		(ULONG port);
extern void	sysInWordString		(ULONG port, UINT16 *pData, int count);
extern void	sysInLongString		(ULONG port, ULONG *pData, int count);
extern void	sysOutByte		(ULONG port, UCHAR data);
extern void	sysOutWord		(ULONG port, UINT16 data);
extern void	sysOutLong		(ULONG port, ULONG data);
extern void	sysOutWordString	(ULONG port, UINT16 *pData, int count);
extern void	sysOutLongString	(ULONG port, ULONG *pData, int count);



 

extern void	sysNanoDelay		(UINT32 nanoseconds);
extern void	sysReboot		(void);
extern void	sysDelay		(void);
extern void	sysWait			(void);
extern STATUS	sysIntDisablePIC	(int intLevel);
extern STATUS	sysIntEnablePIC		(int intLevel);

 

extern void 	sysFaultTableInit	(void (*func)());
extern UINT32 	sysFaultVecSet		(INSTR *vector, UINT32 faultNo, 
					 UINT32 type);
extern void 	sysExcInfoPrint		(UINT32 type);

 

extern void	sysLoadGdt		(char *sysGdtr);


# 306 "/usr/local/tornado2.2/ppc/target/h/sysLib.h"





}



# 298 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/taskLib.h" 1
 

 

 





























































































































extern "C" {






# 1 "/usr/local/tornado2.2/ppc/target/h/regs.h" 1
 

 

 








































extern "C" {



















# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/regsPpc.h" 1
 

 
 













extern "C" {






typedef struct		 
    {
    _RType gpr[32 ];	 
    _RType msr;			 
    _RType lr;			 
    _RType ctr;			 
    _RType pc;			 
    UINT32 cr;			 
    UINT32 xer;			 



    UINT32 pad;			 

    } REG_SET;

 











































































































# 157 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/regsPpc.h"



}



# 66 "/usr/local/tornado2.2/ppc/target/h/regs.h" 2








































typedef struct regindex
    {
    char	*regName;	 
    int		regOff;		 







    } REG_INDEX;



}



# 138 "/usr/local/tornado2.2/ppc/target/h/taskLib.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/excLib.h" 1
 

 

 


















































extern "C" {



















# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h" 1
 

 

 






























extern "C" {


 















# 67 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"












typedef struct
    {
    UINT32	valid;		 

    UINT32	vecOff;		 
    _RType	cia;		 

    _RType	msr;		 



    _RType	dar;		 

    UINT32      cr;		 
    UINT32	xer;		 
# 104 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"

    UINT32	fpcsr;		 
    UINT32	dsisr;		 


    } EXC_INFO;











 

# 165 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"

















						 

# 195 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"


# 210 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"





















# 254 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"




# 286 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"


 







# 315 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"




 

extern FUNCPTR  excExcepHook;    

 



extern STATUS		excConnect (VOIDFUNCPTR *, VOIDFUNCPTR);
extern STATUS  		excIntConnect (VOIDFUNCPTR *, VOIDFUNCPTR);
extern void		excVecSet (FUNCPTR *, FUNCPTR);
extern FUNCPTR		excVecGet (FUNCPTR *);
extern void		excVecBaseSet (FUNCPTR *);
extern FUNCPTR *	excVecBaseGet (void);







# 355 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/excPpcLib.h"





}



# 76 "/usr/local/tornado2.2/ppc/target/h/excLib.h" 2










































typedef struct  excfaultTab
    {
    int faultType;		 
    int subtype;		 
    int signal;			 
    int code;			 
    } EXC_FAULT_TAB;

 


extern STATUS 	excShowInit (void);
extern void 	excHookAdd (FUNCPTR excepHook);
extern STATUS 	excJobAdd (VOIDFUNCPTR func, int arg1, int arg2, int arg3,
			   int arg4, int arg5, int arg6);










}



# 139 "/usr/local/tornado2.2/ppc/target/h/taskLib.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h" 1
 

 

 















































































extern "C" {


 

 







 





































 



typedef unsigned short event_t;



# 1 "/usr/local/tornado2.2/ppc/target/h/private/funcBindP.h" 1
 

 

 

















































extern "C" {





 

extern FUNCPTR     _func_ioTaskStdSet;
extern FUNCPTR     _func_bdall;
extern FUNCPTR     _func_dspTaskRegsShow;
extern  VOIDFUNCPTR _func_dspRegsListHook;	 
extern  FUNCPTR	   _func_dspMregsHook;		 
extern FUNCPTR     _func_excBaseHook;
extern FUNCPTR     _func_excInfoShow;
extern FUNCPTR     _func_excIntHook;
extern FUNCPTR     _func_excJobAdd;
extern FUNCPTR     _func_excPanicHook;
extern FUNCPTR     _func_fastUdpErrorNotify;
extern FUNCPTR     _func_fastUdpInput;
extern FUNCPTR     _func_fastUdpPortTest;
extern FUNCPTR     _func_fclose;
extern FUNCPTR     _func_fppTaskRegsShow;
extern FUNCPTR     _func_altivecProbe;
extern FUNCPTR     _func_altivecTaskRegsGet;
extern FUNCPTR     _func_altivecTaskRegsShow;
extern FUNCPTR     _func_ftpLs;
extern FUNCPTR     _func_netLsByName;
extern FUNCPTR     _func_printErr;
extern FUNCPTR     _func_logMsg;
extern FUNCPTR     _func_memalign;
extern FUNCPTR     _func_pthread_setcanceltype;
extern FUNCPTR     _func_selPtyAdd;
extern FUNCPTR     _func_selPtyDelete;
extern FUNCPTR     _func_selTyAdd;
extern FUNCPTR     _func_selTyDelete;
extern FUNCPTR     _func_selWakeupAll;
extern FUNCPTR     _func_selWakeupListInit;
extern FUNCPTR     _func_selWakeupListTerm;
extern VOIDFUNCPTR _func_sigExcKill;
extern FUNCPTR     _func_sigprocmask;
extern FUNCPTR     _func_sigTimeoutRecalc;
extern FUNCPTR     _func_smObjObjShow;
extern FUNCPTR     _func_spy;
extern FUNCPTR     _func_spyStop;
extern FUNCPTR     _func_spyClkStart;
extern FUNCPTR     _func_spyClkStop;
extern FUNCPTR     _func_spyReport;
extern FUNCPTR     _func_spyTask;
extern FUNCPTR     _func_sseTaskRegsShow;
extern FUNCPTR     _func_symFindByValueAndType;    
extern FUNCPTR     _func_symFindByValue;           
extern FUNCPTR     _func_symFindSymbol;
extern FUNCPTR     _func_symNameGet;
extern FUNCPTR     _func_symValueGet;
extern FUNCPTR     _func_symTypeGet;
extern FUNCPTR     _func_taskCreateHookAdd;
extern FUNCPTR     _func_taskDeleteHookAdd;
extern FUNCPTR     _func_valloc;
extern FUNCPTR     _func_remCurIdGet;
extern FUNCPTR     _func_remCurIdSet;

extern FUNCPTR	   _dbgDsmInstRtn;


extern BOOL        fastUdpInitialized;


extern BOOL	   ftpErrorSuppress;
extern BOOL	   _procNumWasSet;
extern int	   m2If64BitCounters;

extern VOIDFUNCPTR _func_evtLogO;
extern VOIDFUNCPTR _func_evtLogOIntLock;

extern VOIDFUNCPTR _func_evtLogM0;
extern VOIDFUNCPTR _func_evtLogM1;
extern VOIDFUNCPTR _func_evtLogM2;
extern VOIDFUNCPTR _func_evtLogM3;

extern VOIDFUNCPTR _func_evtLogT0;
extern VOIDFUNCPTR _func_evtLogT0_noInt;
extern VOIDFUNCPTR _func_evtLogT1;
extern VOIDFUNCPTR _func_evtLogT1_noTS;
extern VOIDFUNCPTR _func_evtLogTSched;

extern VOIDFUNCPTR _func_evtLogString;
extern FUNCPTR     _func_evtLogPoint;
extern FUNCPTR	   _func_evtLogReserveTaskName;

# 153 "/usr/local/tornado2.2/ppc/target/h/private/funcBindP.h"


extern FUNCPTR     _func_tmrStamp;
extern FUNCPTR     _func_tmrStampLock;
extern FUNCPTR     _func_tmrFreq;
extern FUNCPTR     _func_tmrPeriod;
extern FUNCPTR     _func_tmrConnect;
extern FUNCPTR     _func_tmrEnable;
extern FUNCPTR     _func_tmrDisable;

extern VOIDFUNCPTR _func_trgCheck;
extern UINT32 evtAction;
extern UINT32 wvEvtClass;
extern UINT32 trgEvtClass;

extern BOOL   wvInstIsOn;              
extern BOOL   wvObjIsEnabled;          


}



# 144 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h" 2














































 











# 210 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"


 

 










 












 
















 

















 


















 












# 322 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 












# 353 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 










# 377 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 

















 
















 








# 432 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"


 
















 
















 








# 489 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 511 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 532 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 555 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 576 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 597 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 
















 








# 632 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 651 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 670 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"

 








# 688 "/usr/local/tornado2.2/ppc/target/h/private/eventP.h"


















 














































 

 


     





     





     




 


     











     





     





     










     











     






     





      





     

 


     










     







     






     








     






     







     







     







     








     








     









     









     








     








     








     








     






     






     







     






     









     






     









     










     







     






     






     







     





     







     








     







     






     








     






     





     





 


     






     





     





     





     








     







     





     




     





     





     





     





     





     





     





     




     





     





     





     





     





     





     





     





     





     





     





     





     





     





     




     




 


     







     






     







     







     




     





     





     





     





     






     






 




     





     




     























 














	 


















 






















}






# 140 "/usr/local/tornado2.2/ppc/target/h/taskLib.h" 2







 












 







 













 







typedef struct wdb_info		 
    {
    int			wdbState;	 
    REG_SET *		wdbRegisters;	 
    struct
        {
	void *	wdb1;
	void *	wdb2;
	} wdbEvtList;			 
    int			bpAddr;		 
					 
    int			taskBpAddr;	 
    int			taskPc;		 
    int			taskFp;		 
    int			taskSp;		 
    VOIDFUNCPTR		wdbExitHook;	 
  } WDB_INFO;

typedef struct windTcb		 
    {
    Q_NODE		qNode;		 
    Q_NODE		tickNode;	 
    Q_NODE		activeNode;	 

    OBJ_CORE		objCore;	 
    char *		name;		 
    int			options;	 
    UINT		status;		 
    UINT		priority;	 
    UINT		priNormal;	 
    UINT		priMutexCnt;	 
    struct semaphore *	pPriMutex;	 

    UINT		lockCnt;	 
    UINT		tslice;		 

    UINT16		swapInMask;	 
    UINT16		swapOutMask;	 

    Q_HEAD *		pPendQ;		 

    UINT		safeCnt;	 
    Q_HEAD		safetyQHead;	 

    FUNCPTR		entry;		 

    char *		pStackBase;	 
    char *		pStackLimit;	 
    char *		pStackEnd;	 

    int			errorStatus;	 
    int			exitCode;	 

    struct sigtcb *	pSignalInfo;	 
    struct selContext *	pSelectContext;	 

    UINT		taskTicks;	 
    UINT		taskIncTicks;	 

    struct taskVar *	pTaskVar;	 
    struct rpcModList *	pRPCModList;	 
    struct fpContext *	pFpContext;	 

    struct __sFILE *	taskStdFp[3];	 
    int			taskStd[3];	 

    char **		ppEnviron;	 
    int                 envTblSize;      
    int                 nEnvVarEntries;  
    struct sm_obj_tcb *	pSmObjTcb;	 
    int			windxLock;	 
    void *		pComLocal;	 
    REG_SET *		pExcRegSet;	 
    EVENTS		events;		 
    WDB_INFO *		pWdbInfo;	 
    void *		pPthread;	 
    int			reserved1;	 
    int			reserved2;	 
    int			spare1;		 
    int			spare2;		 
    int			spare3;		 
    int			spare4;		 

     

# 283 "/usr/local/tornado2.2/ppc/target/h/taskLib.h"
















    EXC_INFO            excInfo;         
    UINT                pCoprocCtx;      

     

    REG_SET             regs;            



















# 335 "/usr/local/tornado2.2/ppc/target/h/taskLib.h"










# 356 "/usr/local/tornado2.2/ppc/target/h/taskLib.h"


















# 383 "/usr/local/tornado2.2/ppc/target/h/taskLib.h"


    struct dspContext *	pDspContext;	 
    WDB_INFO		wdbInfo;	 
    } WIND_TCB;

typedef struct 			 
    {
    int			td_id;		 
    char *		td_name;	 
    int			td_priority;	 
    int			td_status;	 
    int			td_options;	 
    FUNCPTR		td_entry;	 
    char *		td_sp;		 
    char *		td_pStackBase;	 
    char *		td_pStackLimit;	 
    char *		td_pStackEnd;	 
    int			td_stackSize;	 
    int			td_stackCurrent; 
    int			td_stackHigh;	 
    int			td_stackMargin;	 
    int			td_errorStatus;	 
    int			td_delay;	 
    EVENTS		td_events;	 
    } TASK_DESC;





 


















 


















 













 










# 486 "/usr/local/tornado2.2/ppc/target/h/taskLib.h"

 














 

extern CLASS_ID	taskClassId;		 
extern CLASS_ID taskInstClassId;  	 
extern WIND_TCB *taskIdCurrent;		 
extern BOOL     taskPriRangeCheck;       

 



extern STATUS 	taskLibInit (void);





extern int 	taskSpawn (char *name, int priority, int options, int stackSize,
		      	   FUNCPTR entryPt, int arg1, int arg2, int arg3,
		      	   int arg4, int arg5, int arg6, int arg7,
		      	   int arg8, int arg9, int arg10);


extern STATUS 	taskInit (WIND_TCB *pTcb, char *name, int priority, int options,
			  char *pStackBase, int stackSize, FUNCPTR entryPt,
			  int arg1, int arg2, int arg3, int arg4, int arg5,
			  int arg6, int arg7, int arg8, int arg9, int arg10);
extern STATUS 	taskActivate (int tid);
extern STATUS 	taskDelete (int tid);
extern STATUS 	taskDeleteForce (int tid);
extern STATUS 	taskSuspend (int tid);
extern STATUS 	taskResume (int tid);
extern STATUS 	taskRestart (int tid);
extern STATUS 	taskPrioritySet (int tid, int newPriority);
extern STATUS 	taskPriorityGet (int tid, int *pPriority);
extern STATUS 	taskLock (void);
extern STATUS 	taskUnlock (void);
extern STATUS 	taskSafe (void);
extern STATUS 	taskUnsafe (void);
extern STATUS 	taskDelay (int ticks);
extern STATUS 	taskOptionsSet (int tid, int mask, int newOptions);
extern STATUS 	taskOptionsGet (int tid, int *pOptions);
extern char *	taskName (int tid);
extern int 	taskNameToId (char *name);
extern STATUS 	taskIdVerify (int tid);
extern int 	taskIdSelf (void);
extern int 	taskIdDefault (int tid);
extern BOOL 	taskIsReady (int tid);
extern BOOL 	taskIsSuspended (int tid);
extern WIND_TCB *taskTcb (int tid);
extern int 	taskIdListGet (int idList [ ], int maxTasks);
extern STATUS 	taskInfoGet (int tid, TASK_DESC *pTaskDesc);
extern STATUS 	taskStatusString (int tid, char *pString);
extern STATUS 	taskOptionsString (int tid, char *pString);
extern STATUS 	taskRegsGet (int tid, REG_SET *pRegs);
extern STATUS 	taskRegsSet (int tid, REG_SET *pRegs);
extern void 	taskRegsShow (int tid);
extern void *	taskStackAllot (int tid, unsigned nBytes);
extern void 	taskShowInit (void);
extern STATUS 	taskShow (int tid, int level);

# 601 "/usr/local/tornado2.2/ppc/target/h/taskLib.h"





}



# 300 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/netLib.h" 1
 

 

 





























extern "C" {


 









 













 

typedef struct ipcfgparams
    {
    int         ipCfgFlags;              
    int         ipDefTtl;                
    int         ipIntrQueueLen;          
    int         ipFragTtl;               
    } IP_CFG_PARAMS;

 

typedef struct icmpcfgparams
    {
    int         icmpCfgFlags;            
    } ICMP_CFG_PARAMS;

 

typedef struct udpcfgparams
    {
    int         udpCfgFlags;             
    int         udpSndSpace;             
    int         udpRcvSpace;             
    } UDP_CFG_PARAMS;

 

typedef struct tcpcfgparams
    {
    int         tcpCfgFlags;             
    int         tcpSndSpace;             
    int         tcpRcvSpace;             
    int         tcpConnectTime;          
    int         tcpReTxThresh;           
    int         tcpMssDflt;              
    int         tcpRttDflt;              
    int         tcpKeepIdle;             
    int         tcpKeepCnt;              
    FUNCPTR	pTcpRandFunc;		 
    UINT32      tcpMsl;                  
    } TCP_CFG_PARAMS;







 












						 
						 

 

















 




 













 




 













































 



 






 



extern STATUS   netJobAdd (FUNCPTR routine, int param1, int param2, int param3,
                           int param4, int param5);
extern STATUS   netLibInit (void);
extern void     netErrnoSet (int status);
extern STATUS	netLibGeneralInit (void);
extern void     netTask (void);
extern void     schednetisr (int isrType);
extern STATUS   ipLibInit (IP_CFG_PARAMS * ipCfg);
extern STATUS   ipLibMultiInit (IP_CFG_PARAMS * ipCfg, int maxUnits);
extern STATUS   rawIpLibInit (void);
extern STATUS   rawLibInit (void);
extern STATUS   udpLibInit (UDP_CFG_PARAMS * udpCfg);
extern STATUS   tcpLibInit (TCP_CFG_PARAMS * tcpCfg);
extern STATUS   icmpLibInit (ICMP_CFG_PARAMS * icmpCfg);
extern STATUS   igmpLibInit (void);
extern STATUS   mCastRouteLibInit (void);
extern void     ipFilterLibInit (void);
extern STATUS   routeSockLibInit (void);
extern void     splSemInit (void);
extern STATUS   mbinit (void);
extern void     domaininit (void);

# 275 "/usr/local/tornado2.2/ppc/target/h/netLib.h"



}




# 301 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sigLib.h" 1
 

 

 














extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/sigCodes.h" 1
 

 

 















extern "C" {























# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/sigPpcCodes.h" 1
 

 

 








extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/iv.h" 1
 

 

 





































extern "C" {



















# 1 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/ivPpc.h" 1
 

 

 















extern "C" {


 




 




 

# 51 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/ivPpc.h"




 



extern  STATUS	(* _func_intConnectRtn) (VOIDFUNCPTR *, VOIDFUNCPTR, int);
extern  void	(* _func_intVecSetRtn) (FUNCPTR *, FUNCPTR );
extern  FUNCPTR	(* _func_intVecGetRtn) (FUNCPTR *);
extern  void	(* _func_intVecBaseSetRtn) (FUNCPTR *);
extern  FUNCPTR *(* _func_intVecBaseGetRtn) (void);
extern  int	(* _func_intLevelSetRtn) (int);
extern  int	(* _func_intEnableRtn) (int);
extern  int	(* _func_intDisableRtn) (int);

# 79 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/ivPpc.h"





}



# 63 "/usr/local/tornado2.2/ppc/target/h/iv.h" 2








































}



# 17 "/usr/local/tornado2.2/ppc/target/h/arch/ppc/sigPpcCodes.h" 2



}



# 45 "/usr/local/tornado2.2/ppc/target/h/sigCodes.h" 2








}



# 24 "/usr/local/tornado2.2/ppc/target/h/sigLib.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/private/sigLibP.h" 1
 

 

 























extern "C" {















struct sigq			 
    {
    struct sigq		*sigq_next;
    struct sigq		*sigq_prev;
    };

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

struct sigtcb			 
    {
    struct sigaction	sigt_vec[31  + 1];
    struct sigq		sigt_qhead[31  + 1];
    struct sigstack	sigt_stack;
    struct sigwait	*sigt_wait;
    sigset_t		sigt_kilsigs;
    sigset_t		sigt_blocked;
    sigset_t		sigt_pending;
    sigset_t		sigt_ignored;
    };

struct sigpend			 
    {
    struct sigq		sigp_q;
    struct siginfo	sigp_info;
    long		sigp_overruns;
    long		sigp_active_overruns;
    REG_SET		*sigp_pregs;
    struct sigtcb	*sigp_tcb;
    };

struct sigfaulttable
    {
    int sigf_fault;
    int sigf_signo;
    };

struct sigcontext		 
    {
    int			sc_onstack;
    int			sc_restart;
    sigset_t		sc_mask;
    struct siginfo	sc_info;
    REG_SET		sc_regs;









    REG_SET		*sc_pregs;
    };

extern VOIDFUNCPTR     sigEvtRtn;	 



extern void _sigCtxRtnValSet (REG_SET *regs, int val);
extern void *_sigCtxStackEnd (const REG_SET *regs);
extern int _sigCtxSave (REG_SET *regs);
extern void _sigCtxLoad (const REG_SET *regs);
extern void _sigCtxSetup (REG_SET *regs, void *pStackBase, void (*taskEntry)(),
        int *args);

extern int	sigInit (void);
extern void	sigPendInit (struct sigpend *__pSigPend);
extern int	sigPendDestroy (struct sigpend *__pSigPend);
extern int	sigPendKill (int __tid, struct sigpend *__pSigPend);
extern int	sigqueueInit (int nQueues);
# 132 "/usr/local/tornado2.2/ppc/target/h/private/sigLibP.h"





}



# 26 "/usr/local/tornado2.2/ppc/target/h/sigLib.h" 2




















typedef struct sigvec SIGVEC;
typedef struct sigcontext SIGCONTEXT;


}



# 302 "../Common/cmlogConfig.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/sockLib.h" 1
 

 

 




























extern "C" {





 



extern STATUS 	sockLibInit (int fdMax);
extern STATUS 	sockLibAdd (FUNCPTR sockLibInitRtn, int domainMap,
                            int domainReal);
extern STATUS 	bind (int s, struct sockaddr *name, int namelen);
extern STATUS 	connect (int s, struct sockaddr *name, int namelen);
extern STATUS 	connectWithTimeout (int sock, struct sockaddr *adrs,
				    int adrsLen, struct timeval *timeVal);
extern STATUS 	getpeername (int s, struct sockaddr *name, int *namelen);
extern STATUS 	getsockname (int s, struct sockaddr *name, int *namelen);
extern STATUS 	getsockopt (int s, int level, int optname, char *optval,
			    int *optlen);
extern STATUS 	listen (int s, int backlog);
extern STATUS 	setsockopt (int s, int level, int optname, char *optval,
			    int optlen);
extern STATUS 	shutdown (int s, int how);
extern int 	accept (int s, struct sockaddr *addr, int *addrlen);
extern int 	recv (int s, char *buf, int bufLen, int flags);
extern int 	recvfrom (int s, char *buf, int bufLen, int flags,
			  struct sockaddr *from, int *pFromLen);
extern int 	recvmsg (int sd, struct msghdr *mp, int flags);
extern int 	send (int s, const char *buf, int bufLen, int flags);
extern int 	sendmsg (int sd, struct msghdr *mp, int flags);
extern int 	sendto (int s, caddr_t buf, int bufLen, int flags,
			struct sockaddr *to, int tolen);
extern int 	socket (int domain, int type, int protocol);

# 92 "/usr/local/tornado2.2/ppc/target/h/sockLib.h"



}



# 303 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/kernelLib.h" 1
 

 

 
















extern "C" {


 



extern char *	kernelVersion (void);
extern STATUS 	kernelTimeSlice (int ticks);
extern void 	kernelInit (FUNCPTR rootRtn, unsigned rootMemSize,
			    char *pMemPoolStart, char *pMemPoolEnd,
			    unsigned intStackSize, int lockOutLevel);









}



# 305 "../Common/cmlogConfig.h" 2


# 1 "/usr/local/tornado2.2/ppc/target/h/pipeDrv.h" 1
 

 

 

















extern "C" {


 



extern STATUS 	pipeDevCreate (char *name, int nMessages, int nBytes);
extern STATUS   pipeDevDelete (char *name, BOOL force);
extern STATUS 	pipeDrv (void);










}



# 307 "../Common/cmlogConfig.h" 2



# 1 "/usr/local/tornado2.2/ppc/target/h/intLib.h" 1
 

 

 















































extern "C" {







 





 

extern  int intCnt;		 


 



 














 



extern STATUS 	intConnect (VOIDFUNCPTR *vector, VOIDFUNCPTR routine,
	       	    	    int parameter);
extern FUNCPTR 	intHandlerCreate (FUNCPTR routine, int parameter);
extern void 	intLockLevelSet (int newLevel);
extern int 	intLockLevelGet (void);
extern BOOL 	intContext (void);
extern int 	intCount (void);
extern void 	intVecBaseSet (FUNCPTR *baseAddr);
extern FUNCPTR *intVecBaseGet (void);
extern void 	intVecSet (FUNCPTR *vector, FUNCPTR function);
extern FUNCPTR 	intVecGet (FUNCPTR *vector);
extern int 	intLevelSet (int level);
extern int 	intLock (void);
extern int 	intUnlock (int oldSR);
extern int 	intRegsLock (REG_SET *pRegs);
extern void 	intRegsUnlock (REG_SET *pRegs, int lockKey);
extern STATUS   intVecTableWriteProtect (void);

























extern int	intDisable (int);
extern int	intEnable (int);














# 205 "/usr/local/tornado2.2/ppc/target/h/intLib.h"



}



# 310 "../Common/cmlogConfig.h" 2




# 41 "../Common/cmlogProtocol.h" 2


 



 







 




























 

 





# 74 "cmlogClient.cc" 2

# 1 "cmlogClient.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



# 1 "../data/cdevData.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 










# 1 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 1 3 4
# 342 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4

# 106 "../data/cdevData.h" 2

# 1 "../data/cdevErrCode.h" 1
 













































 
























 




 




 






# 107 "../data/cdevData.h" 2

# 1 "../data/cdevDataEntry.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 





# 1 "../data/cdevTypes.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 




# 1 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 1 3 4
# 342 "/usr/local/tornado2.2/ppc/host/sun4-solaris2/bin/../lib/gcc-lib/powerpc-wrs-vxworks/gcc-2.96/include/stddef.h" 3 4

# 45 "../data/cdevTypes.h" 2


 




typedef unsigned char BYTE;

enum cdevDataTypes 
	{
	CDEV_BYTE, 
	CDEV_INT16, 
	CDEV_UINT16,
	CDEV_INT32,
	CDEV_UINT32,
	CDEV_FLOAT, 
	CDEV_DOUBLE, 
	CDEV_STRING, 
	CDEV_TIMESTAMP,
	CDEV_INVALID,
	CDEV_INT64,
	CDEV_UINT64,
	CDEV_NTS
	};

typedef struct
	{
	  unsigned offset;
	  unsigned length;
	} cdevBounds;

 



typedef unsigned long cdev_tf;


typedef struct {
    cdev_tf    secPastEpoch;     
    cdev_tf    nsec;             
} cdev_TS_STAMP;


# 58 "../data/cdevDataEntry.h" 2



# 1 "../Thread/cpSynch.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



# 1 "../Thread/cpThread.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



# 171 "../Thread/cpThread.h"



# 1 "/usr/local/tornado2.2/ppc/target/h/taskVarLib.h" 1
 

 

 




















extern "C" {


 

typedef struct taskVar	 
    {
    struct taskVar *	next;	 
    int *		address; 
    int			value;	 

    } TASK_VAR;

 



extern STATUS 	taskVarAdd (int tid, int *pVar);
extern STATUS 	taskVarDelete (int tid, int *pVar);
extern STATUS 	taskVarInit (void);
extern STATUS 	taskVarSet (int tid, int *pVar, int value);
extern int 	taskVarGet (int tid, int *pVar);
extern int 	taskVarInfo (int tid, TASK_VAR varList [], int maxVars);

# 59 "/usr/local/tornado2.2/ppc/target/h/taskVarLib.h"



}



# 174 "../Thread/cpThread.h" 2

















typedef FUNCPTR CP_THREAD_FUNC;
typedef int            cp_thread_t;
typedef void  (*CP_THREAD_CLEANUP_FUNC) (void *);








class cpThread
{
public:
# 243 "../Thread/cpThread.h"

   
  static int spawn (CP_THREAD_FUNC func, 
		    void *arg, 
		    long flags = 0x0008 ,
		    cp_thread_t *t_id = 0, 
		    unsigned int priority = 100,
		    void *stack = 0, 
		    unsigned stack_size = 3000);


   
   
   
   
  static int spawn_n (unsigned n, 
		      CP_THREAD_FUNC func, 
		      void *arg, 
		      long flags = 0x0008 ,
		      unsigned int priority = 100,
		      void *stack = 0, 
		      unsigned stack_size = 3000);


   
   
   
   
   
   
  static int spawn_n (cp_thread_t thread_ids[], 
		      unsigned n, 
		      CP_THREAD_FUNC func, 
		      void *arg, 
		      long flags = 0x0008 , 
		      unsigned int priority = 100,
		      void *stack = 0, 
		      unsigned stack_size = 3000);



   
  static int join (cp_thread_t,
		   void ** = 0);

  static int kill (cp_thread_t, int signum);
   

  static void yield (void);
   

  static cp_thread_t self (void);
   

  static void self (cp_thread_t& id);
   

  static void init (cp_thread_t& id);
   

  static int  equal (cp_thread_t id0, cp_thread_t id1);
   

# 347 "../Thread/cpThread.h"

  static void exit (int code);
  static int sigsetmask (int mask);
   

   
   
  static int setspecific (void *value);

  static int disablecancel (void);
   

  static int enablecancel (void);

  static void add_cleanup_handler (CP_THREAD_CLEANUP_FUNC, void* arg);
  static void remove_cleanup_handler (int execute);
   

  static int setpriority (cp_thread_t id, int pri);
  static int getpriority (cp_thread_t id, int* pri);


  
  static int cancel (cp_thread_t t_id);
   


  virtual const char* className (void) const {return "cpThread";}

private:
  cpThread (void);
   
};










# 32 "../Thread/cpSynch.h" 2


 
class cpMutex
{
public:




  cpMutex (int type = 0x01  | 0x04  | 0x08 );

   
  virtual ~cpMutex (void);

   

   
  int remove (void);
   
  int acquire (void);

   
  int tryAcquire (void);

   
  int release (void);

   
  virtual const char* className (void) const {return "cpMutex";}





  SEM_ID lock_;


private:
   
  cpMutex (const cpMutex& mutex);
  cpMutex& operator = (const cpMutex& mutex);
};

class cpRWMutex
{
public:




  cpRWMutex (int type = 0x01 );

  virtual ~cpRWMutex (void);

   
   
  int remove (void);
   
  int acquireRLock (void);
   
  int acquireWLock (void);
   
  int release (void);

   
  virtual const char* className (void) const {return "cpRWMutex";}







  SEM_ID              lock_;
   
  SEM_ID              readers_ok_;
  SEM_ID              writers_ok_;

  int                rwlock_;   
  unsigned int       waitingWriters_;  

private:
   
  cpRWMutex (const cpRWMutex& );
  cpRWMutex& operator = (const cpRWMutex& );
};

 
class cpRecursiveMutex
{
public:
   



  cpRecursiveMutex (int type = 0x01  | 0x04  | 0x08 );


  virtual ~cpRecursiveMutex (void);

   
  int acquire    (void);
  int tryAcquire (void);
  int release    (void);
   
  operator cpMutex &();

   
  cp_thread_t getThreadId (void);
  int         getNestingLevel (void);
  
  virtual const char* className (void) const {return "cpRecursiveMutex";}

private:
  void setNestingLevel (int d);
  void setThreadId     (cp_thread_t t);

   
  cpMutex lock_;
   
  cpMutex mutex_;

  cp_thread_t thrId_;

  int         nestingLevel_;

   
  cpRecursiveMutex (const cpRecursiveMutex& );
  cpRecursiveMutex& operator = (const cpRecursiveMutex& );
};


class cpConditionMutex
{
public:
   



  cpConditionMutex (cpMutex& m,
		    int type = 0x01 );


  virtual ~cpConditionMutex (void);

   
  int wait (const struct timespec* abs = 0);
  
   
  int signal (void);
   
  int broadcast (void);

   
  cpMutex& mutex (void);

private:



  SEM_ID          cond_;

  cpMutex& mutex_;

   
  cpConditionMutex (const cpConditionMutex& c);
  cpConditionMutex& operator = (const cpConditionMutex &);
};

 
 
 
class cpConditionRWMutex
{
public:
   



  cpConditionRWMutex (cpRWMutex& m,
		      int type = 0x01 );

  virtual ~cpConditionRWMutex (void);

   
  int wait (const struct timespec* abs = 0);
  
   
  int signal (void);
   
  int broadcast (void);

   
  cpRWMutex& mutex (void);

private:



  SEM_ID         cond_;

  cpRWMutex& mutex_;

   
  cpConditionRWMutex (const cpConditionRWMutex& c);
  cpConditionRWMutex& operator = (const cpConditionRWMutex &);
};

 
 
class cpMutexGuard
{
public:
   
  cpMutexGuard (cpMutex& m);
   
  ~cpMutexGuard (void);

  virtual const char* className (void) const {return "cpMutexGuard";}

protected:
  cpMutex& m_;

private:
   
  cpMutexGuard (const cpMutexGuard& );
  cpMutexGuard& operator = (const cpMutexGuard& );
};

 
 
class cpRecursiveMutexGuard
{
public:
   
  cpRecursiveMutexGuard (cpRecursiveMutex& m);
   
  ~cpRecursiveMutexGuard (void);

  virtual const char* className (void) const {return "cpRecursiveMutexGuard";}

protected:
  cpRecursiveMutex& m_;

private:
   
  cpRecursiveMutexGuard (const cpRecursiveMutexGuard& );
  cpRecursiveMutexGuard& operator = (const cpRecursiveMutexGuard& );
};



  
  


  
  
  
# 61 "../data/cdevDataEntry.h" 2



 
 
 
 
 
 
 
 
 
class cdevDataEntryStorage
	{
	public:
		 
		 
		 
		 
		 
		int tag_;
		
		 
		 
		 
		 
		 
		cdevDataTypes dataType_;
				
		 
		 
		 
		 
		 
		 
		unsigned size_;
	
		 
		 
		 
		 
		 
		unsigned dim_;
	
		 
		 
		 
		 
		 
		unsigned elems_;		
		
		 
		 
		 
		 
		unsigned bytes_;
		
		 
		 
		 
		 
		 
		unsigned char * buffer_;
		
		 
		 
		 
		 
		 
		union dataUnion {
			BYTE             cval;
			short            sval;
			unsigned short   usval;
		        int              ival;
		        unsigned int     uival;




   		        long long        lval;
			unsigned long long   ulval;

			float            fval;
			double           dval;
			void           * vptr;
			BYTE           * cptr;
			short          * sptr;
			unsigned short * usptr;
		        int            * iptr;
		        unsigned int   * uiptr;




			long long      * lptr;
			unsigned long long  * ulptr;

			float          * fptr;
			double         * dptr;
			char           * str;
			char          ** strarr;
			cdev_TS_STAMP    ts;
			cdev_TS_STAMP  * tsptr;
			} data_;
						
		 
		 
		 
		 
		 
		 
		 
		cdevDataEntryStorage ( void ) : buffer_(__null ) 
			{
			clear();
			}	

		 
		 
		 
		 
		 
		 
		~cdevDataEntryStorage ( void ) 
			{
			clear();
			}
			
		 
		 
		 
		 
		void clear ( void )
			{
			deallocate();
			tag_       = 0;
			dataType_  = CDEV_INVALID;
			}
			
		 
		 
		 
		 
		 
		 
		 
		 
		void allocate ( unsigned dimensions, unsigned elems, unsigned bytesPerElem )
			{
			unsigned newBlockSize = 
				(dimensions*sizeof(cdevBounds))+(elems * bytesPerElem);

			if(buffer_== __null  || newBlockSize>size_)
				{
				deallocate();
				buffer_    = ::new unsigned char[newBlockSize];
				size_      = newBlockSize;
				}
			dim_       = dimensions;
			elems_     = elems;
			bytes_     = bytesPerElem;
			data_.vptr = &buffer_[dim_ * sizeof(cdevBounds)];
			memset (buffer_, 0, newBlockSize);
			}
			
		 
		 
		 
		 
		 
		 
		 
		void deallocate ( void )
			{
			if(buffer_ != __null ) 
				{
				::delete buffer_;
				buffer_ = __null ;
				}
			size_      = 0;
			dim_       = 0;
			elems_     = 0;
			bytes_     = 0;
			data_.dval = 0.00;
			 
			}

		 
		 
		 
		 
		 
		cdevBounds * bounds ( void )
			{
			return (dim_>0)?(cdevBounds *)buffer_:(cdevBounds *)0;
			}
			
		 
		 
		 
		 
		 
		int operator == (cdevDataEntryStorage & entry);
		
		 
		 
		 
		 
		 
		int operator != (cdevDataEntryStorage & entry)
			{
			return !(operator == (entry));
			}
	
	};


 
 
 
 
 
 
 
 
 
 
class cdevDataEntry : public cdevDataEntryStorage
	{
	public:
		 
		 
		 
		 
		 
		 
		 
		static cdevDataEntry * freeList_;

		 
		 
		 
		 
		 
		enum { ALLOCATION_COUNT = 16 };
				
		 
		 
		 
		 
		 
		cdevDataEntry * next_;
		
		 
		 
		 
		 
		 
		cdevDataEntry ( void ) : next_(__null ), cdevDataEntryStorage()
			{
			}

		 
		 
		 
		 
		 
		~cdevDataEntry ( void )
			{
			}
		
		 
		 
		 
		 
		 
		 
		 
		cdevDataEntry * &next  ( void )
			{
			return next_;
			}
		      	
		 
		 
		 
		 
		 
		 
		 
		void * operator new    (size_t size );
		
		 
		 
		 
		 
		 
		 
		void   operator delete ( void * ptr );

		 
		 
		 
		 
		 
		int operator == (cdevDataEntry & entry)
			{
			cdevDataEntryStorage *storage = &entry;
			
			return cdevDataEntryStorage::operator == (*storage);
			}
	
		 
		 
		 
		 
		 
		int operator != (cdevDataEntry & entry)
			{
			cdevDataEntryStorage *storage = &entry;
			return !(cdevDataEntryStorage::operator == (*storage));
			}



	        
	       static cpMutex* lock;


	};



# 108 "../data/cdevData.h" 2

# 1 "../data/cdevTagTable.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 





# 1 "../data/cdevIntHash.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



# 1 "../data/cdevSlist.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



# 1 "/usr/local/tornado2.2/ppc/target/h/assert.h" 1
 

 

 










extern "C" {













extern void __assert (const char *msg);











}

# 44 "../data/cdevSlist.h" 2


typedef void*  cdevSlistItem;

 
 
 
 
class cdevSlistLink;
class cdevSlistIterator;
class cdevSlistCursor;

class cdevSlist
{
public:
   
  cdevSlist (void);
  cdevSlist (const cdevSlist & source);
  virtual                  ~cdevSlist (void);

   

   
  virtual void             add(cdevSlistItem value);

   
   
   
  virtual int              remove (cdevSlistItem value);

   
  virtual void             deleteAllValues();

   
  virtual cdevSlistItem    firstElement() const;

   
  virtual cdevSlistItem    lastElement() const;

   
  virtual cdevSlist*       duplicate() const;
  
   
   
  virtual int              includes(cdevSlistItem value) const;

   
   
  virtual int              isEmpty() const;

   
  virtual void             removeFirst();

   
  virtual int              count() const;

 protected:
   
  cdevSlistLink*           ptrToFirstLink;

   
  friend class  cdevSlistIterator;
   
  friend class  cdevSlistCursor;
};

 
 
 
 
class cdevSlistLink
{
 public:
   
  cdevSlistLink*     insert (cdevSlistItem val);

 private:
   
  cdevSlistLink (cdevSlistItem linkValue, cdevSlistLink * nextPtr);

   
  cdevSlistLink*     duplicate (void);

   
  cdevSlistItem      value;
  cdevSlistLink*     ptrToNextLink;

   
  friend class       cdevSlist;
  friend class       cdevSlistIterator;
  friend class       cdevSlistCursor;
};

 
 
 
 
 
class cdevSlistIterator
{
public:
   
  cdevSlistIterator        (cdevSlist& aList);

   
  virtual int              init (void);
  virtual cdevSlistItem    operator () (void);
  virtual int              operator !  (void);
  virtual int              operator ++ (void);
  virtual void             operator =  (cdevSlistItem value);

   

   
  void                     removeCurrent(void);
  
   
  void                     addBefore(cdevSlistItem  newValue);

   
  void                     addAfter(cdevSlistItem   newValue);

   
  int                      searchSame(cdevSlistItem &value);

protected:
   
  cdevSlistLink *    currentLink;
  cdevSlistLink *    previousLink;
  cdevSlist&         theList;
};

 
 
 
 
class cdevSlistCursor
{
public:
   
  cdevSlistCursor           (const cdevSlist& aList);

   
  virtual int               init        (void);
  virtual cdevSlistItem     operator () (void);
  virtual int               operator !  (void);
  virtual int               operator ++ (void);
  virtual void              operator =  (cdevSlistItem value);

  int                       searchSame  (cdevSlistItem &value);

 protected:
   
  cdevSlistLink *           currentLink;
  cdevSlistLink *           previousLink;
  const cdevSlist&          theList;
};

 
 
 
 
 
class cdevDoubleEndedSlist: public cdevSlist{
 public:
   
  cdevDoubleEndedSlist   (void);
  cdevDoubleEndedSlist   (const cdevDoubleEndedSlist &v);
  
   
  virtual void      add             (cdevSlistItem value);
  virtual void      deleteAllValues (void);
  virtual void      removeFirst     (void);

   
  virtual void      addToEnd        (cdevSlistItem value);

 protected:
  cdevSlistLink    *ptrToLastLink;
};







# 39 "../data/cdevIntHash.h" 2


 
 
 
 
 

typedef int cdevIntKeyItem;
typedef void* cdevHashItem;
 
 
 
 
class cdevIntHashIterator;

class cdevIntHash
{
public:
   
  cdevIntHash (unsigned int max);
   
  virtual ~cdevIntHash (void);

   

   
  virtual int   isEmpty();

   
  virtual void  deleteAllValues();

   
  virtual void  add (cdevIntKeyItem key, cdevHashItem ele);

   
  virtual int   find (cdevIntKeyItem key, cdevHashItem ele) const;

   
  virtual int   remove (cdevIntKeyItem key, cdevHashItem ele);

   
  cdevSlist&  bucketRef (cdevIntKeyItem key);

 protected:
  friend class cdevIntHashIterator;

   
  const unsigned int    tablesize;
  cdevSlist*            buckets;

   
  unsigned int          hash(const cdevIntKeyItem key) const;

};

 
 
 
 
class cdevIntHashIterator
{
public:
   
  cdevIntHashIterator  (cdevIntHash& v);
  ~cdevIntHashIterator (void);

   
  int             init       (void);
  cdevHashItem    operator ()(void);
  cdevHashItem    getData    (void);       
  int             operator ! (void);
  int             operator ++(void);
  void            operator = (cdevHashItem value);
  
protected:
  cdevIntHash&    base;
  unsigned int    currentIndex;
   
  cdevSlistIterator*         itr;
   
   
  int             getNextIterator (void);
};

# 62 "../data/cdevTagTable.h" 2

# 1 "../data/cdevStrHash.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 





 
 
 
 
 
 
 
 
 
extern unsigned int cdevStrHashFunc (char *str);

typedef char* cdevKeyItem;
typedef void* cdevHashItem;

 
 
 
 
class cdevStrHashIterator;

class cdevStrHash
{
public:
   
   
   
  cdevStrHash (unsigned int max, unsigned int (*f)(cdevKeyItem));
   
  virtual ~cdevStrHash (void);

   

   
  virtual int   isEmpty();

   
  virtual void  deleteAllValues();

   
  virtual void  add (cdevKeyItem key, cdevHashItem ele);

   
  virtual int   find (cdevKeyItem key, cdevHashItem ele) const;

   
  virtual int   remove (cdevKeyItem key, cdevHashItem ele);

   
  cdevSlist&  bucketRef (cdevKeyItem key);

 protected:
  friend class cdevStrHashIterator;

   
  const unsigned int    tablesize;
  cdevSlist*            buckets;

   
  unsigned int          hash(const cdevKeyItem& key) const;

 private:
  unsigned int          (*hashCode_)(cdevKeyItem);
};

 
 
 
 
class cdevStrHashIterator
{
public:
   
  cdevStrHashIterator  (cdevStrHash& v);
  ~cdevStrHashIterator (void);

   
  int             init       (void);
  cdevHashItem    operator ()(void);
  cdevHashItem    getData    (void);       
  int             operator ! (void);
  int             operator ++(void);
  void            operator = (cdevHashItem value);

protected:
  cdevStrHash&    base;
  unsigned int    currentIndex;
   
  cdevSlistIterator*         itr;
   
   
  int             getNextIterator (void);
};

# 63 "../data/cdevTagTable.h" 2







 
 
 
 
 
 
 
 
 
 
 
 
 
class cdevTagTableCallback
{
friend class cdevTagTable;
private:
	cdevTagTableCallback *next_;
public:
	cdevTagTableCallback ( void ) : next_(__null ) {}
	virtual ~cdevTagTableCallback (void) {}



	 
	virtual void callback (int newTag, char *newName) {}

};


struct cdevTagEle {
  char *tagName;
  int  tagId;
};
typedef struct cdevTagEle cdevTagEle;

class cdevTagTable 
{
public:
  cdevTagTable ( void );
  
  ~cdevTagTable ( void )
    {
      freeMemory ();



    }
  
  int  tagC2I    (char* ctag, int*  tag);  
  int  tagI2C    (int    tag, char* &ctag);  
  void insertTag (int    tag, char* ctag);
  
   
   
   
   
   
   
   
  void addTagCallback ( cdevTagTableCallback * cb );

   
   
   
   
   
   
   
   
   
   
   
   
   
  void delTagCallback ( cdevTagTableCallback * cb );

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  int  readTagTable   ( int * &tags, char ** &ctags, int &ntags );      

   
   
   
   
   
  void asciiDump (FILE* fp = (*__stdout()) );
    
protected:
  void freeMemory (void);
  void initialize ( void ); 
   
  cdevIntHash            itagList_;
  cdevStrHash            stagList_;
  cdevTagTableCallback * callbacks_;

private:
   
  static const char*   defaultTags[];
  static unsigned int  numberDefTags;
  static const char*   defaultTagTableLocation;
  static const char*   tagTableEnv;

   
   
  static int           parseTagTable (char* file, char** &tags, int* &tagvalues,
				      unsigned int &numTags);


  cpMutex              lock_;

};


# 109 "../data/cdevData.h" 2

# 1 "../data/cdevGlobalTagTable.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



 
 
 



class cdevGlobalTagTable
{
public:
  static cdevTagTable* tagTable (void);

protected:
   
  cdevGlobalTagTable (void);
  virtual ~cdevGlobalTagTable (void);

private:
  static cdevTagTable* instance_;
};

# 110 "../data/cdevData.h" 2





extern char* lltoa  (long long val);
extern char* ulltoa (unsigned long long val);


extern char* ltoa  (long val);
extern char* ultoa (unsigned long val);






extern "C" char * ctime(const time_t *timer);


class cdevData 
{
friend class cdevDataIterator;
protected:
  cdevDataEntry *entries;
  
   
   
   
   
   
   
  cdevData & copy (const cdevData & data);
  
   
   
   
   
   
  cdevDataEntry * lookupTag(int tag, int create = 0);
  cdevDataEntry * lookupTag(char * ctag, int create = 0);
  
   
   
   
   
   
  cdevDataEntry * setupTag (
			    int tag, cdevDataTypes type, unsigned elemSize, 
			    unsigned numElems, unsigned numDims );


  int insert ( int tag, long long data );
  int insert ( int tag, unsigned long long data );
  int insert (int tag, long long * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, unsigned long long* data, unsigned len, unsigned ndim = 1);


public:
   
   
   
   
   
  static int  tagC2I   (char *ctag, int *tag);
  static int  tagI2C   (int tag, char * &ctag);
  static void insertTag(int tag, char *ctag);

   
   
   
   
   
   
  static void addTagCallback ( cdevTagTableCallback * cb );

   
   
   
   
   
   
   
   
   
   
  static void delTagCallback ( cdevTagTableCallback * cb );

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  static int readTagTable ( int * &tags, char ** &ctags, int &ntags );
  
   
   
   
   
   
  cdevData ( void );

   
   
   
   
   
  cdevData ( const cdevData & data );

   
   
   
   
   
  ~cdevData( void );
  
   
   
   
   
   
  cdevData & operator = (const cdevData & data);

   
   
   
   
   
  operator char           ( void );
  operator short          ( void );
  operator unsigned short ( void );
  operator int            ( void );
  operator unsigned int   ( void );
  operator long           ( void );
  operator unsigned long  ( void );
  operator float          ( void );
  operator double         ( void );
  operator char *         ( void );
  
   
   
   
   
   
  cdevData& operator= (unsigned char x);
  cdevData& operator= (short x);
  cdevData& operator= (unsigned short x);
  cdevData& operator= (int x);
  cdevData& operator= (unsigned int x);
  cdevData& operator= (long x);
  cdevData& operator= (unsigned long x);
  cdevData& operator= (float x);
  cdevData& operator= (double x);

   
   
   
   
   
   
  cdevData& operator += (const cdevData& data);

   
   
   
   
   
  void asciiDump ( FILE * fp = (*__stdout())  );
  
   
   
   
   
   
   
  virtual int xdrSize   (unsigned * bufLen, unsigned * elementCount);
  virtual int xdrExport ( char ** buf, unsigned * bufLen );
  virtual int xdrExport ( char * buf, unsigned bufLen, unsigned count);
  virtual int xdrImport ( char * buf, unsigned bufLen);
  
   
   
   
   
   
   
  void remove( void );
  void remove( int tag );
  void remove( char * ctag );

   
   
   
   
   
   
   
  int changeTag(int oldTag, int newTag);
  int changeTag(int oldTag, char *c_newTag);
  int changeTag(char *c_oldTag, int newTag);
  int changeTag(char *c_oldTag,  char *c_newTag);

   
   
   
   
   
   
  cdevDataTypes getType(int tag);
  cdevDataTypes getType(char *ctag);

  
   
   
   
   
   
   
  int getDim(int tag, unsigned *dim);
  int getDim(char *ctag, unsigned *dim);

   
   
   
   
   
   
  int getElems(int tag, unsigned *elems);
  int getElems(char *ctag, unsigned *elems);

   
   
   
   
   
   
   
   
   
  int getBounds(int tag,  unsigned * bounds, unsigned len);
  int getBounds(char * ctag, unsigned * bounds, unsigned len);

   
   
   
   
   
   
   
  int getBounds(int tag, cdevBounds * bounds, unsigned numBounds);
  int getBounds(char * ctag, cdevBounds * bounds, unsigned numBounds);

   
   
   
   
   
   
   
   
  int setBounds(int tag, unsigned * bounds, unsigned len);
  int setBounds(char * ctag, unsigned * bounds, unsigned len);
  
   
   
   
   
   
   
  int setBounds(int tag, cdevBounds * bounds, unsigned numBounds);
  int setBounds(char * ctag, cdevBounds * bounds, unsigned numBounds);

   
   
   
   
   
  int insert ( int tag, BYTE data );
  int insert ( int tag, short data );
  int insert ( int tag, unsigned short data );
  int insert ( int tag, long data );
  int insert ( int tag, unsigned long data );
  int insert ( int tag, float data );
  int insert ( int tag, double data );
  int insert ( int tag, cdev_TS_STAMP data );

   
   
   
  int insert ( char * ctag, BYTE data);
  int insert ( char * ctag, short data);
  int insert ( char * ctag, unsigned short data);
  int insert ( char * ctag, long data);
  int insert ( char * ctag, unsigned long data);
  int insert ( char * ctag, float data);
  int insert ( char * ctag, double data);
  int insert ( char * ctag, cdev_TS_STAMP data);
  
   
   
   
   
   
   
   
  int insert (int tag, BYTE * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, short * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, unsigned short * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, long * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, unsigned long * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, float * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, double * data, unsigned len, unsigned ndim = 1);
  int insert ( int tag, cdev_TS_STAMP *data, unsigned len, unsigned ndim = 1);

   
   
   
  int insert (char * ctag, BYTE * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, short * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, unsigned short * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, long * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, unsigned long * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, float * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, double * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, cdev_TS_STAMP *data, unsigned len, unsigned ndim =1 );

   
   
   
   
   
   
  int insert ( int tag, int data );
  int insert ( int tag, unsigned int data ) ;
  int insert ( char * ctag, int data);
  int insert ( char * ctag, unsigned int data);
  int insert (int tag, int * data, unsigned len, unsigned ndim = 1);
  int insert (int tag, unsigned int * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, int * data, unsigned len, unsigned ndim = 1);
  int insert (char * ctag, unsigned int * data, unsigned len, unsigned ndim = 1);

   
   
   
   
   
   
  int insert ( int tag, char * data );
  int insert ( int tag, char ** data, unsigned len = 0, unsigned ndim = 1 );

   
   
   
  int insert ( char * ctag, char * data);
  int insert ( char * ctag, char ** data, unsigned len = 0, unsigned ndim = 1);
  
   
   
   
   
   
  int get(int tag, BYTE * data);
  int get(int tag, short * data);
  int get(int tag, unsigned short * data);
  int get(int tag, long * data); 
  int get(int tag, unsigned long * data); 
  int get(int tag, float * data); 
  int get(int tag, double * data);
  int get(int tag, char * data, unsigned len); 
  int get(int tag, char ** data);
  int get(int tag, cdev_TS_STAMP * data);
   
   
   
  int get(char * ctag, BYTE * data);
  int get(char * ctag, short * data);
  int get(char * ctag, unsigned short * data);
  int get(char * ctag, long * data);
  int get(char * ctag, unsigned long * data);
  int get(char * ctag, float * data);
  int get(char * ctag, double * data);
  int get(char * ctag, char * data, unsigned len);
  int get(char * ctag, char ** data);
  int get(char * ctag, cdev_TS_STAMP * data);

   
   
   
   
   
  int get(int tag, int * data);
  int get(int tag, unsigned int * data);
  int get(char *ctag, int * data);
  int get(char *ctag, unsigned int * data);

  
   
   
   
   
   
  int find(int tag, void* &data);
  int find(char * ctag, void* &data);

   
   
   
   
   
  int operator == (cdevData & data);
  int operator != (cdevData & data) { return !(operator == (data)); }
};



class cdevDataIterator
{
public:
  cdevDataIterator(cdevData* data);
  ~cdevDataIterator() {};
  int init();
  int operator !();
  int operator ++();
  int tag(void);

protected:
  cdevData *dataobj_;
  cdevDataEntry *cur_;
};




# 1 "../data/cdevData.i" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inline 
cdevDataEntry* cdevData::lookupTag(char * ctag, int create) 
{ 
  int tag; 
  return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  (cdevDataEntry *)0:lookupTag(tag, create); 
}

inline 
cdevData & 
cdevData::operator = (const cdevData & data) 
{ 
  return copy(data);
}

inline 
void cdevData::remove( char * ctag )
{
  int tag; if(!cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)) remove(tag);
}

inline 
cdevDataTypes cdevData::getType(char *ctag)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  CDEV_INVALID:getType(tag);
}

inline 
int cdevData::getDim(char *ctag, unsigned *dim)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  8 :getDim(tag, dim); 
}

inline 
int cdevData::getElems(char *ctag, unsigned *elems)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  8 :getElems(tag, elems); 
}

inline 
int cdevData::getBounds(char * ctag, unsigned * bounds, unsigned len)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  8 :getBounds(tag, bounds, len); 
}

inline 
int cdevData::getBounds(char * ctag, cdevBounds * bounds, unsigned numBounds)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  8 :getBounds(tag, bounds, numBounds); 
}

inline 
int cdevData::setBounds(char * ctag, unsigned * bounds, unsigned len)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  8 :setBounds(tag, bounds, len); 
}

inline 
int cdevData::setBounds(char * ctag, cdevBounds * bounds, unsigned numBounds)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?
  8 :setBounds(tag, bounds, numBounds); 
}

inline 
int cdevData::insert ( char * ctag, BYTE data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}

inline 
int cdevData::insert ( char * ctag, short data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}

inline 
int cdevData::insert ( char * ctag, unsigned short data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}


inline 
int cdevData::insert ( char * ctag, int data)          
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data);
}


inline 
int cdevData::insert ( char * ctag, unsigned int data) 
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data);
}

inline 
int cdevData::insert ( char * ctag, long data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data);
}

inline 
int cdevData::insert ( char * ctag, unsigned long data)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data);
}

inline 
int cdevData::insert ( char * ctag, float data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}

inline 
int cdevData::insert ( char * ctag, double data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}

inline 
int cdevData::insert ( char * ctag, cdev_TS_STAMP data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}

inline 
int cdevData::insert (char * ctag, BYTE * data, unsigned len, unsigned ndim)
{ 
int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::insert (char * ctag, short * data, unsigned len, unsigned ndim)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::insert (char * ctag, unsigned short * data, unsigned len, unsigned ndim)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim);
}

inline 
int cdevData::insert (char * ctag, int * data, unsigned len, unsigned ndim)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim);
}

inline 
int cdevData::insert (char * ctag, unsigned int * data, unsigned len, unsigned ndim)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim);
}

inline 
int cdevData::insert (char * ctag, long * data, unsigned len, unsigned ndim)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim);
}

inline 
int cdevData::insert (char * ctag, unsigned long * data, unsigned len, unsigned ndim)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::insert (char * ctag, float * data, unsigned len, unsigned ndim)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::insert (char * ctag, double * data, unsigned len, unsigned ndim)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::insert ( char * ctag, char * data)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data); 
}

inline 
int cdevData::insert ( char * ctag, char ** data, unsigned len, unsigned ndim)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::insert (char * ctag, cdev_TS_STAMP * data, unsigned len, unsigned ndim)
{ 
int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :insert(tag, data, len, ndim); 
}

inline 
int cdevData::get(char * ctag, BYTE * data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, short * data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, unsigned short * data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, long * data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, unsigned long * data) 
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, float * data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, double * data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, char * data, unsigned len) 
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data, len); 
}

inline 
int cdevData::get(char * ctag, char ** data)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char * ctag, cdev_TS_STAMP * data)
{
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::find(char * ctag, void* &data)
{ 
  int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :find(tag, data); 
}

inline 
int cdevData::get(char *ctag, int * data)
{ 
   int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}

inline 
int cdevData::get(char *ctag, unsigned int * data) 
{ 
   int tag; return cdevGlobalTagTable::tagTable()->tagC2I(ctag, &tag)?8 :get(tag, data); 
}
 
inline 
cdevData::operator char( void )
{ 
  BYTE x;   get((char *)("value"), &x); return x; 
}

inline 
cdevData::operator short( void ) 
{ 
  short x;  get((char *)("value"), &x); return x; 
}	

inline 
cdevData::operator unsigned short( void ) 
{ 
  unsigned short x;  get((char *)("value"), &x); return x; 
}	

inline 
cdevData::operator int( void )
{
  int x;   get((char *)("value"), &x); return x; 
}

inline 
cdevData::operator unsigned int( void ) 
{ 
  unsigned int x;   get((char *)("value"), &x); return x;
}

inline 
cdevData::operator long( void ) 
{
  long x;   get((char *)("value"), &x); return x; 
}

inline 
cdevData::operator unsigned long( void ) 
{
  unsigned long x;   get((char *)("value"), &x); return x; 
}

inline 
cdevData::operator float( void )
{ 
  float x;  get((char *)("value"), &x); return x; 
}

inline 
cdevData::operator double( void ) 
{
  double x; get((char *)("value"), &x); return x; 
}


inline  
cdevData::operator char * ( void )
{
char *        result = __null ;
static char   temp[64];
unsigned      dim      = 0;
int           valueTag = 1;
cdevDataTypes dataType = CDEV_INVALID;

tagC2I((char *)("value"), &valueTag);
getDim(valueTag, &dim);
if(dim==0) dataType = getType(valueTag);

switch(dataType)
	{	
	case CDEV_INVALID:
		result= __null ;
		break;
		
	case CDEV_STRING:
		find((char *)("value"), (void * &)result);
		break;

	default:
		get((char *)("value"), temp, 64);
		result = temp;
		break;
		 
	}
return result;
}


inline 
cdevData& cdevData::operator= (unsigned char x)
{
  insert((char *)("value"), x);
  return *this;
}

inline   cdevData& cdevData::operator= (short x)
{
  insert((char *)("value"), x);  
  return *this;
}

inline   cdevData& cdevData::operator= (unsigned short x)
{
  insert((char *)("value"), x);  
  return *this;
}

inline   cdevData& cdevData::operator= (int x)
{
  insert((char *)("value"), x);  
  return *this;
}

inline   cdevData& cdevData::operator= (unsigned int x)
{
  insert((char *)("value"), x);  
  return *this;
}
inline   cdevData& cdevData::operator= (long x)
{
  insert((char *)("value"), x);  
  return *this;
}

inline   cdevData& cdevData::operator= (unsigned long x)
{
  insert((char *)("value"), x);  
  return *this;
}

inline   cdevData& cdevData::operator= (float x)
{
  insert((char *)("value"), x);  
  return *this;
}

inline   cdevData& cdevData::operator= (double x)
{
  insert((char *)("value"), x);  
  return *this;
}



# 558 "../data/cdevData.h" 2






# 38 "cmlogClient.h" 2

# 1 "../Common/cmlogUtil.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 




































class cmlogUtil
{
public:
   
  static unsigned long hostIpAddr (void);
   
  static          void setTags    (void);
   
  static          double currentTime (void);

   
  static          int    isProcessDead (long pid);


# 134 "../Common/cmlogUtil.h"


public:
  static int      tagInserted;
  
  static int      CMLOG_KEY_TAG, CMLOG_STR_TAG, CMLOG_CLNTCXT_TAG;
  static int      CMLOG_HOST_TAG,CMLOG_PID_TAG, CMLOG_NAME_TAG;
  static int      CMLOG_CLASS_TAG, CMLOG_DOMAIN_TAG, CMLOG_FACILITY_TAG;
  static int      CMLOG_CODE_TAG, CMLOG_VERBOSITY_TAG, CMLOG_SEVERITY_TAG;
  static int      CMLOG_TEXT_TAG, CMLOG_STATUS_TAG, CMLOG_INCOMPLETE_TAG;
  static int      CMLOG_USER_TAG, CMLOG_CLNTID_TAG, CMLOG_DISP_TAG;
  static int      CMLOG_DROPPED_TAG, CMLOG_START_TAG, CMLOG_END_TAG;
  static int      CMLOG_RESULT_TAG, CMLOG_VALUE_TAG, CMLOG_PROC_TAG;
  static int      CMLOG_NUMITEMS_TAG, CMLOG_QUERYMSG_TAG, CMLOG_LINE_TAG;

# 159 "../Common/cmlogUtil.h"

};

# 238 "../Common/cmlogUtil.h"



# 39 "cmlogClient.h" 2

# 1 "cmlogFilter.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 












# 1 "/usr/local/tornado2.2/ppc/target/h/math.h" 1
 

 

 




























extern "C" {




 






 

extern double 	acos (double x);
extern double 	asin (double x);
extern double 	atan (double x);
extern double 	atan2 (double y, double x);
extern double 	ceil (double x);
extern double 	cos (double x);
extern double 	cosh (double x);
extern double 	exp (double x);
extern double 	fabs (double x);
extern double 	floor (double x);
extern double 	fmod (double x, double y);
extern double 	frexp (double x, int *exponent);
extern double 	ldexp (double x, int __exp);
extern double 	log (double x);
extern double 	log10 (double x);
extern double 	modf (double x, double *pIntResult);
extern double 	pow (double x, double y);
extern double 	sin (double x);
extern double 	sinh (double x);
extern double 	sqrt (double x);
extern double 	tan (double x);
extern double 	tanh (double x);



 


extern float 	acosf (float x);
extern float 	asinf (float x);
extern float 	atanf (float x);
extern float 	atan2f (float x, float y);
extern float 	ceilf (float x);
extern float 	cosf (float x);
extern float 	coshf (float x);
extern float 	expf (float x);
extern float 	fabsf (float x);
extern float 	floorf (float x);
extern float 	fmodf (float x, float y);
extern float 	logf (float x);
extern float 	log10f (float x);
extern float 	powf (float x, float y);
extern float 	sinf (float x);
extern float 	sinhf (float x);
extern float 	sqrtf (float x);
extern float 	tanf (float x);
extern float 	tanhf (float x);


 



extern double 	cbrt (double x);
extern double 	hypot (double x, double y);
extern double 	infinity (void);
extern int 	irint (double x);
extern int 	iround (double x);
extern double 	log2 (double x);
extern double 	rint (double x);
extern double 	round (double x);
extern void 	sincos (double x, double *pSinResult, double *pCosResult);
extern double 	trunc (double x);

extern float 	cbrtf (float x);
extern float 	hypotf (float x, float y);
extern float 	infinityf (void);
extern int 	irintf (float x);
extern int 	iroundf (float x);
extern float 	log2f (float x);
extern float 	roundf (float x);
extern void 	sincosf (float x, float *pSinResult, float *pCosResult);
extern float 	truncf (float x);


 

extern void 	floatInit (void);
extern void 	mathHardInit (void);
extern void 	mathSoftInit (void);
extern void	gccMathInit (void);
extern void	gccUssInit (void);
extern void	gccUss040Init (void);
extern unsigned	__fixunssfsi (long a);

# 223 "/usr/local/tornado2.2/ppc/target/h/math.h"



}



# 37 "cmlogFilter.h" 2




# 1 "../Common/cmlogSlist.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 












# 1 "/usr/local/tornado2.2/ppc/target/h/assert.h" 1
 

 

 










extern "C" {













extern void __assert (const char *msg);











}

# 48 "../Common/cmlogSlist.h" 2



typedef void*  cmlogSlistItem;

 
 
 
 
class cmlogSlistLink;
class cmlogSlistIterator;
class cmlogSlistCursor;
class cmlogStrHash;

class cmlogSlist
{
public:
   
  cmlogSlist          (void);
  cmlogSlist          (const cmlogSlist & source);
  virtual ~cmlogSlist (void);

   

   
  virtual void        add               (cmlogSlistItem value);
   
  virtual void        addToEnd          (cmlogSlistItem value);

   
   
   
  virtual int         remove            (cmlogSlistItem value);

   
  virtual void        deleteAllValues   (void);

   
  virtual cmlogSlistItem  firstElement  (void);

   
  virtual cmlogSlistItem    lastElement (void);

   
  virtual cmlogSlist*       duplicate   (void);
  
   
   
  virtual int              includes     (cmlogSlistItem value);

   
   
  virtual int              isEmpty      (void);

   
  virtual void             removeFirst  (void);

   
  virtual int              count        (void);

protected:
   
  cmlogSlistLink*           ptrToFirstLink;





   
  virtual void        add_i              (cmlogSlistItem value); 
  virtual int         isEmpty_i          (void) const;
  virtual void        deleteAllValues_i  (void);
  virtual void        removeFirst_i      (void);
  virtual cmlogSlistItem  firstElement_i (void);
  virtual cmlogSlistItem  lastElement_i (void);

   
  friend class  cmlogSlistIterator;
   
  friend class  cmlogSlistCursor;
  friend class  cmlogStrHash;

private:
   
  cmlogSlist&   operator = (const cmlogSlist& list);
};

 
 
 
 
class cmlogSlistLink
{
public:
   
  cmlogSlistLink         (cmlogSlistItem linkValue, cmlogSlistLink * nextPtr);

   
  cmlogSlistLink* insert (cmlogSlistItem val);
   
  cmlogSlistItem  data   (void);

   
  cmlogSlistLink* next   (void);


private:

   
  cmlogSlistLink* duplicate (void);

   
  cmlogSlistItem      value;
  cmlogSlistLink*     ptrToNextLink;

   
  friend class       cmlogSlist;
  friend class       cmlogSlistIterator;
  friend class       cmlogSlistCursor;
};

 
 
 
 
 

class cmlogStrHashIterator;

class cmlogSlistIterator
{
public:
   
  cmlogSlistIterator        (cmlogSlist& aList);

   
  virtual int              init (void);
  virtual cmlogSlistItem   operator () (void);
  virtual int              operator !  (void);
  virtual int              operator ++ (void);
  virtual void             operator =  (cmlogSlistItem value);

   

   
  void                     removeCurrent(void);
  
   
  void                     addBefore(cmlogSlistItem  newValue);

   
  void                     addAfter(cmlogSlistItem   newValue);

   
  int                      searchSame(cmlogSlistItem &value);

protected:
   
  virtual int              init_i (void);
   
  virtual int              forward_i (void);
   
  void                     removeCurrent_i (void);
   
  cmlogSlistLink *    currentLink;
  cmlogSlistLink *    previousLink;
  cmlogSlist&         theList;




private:
   
  friend class cmlogStrHashIterator;

   
  cmlogSlistIterator (const cmlogSlistIterator& ir);
  cmlogSlistIterator& operator = (const cmlogSlistIterator& ir);
};

 
 
 
 
class cmlogSlistCursor
{
public:
   
  cmlogSlistCursor           (const cmlogSlist& aList);

   
  virtual int               init        (void);
  virtual cmlogSlistItem    operator () (void);
  virtual int               operator !  (void);
  virtual int               operator ++ (void);
  virtual void              operator =  (cmlogSlistItem value);

  int                       searchSame  (cmlogSlistItem &value);

protected:
   
  virtual int               init_i      (void);  
   
  cmlogSlistLink *          currentLink;
  cmlogSlistLink *          previousLink;
  const cmlogSlist&         theList;




private:
   
  cmlogSlistCursor (const cmlogSlistCursor &);
  cmlogSlistCursor& operator = (const cmlogSlistCursor &);
};

 
 
 
 
 
class cmlogDoubleEndedSlist: public cmlogSlist{
public:
   
  cmlogDoubleEndedSlist   (void);
  cmlogDoubleEndedSlist   (const cmlogDoubleEndedSlist &v);
  
   
  virtual void      add             (cmlogSlistItem value);
  virtual void      deleteAllValues (void);
  virtual void      removeFirst     (void);

   
  virtual void      addToEnd        (cmlogSlistItem value);

protected:
  cmlogSlistLink    *ptrToLastLink;

private:
   
  cmlogDoubleEndedSlist& operator = (const cmlogDoubleEndedSlist);
};

# 41 "cmlogFilter.h" 2



class cmlogFilter;

class cmlogCounter 
{
public:
   
  cmlogCounter  (void);
  ~cmlogCounter (void);
  
  void reset        (void);
  void init         (void); 

  void set          (BYTE val); 
  void set          (short val);
  void set          (unsigned short val); 
  void set          (long val); 
  void set          (unsigned long val); 
  void set          (float val); 
  void set          (double val); 
  void set          (char* val); 
    
  int match (BYTE val) const; 
  int match (short val) const;
  int match (unsigned short val) const;
  int match (long val) const;
  int match (unsigned long val) const;
  int match (float val) const;  
  int match (double val) const;
  int match (char*  val) const; 
  
  int update (int &dropFlag, int &num);
  double lastUpdate (void) const;
  void setLimit(int limit, double delta);

private:
   
  int           valid_;
  cdevDataTypes type_;
  union dataUnion {
    BYTE             cval;
    short            sval;
    unsigned short   usval;
    long             lval;
    unsigned long    ulval;
    float            fval;
    double           dval;
    char            *str;
  } data_;
  int           count_;
  double        t0_;
  double        ts_;
  int           maxCount_;
  double        deltaTime_;

  friend class cmlogFilter;

   
  cmlogCounter (const cmlogCounter& counter);
  cmlogCounter& operator = (const cmlogCounter& );
};

class cmlogFilter {  
public:
   
  cmlogFilter  (int maxSeverity, int maxVerbosity, int maxListSize);
  ~cmlogFilter (void);

   
  int setVerbosityThreshold (int thresh);
  int getVerbosityThreshold (void) const;

  int setSeverityThreshold (int thresh);
  int getSeverityThreshold (void) const;

  int setThrottle (char *ctag, int listSize, int limit, double deltaTime);
  int getThrottle (char **ctag, int& listSize, int& limit, double& deltaTime);

  int filter      (cdevData& data);

protected:
  void setCounter(cdevDataTypes type, void *pdata, cmlogCounter *counterObj);
  int matchCounter(cdevDataTypes type, void *pdata, cmlogCounter *counterObj);

private:
   
  
   
  cmlogSlist msgList_;

  int        verbosityThreshold_;
  int        severityThreshold_;
  char*      throttleTag_;
  int        tag_;
  int        listSize_;
  int        limit_;
  double     delta_;

  int        maxSeverity_;
  int        maxVerbosity_;
  int        maxListSize_; 

   
  static     int tag_no_use;

   
  cmlogFilter (const cmlogFilter& );
  cmlogFilter& operator = (const cmlogFilter &);
};



# 40 "cmlogClient.h" 2

# 1 "../Common/cmlogMsg.h" 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 






# 1 "../data/cmlog_cdevMessage.h" 1





class cmlog_cdevMessage
{	
private:
	typedef union
		{
		unsigned char rawData;
		struct	{
			unsigned char saveDeviceList : 1;
			unsigned char saveMessage    : 1;
			unsigned char saveData       : 1;
			unsigned char saveContext    : 1;
			unsigned char saveTagMap     : 1;
			unsigned pad                 : 3;
			} value;
		} SaveTable;
		
	SaveTable  saveTbl; 

	short      clientID;
	unsigned   transIndex;
	unsigned   cancelTransIndex;
	unsigned   localDataIndex;
	unsigned   foreignDataIndex;
	unsigned   operationCode;
	unsigned   deviceCount;
	char **    deviceList;
	char *     message;
	cdevData * data;
	cdevData * context;
	cdevData * tagMap;
	void *     arg;
	
public:
	cmlog_cdevMessage              ( short      ClientID         = -1, 
	                           unsigned   TransIndex       = 0,
	                           unsigned   CancelTransIndex = 0,
	                           unsigned   LocalDataIndex   = 0,
	                           unsigned   ForeignDataIndex = 0,
	                           unsigned   OperationCode    = 0,
	                           unsigned   DeviceCount      = 0,
	                           char **    DeviceList       = __null ,
	                           char *     Message          = __null ,
	                           cdevData * Data             = __null ,
	                           cdevData * Context          = __null ,
	                           cdevData * TagMap           = __null );
	cmlog_cdevMessage              ( char * binary, unsigned binaryLen );
	cmlog_cdevMessage              ( class cmlog_cdevMessage & message );
	virtual     ~cmlog_cdevMessage ( void );
	virtual void clear       ( void );
	virtual int  streamIn    ( char * binary, unsigned binaryLen );
	virtual int  streamOut   ( char ** binary, unsigned * binaryLen );
	virtual int  streamOut   ( char binary[],  unsigned  binaryLen );
	virtual unsigned  binarySize  (void);
	virtual void asciiDump   ( FILE * fp = (*__stdout())  );

	short      getClientID         ( void ) { return clientID; }
	unsigned   getTransIndex       ( void ) { return transIndex; }
	unsigned   getCancelTransIndex ( void ) { return cancelTransIndex; }
	unsigned   getLocalDataIndex   ( void ) { return localDataIndex; }
	unsigned   getForeignDataIndex ( void ) { return foreignDataIndex; }
	unsigned   getOperationCode    ( void ) { return operationCode; }
	unsigned   getDeviceCount      ( void ) { return deviceCount; }
	char **    getDeviceList       ( void ) { return deviceList; }
	char *     getMessage          ( void ) { return message; }
	cdevData * getData             ( void ) { return data; }
	cdevData * getContext          ( void ) { return context; }
	cdevData * getTagMap           ( void ) { return tagMap; }
	void *     getArg              ( void ) { return arg; }

	void setClientID         ( short ClientID )            { clientID = ClientID; }
	void setTransIndex       ( unsigned TransIndex )       { transIndex = TransIndex; }
	void setCancelTransIndex ( unsigned CancelTransIndex ) { cancelTransIndex = CancelTransIndex; }
	void setLocalDataIndex   ( unsigned LocalDataIndex )   { localDataIndex = LocalDataIndex; }
	void setForeignDataIndex ( unsigned ForeignDataIndex ) { foreignDataIndex = ForeignDataIndex; }
	void setOperationCode    ( unsigned OperationCode )    { operationCode = OperationCode; }
	void setDeviceCount      ( unsigned DeviceCount )      { deviceCount = DeviceCount; }
	void setDeviceList       ( char ** DeviceList, int permanent = 0 )
		{
		if(deviceList!= __null  && !saveTbl.value.saveDeviceList)
			{
			for(int i=0; i<deviceCount; i++) delete deviceList[i];
			delete deviceList;
			}
		deviceList = DeviceList;
		saveTbl.value.saveDeviceList = permanent;
		}
	void setMessage          ( char * Message, int permanent = 0 )
		{
		if(message!= __null  && !saveTbl.value.saveMessage) delete message;
		message = Message;
		saveTbl.value.saveMessage = permanent;
		}
	void setData             ( cdevData * Data, int permanent = 0 )
		{
		if(data!= __null  && !saveTbl.value.saveData) delete data;
		data = Data;
		saveTbl.value.saveData = permanent;
		}
	void setContext          ( cdevData * Context, int permanent = 0 )
		{
		if(context!= __null  && !saveTbl.value.saveContext) delete context;
		context = Context;
		saveTbl.value.saveContext = permanent;
		}
	void setTagMap           ( cdevData * TagMap, int permanent = 0 )
		{
		if(tagMap!= __null  && !saveTbl.value.saveTagMap) delete tagMap;
		tagMap = TagMap;
		saveTbl.value.saveTagMap = permanent;
		}
	void setArg              ( void* userarg)
                {
		  arg = userarg;
		}
};



# 43 "../Common/cmlogMsg.h" 2

# 1 "../data/cmlog_cdevPacket1.h" 1



# 1 "../data/cmlog_cdevPacket.h" 1




# 1 "../data/xdrClass.h" 1










 
 
 
 
 
 
 
 
 
 
 
 
 
 










# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 1
 

 
 



























 

 






 




















extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/rpctypes.h" 1
 

 
 



























 

 






















extern "C" {



# 1 "/usr/local/tornado2.2/ppc/target/h/memPartLib.h" 1
 

 
 









extern "C" {


# 1 "/usr/local/tornado2.2/ppc/target/h/private/memPartLibP.h" 1
 

 
 


















extern "C" {










 





 







 






 







 
























 




























 

typedef struct mem_part
    {
    OBJ_CORE	objCore;		 
    DL_LIST	freeList;		 
    SEMAPHORE	sem;			 
    unsigned	totalWords;		 
    unsigned	minBlockWords;		 
    unsigned	options;		 

     

    unsigned curBlocksAllocated;	 
    unsigned curWordsAllocated;		 
    unsigned cumBlocksAllocated;	 
    unsigned cumWordsAllocated;		 

    } PARTITION;

 




typedef struct blockHdr		 
    {
    struct blockHdr *	pPrevHdr;	 
    unsigned		nWords : 31;	 
    unsigned		free   : 1;	 

    UINT32		pad[2];		 

    } BLOCK_HDR;

 





typedef struct			 
    {
    struct
        {
	struct blockHdr *   pPrevHdr;	 
	unsigned	    nWords : 31; 
	unsigned	    free   : 1;	 
	} hdr;
    DL_NODE		node;		 
    } FREE_BLOCK;

 

extern CLASS_ID memPartClassId;		 
extern FUNCPTR  memPartBlockErrorRtn;	 
extern FUNCPTR  memPartAllocErrorRtn;	 
extern FUNCPTR  memPartSemInitRtn;	 
extern unsigned	memPartOptionsDefault;	 
extern UINT	memDefaultAlignment;	 
extern int	mutexOptionsMemLib;	 

 

extern FUNCPTR  smMemPartAddToPoolRtn;
extern FUNCPTR  smMemPartFreeRtn;
extern FUNCPTR  smMemPartAllocRtn;






 



extern BOOL	memPartBlockIsValid (PART_ID partId, BLOCK_HDR *pHdr,
				     BOOL isFree);








}



# 17 "/usr/local/tornado2.2/ppc/target/h/memPartLib.h" 2



}



# 61 "/usr/local/tornado2.2/ppc/target/h/rpc/rpctypes.h" 2


 






























}



# 65 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2



 
# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h" 1
 

 
# 1 "/usr/local/tornado2.2/ppc/target/h/copyright_wrs.h" 1
 
# 4 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h" 2


 



























 

 





 



































extern "C" {




 




























 





enum xdr_op {
	XDR_ENCODE=0,
	XDR_DECODE=1,
	XDR_FREE=2
};

 







 








typedef	int  (*xdrproc_t)();

 








typedef struct {
	enum xdr_op	x_op;		 
	struct xdr_ops {
                     
		int 	(*x_getlong)(...);
                     
		int 	(*x_putlong) (...);
                     
		int 	(*x_getbytes) (...);
                     
		int 	(*x_putbytes) (...);
                     
		int 	(*x_putwords) (...);
                     
		int 	(*x_putlongs) (...);
                     
		u_int	(*x_getpostn) (...);
                     
		int   (*x_setpostn) (...);
                     
		long *	(*x_inline) (...);
                     
                void (*x_destroy) (...);
	} *x_ops;
	caddr_t 	x_public;	 
	caddr_t		x_private;	 
	caddr_t 	x_base;		 
	int		x_handy;	 
} XDR;

# 204 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h"


 




























































 










struct xdr_discrim {
	int	value;
	xdrproc_t proc;
};

 










































 





struct netobj
    {
    u_int	n_len;
    char	*n_bytes;
    };

typedef struct netobj netobj;

 




 	 
 	 
 	 
 	 
     
 	 


 



extern	  void	       xdr_free (xdrproc_t proc, char *objp);
extern	  int        xdr_void (void);
extern	  int        xdr_int (XDR *xdrs, int *ip);
extern	  int        xdr_u_int (XDR *xdrs, u_int *up);
extern	  int        xdr_long (XDR *xdrs, long *lp);
extern	  int        xdr_u_long (XDR *xdrs, u_long *ulp);
extern	  int        xdr_short (XDR *xdrs, short *sp);
extern	  int        xdr_u_short (XDR *xdrs, u_short *usp);
extern	  int        xdr_char (XDR *xdrs, char *cp);
extern	  int        xdr_u_char (XDR *xdrs, u_char *ucp);
extern	  int        xdr_bool (XDR *xdrs, int  *bp);
extern	  int        xdr_enum (XDR *xdrs, int  *ep);
extern	  int        xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt);
extern	  int        xdr_bytes (XDR *xdrs, char **cpp, u_int *sizep,
				  u_int maxsize);
extern	  int        xdr_netobj (XDR *xdrs, struct netobj *np);
extern	  int        xdr_union (XDR *xdrs, int  *dscmp, caddr_t unp,
				 struct xdr_discrim *choices, xdrproc_t dfault);
extern	  int        xdr_string (XDR *xdrs, char **cpp, u_int maxsize);
extern	  int        xdr_wrapstring (XDR *xdrs, char **cpp);
extern	  int        xdr_array (XDR *xdrs, caddr_t *addrp, u_int *sizep,
				 u_int maxsize, u_int elsize, xdrproc_t elproc);
extern	  int        xdr_vector (XDR *xdrs, char *basep, u_int nelem,
				   u_int elemsize, xdrproc_t xdr_elem);
extern	  int        xdr_float (XDR *xdrs, float *fp);
extern	  int        xdr_double (XDR *xdrs, double *dp);
extern	  void	       xdrmem_create (XDR *xdrs, caddr_t addr, u_int size,
				      enum xdr_op op);
extern	  void	       xdrrec_create (XDR *xdrs, u_int sendsize, u_int recvsize,
				   caddr_t tcp_handle, int (*readit)(), int (*writeit)());
extern	  int        xdrrec_skiprecord (XDR *xdrs);
extern	  int        xdrrec_eof (XDR *xdrs);
extern	  int        xdrrec_endofrecord (XDR *xdrs, int  sendnow);
extern	  int        xdr_reference (XDR *xdrs, caddr_t *pp, u_int size,
				      xdrproc_t proc);
extern	  int        xdr_pointer (XDR *xdrs, char **objpp, u_int obj_size,
				    xdrproc_t xdr_obj);

# 427 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h"



}



# 69 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2


 
# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/auth.h" 1
 

 
 



























 

 









 


















extern "C" {










 


enum auth_stat {
	AUTH_OK=0,
	 


	AUTH_BADCRED=1,			 
	AUTH_REJECTEDCRED=2,		 
	AUTH_BADVERF=3,			 
	AUTH_REJECTEDVERF=4,		 
	AUTH_TOOWEAK=5,			 
	 


	AUTH_INVALIDRESP=6,		 
	AUTH_FAILED=7			 
};

union des_block {
	struct {
		u_long high;
		u_long low;
	} key;
	char c[8];
};

typedef union des_block des_block;


 


struct opaque_auth {
	int 	oa_flavor;		 
	caddr_t	oa_base;		 
	u_int	oa_length;		 
};


 


typedef struct {
	struct	opaque_auth	ah_cred;
	struct	opaque_auth	ah_verf;
	union	des_block	ah_key;
	struct auth_ops {
		void	(*ah_nextverf)();
		int	(*ah_marshal)();	 
		int	(*ah_validate)();	 
		int	(*ah_refresh)();	 
		void	(*ah_destroy)();	 
	} *ah_ops;
	caddr_t ah_private;
} AUTH;


 

































extern struct opaque_auth _null_auth;


 



 








extern AUTH *authdes_create ();		 





 



extern	  AUTH *	authnone_create (void);
extern    AUTH *	authunix_create (char *machname, int uid, int gid,
					 int len, int *aup_gids);
extern 	  AUTH *	authunix_create_default(void);  
extern	  int 	xdr_des_block (XDR *xdrs, union des_block *blkp);















}



# 72 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2


 
# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/clnt.h" 1
 

 
 



























 

 





 






















extern "C" {




# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h" 1
 

 
# 1 "/usr/local/tornado2.2/ppc/target/h/copyright_wrs.h" 1
 
# 4 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h" 2


 



























 

 





 































# 433 "/usr/local/tornado2.2/ppc/target/h/rpc/xdr.h"

# 68 "/usr/local/tornado2.2/ppc/target/h/rpc/clnt.h" 2



 




enum clnt_stat {
	RPC_SUCCESS=0,			 
	 


	RPC_CANTENCODEARGS=1,		 
	RPC_CANTDECODERES=2,		 
	RPC_CANTSEND=3,			 
	RPC_CANTRECV=4,			 
	RPC_TIMEDOUT=5,			 
	 


	RPC_VERSMISMATCH=6,		 
	RPC_AUTHERROR=7,		 
	RPC_PROGUNAVAIL=8,		 
	RPC_PROGVERSMISMATCH=9,		 
	RPC_PROCUNAVAIL=10,		 
	RPC_CANTDECODEARGS=11,		 
	RPC_SYSTEMERROR=12,		 

	 


	RPC_UNKNOWNHOST=13,		 
	RPC_UNKNOWNPROTO=17,		 

	 


	RPC_PMAPFAILURE=14,		 
	RPC_PROGNOTREGISTERED=15,	 
	 


	RPC_FAILED=16
};


 


struct rpc_err {
	enum clnt_stat re_status;
	union {
		int RE_errno;		 
		enum auth_stat RE_why;	 
		struct {
			u_long low;	 
			u_long high;	 
		} RE_vers;
		struct {		 
			long s1;
			long s2;
		} RE_lb;		 
	} ru;




};


 




typedef struct {
	AUTH	*cl_auth;			 
	struct clnt_ops {
		enum clnt_stat	(*cl_call)();	 
		void		(*cl_abort)();	 
		void		(*cl_geterr)();	 
		int 		(*cl_freeres)();  
		void		(*cl_destroy)(); 
		int 		(*cl_control)();  
	} *cl_ops;
	caddr_t			cl_private;	 
} CLIENT;


 






 















 







 








 









 









 





 





 








 










 





 





 







 

 



 	 

 






 











 

 





















 
 

 



 	 
 	 

 



 		 

 



 	 
 	 


 



struct rpc_createerr {
 	enum clnt_stat cf_stat;
 	struct rpc_err cf_error;  
};

 
 

 



 	 




 



extern	  CLIENT *    clnt_create (char *hostname, unsigned prog,
				   unsigned vers, char *proto);
extern	  char *      clnt_sperror (CLIENT *rpch, char *s);
extern	  void	      clnt_perror (CLIENT *rpch, char *s);
extern	  char *      clnt_sperrno (enum clnt_stat stat);
extern	  void	      clnt_perrno (enum clnt_stat num);
extern	  char *      clnt_spcreateerror (char *s);
extern	  void	      clnt_pcreateerror (char *s);
extern	  CLIENT *    clntraw_create (u_long prog, u_long vers);
extern	  int	      callrpc (char *host, int prognum, int versnum,
			       int procnum, xdrproc_t inproc, char* in,
			       xdrproc_t outproc, char *out);
extern	  CLIENT *    clnttcp_create (struct sockaddr_in *raddr, u_long prog,
				      u_long vers, int *sockp, u_int sendsz,
				      u_int recvsz);
extern	  CLIENT *    clntudp_bufcreate (struct sockaddr_in *raddr,
					 u_long program, u_long version,
					 struct timeval wait, int *sockp,
					 u_int sendsz, u_int recvsz);
extern	  CLIENT *    clntudp_create (struct sockaddr_in *raddr, u_long program,
				      u_long version, struct timeval wait,
				      int *sockp);
extern	  int       clntudp_freeres (CLIENT *cl, xdrproc_t xdr_res,
				       caddr_t res_ptr);

# 411 "/usr/local/tornado2.2/ppc/target/h/rpc/clnt.h"



}



# 75 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2


 
# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc_msg.h" 1
 

 
 



























 

 






 



















extern "C" {





 





enum msg_type {
	CALL=0,
	REPLY=1
};

enum reply_stat {
	MSG_ACCEPTED=0,
	MSG_DENIED=1
};

enum accept_stat {
	SUCCESS=0,
	PROG_UNAVAIL=1,
	PROG_MISMATCH=2,
	PROC_UNAVAIL=3,
	GARBAGE_ARGS=4,
	SYSTEM_ERR=5
};

enum reject_stat {
	RPC_MISMATCH=0,
	AUTH_ERROR=1
};

 



 




struct accepted_reply {
	struct opaque_auth	ar_verf;
	enum accept_stat	ar_stat;
	union {
		struct {
			u_long	low;
			u_long	high;
		} AR_versions;
		struct {
			caddr_t	where;
			xdrproc_t proc;
		} AR_results;
		 
	} ru;


};

 


struct rejected_reply {
	enum reject_stat rj_stat;
	union {
		struct {
			u_long low;
			u_long high;
		} RJ_versions;
		enum auth_stat RJ_why;   
	} ru;


};

 


struct reply_body {
	enum reply_stat rp_stat;
	union {
		struct accepted_reply RP_ar;
		struct rejected_reply RP_dr;
	} ru;


};

 


struct call_body {
	u_long cb_rpcvers;	 
	u_long cb_prog;
	u_long cb_vers;
	u_long cb_proc;
	struct opaque_auth cb_cred;
	struct opaque_auth cb_verf;  
};

 


struct rpc_msg {
	u_long			rm_xid;
	enum msg_type		rm_direction;
	union {
		struct call_body RM_cmb;
		struct reply_body RM_rmb;
	} ru;


};




 






 

 






 

 






 

 






 

 



extern	  int        xdr_callmsg (XDR *xdrs, struct rpc_msg *cmsg);
extern	  int        xdr_replymsg (XDR *xdrs, struct rpc_msg *rmsg);
extern	  int        xdr_callhdr (XDR *xdrs, struct rpc_msg *cmsg);
extern	  void	       _seterr_reply (struct rpc_msg *msg, struct rpc_err *error);











}



# 78 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/auth_unix.h" 1
 

 
 



























 

 





 


















extern "C" {


 






 


 


 


struct authunix_parms {
	u_long	 aup_time;
	char	*aup_machname;
	int	 aup_uid;
	int	 aup_gid;
	u_int	 aup_len;
	int	*aup_gids;
};


 




struct short_hand_verf {
	struct opaque_auth new_cred;
};

 



extern	  int        xdr_authunix_parms (XDR *xdrs, struct authunix_parms *p);








}



# 79 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2


 



 				 


 
# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/svc.h" 1
 

 
 



























 

 





 

























extern "C" {


 





















enum xprt_stat {
	XPRT_DIED,
	XPRT_MOREREQS,
	XPRT_IDLE
};


struct xp_ops {
    int 	(*xp_recv)();	  
    enum xprt_stat (*xp_stat)();  
    int 	(*xp_getargs)();  
    int 	(*xp_reply)();	  
    int 	(*xp_freeargs)(); 
    void	(*xp_destroy)();  
}; 

 


typedef struct {
	int		xp_sock;
	u_short		xp_port;	  
	struct xp_ops   *xp_ops;
	int		xp_addrlen;	  
	struct sockaddr_in xp_raddr;	  
	struct opaque_auth xp_verf;	  
	caddr_t		xp_p1;		  
	caddr_t		xp_p2;		  
} SVCXPRT;

 




 





































 


struct svc_req {
	u_long		rq_prog;	 
	u_long		rq_vers;	 
	u_long		rq_proc;	 
	struct opaque_auth rq_cred;	 
	caddr_t		rq_clntcred;	 
	SVCXPRT	*rq_xprt;		 
};


 










 







 






 






 

























 










 




extern fd_set svc_fdset;





 



extern void rpctest_service();

 




 



 



 

 



 




 



 



 



extern	  void	       xprt_register (SVCXPRT *xprt);
extern	  void	       xprt_unregister (SVCXPRT *xprt);
extern	  int        svc_register (SVCXPRT *xprt, u_long prog, u_long vers,
				     void (*dispatch)(), int protocol);
extern	  void	       svc_unregister (u_long prog, u_long vers);
extern	  struct       svc_callout *svc_find (u_long prog, u_long vers,
					      struct svc_callout **prev);
extern	  int        svc_sendreply (SVCXPRT *xprt, xdrproc_t xdr_results,
				      caddr_t xdr_location);
extern	  void	       svcerr_noproc (SVCXPRT *xprt);
extern	  void	       svcerr_decode (SVCXPRT *xprt);
extern	  void	       svcerr_systemerr (SVCXPRT *xprt);
extern	  void	       svcerr_auth (SVCXPRT *xprt, enum auth_stat why);
extern	  void	       svcerr_weakauth (SVCXPRT *xprt);
extern	  void	       svcerr_noprog (SVCXPRT *xprt);
extern	  void	       svcerr_progvers (SVCXPRT *xprt, u_long low_vers,
					u_long high_vers);
extern	  void	       svc_getreq (int rdfds);
extern	  void	       svc_getreqset (fd_set *rdfds);
extern	  void	       svc_run (void);
extern	  SVCXPRT *    svcraw_create (void);
extern	  int	       registerrpc (int prognum, int versnum, int procnum,
				    char *(*progname)(), xdrproc_t inproc,
				    xdrproc_t outproc);
extern	  SVCXPRT *    svctcp_create (int sock, u_int sendsize, u_int recvsize);
extern	  SVCXPRT *    svcfd_create (int fd, u_int sendsize, u_int recvsize);
extern	  SVCXPRT *    svcudp_bufcreate (int sock, u_int sendsz, u_int recvsz);
extern	  SVCXPRT *    svcudp_create (int sock);
extern	  int	       svcudp_enablecache (SVCXPRT *transp, u_long size);

# 356 "/usr/local/tornado2.2/ppc/target/h/rpc/svc.h"



}



# 89 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2

# 1 "/usr/local/tornado2.2/ppc/target/h/rpc/svc_auth.h" 1
 

 
 



























 

 





 


















extern "C" {



 



extern	  enum auth_stat  _authenticate (struct svc_req *rqst,
					 struct rpc_msg *msg);
extern	  enum auth_stat  _svcauth_null (void);









}



# 90 "/usr/local/tornado2.2/ppc/target/h/rpc/rpc.h" 2


 






 				 
 	 


}



# 35 "../data/xdrClass.h" 2






static int  xdr_timestamp( XDR * xdrs, cdev_TS_STAMP * ts) {




  if ( xdr_u_long (xdrs, &ts->secPastEpoch) == 0) return 0;
  return (xdr_u_long (xdrs, &ts->nsec)); 

}


extern "C" int xdr_longlong ( XDR * xdrs, long long* llp);
extern "C" int xdr_u_longlong ( XDR * xdrs, unsigned long long* llp);


 
 
 
 
 

	template <class T> inline unsigned XDR_Sizeof( T t ) { 
		return ((((( sizeof(t) ) + (4)  - 1) / (4) ) * (4) ) ); }
# 82 "../data/xdrClass.h"


inline unsigned XDR_Sizeof( char * s ) { 
	return ((((( strlen(s) ) + (4)  - 1) / (4) ) * (4) )  + (4) ); }

inline unsigned XDR_Sizeof( char *, unsigned len ) { 
	return ((((( len ) + (4)  - 1) / (4) ) * (4) )  + (4) );  } 

inline unsigned XDR_Sizeof( void *, unsigned len ) { 
	return ((((( len ) + (4)  - 1) / (4) ) * (4) )  + (4) );  } 

inline unsigned XDR_Sizeof( cdev_TS_STAMP ts ) { 
        return ((((( sizeof(ts) ) + (4)  - 1) / (4) ) * (4) ) );  } 

typedef struct
	{
	unsigned bufLen;
	char   * buf;
	} XDR_DataBlock;

	
 
 
 
 
 
class XDR_Data : public XDR_DataBlock
	{
	public:
		XDR_Data  ( void )
			{ buf = __null ; bufLen = 0; }

		XDR_Data  ( char * Buf, unsigned Len )
			{ buf = __null ; bufLen = 0; assign(Buf, Len); }
			 
		XDR_Data  ( XDR_Data & x )
			{ buf = __null ; bufLen = 0; assign(x.buf, x.bufLen); }
			
		~XDR_Data           ( void ) { deallocate(); }
		unsigned & size     ( void ) { return bufLen; }
		char *   & buffer   ( void ) { return buf; }
		int        ready    ( void ) { return (buf!= __null  && bufLen>0)?1:0; }
		
		void allocate ( unsigned Len ) 
			{
			if(Len==0) XDR_Data::deallocate();
			else if(Len!=bufLen || buf== __null )
				{
				XDR_Data::deallocate(); 
				bufLen = Len;
				buf = new char[bufLen];
				XDR_Data::clear();
				}
			else XDR_Data::clear();
			}
		
		void deallocate ( void )
			{
			if(buf!= __null )
				{
				delete buf;
				buf = __null ;
				}
			bufLen = 0;
			}				
		
		void assign ( char * Buf, unsigned Len)
			{
			XDR_Data::allocate(Len);
			memcpy(buf, Buf, bufLen);
			}		
		
		void clear ( void )
			{
			memset(buf, 0, bufLen);			
			}

		void attachData ( XDR_Data & data )
			{
			attachData(data.buf, data.bufLen);
			}
	
		void attachData ( char * Buf, unsigned BufLen )
			{
			XDR_Data::deallocate();
			buf    = Buf;
			bufLen = BufLen;
			}

		void detachData ( void )
			{
			buf    = 0;
			bufLen = 0;
			}
	};


 
 
 
 
class XDR_Base : public XDR_Data
	{
	protected:
		XDR               xdrs;
		const enum xdr_op op;
		
		XDR_Base          (enum xdr_op xop ) : XDR_Data(), op(xop) {}
		XDR_Base          (XDR_Data & xdrData, enum xdr_op xop) : op(xop)
			{
			allocate(xdrData.size());
			memcpy(buf, xdrData.buffer(), xdrData.size()); 
			(*( xdr() )->x_ops->x_setpostn)( xdr() ,   0 ) ;
			}
		~XDR_Base         ( void )     { deallocate(); }		
			
	public:
		XDR  *   xdr      ( void )     { return &xdrs; } 
		unsigned position ( void )     { return ready()?(*( &xdrs )->x_ops->x_getpostn)( &xdrs ) :0L; }
		
		void   allocate   ( unsigned Len) 
			{
			if(Len==0) XDR_Base::deallocate();
			else if(Len!=bufLen || buf== __null ) 
				{
				XDR_Base::deallocate();
				XDR_Data::allocate(Len);
				xdrmem_create(&xdrs, buf, bufLen, op);
				}
			else XDR_Data::clear();
			}
			
		void   deallocate ( void )
			{
			if(ready())
				{
				if (( &xdrs )->x_ops->x_destroy) (*( &xdrs )->x_ops->x_destroy)( &xdrs ) ;
				XDR_Data::deallocate();
				}
			}

		void   clear      ( void )
			{
			if(ready())
				{
				XDR_Data::clear();
				(*( &xdrs )->x_ops->x_setpostn)( &xdrs ,   0 ) ;
				}
			}

		void   attachData ( XDR_Data & data )
			{
			XDR_Base::attachData(data.buf, data.bufLen);
			}
			
		void   attachData ( char * Buf, unsigned BufLen )
			{
			XDR_Base::deallocate();
			XDR_Data::attachData(Buf, BufLen);
			xdrmem_create(&xdrs, buf, bufLen, op);
			}
			
		void   detachData ( void )
			{
			XDR_Data::detachData();
			XDR_Base::deallocate();
			}
	};
	


 
 
 
 
class XDR_Writer : public XDR_Base
	{
	public:
		XDR_Writer (unsigned len = 0) : XDR_Base(XDR_ENCODE) { XDR_Base::allocate(len); }
		XDR_Writer (XDR_Data & xdrData ) : XDR_Base(xdrData, XDR_ENCODE) {}

		int put_char ( char x )            
			{ return ready()?xdr_char(&xdrs, &x):0; } 
		
		int put_u_char ( unsigned char x )

			{ return ready()?xdr_u_char(&xdrs, &x):0; } 



		
		int put_int ( int x )		
			{ return ready()?xdr_int(&xdrs, &x):0; }
		
		int put_u_int ( unsigned int x )
			{ return ready()?xdr_u_int(&xdrs, &x):0; }
		
		int put_short ( short x )
			{ return ready()?xdr_short(&xdrs, &x):0; }

		int put_u_short( unsigned short x )
			{ return ready()?xdr_u_short(&xdrs, &x):0; }








		int put_long ( long x )
			{ return ready()?xdr_long(&xdrs, &x):0; }

		int put_u_long ( unsigned long x )
			{ return ready()?xdr_u_long(&xdrs, &x):0; }



		int put_longlong (long long x)
		        { 
			  if (ready()) 
			  {
			    register long* lp = (long *)&x;
			    if (( (int)0x12345678  )  == (int)0x12345678 )
			      return ((*( &xdrs )->x_ops->x_putlong)( &xdrs ,   lp++ )  && (*( &xdrs )->x_ops->x_putlong)( &xdrs ,   lp ) );
			    else
			      return ((*( &xdrs )->x_ops->x_putlong)( &xdrs ,   ++lp )  && (*( &xdrs )->x_ops->x_putlong)( &xdrs ,   --lp ) );
			  }
			  else
			    return 0;
			}

		int put_u_longlong ( unsigned long long x )
			{
			  if (ready ()) 
			    {
			    register long* lp = (long *)&x;
			    if (( (int)0x12345678  )  == (int)0x12345678 )
			      return ((*( &xdrs )->x_ops->x_putlong)( &xdrs ,   lp++ )  && (*( &xdrs )->x_ops->x_putlong)( &xdrs ,   lp ) );
			    else
			      return ((*( &xdrs )->x_ops->x_putlong)( &xdrs ,   ++lp )  && (*( &xdrs )->x_ops->x_putlong)( &xdrs ,   --lp ) );
			    }
			  else
			    return 0;
			} 


		int put_float ( float x )
			{ return ready()?xdr_float(&xdrs, &x):0; }

		int put_double ( double x )
			{ return ready()?xdr_double(&xdrs, &x):0; }

		int put_bytes ( char ** bytes, unsigned int num )
			{ return ready()?
			  xdr_bytes(&xdrs, bytes, &num, size()-position()):
			  0; }
		
		int put_string ( char * str )
			{ return ready()?
			  xdr_string(&xdrs, &str, size()-position()):
			  0; }
		
		int put_opaque ( void * data, unsigned len )
			{ int status = 0;
			  if(ready()) 
			  	{
			  	status=xdr_u_int (&xdrs, &len);
			  	if(status) status=xdr_opaque(&xdrs, (char *)data, len);
				}
			  return status; 
			  }
			  
		int  put_timestamp ( cdev_TS_STAMP ts )
		        { return ready()?xdr_timestamp(&xdrs, &ts):0; }

		int put ( char x )           { return put_char(x); }
		int put ( unsigned char x )  { return put_u_char(x); }
		int put ( int x )            { return put_int(x); }
		int put ( unsigned int x )   { return put_u_int(x); }
		int put ( short x )          { return put_short(x); } 
		int put ( unsigned short x ) { return put_u_short(x); }
		int put ( long x )           { return put_long(x); }
		int put ( unsigned long x )  { return put_u_long(x); }
		int put ( float x )          { return put_float(x); }
		int put ( double x )         { return put_double(x); }
		int put ( char * str )       { return put_string(str); }
		int put ( void * x, unsigned len ) { return put_opaque(x, len); }
		int put ( cdev_TS_STAMP ts )       { return put_timestamp(ts); }

		int put (long long x)        {return put_longlong(x); }
		int put ( unsigned long long x ) { return put_u_longlong(x);}


	};


 
 
 
 
class XDR_Reader : public XDR_Base
	{
	public:
		XDR_Reader (unsigned len = 0) : XDR_Base(XDR_DECODE) { XDR_Base::allocate(len); }
		XDR_Reader (XDR_Data & xdrData ) : XDR_Base(xdrData, XDR_DECODE) {}
			
		int get_char ( char & x )		
			{ return ready()?xdr_char(&xdrs, &x):0; } 
			
		int get_u_char ( unsigned char & x )	

			{ return ready()?xdr_u_char(&xdrs, &x):0; } 



			
		int get_int ( int & x )		
			{ return ready()?xdr_int(&xdrs, &x):0; }
			
		int get_u_int ( unsigned int & x )	
			{ return ready()?xdr_u_int(&xdrs, &x):0; }
			
		int get_short ( short & x )		
			{ return ready()?xdr_short(&xdrs, &x):0; }
			
		int get_u_short ( unsigned short & x )	
			{ return ready()?xdr_u_short(&xdrs, &x):0; }








		int get_long ( long & x )		
			{ return ready()?xdr_long(&xdrs, &x):0; }
		
		int get_u_long ( unsigned long & x )	
			{ return ready()?xdr_u_long(&xdrs, &x):0; }



		int get_longlong ( long long & x )		
		        { 
			  if (ready())
			    {
			      register long* lp = (long *) &x;
			      if (( (int)0x12345678  )  == (int)0x12345678 )
				return ((*( &xdrs )->x_ops->x_getlong)( &xdrs ,   lp++ )  && (*( &xdrs )->x_ops->x_getlong)( &xdrs ,   lp ) );
			      else
				return ((*( &xdrs )->x_ops->x_getlong)( &xdrs ,   ++lp )  && (*( &xdrs )->x_ops->x_getlong)( &xdrs ,   --lp ) );
			    }
			  else
			    return 0;
			}
			      
		
		int get_u_longlong ( unsigned long long & x )	
		        { 
			  if (ready())
			    {
			      register long* lp = (long *) &x;
			      if (( (int)0x12345678  )  == (int)0x12345678 )
				return ((*( &xdrs )->x_ops->x_getlong)( &xdrs ,   lp++ )  && (*( &xdrs )->x_ops->x_getlong)( &xdrs ,   lp ) );
			      else
				return ((*( &xdrs )->x_ops->x_getlong)( &xdrs ,   ++lp )  && (*( &xdrs )->x_ops->x_getlong)( &xdrs ,   --lp ) );
			    }
			  else
			    return 0;
			}

		
		int get_float ( float & x )		
			{ return ready()?xdr_float(&xdrs, &x):0; }
		
		int get_double ( double & x )		
			{ return ready()?xdr_double(&xdrs, &x):0; }
		
		int get_bytes ( char ** bytes, unsigned int & num, unsigned int max )
			{ return ready()?xdr_bytes(&xdrs, bytes, &num, max):0; }

		int get_string_len ( void )
			{ return ready()?( *(int *)((char *)buf+ (*( &xdrs )->x_ops->x_getpostn)( &xdrs ) ) ) :0; }

		int get_string ( char ** str, unsigned int max = -1U )
			{ 
			int    result = 0;
			int    slen   = get_string_len()+1;
			char * s      = new char[slen];
			
			if(ready()) 
				{
				result = xdr_string(&xdrs, &s, slen); 
				if(str!= __null )
					{
					if(max==-1U || *str== __null )
						{
						*str = s;
						s = __null ;
						}
					else 
						{
						strncpy(*str, s, max);
						str[max-1] = 0;
						}
					}
				}
			if(s!= __null ) delete s;
			return result;
			}
		
		int get_opaque ( void ** data, unsigned int * len, unsigned int max = -1U)
			{
			int result = 0;
			
			if(ready())
				{
				unsigned int slen;
				char * s;
				
				if((result=xdr_u_int(&xdrs, &slen))!=0)
					{
					s = new char[slen];
					result=xdr_opaque(&xdrs, s, slen);
					}
				if(result!=0)
					{	
					if(*data== __null  || max==-1U)
						{
						*len  = slen;
						*data = s;
						s     = __null ;
						}
					else	{
						*len = (slen<max)?slen:max;
						memcpy(*data, s, *len);
						}
					}
				if(s!= __null ) delete s;
				}
			return result;
			}
		
		int get_timestamp ( cdev_TS_STAMP & ts )		
			{ return ready()?xdr_timestamp(&xdrs, &ts):0; }
			
		int get ( char & x )           { return get_char(x); }
		int get ( unsigned char & x )  { return get_u_char(x); }
		int get ( int & x )            { return get_int(x); }
		int get ( unsigned int & x )   { return get_u_int(x); }
		int get ( short & x )          { return get_short(x); } 
		int get ( unsigned short & x ) { return get_u_short(x); }
		int get ( long & x )           { return get_long(x); }
		int get ( unsigned long & x )  { return get_u_long(x); }
		int get ( float & x )          { return get_float(x); }
		int get ( double & x )         { return get_double(x); }
		int get ( char ** s, unsigned max = -1U) { return get_string(s, max); }	
		int get ( void ** x, unsigned *len, unsigned max = -1U) { return get_opaque(x, len, max); }
		int get ( cdev_TS_STAMP & ts )         { return get_timestamp(ts); }

		int get ( long long & x )      { return get_longlong(x); }
		int get ( unsigned long long & x ){return get_u_longlong(x);}

	};



# 5 "../data/cmlog_cdevPacket.h" 2


 
 
 
 
 
 
 
 
typedef union
	{
	unsigned rawData;
	struct	{
		unsigned version : 16;
		unsigned pad     : 16;
		} value;
	} cmlog_cdevPacketMap;
	
 
 
 
 
 
 
 
class cmlog_cdevPacket
{
protected:
	 
	 
	 
	char   * binary;
	unsigned   binaryLen;

public:
	cmlog_cdevPacket             ( void );
	cmlog_cdevPacket             ( cmlog_cdevPacket & packet );
	virtual ~cmlog_cdevPacket    ( void );

	virtual int  getVersion ( short & version );	
	virtual int  streamOut  ( char ** stream, unsigned * len );
	virtual int  streamIn   ( char *  stream, unsigned   len );
	virtual void detachData ( void );
	virtual int  attachData ( char * stream, unsigned len );
};
	
 
 
 
 
 
 
inline int cmlog_cdevPacket::getVersion ( short & version )
	{
	int           result=-1;
	XDR_Reader    reader;
	cmlog_cdevPacketMap map;

	if(binary!= __null  && binaryLen>0)
		{
		reader.attachData(binary, binaryLen);
		map.rawData = 0;
		if((result = !reader.get(map.rawData))==0)
			{
			version = map.value.version;
			}
		reader.detachData();
		}
	return result;
	}
	
 
 
 
 
 
 
 
 
inline int cmlog_cdevPacket::streamIn ( char * stream, unsigned len )
	{
	if(binary!= __null )
		{
		delete binary;
		binary = __null ;
		}
	binaryLen = 0;
	
	if(len>0 && stream!= __null )
		{
		binary    = new char[len];
		binaryLen = len;
		memcpy(binary, stream, binaryLen);
		}
	return 0;
	}

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inline int cmlog_cdevPacket::streamOut ( char ** stream, unsigned * len )
	{
	*stream = binary;
	*len    = binaryLen;
	return 0;
	}

 
 
 
 
 
 
 
 
 
inline void cmlog_cdevPacket::detachData ( void )
	{
	binary = __null ;
	binaryLen = 0;
	}
	
 
 
 
 
 
 
 
 
inline int cmlog_cdevPacket::attachData ( char * stream, unsigned len )
	{
	if(binary!= __null ) 
		{
		delete binary;
		binary = __null ;
		}
	binaryLen = 0;

	if(stream!= __null  && len>0)
		{
		binary    = stream;
		binaryLen = len;
		}
	return 0;
	}

 
 
 
 
inline cmlog_cdevPacket::cmlog_cdevPacket ( void ) 
	: binary(__null ), binaryLen(0) 
	{}

 
 
 
 
inline cmlog_cdevPacket::cmlog_cdevPacket ( cmlog_cdevPacket & packet )
	: binary(__null ), binaryLen(0)
	{
	streamIn(packet.binary, packet.binaryLen);
	}

 
 
 
 
inline cmlog_cdevPacket::~cmlog_cdevPacket ( void )
	{
	if(binary!= __null )
		{
		delete binary;
		binary = __null ;
		}
	binaryLen = 0;
	}


# 4 "../data/cmlog_cdevPacket1.h" 2


 
 
 
 
 
 
 
 
typedef union
	{
	unsigned rawData;
	struct  {
		unsigned version             : 16;
		unsigned clientIDSet         : 1;
		unsigned transIndexSet       : 1;
		unsigned cancelTransIndexSet : 1;
		unsigned localDataIndexSet   : 1;
		unsigned foreignDataIndexSet : 1;
		unsigned operationCodeSet    : 1;
		unsigned deviceListSet       : 1;
		unsigned messageSet          : 1;
		unsigned dataSet             : 1;
		unsigned contextSet          : 1;
		unsigned tagMapSet           : 1;
		unsigned pad                 : 5;
		} value;
	} cmlog_cdevPacketMap1;

















 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
class cmlog_cdevPacket1 : public cmlog_cdevPacket
{
private:
	unsigned int   map;
	XDR_Reader     reader;
	
		
protected:
	typedef enum 
	{	GOTO_CLIENTID=1,
		GOTO_TRANSINDEX,
		GOTO_CANCELTRANSINDEX,
		GOTO_LOCALDATAINDEX,
		GOTO_FOREIGNDATAINDEX,
		GOTO_OPERATIONCODE,
		GOTO_DEVICELIST,
		GOTO_MESSAGE,
		GOTO_DATA,
		GOTO_CONTEXT,
		GOTO_TAGMAP} POSITION_FLAG;

	 
	 
	 
	 
	 
	 
	 
	int setBinaryPosition (XDR_Reader & reader, POSITION_FLAG flag );

public:
	cmlog_cdevPacket1 ( cmlog_cdevPacket1 &packet );
	cmlog_cdevPacket1 ( short            clientID         = -1, 
		      unsigned         transIndex       = 0, 
                      unsigned         cancelTransIndex = 0,
		      unsigned         localDataIndex   = 0, 
		      unsigned         foreignDataIndex = 0,
		      unsigned         operationCode    = 0,
		      unsigned         deviceCount      = 0,
		      char **          deviceList       = __null ,
		      char *           message          = __null ,
		      cdevData *       data             = __null ,
		      cdevData *       context          = __null ,
		      cdevData *       tagMap           = __null  );	
	
	virtual ~cmlog_cdevPacket1 ( void );
	
	 
	 
	 
	 
	 
	virtual int  streamIn  ( char * stream, unsigned len );
	
	 
	 
	 
	 
	 
	 
	int attachData ( char * stream, unsigned len );

	 
	 
	 
	virtual void asciiDump ( FILE * fp = (*__stdout())  );

	 
	 
	 
	 
	 
	void set ( short            clientID         = -1, 
		   unsigned         transIndex       = 0,
		   unsigned         cancelTransIndex = 0, 
		   unsigned         localDataIndex   = 0, 
		   unsigned         foreignDataIndex = 0,
		   unsigned         operationCode    = 0,
		   unsigned         deviceCount      = 0,
		   char **          deviceList       = __null ,
		   char *           message          = __null ,
		   cdevData *       data             = __null ,
		   cdevData *       context          = __null ,
		   cdevData *       tagMap           = __null  );	

	 
	 
	 
	 
	 
	int   set ( char*            buffer,
	           unsigned           size,
                   short            clientID         = -1, 
		   unsigned         transIndex       = 0,
		   unsigned         cancelTransIndex = 0, 
		   unsigned         localDataIndex   = 0, 
		   unsigned         foreignDataIndex = 0,
		   unsigned         operationCode    = 0,
		   unsigned         deviceCount      = 0,
		   char **          deviceList       = __null ,
		   char *           message          = __null ,
		   cdevData *       data             = __null ,
		   cdevData *       context          = __null ,
		   cdevData *       tagMap           = __null  );	

	 
	 
	 
	 
	 
	static unsigned checkLength (short            clientID         = -1, 
	  unsigned         transIndex       = 0,
	  unsigned         cancelTransIndex = 0, 
	  unsigned         localDataIndex   = 0, 
	  unsigned         foreignDataIndex = 0,
	  unsigned         operationCode    = 0,
	  unsigned         deviceCount      = 0,
	  char **          deviceList       = __null ,
	  char *           message          = __null ,
	  cdevData *       data             = __null ,
	  cdevData *       context          = __null ,
	  cdevData *       tagMap           = __null  );	


	 
	 
	 
	 
	 
	 
	 
	virtual int getVersion  ( short & version );
	int getClientID         ( short & clientID );
	int getTransIndex       ( unsigned & transIndex );
	int getCancelTransIndex ( unsigned & cancelTransIndex );
	int getLocalDataIndex   ( unsigned & localDataIndex );
	int getForeignDataIndex ( unsigned & foreignDataIndex );
	int getOperationCode    ( unsigned & operationCode );
	int getDeviceList       ( char ** & deviceList, unsigned & deviceCount );
	int getMessage          ( char * & message );
	int getData             ( cdevData & data );
	int getContext          ( cdevData & context );
	int getTagMap           ( cdevData & tagMap );
	int get                 ( short    & clientID, 
				  unsigned & transIndex,
				  unsigned & cancelTransIndex,
				  unsigned & localDataIndex,
				  unsigned & foreignDataIndex,
				  unsigned & operationCode,
				  unsigned & deviceCount,
				  char **  & deviceList,
				  char *   & message,
				  cdevData & data,
				  cdevData & context,
				  cdevData & tagMap);

	 
	 
	 
	 
	 
	int hasClientID         ( void ) { return map & 0x00008000 ; }
	int hasTransIndex       ( void ) { return map & 0x00004000 ;}
	int hasCancelTransIndex ( void ) { return map & 0x00002000 ; }
	int hasLocalDataIndex   ( void ) { return map & 0x00001000 ; }
	int hasForeignDataIndex ( void ) { return map & 0x00000800 ; }
	int hasOperationCode    ( void ) { return map & 0x00000400 ; }
	int hasDeviceList       ( void ) { return map & 0x00000200 ; }
	int hasMessage          ( void ) { return map & 0x00000100 ; }
	int hasData             ( void ) { return map & 0x00000080 ; }
	int hasContext          ( void ) { return map & 0x00000040 ; }
	int hasTagMap           ( void ) { return map & 0x00000020 ;}

        int clipVersionNum (unsigned int a) {return ( ((a & 0xffff0000 ) >> 16) & 0x0000ffff);}
};


# 44 "../Common/cmlogMsg.h" 2











 
 
 

class cmlogPacket;

# 70 "../Common/cmlogMsg.h"




const int CMLOG_PACKET_PREDATA_SIZE = 2*sizeof (int);

 
 
const int CMLOG_PACKET_MAX_SIZE = 10*4096;

const int CMLOG_PACKET_LIST_SIZE = 1024;

inline int cmlogRoundup (int a, int b)
{
  return ((a + b - 1)/b)*b;
}

class cmlogMsg
{
public:
   
  
   
  cmlogMsg  (void);
   
  cmlogMsg  (unsigned type, cdevData& data, int reqId = 0);
   
  cmlogMsg  (cmlog_cdevMessage& message);

  cmlogMsg  (cmlogMsg& msg);
  ~cmlogMsg (void);

   
  int  size (void);


   
  unsigned type     (void);
  void     type     (unsigned type);

   
  int  reqId        (void);

   
  void*  channelId   (void);
   
  void   channelId   (void* id);

   
  int  sameChannel   (void* id);

   
  operator cmlog_cdevMessage& (void);

   
  friend int operator << (int out, cmlogMsg& msg);




   
   
  friend int operator >>  (int in,  cmlog_cdevPacket& packet);

   
  static int cmlog_recv_n (int in, char* buffer, size_t len);

   
   
   
   
  static int msgToBuffer   (cmlogMsg& msg, char* buffer);
   
   
   
  static int msgToBuffer   (cmlogMsg& msg, char* buffer, int* len);
   
   
  static int bufferToMsg   (char* buffer, cmlogMsg& msg, int start, int bufsize);
   
   
   
   

  static int bufferToMsg   (char* buffer, cmlogMsg& msg);

   

  static unsigned char getMagicNumber (int iheader);
   
  static unsigned int  getMsgSize     (int iheader);
   
  static int setMsgHeader             (unsigned int size);
   

private:
   
  cmlog_cdevMessage data_;

   
  cmlogMsg& operator = (const cmlogMsg& msg);

   
  friend class cmlogPacket;
};

 
 
class cmlogPacket
{
public:
   
  cmlogPacket  (void);
  ~cmlogPacket (void);

   
   
  int insert (cmlogMsg& msg);

   
   
  int overflow (cmlogMsg& msg);

   
   
   
  int insert (cmlog_cdevPacket& packet, int size);
  
   
   
   
  int overflow (cmlog_cdevPacket& packet, int size);

   
  int empty  (void);

   
  int fullPacket (void);
   
  int emptyPacket (void);

   
  int  dataSize   (void);

   
  int  packetSize (void);


   
  unsigned int numberOfData (void);

   
   
  cmlogMsg**    messages     (void);


   
   
  void          reset        (void);
       







   
  friend int operator << (int out, cmlogPacket& p);
  friend int operator >> (int in,  cmlogPacket& p);

protected:
   
  void decode (void);
  void encode (void);

private:
   
   
   
  unsigned int  size_;
   
  unsigned int  number_;
   
  int           full_;

   
  char          *buffer_;






   
  cmlogPacket (const cmlogPacket &);
  cmlogPacket& operator = (const cmlogPacket& p);
};


 
 
typedef union
{
  unsigned rawData;
  struct  {
    unsigned version             : 16;
    unsigned clientIDSet         : 1;
    unsigned transIndexSet       : 1;
    unsigned cancelTransIndexSet : 1;
    unsigned localDataIndexSet   : 1;
    unsigned foreignDataIndexSet : 1;
    unsigned operationCodeSet    : 1;
    unsigned deviceListSet       : 1;
    unsigned messageSet          : 1;
    unsigned dataSet             : 1;
    unsigned contextSet          : 1;
    unsigned tagMapSet           : 1;
    unsigned pad                 : 5;
  } value;
}cmlogVxMap1;

class cmlogVxPacket1
{
public:
   
  cmlogVxPacket1  (void);
   
  ~cmlogVxPacket1 (void);
  
   
  void set (short clientId, unsigned operatioCode,
	    char* message, 
	    int arg0, int arg1, int arg2, int arg3,
	    int arg4, int arg5, int arg6, int arg7,
	    int arg8, int arg9);

  size_t size (void);

   
   
   
   
  int streamOut (char* buffer, size_t& size, size_t maxsize);

private:
  cmlogVxMap1       map_;
  short             clientId_;
  unsigned          operationCode_;
  char*             message_;

  int               arg0_;
  int               arg1_;
  int               arg2_;
  int               arg3_;
  int               arg4_;
  int               arg5_;
  int               arg6_;
  int               arg7_;
  int               arg8_;
  int               arg9_;
};





  

# 41 "cmlogClient.h" 2



inline void CMLOG_ISR_CHECK (void)
{
  if (intContext ()) {
    ::logMsg ("Not a callable routine from ISR\n", 0, 0, 0, 0, 0, 0);
    return;
  }
}











class cmlogClient;

class cmlogClientTagCallback: public cdevTagTableCallback
{
public:
  cmlogClientTagCallback  (cmlogClient* client);
  ~cmlogClientTagCallback (void);

  virtual void callback (int tag, char* name);

private:
  cmlogClient* client_;

   
  cmlogClientTagCallback (cmlogClientTagCallback& cbk);
  cmlogClientTagCallback& operator = (cmlogClientTagCallback & cbk);
};

class cmlogClient
{
public:




  static cmlogClient* logClient (void);

  ~cmlogClient (void);

   

   
  int connect     (int conntionRetries = 3);
   
  int connect     (const cdevData& data, int connectionRetries = 3);
   
  int disconnect  (void);
   
  int connected   (void) const;

   
  int setThrottle (char* tag,  int size, int limit, double delta);
   
  int getThrottle (char** tag, int& size, int& limit, double& delta);

   
  int setVerbosityThreshold (int thresh);
  int getVerbosityThreshold (void) const;

  int setSeverityThreshold (int thresh);
  int getSeverityThreshold (void) const;  

   
  int postData        (cdevData& data);
   
   
  int postStaticData  (cdevData& data);
   
   
  int postError   (int verbosity, int severity, 
		   int code, char* facility,
		   char* format, ...);
   
  int logMsg     (char* format, ...);

   
  int getFd      (void) const;


   
  int logMsgI    (char* format, int arg0, int arg1,
		  int   arg2,   int arg3, int arg4,
		  int   arg5,   int arg6, int arg7,
		  int   arg8,   int arg9);
  int postErrorI (int verbosity, int severity, 
		  int code, char* facility,
		  char* format, int arg0, int arg1,
		  int   arg2,   int arg3, int arg4,
		  int   arg5);


protected:

   
  cmlogClient  (char* progname = 0);


   
  void  getUserInfo (void);

   
   
  int udpToClntDOpen (unsigned short port);

   
  int talkToClntD  (int numRetries);

   
   
   
   
  static int udpSendRecv    (int fd, char* outbuff, int outsize,
			     char* inbuf, int insize, 
			     struct sockaddr* destaddr,
			     int    destlen,
			     int    numRetries);

   
  int openNamedPipe         (void);

   
  int sendConnectionInfo    (cdevData* cxt = 0);

   
  int sendDisconnInfo       (void);

   
  int sendTagMapInfo        (int tag, char* name);

   
  unsigned short findServerUdpPort (void)  ;


  static int nvramStore(BOOT_PARAMS* parms);




private:
   
  char            *progname_;
   
  int             connected_;
   
  short           clientId_;

   
  pid_t           taskid_;
  char*           username_;
  char*           hostname_;
  char*           displayname_;

   
  struct sockaddr_in udp_addr_;
  int                fd_;

   
  int                fifo_;

   
  cmlogClientTagCallback* tagCbk_;

   
  cmlogFilter             filter_;


  cpMutex                 lock_;
  cpMutex*                cmlog_rlock;



   
  char                    sbuf_[2048 ];
   
  char                    format_[256 ];
   
  cmlogVxPacket1          packet_;

   
  friend int cmlog_logmsgI (cmlog_client_t client,
			    int verbosity, int severity, 
			    int code, char* facility,
			    char* format, int arg0, int arg1,
			    int   arg2,   int arg3, int arg4,
			    int   arg5);
  friend int cmlog_logtextI (cmlog_client_t client,
			     char* format, 
			     int arg0, int arg1,
			     int   arg2,   int arg3, int arg4,
			     int   arg5,   int arg6, int arg7,
			     int   arg8,   int arg9);

   
  static  cmlogClient* gclient_;


   
  friend class cmlogClientTagCallback;
  
   
  cmlogClient     (const cmlogClient& cl);
  cmlogClient&    operator = (const cmlogClient& cl);
};


# 75 "cmlogClient.cc" 2














extern "C" unsigned short cmlogVxClientId (void);
extern "C" int            cmlogVxFifoFd   (void);
extern "C" int            cmlogVxFifoFull (void);
extern "C" int            cmlogVxIncDroppedMsgsCount (void);

extern     int            cmlog_clientd_running;
extern cpMutex*           cmlog_rlock;
extern cpConditionMutex*  cmlog_rcond;

cmlogClient* cmlogClient::gclient_ = 0;







 
 
 
cmlogClientTagCallback::cmlogClientTagCallback (cmlogClient* client)
:cdevTagTableCallback (), client_ (client)
{



   
}

cmlogClientTagCallback::~cmlogClientTagCallback (void)
{



   
}

void
cmlogClientTagCallback::callback (int tag, char* name)
{
  client_->sendTagMapInfo (tag, name);
}


 
 
 
static int cmlogUdpBackOff[]={
  1, 2, 4, 8, 16, 32
};

 
 


cmlogClient::cmlogClient (char* progname)
:connected_ (0), clientId_ (-1), fd_ (0), fifo_ (0),
 filter_ (100 , 100 , 100 )
{





  cmlog_rlock = &lock_;


  if (progname) {
    progname_ = new char[::strlen (progname) + 1];
    ::strcpy (progname_, progname);
  }
  else {
    progname_ = new char[::strlen ("UNKNOWN") + 1];
    ::strcpy (progname_, "UNKNOWN");
  }
  
   
  cmlogUtil::setTags ();

   
  tagCbk_ = new cmlogClientTagCallback (this);
  cdevData::addTagCallback (tagCbk_);

   
  getUserInfo ();
}

cmlogClient::~cmlogClient (void)
{



  delete []progname_;
  delete []username_;
  delete []hostname_;
  delete []displayname_;

  if (connected_) {



  }

  fifo_ = 0;

   
  delete tagCbk_;
}

int
cmlogClient::connect (int numConnectionRetries) 
{
  if (!connected_) {
    int st;
# 231 "cmlogClient.cc"

    while (!cmlog_rcond) {
      printf ("cmlogClientD is not loaded yet\n");
      taskDelay (sysClkRateGet ());
    }

     
    cmlog_rlock->acquire ();
    while (!cmlog_clientd_running) {
      printf ("Waiting for cmlogClientD to start up\n");
      cmlog_rcond->wait ();
    }

     
    clientId_ = cmlogVxClientId ();



    if (clientId_ < 1234) {
      cmlog_rlock->release ();
      return -1 ;
    }

    if (openNamedPipe () == -1) {
      cmlog_rlock->release ();
      return -1 ;
    }
    if (sendConnectionInfo () == -1) {
      cmlog_rlock->release ();
      return -1 ;
    }
    connected_ = 1;      
    cmlog_rlock->release ();

  }
  return 0 ;
}  

int
cmlogClient::connect (const cdevData& context, int numConnectionRetries) 
{
  if (!connected_) {
    int st;
# 299 "cmlogClient.cc"

    while (!cmlog_rcond) {
      printf ("cmlogClientD is not loaded yet\n");
      taskDelay (sysClkRateGet ());
    }

     
    cmlog_rlock->acquire ();
    while (!cmlog_clientd_running) {
      printf ("Waiting for cmlogClientD to start up\n");
      cmlog_rcond->wait ();
    }
     
    clientId_ = cmlogVxClientId ();



    if (clientId_ < 1234) {
      cmlog_rlock->release ();
      return -1 ;
    }

    if (openNamedPipe () == -1) {
      cmlog_rlock->release ();
      return -1 ;
    }

    if (sendConnectionInfo ((cdevData *)&context) == -1) {
      cmlog_rlock->release ();
      return -1 ;
    }
    connected_ = 1;    
    cmlog_rlock->release ();

  }
  return 0 ;
}  

int
cmlogClient::connected (void) const
{

  cpMutexGuard guard (*cmlog_rlock);

  return connected_;
}

int
cmlogClient::disconnect (void)
{

  cpMutexGuard guard (*cmlog_rlock);


# 361 "cmlogClient.cc"


  return 0 ;
}

int
cmlogClient::setThrottle (char* tag, int size, int limit, double delta)
{

  cpMutexGuard guard (*cmlog_rlock);


  return filter_.setThrottle (tag, size, limit, delta);
}

int
cmlogClient::getThrottle (char** tag, int& size, int& limit, double& delta)
{

  cpMutexGuard guard (*cmlog_rlock);

  return filter_.getThrottle (tag, size, limit, delta);
}

int
cmlogClient::setSeverityThreshold (int th)
{

  cpMutexGuard guard (*cmlog_rlock);

  return filter_.setSeverityThreshold (th);
}

int 
cmlogClient::getSeverityThreshold (void) const
{

  cpMutexGuard guard (*cmlog_rlock);

  return filter_.getSeverityThreshold ();
}

int 
cmlogClient::getVerbosityThreshold (void) const
{

  cpMutexGuard guard (*cmlog_rlock);

  return filter_.getVerbosityThreshold ();
}

int 
cmlogClient::setVerbosityThreshold (int thresh)
{

  cpMutexGuard guard (*cmlog_rlock);

  return filter_.setVerbosityThreshold (thresh);
}

int
cmlogClient::postData (cdevData& data)
{
   
  CMLOG_ISR_CHECK ();


  cpMutexGuard guard (*cmlog_rlock);


  if (connected_) {
    if (filter_.filter (data) != 83 ) {
# 442 "cmlogClient.cc"


      cmlog_cdevMessage message (clientId_, 0, 0, 0, 0,
				 ((unsigned)3100) , 0, 0, 0, 
				 &data, 0, 0);
      cmlogMsg msg (message);


      if (cmlogVxFifoFd () == 0) {
	 
	printf ("Client daemon is gone\n");
	connected_ = 0;
	return 80 ;
      }

      if (cmlogVxFifoFull ()) {
	cmlogVxIncDroppedMsgsCount ();
	return 83 ;
      }

      
      if (fifo_ << msg > 0)
	return 0 ;
      return -1 ;
    }
    return 83 ;
  }
  else {
    char output[256];

    if (data.get (cmlogUtil::CMLOG_TEXT_TAG, output, sizeof (output))
	== 0 ) 
      fprintf ((*__stderr()) , "%s\n", output);
    
    return 80 ;
  }
}

int
cmlogClient::postStaticData (cdevData& data)
{
   
  CMLOG_ISR_CHECK ();


  cpMutexGuard guard (*cmlog_rlock);


  if (connected_) {
    if (filter_.filter (data) != 83 ) {






      cmlog_cdevMessage message (clientId_, 0, 0, 0, 0,
				 ((unsigned)3100) , 0, 0, 0, 
				 0, 0, 0);
      message.setData (&data, 1);  

      cmlogMsg msg (message);


      if (cmlogVxFifoFd () == 0) {
	 
	printf ("Client daemon is gone\n");
	connected_ = 0;
	return 80 ;
      }

      if (cmlogVxFifoFull ()) {
	cmlogVxIncDroppedMsgsCount ();
	return 83 ;
      }

      
      if (fifo_ << msg > 0)
	return 0 ;
      return -1 ;
    }
    return 83 ;
  }
  else {
    char output[256];

    if (data.get (cmlogUtil::CMLOG_TEXT_TAG, output, sizeof (output))
	== 0 ) 
      fprintf ((*__stderr()) , "%s\n", output);
    
    return 80 ;
  }
}

int
cmlogClient::postError (int verbosity, int severity, 
			int code, char* facility,
			char* format, ...)
{
  CMLOG_ISR_CHECK ();

  cdevData data;
  
   
  data.insert (cmlogUtil::CMLOG_VERBOSITY_TAG, verbosity);
  data.insert (cmlogUtil::CMLOG_SEVERITY_TAG, severity);
  data.insert (cmlogUtil::CMLOG_CODE_TAG, code);
  data.insert (cmlogUtil::CMLOG_FACILITY_TAG, facility);
  data.insert (cmlogUtil::CMLOG_TEXT_TAG, (char *)("Wrong Client Syntax") );
  
  va_list arp;

  char *p;
  char strtmp[256], tagName[64];
  int ival, tag, i = 0;
  double dval;
  char cval;


  (__builtin_next_arg (  format ), __builtin_memcpy ((  arp  ), __builtin_saveregs (), sizeof(__gnuc_va_list)) ) ;
  
  for (p = format; *p; p++) {
    if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
      continue;
    if (*p == '%') {
      switch(*++p) {
      case 'd': 
      case 'i':
      case 'x':
      case 'X':
      case 'o':
      case 'u':
	ival = __extension__ (*({	register   int  *__ptr;	if ((__builtin_classify_type(*(   int   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  int  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   int  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   int   *)0) == 8)  && sizeof (  int ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  int ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  int  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   int   *)0) >= 12)  || (__builtin_classify_type(*(   int   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    int  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  int  **__pptr = (  int  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  int ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  int  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  int ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  int  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, ival);
	break;
      case 'f':
      case 'g':
      case 'F':
      case 'G':
	dval = __extension__ (*({	register   double  *__ptr;	if ((__builtin_classify_type(*(   double   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  double  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   double  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   double   *)0) == 8)  && sizeof (  double ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  double ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  double  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   double   *)0) >= 12)  || (__builtin_classify_type(*(   double   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    double  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  double  **__pptr = (  double  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  double ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  double  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  double ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  double  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, dval);
	break;
      case 's':
	::strncpy(strtmp, __extension__ (*({	register   char *  *__ptr;	if ((__builtin_classify_type(*(   char *   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char *  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char *  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char *   *)0) == 8)  && sizeof (  char * ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char * ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char *  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char *   *)0) >= 12)  || (__builtin_classify_type(*(   char *   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char *  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char *  **__pptr = (  char *  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char * ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char *  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char * ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char *  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) , sizeof (strtmp) - 1);
	strtmp[sizeof (strtmp) - 1] = '\0';

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, strtmp);
	break; 
      case 'c':



	cval = __extension__ (*({	register   char  *__ptr;	if ((__builtin_classify_type(*(   char   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char   *)0) == 8)  && sizeof (  char ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char   *)0) >= 12)  || (__builtin_classify_type(*(   char   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char  **__pptr = (  char  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, cval);
	break;
      default:
	printf ("The argument type % %c not supported  \n", *p);
	break;
      }
      i = 0;
    }    
    else if ((tagName[i++] = *p) == '=') {
      i--;
      tagName[i] = '\0'; 
    }
  }
  ((void)0) ;  

  return postData (data);
}

int
cmlogClient::logMsg (char* format, ...)
{
  CMLOG_ISR_CHECK ();

  cdevData data;

  va_list arp;

  char *p;
  char strtmp[256], tagName[64];
  int ival, tag, i = 0;
  double dval;
  char cval;

  data.insert (cmlogUtil::CMLOG_TEXT_TAG, (char *)("Wrong Client Syntax") );
  (__builtin_next_arg (  format ), __builtin_memcpy ((  arp  ), __builtin_saveregs (), sizeof(__gnuc_va_list)) ) ;
  
  for (p = format; *p; p++) {
    if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
      continue;
    if (*p == '%') {
      switch(*++p) {
      case 'd': 
      case 'i':
      case 'x':
      case 'X':
      case 'o':
      case 'u':
	ival = __extension__ (*({	register   int  *__ptr;	if ((__builtin_classify_type(*(   int   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  int  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   int  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   int   *)0) == 8)  && sizeof (  int ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  int ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  int  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   int   *)0) >= 12)  || (__builtin_classify_type(*(   int   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    int  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  int  **__pptr = (  int  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  int ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  int  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  int ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  int  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, ival);
	break;
      case 'f':
      case 'g':
      case 'F':
      case 'G':
	dval = __extension__ (*({	register   double  *__ptr;	if ((__builtin_classify_type(*(   double   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  double  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   double  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   double   *)0) == 8)  && sizeof (  double ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  double ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  double  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   double   *)0) >= 12)  || (__builtin_classify_type(*(   double   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    double  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  double  **__pptr = (  double  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  double ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  double  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  double ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  double  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, dval);
	break;
      case 's':
	::strncpy(strtmp, __extension__ (*({	register   char *  *__ptr;	if ((__builtin_classify_type(*(   char *   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char *  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char *  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char *   *)0) == 8)  && sizeof (  char * ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char * ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char *  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char *   *)0) >= 12)  || (__builtin_classify_type(*(   char *   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char *  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char *  **__pptr = (  char *  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char * ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char *  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char * ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char *  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) , sizeof (strtmp) - 1);
	strtmp[sizeof (strtmp) - 1] = '\0';

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, strtmp);
	break; 
      case 'c':



	cval = __extension__ (*({	register   char  *__ptr;	if ((__builtin_classify_type(*(   char   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char   *)0) == 8)  && sizeof (  char ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char   *)0) >= 12)  || (__builtin_classify_type(*(   char   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char  **__pptr = (  char  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, cval);
	break;
      default:
	printf ("The argument type % %c not supported  \n", *p);
	break;
      }
      i = 0;
    }    
    else if ((tagName[i++] = *p) == '=') {
      i--;
      tagName[i] = '\0';
    }
  }
  ((void)0) ;  

  return postData (data);
}

int
cmlogClient::getFd (void) const
{

  cpMutexGuard guard (*cmlog_rlock);

  return fifo_;
}

void
cmlogClient::getUserInfo (void)
{
# 745 "cmlogClient.cc"

  BOOT_PARAMS params;

# 760 "cmlogClient.cc"

  nvramStore (&params);   

  username_ = new char[::strlen(params.usr) + 1];
  ::strcpy (username_,params.usr);

  hostname_ = new char[::strlen (params.targetName) + 1];
  ::strcpy (hostname_, params.targetName);


  taskid_ = taskIdSelf ();

  displayname_ = new char[::strlen ("VXWORKS") + 1];
  ::strcpy (displayname_, "VXWORKS");


}  

int
cmlogClient::udpToClntDOpen (unsigned short port)
{
  struct sockaddr_in my_addr;
  struct hostent*    hp = 0;

   
  ::memset (&udp_addr_, 0, sizeof (udp_addr_));
  udp_addr_.sin_family = 2 ;
  udp_addr_.sin_port = ( port ) ;

# 801 "cmlogClient.cc"

  int targetAddr = 0;
  if ((targetAddr = hostGetByName (hostname_)) != (-1) ) 
    ::memcpy (&udp_addr_.sin_addr, &targetAddr, sizeof (targetAddr));
  else {
    fprintf ((*__stderr()) , "Cannot find local ip addr for %s\n", hostname_);
    exit (1);
  }


   
  if ((fd_ = socket (2 , 2 , 0)) < 0) {
    fprintf ((*__stderr()) , "udp_open: cannot create socket\n");
    fd_ = -1;
    return -1;
  }

   
  ::memset (&my_addr, 0, sizeof (my_addr));
  my_addr.sin_family = 2 ;
  my_addr.sin_addr.s_addr = ( (u_long)0x00000000  ) ;
  my_addr.sin_port = ( 0 ) ;
  if (bind (fd_, (struct sockaddr *)&my_addr, sizeof (my_addr)) < 0) {
    fprintf ((*__stderr()) , "udp error: bind error\n");
    close (fd_);
    fd_ = -1;
    return -1;
  }

  return 0;
}

int
cmlogClient::talkToClntD (int numConnRetries)
{
  char outbuff[1024];
  int  len = sizeof (outbuff);

   
  cdevData pdata;
  unsigned short port = findServerUdpPort ();
  pdata.insert (cmlogUtil::CMLOG_VALUE_TAG, port);

  cmlogMsg msg (((unsigned)3004) , pdata, 0);

  if (cmlogMsg::msgToBuffer (msg, outbuff, &len) == -1)
    return -1;

  return cmlogClient::udpSendRecv (fd_, outbuff, len, 
				   (char *)&clientId_, sizeof (clientId_),
				   (struct sockaddr *)&udp_addr_,
				   sizeof (udp_addr_),
				   numConnRetries);
}

int
cmlogClient::udpSendRecv (int fd, 
			  char* outbuff, int outbytes,
			  char* inbuff,  int inbytes,
			  struct sockaddr*  destaddr, int destlen,
			  int numRetries)
{
  int n = 0, i = 0, nfound = 0;
  struct timeval tv;
  fd_set         readfd;
  int            realNumRetries;
  int            dstarted = 0;

  realNumRetries = 
    (numRetries < 6 ) ? numRetries : 6 ;
  if (realNumRetries <= 0)
    realNumRetries = 3;

  while (i < realNumRetries) {
     
    if (sendto (fd, outbuff, outbytes, 0, destaddr, destlen) != outbytes) {
      fprintf ((*__stderr()) , "Send error on udp socket %d\n", fd);
      return -1;
    }
    
    bzero((char *)( &readfd ), sizeof(*( &readfd ))) ;
    ((  &readfd )->fds_bits[( fd )/ (sizeof(fd_mask) * 8 ) ] |= (1 << (( fd ) % (sizeof(fd_mask) * 8 ) ))) ;
    tv.tv_sec = cmlogUdpBackOff[i];
    tv.tv_usec = 0;

    do {

      nfound = select (fd + 1, &readfd, 0, 0, &tv);
# 897 "cmlogClient.cc"

    }while (nfound == -1 && __errnoRef()  == 4 );

    if (nfound == -1) {  
      fprintf ((*__stderr()) , "bad fd number %d\n", fd);
      return -1;
    }
    else if (nfound == 0) {  
# 913 "cmlogClient.cc"

      i++;
    }
    else {
       




      n = recvfrom (fd, inbuff, inbytes, 0, (struct sockaddr *)0, (int *)0);

      if (n < 0) {
# 934 "cmlogClient.cc"

	return -1;

      }
      else
	return n;
    }
  }
  return 0;
}

int
cmlogClient::openNamedPipe (void)
{
   
  unsigned long ipaddr = cmlogUtil::hostIpAddr ();
  char          pipepath[128];
  sprintf       (pipepath, "/pipe/cmlog_%u" , ipaddr);








   
  fifo_ = cmlogVxFifoFd ();

  return 0;
}

int
cmlogClient::sendConnectionInfo (cdevData* cxt)
{
   
  char**     tagnames;
  int*       tagvalues;
  int        ntags = 0;
  cdevData   tagmap, ccxt;

  cdevData::readTagTable (tagvalues, tagnames, ntags);
  if (ntags == 0) 
    fprintf ((*__stderr()) , "no tags found in the tag table\n");
  else {
     
    tagmap.insert (1, tagvalues, ntags);
     
    tagmap.insert (2, tagnames, ntags);
     
    delete []tagvalues;
    delete []tagnames;
  }

  if (cxt == 0) {  
    ccxt.insert (cmlogUtil::CMLOG_HOST_TAG, hostname_);
    ccxt.insert (cmlogUtil::CMLOG_PID_TAG,  taskid_);
    ccxt.insert (cmlogUtil::CMLOG_NAME_TAG, progname_);
    ccxt.insert (cmlogUtil::CMLOG_USER_TAG, username_);
    ccxt.insert (cmlogUtil::CMLOG_DISP_TAG, displayname_);
    ccxt.insert (cmlogUtil::CMLOG_CLASS_TAG, (char *)("UNKNOWN"));
    ccxt.insert (cmlogUtil::CMLOG_DOMAIN_TAG, (char *)("UNKNOWN"));
    ccxt.insert (cmlogUtil::CMLOG_FACILITY_TAG, (char *)("UNKNOWN"));
    cxt = &ccxt;
  }
  else {
     
    int cpid;
    if (cxt->get (cmlogUtil::CMLOG_PID_TAG, &cpid) != 0 )
      cxt->insert (cmlogUtil::CMLOG_PID_TAG, taskid_);
  }

  cmlog_cdevMessage message (clientId_, 0, 0, 0, 0,
			     ((unsigned)3006) , 0, 0, 0, 
			     cxt, 0, &tagmap);

   
  cmlogMsg sendmsg (message);

  return fifo_ << sendmsg;
}

int
cmlogClient::sendTagMapInfo (int tagvalue, char* tagname)
{

  cpMutexGuard guard (*cmlog_rlock);


  cdevData   tagmap;
  
   
  tagmap.insert (1, tagvalue);
   
  tagmap.insert (2, tagname);

  cmlog_cdevMessage message (clientId_, 0, 0, 0, 0,
		       ((unsigned)3005) , 0, 0, 0, 
		       0, 0, &tagmap);

   
  cmlogMsg sendmsg (message);

  return fifo_ << sendmsg;
}

int
cmlogClient::sendDisconnInfo (void)
{
  cmlog_cdevMessage message (clientId_, 0, 0, 0, 0,
			     ((unsigned)3007) , 0, 0, 0,
			     0, 0, 0);
  
  cmlogMsg sendmsg (message);
  return fifo_ << sendmsg;
}

unsigned short
cmlogClient::findServerUdpPort (void)
{
   
  char* tmp = ::getenv ("CMLOG_PORT");
  int   tmpport = 0;
  if (tmp)
    sscanf (tmp, "%d", &tmpport);
  else
    tmpport = ((unsigned short)9900) ;
  
  unsigned short brdPort = (unsigned short)tmpport;
  return brdPort;
}




static char fbuf[] = "verbosity=%d severity=%d code=%d facility=%s";

 
int
cmlogClient::nvramStore (BOOT_PARAMS* params)
{





  char boot_line [1024 ];
  
  if (sysNvRamGet (boot_line, 254 , 0) == -1 ||
      boot_line [0] == '\0' )
    {
      printf ("Unable to get from NV Ram\n");
      exit (1);
    }

  bootStringToStruct (boot_line, params);

# 1106 "cmlogClient.cc"

  return 0;
}

int
cmlogClient::logMsgI (char* format, int arg0, int arg1, int arg2,
		      int     arg3, int arg4, int arg5, int arg6,
		      int     arg7, int arg8, int arg9)
{
  if (!intContext ())
    return -1 ;

  packet_.set (clientId_, ((unsigned)3105) , format, arg0, arg1, arg2, arg3,
	       arg4, arg5, arg6, arg7, arg8, arg9);

  size_t len = 0;
  int    wlen = 0;
  int    header;

   
   
   
   
  len = packet_.size ();
  if (len > 2048  - sizeof(int)) {
    ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
    return 85 ;
  }

   
  header = cmlogMsg::setMsgHeader (len);
  wlen = write (fifo_, (char *)&header, sizeof(int));
  if (wlen != sizeof (int)) {
    ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
    return 85 ;
  }  

  if (packet_.streamOut (sbuf_, len, 2048 ) == 0) {
    if ((wlen = write (fifo_, sbuf_, len)) == len) 
      return 0 ;
    else 
      ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
  }
  else 
    ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
  
  return 85 ;
}

int
cmlogClient::postErrorI (int verbosity, int severity, 
			 int code, char* facility,
			 char* format, int arg0, int arg1,
			 int   arg2,   int arg3, int arg4,
			 int   arg5)
{
  if (!intContext ())
    return -1 ;

  int  i = 0;

  bcopy (fbuf, format_, strlen (fbuf));
  i += (strlen (fbuf));

  bcopy (" ", &(format_[i]), 1);
  i += 1;

  if (i + strlen (format) + 1> 256 )
    return 85 ;

  bcopy (format, &(format_[i]), strlen (format) + 1);
  i += (strlen (format) + 1);

  return logMsgI (format_, verbosity, severity, code, (int)facility,
		  arg0, arg1, arg2, arg3, arg4, arg5);
}

int
cmlog_logmsgI (cmlog_client_t client,
	       int verbosity, int severity, 
	       int code, char* facility,
	       char* format, int arg0, int arg1,
	       int   arg2,   int arg3, int arg4,
	       int   arg5)
{
  int  i;
  cmlogClient* cl;

  i = 0;
  cl = (cmlogClient *)client;

  if (client == 0)
    return -1 ;

  if (!intContext ())
    return -1 ;


  bcopy (fbuf, cl->format_, strlen (fbuf));
  i += (strlen (fbuf));

  bcopy (" ", &(cl->format_[i]), 1);
  i += 1;

  if (i + strlen (format) + 1> 256 )
    return 85 ;

  bcopy (format, &(cl->format_[i]), strlen (format) + 1);
  i += (strlen (format) + 1);

  return cl->logMsgI (cl->format_, verbosity, severity, code, (int)facility,
		      arg0, arg1, arg2, arg3, arg4, arg5);
}  

int
cmlog_logtextI (cmlog_client_t client,
		char* format, 
		int arg0, int arg1,
		int   arg2,   int arg3, int arg4,
		int   arg5,   int arg6, int arg7,
		int   arg8,   int arg9)
{
  size_t len;
  int    wlen;
  cmlogClient* cl;

  len = 0;
  wlen = 0;
  cl = (cmlogClient *)client;

  if (client == 0)
    return -1 ;

  if (!intContext ())
    return -1 ;


  cl->packet_.set (cl->clientId_, 
		   ((unsigned)3105) , format, arg0, arg1, arg2, arg3,
		   arg4, arg5, arg6, arg7, arg8, arg9);


   
   
   
   
  len = cl->packet_.size ();
  if (len > 2048  - sizeof(int)) {
    ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
    return 85 ;
  }

   
  int header = cmlogMsg::setMsgHeader (len);
  wlen = write (cl->fifo_, (char *)&header, sizeof (int));
  if (wlen != sizeof (int)) {
    ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
    return 85 ;
  }  

  if (cl->packet_.streamOut (cl->sbuf_, len, 2048 ) == 0) {
    if ((wlen = write (cl->fifo_, cl->sbuf_, len)) == len) 
      return 0 ;
    else 
      ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
  }
  else 
    ::logMsg (format, arg0, arg1, arg2, arg3, arg4, arg5);
  
  return 85 ;
}

cmlogClient*
cmlogClient::logClient (void)
{
  if (cmlogClient::gclient_ == 0) 
    cmlogClient::gclient_ = new cmlogClient ("cmlogVxLogClient");
  return cmlogClient::gclient_;
}
  
# 1303 "cmlogClient.cc"



 


cmlog_client_t
cmlog_open (char* progname)
{



  cmlogClient* client = cmlogClient::logClient ();

  
  if (client->connect () == 0 )
    return (cmlog_client_t)client;
  else
    return 0;
}

void
cmlog_close (cmlog_client_t client)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    cl->disconnect ();
  }
}

int
cmlog_logmsg (cmlog_client_t client,
	      int verbosity,
	      int severity, 
	      int code, 
	      char* facility,
	      char* format, ...)
{
  if (client == 0)
    return -1 ;

  CMLOG_ISR_CHECK ();

  cmlogClient* cl = (cmlogClient *)client;
  cdevData data;


   
  data.insert (cmlogUtil::CMLOG_VERBOSITY_TAG, verbosity);
  data.insert (cmlogUtil::CMLOG_SEVERITY_TAG, severity);
  data.insert (cmlogUtil::CMLOG_CODE_TAG, code);
  data.insert (cmlogUtil::CMLOG_FACILITY_TAG, facility);
  data.insert (cmlogUtil::CMLOG_TEXT_TAG, (char *)("Wrong Client Syntax") );
  
  va_list arp;

  char *p;
  char strtmp[256], tagName[64];
  int ival, tag, i = 0;
  double dval;
  char cval;

  (__builtin_next_arg (  format ), __builtin_memcpy ((  arp  ), __builtin_saveregs (), sizeof(__gnuc_va_list)) ) ;
  
  for (p = format; *p; p++) {
    if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
      continue;
    if (*p == '%') {
      switch(*++p) {
      case 'd': 
      case 'i':
      case 'x':
      case 'X':
      case 'o':
      case 'u':
	ival = __extension__ (*({	register   int  *__ptr;	if ((__builtin_classify_type(*(   int   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  int  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   int  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   int   *)0) == 8)  && sizeof (  int ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  int ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  int  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   int   *)0) >= 12)  || (__builtin_classify_type(*(   int   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    int  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  int  **__pptr = (  int  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  int ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  int  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  int ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  int  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, ival);
	break;
      case 'f':
      case 'g':
      case 'F':
      case 'G':
	dval = __extension__ (*({	register   double  *__ptr;	if ((__builtin_classify_type(*(   double   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  double  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   double  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   double   *)0) == 8)  && sizeof (  double ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  double ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  double  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   double   *)0) >= 12)  || (__builtin_classify_type(*(   double   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    double  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  double  **__pptr = (  double  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  double ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  double  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  double ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  double  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, dval);
	break;
      case 's':
	::strncpy(strtmp, __extension__ (*({	register   char *  *__ptr;	if ((__builtin_classify_type(*(   char *   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char *  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char *  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char *   *)0) == 8)  && sizeof (  char * ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char * ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char *  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char *   *)0) >= 12)  || (__builtin_classify_type(*(   char *   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char *  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char *  **__pptr = (  char *  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char * ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char *  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char * ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char *  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) , sizeof (strtmp) -1);
	strtmp[sizeof (strtmp) -1] = '\0';

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, strtmp);
	break; 
      case 'c':



	cval = __extension__ (*({	register   char  *__ptr;	if ((__builtin_classify_type(*(   char   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char   *)0) == 8)  && sizeof (  char ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char   *)0) >= 12)  || (__builtin_classify_type(*(   char   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char  **__pptr = (  char  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, cval);
	break;
      default:
	printf ("The argument type % %c not supported  \n", *p);
	break;
      }
      i = 0;
    }    
    else if ((tagName[i++] = *p) == '=') {
      i--;
      tagName[i] = '\0'; 
    }
  }
  ((void)0) ;  

  return cl->postData (data);
}

int
cmlog_logtext (cmlog_client_t client, char* format, ...)
{
  if (client == 0)
    return -1 ;

  CMLOG_ISR_CHECK ();

  cmlogClient* cl = (cmlogClient *)client;

  cdevData data;

  va_list arp;

  char *p;
  char strtmp[256], tagName[64];
  int ival, tag, i = 0;
  double dval;
  char cval;

  data.insert (cmlogUtil::CMLOG_TEXT_TAG, (char *)("Wrong Client Syntax") );
  (__builtin_next_arg (  format ), __builtin_memcpy ((  arp  ), __builtin_saveregs (), sizeof(__gnuc_va_list)) ) ;
  
  for (p = format; *p; p++) {
    if (*p == ' ' || *p == '\t' || *p == '\r' || *p == '\n')
      continue;
    if (*p == '%') {
      switch(*++p) {
      case 'd': 
      case 'i':
      case 'x':
      case 'X':
      case 'o':
      case 'u':
	ival = __extension__ (*({	register   int  *__ptr;	if ((__builtin_classify_type(*(   int   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  int  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   int  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   int   *)0) == 8)  && sizeof (  int ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  int ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  int  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   int   *)0) >= 12)  || (__builtin_classify_type(*(   int   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    int  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  int  **__pptr = (  int  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  int ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  int  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  int ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    int   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  int  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, ival);
	break;
      case 'f':
      case 'g':
      case 'F':
      case 'G':
	dval = __extension__ (*({	register   double  *__ptr;	if ((__builtin_classify_type(*(   double   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  double  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   double  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   double   *)0) == 8)  && sizeof (  double ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  double ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  double  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   double   *)0) >= 12)  || (__builtin_classify_type(*(   double   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    double  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  double  **__pptr = (  double  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  double ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  double  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  double ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    double   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  double  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;
	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, dval);
	break;
      case 's':
	::strncpy(strtmp, __extension__ (*({	register   char *  *__ptr;	if ((__builtin_classify_type(*(   char *   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char *  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char *  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char *   *)0) == 8)  && sizeof (  char * ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char * ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char *  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char *   *)0) >= 12)  || (__builtin_classify_type(*(   char *   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char *  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char *  **__pptr = (  char *  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char * ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char *  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char * ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char *   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char *  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) , sizeof (strtmp) -1);
	strtmp[sizeof (strtmp) -1] = '\0';

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, strtmp);
	break; 
      case 'c':



	cval = __extension__ (*({	register   char  *__ptr;	if ((__builtin_classify_type(*(   char   *)0) == -2) )	{	(  arp  )->overflow_arg_area  = (char *)(((long)((  arp  )->overflow_arg_area ) + 15) & ~15); __ptr = (  char  *) (void *) ((  arp  )->overflow_arg_area );	(  arp  )->overflow_arg_area  += ((sizeof(   char  ) + sizeof (long) - 1) / sizeof (long))  * sizeof (long);	}	else if ((__builtin_classify_type(*(   char   *)0) == 8)  && sizeof (  char ) < 16)	{	unsigned char __fpr = ( arp )->fpr;	if (__fpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__fp_save[  __fpr ]))) ;	( arp )->fpr = __fpr + 1;	}	else if (sizeof (  char ) == 8)	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area );	__ptr = (  char  *)((__addr + 7) & -8);	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	else	{	__va_arg_type_violation ();	}	}	else if ((__builtin_classify_type(*(   char   *)0) >= 12)  || (__builtin_classify_type(*(   char   *)0) == 8) )	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = * ((    char  *  *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	  char  **__pptr = (  char  **) ((  arp  )->overflow_arg_area );	__ptr = * __pptr;	(  arp  )->overflow_arg_area  = (char *) (__pptr + 1);	}	}	else	{	if (sizeof (  char ) == 8)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 7)	{	__gpr += __gpr & 1;	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 2;	}	else	{	unsigned long __addr = (unsigned long) ((  arp  )->overflow_arg_area ); __ptr = (  char  *)((__addr + 7) & -8);	( arp )->gpr = 8;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else if (sizeof (  char ) == 4)	{	unsigned char __gpr = ( arp )->gpr;	if (__gpr < 8)	{	__ptr = ((    char   *) (void *) (&(((__va_regsave_t *)	((  arp  )->reg_save_area))->__gp_save[  __gpr ]))) ;	( arp )->gpr = __gpr + 1;	}	else	{	__ptr = (  char  *) (  arp  )->overflow_arg_area ;	(  arp  )->overflow_arg_area  = (char *)(__ptr + 1);	}	}	else	{	__va_arg_type_violation ();	}	}	__ptr;	})) ;

	if (cdevData::tagC2I(tagName, &tag) == 0 ) 
	  data.insert(tag, cval);
	break;
      default:
	printf ("The argument type % %c not supported  \n", *p);
	break;
      }
      i = 0;
    }    
    else if ((tagName[i++] = *p) == '=') {
      i--;
      tagName[i] = '\0';
    }
  }
  ((void)0) ;  

  return cl->postData (data);
}

int
cmlog_set_severity_threshold (cmlog_client_t client,
			      int threshold)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    
    return cl->setSeverityThreshold (threshold);
  }
  return -1 ;
}

int
cmlog_get_severity_threshold (cmlog_client_t client,
			      int *threshold)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    
    *threshold = cl->getSeverityThreshold ();
    return 0 ;
  }
  *threshold = 0;
  return -1 ;
}

int
cmlog_set_verbosity_threshold (cmlog_client_t client,
			       int threshold)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    
    return cl->setVerbosityThreshold (threshold);
  }
  return -1 ;
}

int
cmlog_get_verbosity_threshold (cmlog_client_t client,
			       int *threshold)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    
    *threshold = cl->getVerbosityThreshold ();
    return 0 ;
  }
  *threshold = 0;
  return -1 ;
}

int
cmlog_set_throttle (cmlog_client_t client,
		    char* tag, int valuerange,
		    int limit, double interval)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    
    return cl->setThrottle (tag, valuerange, limit, interval);
  }
  return -1 ;
}

int
cmlog_get_throttle (cmlog_client_t client,
		    char** tag, int* valuerange,
		    int* limit, double* interval)
{
  if (client != 0) {
    cmlogClient* cl = (cmlogClient *)client;
    
    return cl->getThrottle (tag, *valuerange, *limit, *interval);
  }
  return -1 ;
}


  


 


static cmlogClient* daclient = 0;
static char * object_class = "Unknown";
static char * object_process = "Unknown";
static char * object_domain = "Unknown";


int cmlog_printf_flag = 1;   



int 
daLogOpen(char *name,char *type)
{
  char *session;

  if (daclient == 0) {

    daclient = cmlogClient::logClient();



    if (daclient->connect () != 0 )
      return 1;
  }
  object_class = new char [strlen(type)+1];
  strcpy(object_class,type);

  object_process = new char [strlen(name)+1];
  strcpy(object_process,name);

  if (session = getenv("SESSION")) {
    object_domain = new char [strlen(session)+1];
    strcpy(object_domain,session);
  }

  return (0);
}


static int sevToInt(char *severity)
{
  if (!strcmp(severity,"INFO")) {
    return 0 ;
  } else if (!strcmp(severity,"ERROR")) {
    return 2 ;
  } else if (!strcmp(severity,"WARN")) {
    return 1 ;
  } else if (!strcmp(severity,"SEVERE")) {
    return 3 ;
  } else return 100;
  
}


void
daLogMsg (char *sev, char *fmt,
	  int a,int b,int c,int d,int e,int f,int g,
	  int h,int i)
{
  int severity;
  char        temp[1000];

  severity = sevToInt (sev);
  sprintf (temp, fmt, a, b, c, d, e, f, g, h, i);

  if (daclient == 0) {
    daclient = cmlogClient::logClient();
    if (daclient->connect () != 0 ) {
      printf("daLogMsg: %s\n", temp);
      return;
    }
  }

  daclient->logMsg ("process = %s class = %s status = %s severity = %d facility = %s domain = %s text = %s",
		    object_process,object_class, sev, severity, (char *)("CODA") , object_domain, temp);
  
  if (cmlog_printf_flag)
    printf("daLogMsg: %s\n", temp);
}

# 1691 "cmlogClient.cc"


void
daLogMsgI (char *sev, char *fmt,
	  int a,int b,int c,int d,int e,int f,int g,
	  int h,int i)
{
  int severity;
  char        temp[1000];

  if (daclient == 0) {
      return;
  }

  severity = sevToInt (sev);
  sprintf (temp, fmt, a, b, c, d, e, f, g, h, i);
  

  daclient->logMsgI ("process = %s class = %s status = %s severity = %d facility = %s text = %s",
		    (int) object_process, (int) object_class, (int) sev, severity, (int) (char *)("CODA") , (int) temp, 0, 0, 0, 0);




}

void
daLogMsg2 (char* name, char *sev, char *fmt,
	  int a,int b,int c,int d,int e,int f,int g,
	  int h,int i)
{
  int severity;
  char        temp[1000];

  if (daclient == 0) {

    daclient = cmlogClient::logClient();



    if (daclient->connect () != 0 )
      return;
  }

  severity = sevToInt (sev);
  sprintf (temp, fmt, a, b, c, d, e, f, g, h, i);
  
  daclient->logMsg ("process = %s class = %s status = %s severity = %d facility = %s text = %s",
		    object_process,object_class, sev, severity, (char *)("CODA") , temp);
}


