diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2016-09-22 13:23:37 +0200 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2016-09-23 08:13:43 +0000 |
commit | 0703c7b4145f1ec23172b261356ca65bb17d12dc (patch) | |
tree | fc45171b65a56537b30534539480c999e6521b62 /wsutil | |
parent | 00c862e4056be43d91beb2c6b66b996140e5d280 (diff) | |
download | wireshark-0703c7b4145f1ec23172b261356ca65bb17d12dc.tar.gz |
dumpcap: Include CPU info as hardware description in SHB
Add CPU info as hardware description in session header block when
using pcapng.
Use capture_comment from the capture_options structure when using
ring buffer.
Change-Id: I5e688fc2d6ab61de1f64ad9a8a96e6e39e8cf708
Reviewed-on: https://code.wireshark.org/review/17862
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'wsutil')
-rw-r--r-- | wsutil/CMakeLists.txt | 1 | ||||
-rw-r--r-- | wsutil/Makefile.am | 2 | ||||
-rw-r--r-- | wsutil/cpu_info.c | 80 | ||||
-rw-r--r-- | wsutil/cpu_info.h | 40 |
4 files changed, 123 insertions, 0 deletions
diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt index c992a8be0e..2f71d0fc72 100644 --- a/wsutil/CMakeLists.txt +++ b/wsutil/CMakeLists.txt @@ -52,6 +52,7 @@ set(WSUTIL_COMMON_FILES md5.c mpeg-audio.c nstime.c + cpu_info.c os_version_info.c plugins.c privileges.c diff --git a/wsutil/Makefile.am b/wsutil/Makefile.am index 1fb0cc9854..6f104b51f2 100644 --- a/wsutil/Makefile.am +++ b/wsutil/Makefile.am @@ -47,6 +47,7 @@ libwsutil_nonrepl_INCLUDES = \ clopts_common.h \ cmdarg_err.h \ copyright_info.h \ + cpu_info.h \ crash_info.h \ crc6.h \ crc7.h \ @@ -121,6 +122,7 @@ libwsutil_la_SOURCES = \ clopts_common.c \ cmdarg_err.c \ copyright_info.c \ + cpu_info.c \ crash_info.c \ crc6.c \ crc7.c \ diff --git a/wsutil/cpu_info.c b/wsutil/cpu_info.c new file mode 100644 index 0000000000..9a3416d9ab --- /dev/null +++ b/wsutil/cpu_info.c @@ -0,0 +1,80 @@ +/* cpu_info.c + * Routines to report CPU information + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include <string.h> +#include <glib.h> + +#include <wsutil/ws_cpuid.h> +#include <wsutil/cpu_info.h> + +/* + * Get the CPU info, and append it to the GString + */ +void +get_cpu_info(GString *str) +{ + guint32 CPUInfo[4]; + char CPUBrandString[0x40]; + unsigned nExIds; + + /* http://msdn.microsoft.com/en-us/library/hskdteyh(v=vs.100).aspx */ + + /* Calling __cpuid with 0x80000000 as the InfoType argument */ + /* gets the number of valid extended IDs. */ + if (!ws_cpuid(CPUInfo, 0x80000000)) + return; + + nExIds = CPUInfo[0]; + + if (nExIds<0x80000005) + return; + + memset(CPUBrandString, 0, sizeof(CPUBrandString)); + + /* Interpret CPU brand string */ + ws_cpuid(CPUInfo, 0x80000002); + memcpy(CPUBrandString, CPUInfo, sizeof(CPUInfo)); + ws_cpuid(CPUInfo, 0x80000003); + memcpy(CPUBrandString + 16, CPUInfo, sizeof(CPUInfo)); + ws_cpuid(CPUInfo, 0x80000004); + memcpy(CPUBrandString + 32, CPUInfo, sizeof(CPUInfo)); + + g_string_append_printf(str, "%s", CPUBrandString); + + if (ws_cpuid_sse42()) + g_string_append(str, " (with SSE4.2)"); +} + +/* + * Editor modelines - http://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 4 + * tab-width: 8 + * indent-tabs-mode: nil + * End: + * + * vi: set shiftwidth=4 tabstop=8 expandtab: + * :indentSize=4:tabSize=8:noTabs=true: + */ diff --git a/wsutil/cpu_info.h b/wsutil/cpu_info.h new file mode 100644 index 0000000000..74fca1f783 --- /dev/null +++ b/wsutil/cpu_info.h @@ -0,0 +1,40 @@ +/* cpu_info.h + * Declarations of routines to report CPU information + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __WSUTIL_CPU_INFO_H__ +#define __WSUTIL_CPU_INFO_H__ + +#include "ws_symbol_export.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include "ws_symbol_export.h" + +WS_DLL_PUBLIC void get_cpu_info(GString *str); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __WSUTIL_CPU_INFO_H__ */ |