38 #ifndef LWIP_HDR_APPS_SNMP_SCALAR_H 
   39 #define LWIP_HDR_APPS_SNMP_SCALAR_H 
   41 #include "lwip/apps/snmp_opts.h" 
   42 #include "lwip/apps/snmp_core.h" 
   51 struct snmp_scalar_node
 
   54   struct snmp_leaf_node node;
 
   57   node_instance_get_value_method get_value;
 
   58   node_instance_set_test_method set_test;
 
   59   node_instance_set_value_method set_value;
 
   63 snmp_err_t snmp_scalar_get_instance(
const u32_t *root_oid, 
u8_t root_oid_len, 
struct snmp_node_instance* instance);
 
   64 snmp_err_t snmp_scalar_get_next_instance(
const u32_t *root_oid, 
u8_t root_oid_len, 
struct snmp_node_instance* instance);
 
   66 #define SNMP_SCALAR_CREATE_NODE(oid, access, asn1_type, get_value_method, set_test_method, set_value_method) \ 
   67   {{{ SNMP_NODE_SCALAR, (oid) }, \ 
   68     snmp_scalar_get_instance, \ 
   69     snmp_scalar_get_next_instance }, \ 
   70     (asn1_type), (access), (get_value_method), (set_test_method), (set_value_method) } 
   72 #define SNMP_SCALAR_CREATE_NODE_READONLY(oid, asn1_type, get_value_method) SNMP_SCALAR_CREATE_NODE(oid, SNMP_NODE_INSTANCE_READ_ONLY, asn1_type, get_value_method, NULL, NULL) 
   75 struct snmp_scalar_array_node_def
 
   82 typedef s16_t (*snmp_scalar_array_get_value_method)(
const struct snmp_scalar_array_node_def*, 
void*);
 
   83 typedef snmp_err_t (*snmp_scalar_array_set_test_method)(
const struct snmp_scalar_array_node_def*, 
u16_t, 
void*);
 
   84 typedef snmp_err_t (*snmp_scalar_array_set_value_method)(
const struct snmp_scalar_array_node_def*, 
u16_t, 
void*);
 
   87 struct snmp_scalar_array_node
 
   90   struct snmp_leaf_node node;
 
   91   u16_t array_node_count;
 
   92   const struct snmp_scalar_array_node_def* array_nodes;
 
   93   snmp_scalar_array_get_value_method get_value;
 
   94   snmp_scalar_array_set_test_method set_test;
 
   95   snmp_scalar_array_set_value_method set_value;
 
   98 snmp_err_t snmp_scalar_array_get_instance(
const u32_t *root_oid, 
u8_t root_oid_len, 
struct snmp_node_instance* instance);
 
   99 snmp_err_t snmp_scalar_array_get_next_instance(
const u32_t *root_oid, 
u8_t root_oid_len, 
struct snmp_node_instance* instance);
 
  101 #define SNMP_SCALAR_CREATE_ARRAY_NODE(oid, array_nodes, get_value_method, set_test_method, set_value_method) \ 
  102   {{{ SNMP_NODE_SCALAR_ARRAY, (oid) }, \ 
  103     snmp_scalar_array_get_instance, \ 
  104     snmp_scalar_array_get_next_instance }, \ 
  105     (u16_t)LWIP_ARRAYSIZE(array_nodes), (array_nodes), (get_value_method), (set_test_method), (set_value_method) }