diff options
author | Guy Harris <guy@alum.mit.edu> | 1999-03-31 08:20:28 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 1999-03-31 08:20:28 +0000 |
commit | f1e024b6057ab5c7128eefe9cc31dbcf87651f18 (patch) | |
tree | 7757124c109b8e721fea9646f28b31020df80cbc /util.c | |
parent | ccba477d7fbd4dc69691fa6329770a6e110d7940 (diff) |
Move the bitfield-decoding routines to "packet.h", along with other
helper routines for packet dissecting, and away from "util.c", which is
now all GUI-related. (Among other things, this makes life more pleasant
for Gilbert Ramirez's "tethereal" stuff, although a lot more separation
of GUI from other stuff needs to be done to make that - or a
"curses"-based variant of Ethereal, or a variant using some other GUI
toolkit - work smoothly.)
svn path=/trunk/; revision=235
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 87 |
1 files changed, 1 insertions, 86 deletions
@@ -1,7 +1,7 @@ /* util.c * Utility routines * - * $Id: util.c,v 1.11 1999/03/23 03:14:46 gram Exp $ + * $Id: util.c,v 1.12 1999/03/31 08:20:28 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -27,10 +27,6 @@ # include "config.h" #endif -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif - #include <glib.h> #include <gtk/gtk.h> @@ -48,7 +44,6 @@ # include "snprintf.h" #endif -#include "packet.h" #include "util.h" #include "image/icon-excl.xpm" @@ -172,83 +167,3 @@ simple_dialog_cancel_cb(GtkWidget *w, gpointer win) { *btn_mask = ESD_BTN_CANCEL; gtk_widget_destroy(GTK_WIDGET(win)); } - -/* Generate, into "buf", a string showing the bits of a bitfield. - Return a pointer to the character after that string. */ -static char * -decode_bitfield_value(char *buf, guint32 val, guint32 mask, int width) -{ - int i; - guint32 bit; - char *p; - - i = 0; - p = buf; - bit = 1 << (width - 1); - for (;;) { - if (mask & bit) { - /* This bit is part of the field. Show its value. */ - if (val & bit) - *p++ = '1'; - else - *p++ = '0'; - } else { - /* This bit is not part of the field. */ - *p++ = '.'; - } - bit >>= 1; - i++; - if (i >= width) - break; - if (i % 4 == 0) - *p++ = ' '; - } - strcpy(p, " = "); - p += 3; - return p; -} - -/* Generate a string describing a Boolean bitfield (a one-bit field that - says something is either true of false). */ -const char * -decode_boolean_bitfield(guint32 val, guint32 mask, int width, - const char *truedesc, const char *falsedesc) -{ - static char buf[1025]; - char *p; - - p = decode_bitfield_value(buf, val, mask, width); - if (val & mask) - strcpy(p, truedesc); - else - strcpy(p, falsedesc); - return buf; -} - -/* Generate a string describing an enumerated bitfield (an N-bit field - with various specific values having particular names). */ -const char * -decode_enumerated_bitfield(guint32 val, guint32 mask, int width, - const value_string *tab, const char *fmt) -{ - static char buf[1025]; - char *p; - - p = decode_bitfield_value(buf, val, mask, width); - sprintf(p, fmt, val_to_str(val & mask, tab, "Unknown")); - return buf; -} - -/* Generate a string describing a numeric bitfield (an N-bit field whose - value is just a number). */ -const char * -decode_numeric_bitfield(guint32 val, guint32 mask, int width, - const char *fmt) -{ - static char buf[1025]; - char *p; - - p = decode_bitfield_value(buf, val, mask, width); - sprintf(p, fmt, val & mask); - return buf; -} |