void * KAPI_Initialize2( char *pchDelta, char *pchBaseline, char *pchToolname ) { knobs_t *pknobs; FILE *fpDelta, *fpBaseline; if ( pchDelta != NULL ) { fpDelta = fopen( pchDelta, "r" ); } else { fpDelta = NULL; } if ( pchBaseline != NULL ) { fpBaseline = fopen( pchBaseline, "r" ); } else { fpBaseline = NULL; } if ( fpDelta == NULL && fpBaseline == NULL ) { printf("KAPI ERROR: Files '%s' and '%s' do not exist\n", pchDelta, pchBaseline ); return( NULL ); } pknobs = KAPI_Initialize( fpDelta, fpBaseline, pchToolname ); if ( kapi_fTrace_Msgs_On ) { fprintf( stderr, "+KAPI_Initialize2 < %s %s %s > %d\n", pchDelta ? pchDelta : "NULL", pchBaseline ? pchBaseline : "NULL", pchToolname, (int)(long)pknobs ); } if ( fpDelta ) { fclose( fpDelta ); } if ( fpBaseline ) { fclose( fpBaseline ); } return( pknobs ); }
int main( int argc, char *argv[] ) { void *pvoid1; FILE *fp1=NULL,*fp2=NULL; FILE *outp=NULL; FILE *Ferr=NULL; char *toolname; if (( (toolname=strrchr(argv[ 0],'\\')) ==NULL) && ( (toolname=strrchr(argv[ 0],'/')) ==NULL) ) toolname=argv[ 0]; if ( argc < 2 ) { printf("%s knobs toolname [delta knobs]\n", toolname ); exit(1); } if ( 5 <= argc ) freopen(argv[4],"w",stderr); if ( 4 <= argc ) /*delta file exists*/ fp2 = fopen( argv[ 3 ], "r" ); fp1 = fopen( argv[ 1 ], "r" ); outp = fopen( "try.c", "w" ); if ((fp1==NULL) && (fp2==NULL)) { printf("Could not open knobsfiles!\n"); return 2; } pvoid1 = KAPI_Initialize( fp2, fp1, argv[ 2 ]); fclose( fp1 ); if (pvoid1!=NULL) pvoid1=KAPI_ia64_Initialize(pvoid1); if (NULL!=fp2) fclose( fp2 ); if ((5 <=argc ) && (NULL!=Ferr)) fclose( Ferr ); if ( pvoid1 ) { int fuLD,tmp; /* KDebug_DumpMachineDescription( stdout, pvoid1, 0 ); KDebug_DumpInterClusterBypass( stdout, pvoid1 ); KDebug_DumpClusterDistances( stdout, pvoid1 ); KDebug_DumpIntraClusterBypass( stdout, pvoid1 ); KDebug_DumpLatencies( stdout, pvoid1 ); KDebug_DumpTotalLatency( stdout, pvoid1 ); printf( "fuLD has %d ports\n", KAPI_cportCount4fu( pvoid1, -1, fuLD ) ); */ fuLD = KAPI_EnumIndex( pvoid1, "fu_t", "fuLD" ); tmp = KAPI_IntraClusterBypass(pvoid1,0 ,0,0,0,0, 7,0,0,0); // dump_instruction_fus(outp,pvoid1); KAPI_Finalize( pvoid1 ); } else { fprintf( stderr, "KAPI_Initialize failed\n" ); } #if 0 Test_bv128Rtns(); Test_bv64Rtns(); Test_bv32Rtns(); #endif return 0; }