46#if LWIP_SNMP && SNMP_LWIP_MIB2
49#define SYNC_NODE_NAME(node_name) node_name ## _synced
50#define CREATE_LWIP_SYNC_NODE(oid, node_name) \
51 static const struct snmp_threadsync_node node_name ## _synced = SNMP_CREATE_THREAD_SYNC_NODE(oid, &node_name.node, &snmp_mib2_lwip_locks);
53#define SYNC_NODE_NAME(node_name) node_name
54#define CREATE_LWIP_SYNC_NODE(oid, node_name)
61static const u8_t *sysdescr = sysdescr_default;
66static const u8_t *syscontact = syscontact_default;
70static u16_t syscontact_bufsize = 0;
74static const u8_t *sysname = sysname_default;
78static u16_t sysname_bufsize = 0;
82static const u8_t *syslocation = syslocation_default;
83static const u16_t *syslocation_len =
NULL;
86static u16_t syslocation_bufsize = 0;
122 syscontact_wr = ocstr;
123 syscontact_len = ocstrlen;
124 syscontact_wr_len = ocstrlen;
134snmp_mib2_set_syscontact_readonly(
const u8_t *ocstr,
const u16_t *ocstrlen)
138 syscontact_len = ocstrlen;
139 syscontact_wr =
NULL;
140 syscontact_wr_len =
NULL;
141 syscontact_bufsize = 0;
165 sysname_len = ocstrlen;
166 sysname_wr_len = ocstrlen;
176snmp_mib2_set_sysname_readonly(
const u8_t *ocstr,
const u16_t *ocstrlen)
180 sysname_len = ocstrlen;
182 sysname_wr_len =
NULL;
205 syslocation_wr = ocstr;
206 syslocation_len = ocstrlen;
207 syslocation_wr_len = ocstrlen;
217snmp_mib2_set_syslocation_readonly(
const u8_t *ocstr,
const u16_t *ocstrlen)
221 syslocation_len = ocstrlen;
222 syslocation_wr =
NULL;
223 syslocation_wr_len =
NULL;
224 syslocation_bufsize = 0;
230system_get_value(
const struct snmp_scalar_array_node_def *
node,
void *
value)
233 const s16_t *var_len;
239 var_len = (
const s16_t *)sysdescr_len;
242 const struct snmp_obj_id *dev_enterprise_oid = snmp_get_device_enterprise_oid();
243 MEMCPY(
value, dev_enterprise_oid->id, dev_enterprise_oid->len *
sizeof(
u32_t));
244 return dev_enterprise_oid->len *
sizeof(
u32_t);
248 return sizeof(
u32_t);
251 var_len = (
const s16_t *)syscontact_len;
255 var_len = (
const s16_t *)sysname_len;
259 var_len = (
const s16_t *)syslocation_len;
263 return sizeof(
s32_t);
271 if (var_len ==
NULL) {
281system_set_test(
const struct snmp_scalar_array_node_def *
node,
u16_t len,
void *
value)
283 snmp_err_t
ret = SNMP_ERR_WRONGVALUE;
285 const u16_t *var_wr_len;
291 var_bufsize = &syscontact_bufsize;
292 var_wr_len = syscontact_wr_len;
295 var_bufsize = &sysname_bufsize;
296 var_wr_len = sysname_wr_len;
299 var_bufsize = &syslocation_bufsize;
300 var_wr_len = syslocation_wr_len;
308 if (*var_bufsize > 0) {
309 if (var_wr_len ==
NULL) {
311 if (
len < *var_bufsize) {
312 ret = SNMP_ERR_NOERROR;
315 if (
len <= *var_bufsize) {
316 ret = SNMP_ERR_NOERROR;
320 ret = SNMP_ERR_NOTWRITABLE;
327system_set_value(
const struct snmp_scalar_array_node_def *
node,
u16_t len,
void *
value)
334 var_wr = syscontact_wr;
335 var_wr_len = syscontact_wr_len;
339 var_wr_len = sysname_wr_len;
342 var_wr = syslocation_wr;
343 var_wr_len = syslocation_wr_len;
347 return SNMP_ERR_GENERROR;
354 if (var_wr_len ==
NULL) {
361 return SNMP_ERR_NOERROR;
364static const struct snmp_scalar_array_node_def system_nodes[] = {
365 {1, SNMP_ASN1_TYPE_OCTET_STRING, SNMP_NODE_INSTANCE_READ_ONLY},
366 {2, SNMP_ASN1_TYPE_OBJECT_ID, SNMP_NODE_INSTANCE_READ_ONLY},
367 {3, SNMP_ASN1_TYPE_TIMETICKS, SNMP_NODE_INSTANCE_READ_ONLY},
368 {4, SNMP_ASN1_TYPE_OCTET_STRING, SNMP_NODE_INSTANCE_READ_WRITE},
369 {5, SNMP_ASN1_TYPE_OCTET_STRING, SNMP_NODE_INSTANCE_READ_WRITE},
370 {6, SNMP_ASN1_TYPE_OCTET_STRING, SNMP_NODE_INSTANCE_READ_WRITE},
371 {7, SNMP_ASN1_TYPE_INTEGER, SNMP_NODE_INSTANCE_READ_ONLY}
374const struct snmp_scalar_array_node snmp_mib2_system_node = SNMP_SCALAR_CREATE_ARRAY_NODE(1, system_nodes, system_get_value, system_set_test, system_set_value);
ACPI_SIZE strlen(const char *String)
#define LWIP_DEBUGF(debug, message)
#define LWIP_ASSERT(message, assertion)
#define MIB2_COPY_SYSUPTIME_TO(ptrToVal)
GLenum GLuint GLsizei bufsize
#define LWIP_UNUSED_ARG(x)
#define SNMP_LWIP_MIB2_SYSCONTACT
#define SNMP_LWIP_MIB2_SYSLOCATION
#define SNMP_LWIP_MIB2_SYSNAME
#define SNMP_LWIP_MIB2_SYSDESC
#define MEMCPY(DST, SRC, BYTES)