107 lines
3.6 KiB
C
107 lines
3.6 KiB
C
############################################################# -*- c -*-
|
|
## generic include for XXX. Do not use directly.
|
|
##
|
|
########################################################################
|
|
@if $m2c_mark_boundary == 1@
|
|
/** START code generated by node-get.m2i */
|
|
@end@
|
|
########################################################################
|
|
##
|
|
@include m2c_setup_node.m2i@
|
|
@eval $m2c_node_realloc = 2@ // malloc
|
|
/**
|
|
* Extract the current value of the $node data.
|
|
*
|
|
* Set a value using the data context for the row.
|
|
*
|
|
@if $m2c_node_get_comments ne ""@
|
|
$m2c_node_get_comments
|
|
*
|
|
@end@
|
|
* @param rowreq_ctx
|
|
* Pointer to the row request context.
|
|
* @param $m2c_node_param_ref_name
|
|
* Pointer to storage for a $node.decl variable
|
|
@if $m2c_node_needlength == 1@
|
|
* @param $m2c_node_param_ref_lname
|
|
* Pointer to a size_t. On entry, it will contain the size (in bytes)
|
|
* pointed to by $node.
|
|
* On exit, this value should contain the data size (in bytes).
|
|
@end@
|
|
*
|
|
* @retval MFD_SUCCESS : success
|
|
* @retval MFD_SKIP : skip this node (no value for now)
|
|
* @retval MFD_ERROR : Any other error
|
|
@if $m2c_node_needlength == 1@
|
|
*
|
|
* @note If you need more than (*$m2c_node_param_ref_lname) bytes of memory,
|
|
* allocate it using malloc() and update $m2c_node_param_ref_name.
|
|
* <b>DO NOT</b> free the previous pointer.
|
|
* The MFD helper will release the memory you allocate.
|
|
*
|
|
* @remark If you call this function yourself, you are responsible
|
|
* for checking if the pointer changed, and freeing any
|
|
* previously allocated memory. (Not necessary if you pass
|
|
* in a pointer to static memory, obviously.)
|
|
@end@
|
|
*/
|
|
int
|
|
${node}_get( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_ref )
|
|
{
|
|
@ifconf syntax-$node.syntax-get.m2i@
|
|
@ include syntax-$node.syntax-get.m2i@
|
|
@else@
|
|
@ include generic-get-decl.m2i@
|
|
|
|
DEBUGMSGTL(("verbose:${context}:${node}_get","called\n"));
|
|
|
|
netsnmp_assert(NULL != rowreq_ctx);
|
|
|
|
/*
|
|
* TODO:231:o: |-> Extract the current value of the $node data.
|
|
@if $m2c_node_needlength == 0@
|
|
* copy $m2c_node_lh from $m2c_data_item_base
|
|
@else@
|
|
* copy $m2c_node_lh data and $m2c_node_lhs from $m2c_data_item_base
|
|
@end@
|
|
*/
|
|
@ if ("$m2c_data_context" eq "generated") && ($m2c_node_skip_get != 1)@
|
|
@ include generic-ctx-get.m2i@
|
|
@ else@
|
|
@ if ($m2c_node_skip_get != 1)@
|
|
/*
|
|
* TODO:235:M: |-> Remove log message/SKIP once you've set $node data
|
|
*/
|
|
snmp_log(LOG_ERR,"${context} node $node not implemented: skipping\n");
|
|
@ end@
|
|
return MFD_SKIP;
|
|
@ end@
|
|
## ------------------------------------------------------------------
|
|
@ if $node.decl =~ /long/i@ # ASN_INTEGER ASN_COUNTER ASN_GAUGE
|
|
@ include generic-get-long.m2i@
|
|
@ elsif $node.decl =~ /char/i@ # ASN_OCTET_STR ASN_OPAQUE
|
|
@ include generic-get-char.m2i@
|
|
@ elsif $node.decl =~ /oid/i@ # ASN_OBJECT_ID
|
|
@ include generic-get-oid.m2i@
|
|
@ elsif $node.decl =~ /U64/i@ # ASN_COUNTER64
|
|
@ include generic-get-U64.m2i@
|
|
@ else@
|
|
@ print ERROR: unknown node.decl: $node.decl@
|
|
@ exit@
|
|
@ end@
|
|
## ------------------------------------------------------------------
|
|
@ if ($m2c_node_skip_mapping != 1) && ("$m2c_data_context" ne "generated")@
|
|
@ include generic-value-map.m2i@
|
|
@ end@
|
|
@ include generic-get-decl-bot.m2i@ // copy value out
|
|
@end@ # no syntax include
|
|
|
|
return MFD_SUCCESS;
|
|
} /* ${node}_get */
|
|
|
|
##
|
|
########################################################################
|
|
@if $m2c_mark_boundary == 1@
|
|
/** END code generated by node-get.m2i */
|
|
@end@
|