int display_tt32_stats( int fd ) { int errnum; TT32STATS stats; if (!tt32_loaddll()) return -1; memset(&stats, 0, sizeof(stats)); stats.dwStructSize = sizeof(stats); if (! g_tt32_pfn_get_stats_ex ) g_tt32_pfn_get_stats ( fd, &stats ); else { g_tt32_pfn_get_stats_ex ( fd, &stats, &errnum ); errno = errnum; } if (stats.dwStructSize >= sizeof(stats)) { // New version 3.3 stats WRMSG (HHC04101, "I" ,g_tt32_dllname ,(stats.dwKernelBuffSize + 1023) / 1024 ,(stats.dwReadBuffSize + 1023) / 1024 ,(stats.dwMaxBytesReceived + 1023) / 1024 ,stats.n64WriteCalls ,stats.n64WriteIOs ,stats.n64ZeroMACPacketsWritten ,stats.n64PacketsWritten ,stats.n64BytesWritten ,stats.n64ReadCalls ,stats.n64ReadIOs ,stats.n64InternalPackets ,stats.n64OwnPacketsIgnored ,stats.n64IgnoredPackets ,stats.n64ZeroMACPacketsRead ,stats.n64PacketsRead ,stats.n64BytesRead ); } else { // Old pre version 3.3 stats WRMSG (HHC04101, "I" ,g_tt32_dllname ,(stats.dwKernelBuffSize + 1023) / 1024 ,(stats.dwReadBuffSize + 1023) / 1024 ,(stats.dwMaxBytesReceived + 1023) / 1024 ,stats.n64WriteCalls ,stats.n64WriteIOs ,-1 // indicate n/a ,stats.n64PacketsWritten ,stats.n64BytesWritten ,stats.n64ReadCalls ,stats.n64ReadIOs ,stats.n64InternalPackets ,-1 // indicate n/a ,stats.n64IgnoredPackets ,-1 // indicate n/a ,stats.n64PacketsRead ,stats.n64BytesRead ); } return 0; }
int display_tt32_stats( int fd ) { int errnum; TT32STATS stats; if (!tt32_loaddll()) return -1; memset(&stats,0,sizeof(stats)); stats.dwStructSize = sizeof(stats); if (! g_tt32_pfn_get_stats_ex ) g_tt32_pfn_get_stats ( fd, &stats ); else { g_tt32_pfn_get_stats_ex ( fd, &stats, &errnum ); errno = errnum; } if (stats.dwStructSize >= sizeof(stats)) { // New version 3.3 stats logmsg ( "\n%s Statistics:\n\n" "Size of Kernel Hold Buffer: %5luK\n" "Size of DLL I/O Buffer: %5luK\n" "Maximum DLL I/O Bytes Received: %5luK\n\n" "%12" I64_FMT "d Total Write Calls\n" "%12" I64_FMT "d Total Write I/Os\n" "%12" I64_FMT "d Packets To All Zeroes MAC Written\n" "%12" I64_FMT "d Total Packets Written\n" "%12" I64_FMT "d Total Bytes Written\n\n" "%12" I64_FMT "d Total Read Calls\n" "%12" I64_FMT "d Total Read I/Os\n" "%12" I64_FMT "d Internally Handled ARP Packets\n" "%12" I64_FMT "d Packets From Ourself\n" "%12" I64_FMT "d Total Ignored Packets\n" "%12" I64_FMT "d Packets To All Zeroes MAC Read\n" "%12" I64_FMT "d Total Packets Read\n" "%12" I64_FMT "d Total Bytes Read\n\n" ,g_tt32_dllname ,(stats.dwKernelBuffSize + 1023) / 1024 ,(stats.dwReadBuffSize + 1023) / 1024 ,(stats.dwMaxBytesReceived + 1023) / 1024 ,stats.n64WriteCalls ,stats.n64WriteIOs ,stats.n64ZeroMACPacketsWritten ,stats.n64PacketsWritten ,stats.n64BytesWritten ,stats.n64ReadCalls ,stats.n64ReadIOs ,stats.n64InternalPackets ,stats.n64OwnPacketsIgnored ,stats.n64IgnoredPackets ,stats.n64ZeroMACPacketsRead ,stats.n64PacketsRead ,stats.n64BytesRead ); } else { // Old pre version 3.3 stats logmsg ( "\n%s Statistics:\n\n" "Size of Kernel Hold Buffer: %5luK\n" "Size of DLL I/O Buffer: %5luK\n" "Maximum DLL I/O Bytes Received: %5luK\n\n" "%12" I64_FMT "d Write Calls\n" "%12" I64_FMT "d Write I/Os\n" "%12" I64_FMT "d Read Calls\n" "%12" I64_FMT "d Read I/Os\n" "%12" I64_FMT "d Packets Read\n" "%12" I64_FMT "d Packets Written\n" "%12" I64_FMT "d Bytes Read\n" "%12" I64_FMT "d Bytes Written\n" "%12" I64_FMT "d Internal Packets\n" "%12" I64_FMT "d Ignored Packets\n\n" , g_tt32_dllname ,(stats.dwKernelBuffSize + 1023) / 1024 ,(stats.dwReadBuffSize + 1023) / 1024 ,(stats.dwMaxBytesReceived + 1023) / 1024 ,stats.n64WriteCalls ,stats.n64WriteIOs ,stats.n64ReadCalls ,stats.n64ReadIOs ,stats.n64PacketsRead ,stats.n64PacketsWritten ,stats.n64BytesRead ,stats.n64BytesWritten ,stats.n64InternalPackets ,stats.n64IgnoredPackets ); } return 0; }
int display_tt32_stats( int fd ) { int errnum; TT32STATS stats; if (!tt32_loaddll()) return -1; memset(&stats, 0, sizeof(stats)); stats.dwStructSize = sizeof(stats); if (! g_tt32_pfn_get_stats_ex ) g_tt32_pfn_get_stats ( fd, &stats ); else { g_tt32_pfn_get_stats_ex ( fd, &stats, &errnum ); errno = errnum; } if (stats.dwStructSize >= sizeof(stats)) { // New version 3.3 stats // "%s Statistics:" WRMSG( HHC04101, "I", g_tt32_dllname ); // " %s%5luK" WRMSG( HHC04103, "I", "Size of Kernel Hold Buffer: ", (stats.dwKernelBuffSize + 1023) / 1024 ); WRMSG( HHC04103, "I", "Size of DLL I/O Buffer: ", (stats.dwReadBuffSize + 1023) / 1024 ); WRMSG( HHC04103, "I", "Maximum DLL I/O Bytes Received: ", (stats.dwMaxBytesReceived + 1023) / 1024 ); // " %12"PRId64" %s" WRMSG( HHC04104, "I", stats.n64WriteCalls, "Total Write Calls" ); WRMSG( HHC04104, "I", stats.n64WriteIOs, "Total Write I/Os" ); WRMSG( HHC04104, "I", stats.n64ZeroMACPacketsWritten, "Packets To All Zeroes MAC Written" ); WRMSG( HHC04104, "I", stats.n64PacketsWritten, "Total Packets Written" ); WRMSG( HHC04104, "I", stats.n64BytesWritten, "Total Bytes Written" ); WRMSG( HHC04104, "I", stats.n64ReadCalls, "Total Read Calls" ); WRMSG( HHC04104, "I", stats.n64ReadIOs, "Total Read I/Os" ); WRMSG( HHC04104, "I", stats.n64InternalPackets, "Internally Handled ARP Packets" ); WRMSG( HHC04104, "I", stats.n64OwnPacketsIgnored, "Packets From Ourself" ); WRMSG( HHC04104, "I", stats.n64IgnoredPackets, "Total Ignored Packets" ); WRMSG( HHC04104, "I", stats.n64ZeroMACPacketsRead, "Packets To All Zeroes MAC Read" ); WRMSG( HHC04104, "I", stats.n64PacketsRead, "Total Packets Read" ); WRMSG( HHC04104, "I", stats.n64BytesRead, "Total Bytes Read" ); } else { // Old pre version 3.3 stats // "%s Statistics:" WRMSG( HHC04101, "I", g_tt32_dllname ); // " %s%5luK" WRMSG( HHC04103, "I", "Size of Kernel Hold Buffer: ", (stats.dwKernelBuffSize + 1023) / 1024 ); WRMSG( HHC04103, "I", "Size of DLL I/O Buffer: ", (stats.dwReadBuffSize + 1023) / 1024 ); WRMSG( HHC04103, "I", "Maximum DLL I/O Bytes Received: ", (stats.dwMaxBytesReceived + 1023) / 1024 ); // " %12"PRId64" %s" WRMSG( HHC04104, "I", stats.n64WriteCalls, "Total Write Calls" ); WRMSG( HHC04104, "I", stats.n64WriteIOs, "Total Write I/Os" ); // WRMSG( HHC04104, "I", stats.n64ZeroMACPacketsWritten, "Packets To All Zeroes MAC Written" ); WRMSG( HHC04104, "I", stats.n64PacketsWritten, "Total Packets Written" ); WRMSG( HHC04104, "I", stats.n64BytesWritten, "Total Bytes Written" ); WRMSG( HHC04104, "I", stats.n64ReadCalls, "Total Read Calls" ); WRMSG( HHC04104, "I", stats.n64ReadIOs, "Total Read I/Os" ); WRMSG( HHC04104, "I", stats.n64InternalPackets, "Internally Handled ARP Packets" ); // WRMSG( HHC04104, "I", stats.n64OwnPacketsIgnored, "Packets From Ourself" ); WRMSG( HHC04104, "I", stats.n64IgnoredPackets, "Total Ignored Packets" ); // WRMSG( HHC04104, "I", stats.n64ZeroMACPacketsRead, "Packets To All Zeroes MAC Read" ); WRMSG( HHC04104, "I", stats.n64PacketsRead, "Total Packets Read" ); WRMSG( HHC04104, "I", stats.n64BytesRead, "Total Bytes Read" ); } return 0; }