Browse Source

sys: add netopt to string map function and netopt module

dev/timer
Kaspar Schleiser 8 years ago
parent
commit
d18cb7a9c3
  1. 4
      sys/Makefile
  2. 11
      sys/include/net/netopt.h
  3. 1
      sys/net/crosslayer/netopt/Makefile
  4. 65
      sys/net/crosslayer/netopt/netopt.c

4
sys/Makefile

@ -59,6 +59,10 @@ ifneq (,$(filter udp,$(USEMODULE)))
DIRS += net/transport_layer/udp
endif
ifneq (,$(filter netopt,$(USEMODULE)))
DIRS += net/crosslayer/netopt
endif
DIRS += $(dir $(wildcard $(addsuffix /Makefile, ${USEMODULE})))
include $(RIOTBASE)/Makefile.base

11
sys/include/net/netopt.h

@ -1,5 +1,6 @@
/*
* Copyright (C) 2015 Freie Universität Berlin
* 2015 Kaspar Schleiser <kaspar@schleiser.de>
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
@ -18,6 +19,7 @@
*
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @author Kaspar Schleiser <kaspar@schleiser.de>
*/
#ifndef NETOPT_H_
@ -177,6 +179,15 @@ typedef enum {
/* add other states if needed */
} netopt_state_t;
/**
* @brief Get a string ptr corresponding to opt, for debugging
*
* @param[in] opt The option to get a string representation for
*
* @return ptr to string representation for given option or "unknown"
*/
const char *netopt2str(netopt_t opt);
#ifdef __cplusplus
}
#endif

1
sys/net/crosslayer/netopt/Makefile

@ -0,0 +1 @@
include $(RIOTBASE)/Makefile.base

65
sys/net/crosslayer/netopt/netopt.c

@ -0,0 +1,65 @@
/*
* Copyright (C) 2015 Kaspar Schleiser <kaspar@schleiser.de>
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @{
* @ingroup net_netopt
* @file
* @brief This file contains functionality to map netopt option
* numbers to strings
*
* @author Kaspar Schleiser <kaspar@schleiser.de>
* @}
*/
#include "net/netopt.h"
#ifdef __cplusplus
extern "C" {
#endif
static const char *_netopt_strmap[] = {
[NETOPT_CHANNEL] = "NETOPT_CHANNEL",
[NETOPT_IS_CHANNEL_CLR] = "NETOPT_IS_CHANNEL_CLR",
[NETOPT_ADDRESS] = "NETOPT_ADDRESS",
[NETOPT_ADDRESS_LONG] = "NETOPT_ADDRESS_LONG",
[NETOPT_ADDR_LEN] = "NETOPT_ADDR_LEN",
[NETOPT_SRC_LEN] = "NETOPT_SRC_LEN",
[NETOPT_NID] = "NETOPT_NID",
[NETOPT_IPV6_IID] = "NETOPT_IPV6_IID",
[NETOPT_TX_POWER] = "NETOPT_TX_POWER",
[NETOPT_MAX_PACKET_SIZE] = "NETOPT_MAX_PACKET_SIZE",
[NETOPT_PRELOADING] = "NETOPT_PRELOADING",
[NETOPT_PROMISCUOUSMODE] = "NETOPT_PROMISCUOUSMODE",
[NETOPT_AUTOACK] = "NETOPT_AUTOACK",
[NETOPT_RETRANS] = "NETOPT_RETRANS",
[NETOPT_PROTO] = "NETOPT_PROTO",
[NETOPT_STATE] = "NETOPT_STATE",
[NETOPT_RAWMODE] = "NETOPT_RAWMODE",
[NETOPT_RX_START_IRQ] = "NETOPT_RX_START_IRQ",
[NETOPT_RX_END_IRQ] = "NETOPT_RX_END_IRQ",
[NETOPT_TX_START_IRQ] = "NETOPT_TX_START_IRQ",
[NETOPT_TX_END_IRQ] = "NETOPT_TX_END_IRQ",
[NETOPT_AUTOCCA] = "NETOPT_AUTOCCA",
[NETOPT_NUMOF] = "NETOPT_NUMOF",
};
const char *netopt2str(netopt_t opt)
{
if (opt >= NETOPT_NUMOF) {
return "unknown";
}
else {
const char *tmp = _netopt_strmap[opt];
return tmp ? tmp : "unknown";
}
}
#ifdef __cplusplus
}
#endif
Loading…
Cancel
Save