From Matt Poduska via bug 1957 (with minor changes):
[obnox/wireshark/wip.git] / plugins / llrp / llrpparsehelp.c
1 /* EPCglobal Low-Level Reader Protocol Packet Dissector
2  *
3  * Copyright 2008, Intermec Technologies Corp. <matt.poduska@intermec.com>
4  *
5  * $Id$
6  *
7  * Wireshark - Network traffic analyzer
8  * By Gerald Combs <gerald@wireshark.org>
9  * Copyright 1999 Gerald Combs
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  * 
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  * 
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24  */
25
26 #include <stdio.h>
27 #include "llrpparsetypes.h"
28 #include "llrpparsehelp.h"
29
30 char *llrp_field_type_to_name(unsigned char type)
31 {
32     if(LLRP_FIELDTYPE_IS_VARIABLE(type))
33         return llrp_variable_field_name[type-LLRP_FIELDTYPE_u1v];
34     else if(type == LLRP_FIELDTYPE_bytesToEnd)
35         return "bytesToEnd";
36     else
37         return llrp_fixed_field_name[type];
38 }
39
40 char *llrp_enumeration_to_name(t_llrp_enumeration *enumeration, unsigned short value)
41 {
42     unsigned short usIndex;
43     t_llrp_enumeration_item *item;
44
45     for(usIndex= 0; usIndex< enumeration->count; usIndex++)
46     {
47         item= &enumeration->list[usIndex];
48         if(item->value== value)
49             return item->name;
50
51         /* Since the enumeration list is ordered by value (ascending), short circuit is possible */
52         if(item->value> value)
53             return NULL;
54     }
55
56     return NULL;
57 }
58