summaryrefslogtreecommitdiff
path: root/epan/asm_utils.c
diff options
context:
space:
mode:
authorTomas Kukosa <tomas.kukosa@siemens.com>2007-11-28 10:18:16 +0000
committerTomas Kukosa <tomas.kukosa@siemens.com>2007-11-28 10:18:16 +0000
commitff7c20938ea3da3ae7d494b35809a2387f497dec (patch)
treecff4fe924fdcfa5a5f882426b40e7fef64045810 /epan/asm_utils.c
parent60686647d2aefff5065a8869899d15d212115d03 (diff)
downloadwireshark-ff7c20938ea3da3ae7d494b35809a2387f497dec.tar.gz
Various changes with focus to startup speedup
The startup timeout on Win32 is reduced to 80% without assembler and to 50% with assembler usage (which is optional) proto.c - do not look up in filed tree and inserts in two steps but do it at once - next few small speedups - some often called elementary functions can be optionally implemented in assembler - dispart some functions to see more exact result from profiling packet-tpnc.c - do not reallocate memory for each filed svn path=/trunk/; revision=23643
Diffstat (limited to 'epan/asm_utils.c')
-rw-r--r--epan/asm_utils.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/epan/asm_utils.c b/epan/asm_utils.c
new file mode 100644
index 0000000000..98044c14bc
--- /dev/null
+++ b/epan/asm_utils.c
@@ -0,0 +1,67 @@
+/* asm_utils.c
+ * Functions optionally implemented in assembler
+ *
+ * $Id$
+ *
+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <ctype.h>
+#include <glib.h>
+
+#include "asm_utils.h"
+
+/* String comparison func for dfilter_token GTree */
+int
+wrs_strcmp(gconstpointer a, gconstpointer b)
+{
+ return strcmp((const char*)a, (const char*)b);
+}
+
+int
+wrs_strcmp_with_data(gconstpointer a, gconstpointer b, gpointer user_data _U_)
+{
+ return strcmp((const char*)a, (const char*)b);
+}
+
+guchar
+wrs_check_charset(const guchar table[256], const char *str)
+{
+ const char *p = str;
+ guchar c;
+
+ do {
+ c = *(p++);
+ } while (table[c]);
+ return c;
+}
+
+guint
+wrs_str_hash(gconstpointer v)
+{
+ /* 31 bit hash function */
+ const signed char *p = v;
+ guint32 h = *p;
+ if (h)
+ for (p += 1; *p != '\0'; p++)
+ h = (h << 5) - h + *p;
+ return h;
+}
+