diff options
Diffstat (limited to 'tools/tools/nxge/xge_log.c')
-rw-r--r-- | tools/tools/nxge/xge_log.c | 445 |
1 files changed, 260 insertions, 185 deletions
diff --git a/tools/tools/nxge/xge_log.c b/tools/tools/nxge/xge_log.c index 5f8b17a..e08ad14 100644 --- a/tools/tools/nxge/xge_log.c +++ b/tools/tools/nxge/xge_log.c @@ -25,222 +25,297 @@ * * $FreeBSD$ */ + #include "xge_log.h" +/** + * xge_print_hwstats + * Prints/logs hardware statistics + * + * @hw_stats Hardware statistics + * @device_id Device ID + */ void -logStats( void *hwStats, unsigned short device_id ) +xge_print_hwstats(void *hw_stats, unsigned short device_id) { - int index = 0; - int count = 0; - count = XGE_COUNT_STATS - ((device_id == DEVICE_ID_XFRAME_II) ? 0 : XGE_COUNT_EXTENDED_STATS); - fdAll = fopen( "stats.log", "w+" ); - if( fdAll ) - { - XGE_PRINT_HEADER_STATS(fdAll); - - for( index = 0; index < count ; index++ ) - { - switch( statsInfo[index].type ) - { - case 2: - { - statsInfo[index].value = - *( ( u16 * )( ( unsigned char * ) hwStats + - GET_OFFSET_STATS( index ) ) ); - break; - } - case 4: - { - statsInfo[index].value = - *( ( u32 * )( ( unsigned char * ) hwStats + - GET_OFFSET_STATS( index ) ) ); - break; - } - case 8: - { - statsInfo[index].value = - *( ( u64 * )( ( unsigned char * ) hwStats + - GET_OFFSET_STATS( index ) ) ); - break; - } - } - - XGE_PRINT_STATS(fdAll,(const char *) statsInfo[index].name, - statsInfo[index].value); - } - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } + int index = 0, count = 0; + + count = XGE_COUNT_STATS - + ((device_id == DEVICE_ID_XFRAME_II) ? 0 : XGE_COUNT_EXTENDED_STATS); + + fdAll = fopen("stats.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_STATS(fdAll); + for(index = 0; index < count ; index++) { + switch(statsInfo[index].type) { + case 2: + statsInfo[index].value = + *((u16 *)((unsigned char *)hw_stats + + GET_OFFSET_STATS(index))); + break; + case 4: + statsInfo[index].value = + *((u32 *)((unsigned char *) hw_stats + + GET_OFFSET_STATS(index))); + break; + case 8: + statsInfo[index].value = + *((u64 *)((unsigned char *)hw_stats + + GET_OFFSET_STATS(index))); + break; + } + + XGE_PRINT_STATS(fdAll,(const char *) statsInfo[index].name, + statsInfo[index].value); + } + XGE_PRINT_LINE(fdAll); + fclose(fdAll); +_exit: + return; } -void -logPciConf( void * pciConf ) +/** + * xge_print_pciconf + * Prints/logs PCI configuration space + * + * @pci_conf PCI Configuration + */ +void +xge_print_pciconf(void * pci_conf) { - int index = 0; - - fdAll = fopen( "pciconf.log", "w+" ); - if( fdAll ) - { - XGE_PRINT_HEADER_PCICONF(fdAll); - - for( index = 0; index < XGE_COUNT_PCICONF; index++ ) - { - pciconfInfo[index].value = - *( ( u16 * )( ( unsigned char * )pciConf + - GET_OFFSET_PCICONF(index) ) ); - XGE_PRINT_PCICONF(fdAll,(const char *) pciconfInfo[index].name, - GET_OFFSET_PCICONF(index), pciconfInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } + int index = 0; + + fdAll = fopen("pciconf.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_PCICONF(fdAll); + for(index = 0; index < XGE_COUNT_PCICONF; index++) { + pciconfInfo[index].value = *((u16 *)((unsigned char *)pci_conf + + GET_OFFSET_PCICONF(index))); + XGE_PRINT_PCICONF(fdAll,(const char *) pciconfInfo[index].name, + GET_OFFSET_PCICONF(index), pciconfInfo[index].value); + } + + XGE_PRINT_LINE(fdAll); + fclose(fdAll); + +_exit: + return; } +/** + * xge_print_devconf + * Prints/logs Device Configuration + * + * @dev_conf Device Configuration + */ void -logDevConf( void * devConf ) +xge_print_devconf(void * dev_conf) { - int index = 0; - - fdAll = fopen( "devconf.log", "w+" ); - if( fdAll ) - { - XGE_PRINT_HEADER_DEVCONF(fdAll); - - for( index = 0; index < XGE_COUNT_DEVCONF; index++ ) - { - devconfInfo[index].value = - *( ( u32 * )( ( unsigned char * )devConf + - ( index * ( sizeof( int ) ) ) ) ); - XGE_PRINT_DEVCONF(fdAll,(const char *) devconfInfo[index].name, - devconfInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose( fdAll ); - } + int index = 0; + + fdAll = fopen("devconf.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_DEVCONF(fdAll); + + for(index = 0; index < XGE_COUNT_DEVCONF; index++) { + devconfInfo[index].value = *((u32 *)((unsigned char *)dev_conf + + (index * (sizeof(int))))); + XGE_PRINT_DEVCONF(fdAll,(const char *) devconfInfo[index].name, + devconfInfo[index].value); + } + + XGE_PRINT_LINE(fdAll); + fclose( fdAll ); + +_exit: + return; } +/** + * xge_print_registers + * Prints/logs Register values + * + * @registers Register values + */ void -logRegInfo( void * regBuffer ) +xge_print_registers(void * registers) { - int index = 0; - - fdAll = fopen( "reginfo.log", "w+" ); - if( fdAll ) - { - XGE_PRINT_HEADER_REGS(fdAll); - - for( index = 0; index < XGE_COUNT_REGS; index++ ) - { - regInfo[index].value = - *( ( u64 * )( ( unsigned char * )regBuffer + - regInfo[index].offset ) ); - XGE_PRINT_REGS(fdAll,(const char *) regInfo[index].name, - regInfo[index].offset, regInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } + int index = 0; + + fdAll = fopen("reginfo.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_REGS(fdAll); + + for(index = 0; index < XGE_COUNT_REGS; index++) { + regInfo[index].value = *((u64 *)((unsigned char *)registers + + regInfo[index].offset)); + XGE_PRINT_REGS(fdAll,(const char *) regInfo[index].name, + regInfo[index].offset, regInfo[index].value); + } + + XGE_PRINT_LINE(fdAll); + fclose(fdAll); +_exit: + return; } + +/** + * xge_print_register + * Prints/logs a register value + * + * @offset Offset of the register + * @temp??? + */ void -logReadReg(u64 offset,u64 temp) +xge_print_register(u64 offset, u64 value) { - int index=0; - - fdAll = fopen( "readreg.log", "w+"); - if( fdAll ) - { + int index = 0; + + fdAll = fopen("readreg.log", "w+"); + if(!fdAll) + goto _exit; + XGE_PRINT_READ_HEADER_REGS(fdAll); - - regInfo[index].offset = offset ; + regInfo[index].offset = offset; + regInfo[index].value = value; + printf("0x%.8X\t0x%.16llX\n", regInfo[index].offset, + regInfo[index].value); + XGE_PRINT_LINE(fdAll); + fclose(fdAll); + +_exit: + return; +} + +/** + * xge_print_devstats + * Prints Device Statistics + * + * @dev_stats Device Statistics + */ +void +xge_print_devstats(void *dev_stats) +{ + int index = 0; + + fdAll = fopen("intrstats.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_STATS(fdAll); + for(index = 0; index < XGE_COUNT_INTRSTAT; index++) { + intrInfo[index].value = *((u32 *)((unsigned char *)dev_stats + + (index * (sizeof(u32))))); + XGE_PRINT_STATS(fdAll,(const char *) intrInfo[index].name, + intrInfo[index].value); + } - regInfo[index].value = temp ; - - printf("0x%.8X\t0x%.16llX\n",regInfo[index].offset, regInfo[index].value); - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } + fclose(fdAll); +_exit: + return; } + +/** + * xge_print_swstats + * Prints/logs Software Statistics + * + * @sw_stats Software statistics + */ void -logIntrStats( void * intrStats ) +xge_print_swstats(void * sw_stats) { - int index = 0; - - fdAll = fopen( "intrstats.log", "w+" ); - if(fdAll) - { - XGE_PRINT_HEADER_STATS(fdAll); - - for( index = 0; index < XGE_COUNT_INTRSTAT; index++ ) - { - intrInfo[index].value = - *( ( u32 * )( ( unsigned char * )intrStats + - ( index * ( sizeof( u32 ) ) ) ) ); - XGE_PRINT_STATS(fdAll,(const char *) intrInfo[index].name, - intrInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } + int index = 0; + + fdAll = fopen("tcodestats.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_STATS(fdAll); + for(index = 0; index < XGE_COUNT_SWSTAT; index++) { + if(!(tcodeInfo[index].flag)) { + switch(tcodeInfo[index].type) { + case 2: + tcodeInfo[index].value = + *((u16 *)((unsigned char *)sw_stats + + (index * (sizeof(u16))))); + break; + case 4: + tcodeInfo[index].value = + *((u32 *)((unsigned char *)sw_stats + + (index * (sizeof(u32))))); + break; + } + XGE_PRINT_STATS(fdAll,(const char *) tcodeInfo[index].name, + tcodeInfo[index].value); + } + } + + XGE_PRINT_LINE(fdAll); + fclose(fdAll); + +_exit: + return; } +/** + * xge_print_drv_version + * Prints/logs driver version + * + * @version Driver version + */ void -logTcodeStats( void * tcodeStats ) +xge_print_drv_version(char *version) { - int index = 0; - - fdAll = fopen( "tcodestats.log", "w+" ); - if(fdAll) - { - XGE_PRINT_HEADER_STATS(fdAll); - - for( index = 0; index < XGE_COUNT_TCODESTAT; index++ ) - { - if(!(tcodeInfo[index].flag)) - { - switch( tcodeInfo[index].type ) - { - case 2: - { - tcodeInfo[index].value = - *( ( u16 * )( ( unsigned char * )tcodeStats + - ( index * ( sizeof( u16 ) ) ) ) ); - break; - } - case 4: - { - tcodeInfo[index].value = - *( ( u32 * )( ( unsigned char * )tcodeStats + - ( index * ( sizeof( u32 ) ) ) ) ); - break; - } - } - - XGE_PRINT_STATS(fdAll,(const char *) tcodeInfo[index].name, - tcodeInfo[index].value); - } - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } + fdAll = fopen("driverinfo.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_LINE(fdAll); + printf("Driver Version: %s\n", version); + XGE_PRINT_LINE(fdAll); + fclose(fdAll); + +_exit: + return; } +/** + * xge_print_drvstats + * Prints/logs Driver Statistics + * + * @driver_stats Driver Statistics + */ void -logDriverInfo( char *version ) +xge_print_drvstats(void * driver_stats) { - fdAll = fopen( "driverinfo.log", "w+"); - if (fdAll) - { - XGE_PRINT_LINE(fdAll); - printf("DRIVER VERSION : %s\n",version); - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - } - + int index = 0; + + fdAll = fopen("driver_stats.log", "w+"); + if(!fdAll) + goto _exit; + + XGE_PRINT_HEADER_STATS(fdAll); + + for(index = 0; index < XGE_COUNT_DRIVERSTATS; index++) { + driverInfo[index].value = *((u64 *)((unsigned char *)driver_stats + + (index * (sizeof(u64))))); + XGE_PRINT_STATS(fdAll,(const char *) driverInfo[index].name, + driverInfo[index].value); + } + + XGE_PRINT_LINE(fdAll); + fclose( fdAll ); + +_exit: + return; } |