#############################################################  -*- c -*-
## generic include for XXX. Do not use directly.
##
## $Id$
########################################################################
@if $m2c_mark_boundary == 1@
/** START code generated by $RCSfile$ $Revision$ */
@end@
########################################################################
##
/*
 * TODO:245:o: |-> Implement $node reverse mapping.
 * If the values for your data type don't exactly match the
 * possible values defined by the mib, you should map them here.
 */
@if ($node.enums == 1)@
$example_start
@    if ("$node.perltype" eq "BITS")@
    $m2c_ctx_rh = 0;
@      foreach $e $v enum@
@          include m2c_setup_enum.m2i@
    if ($m2c_node_srh & $m2c_ename) {
        $m2c_ctx_rh |= INTERNAL_$context.uc_$m2c_iname;
    }
@      end@ # for each
@  elsif ("$node.perltype" eq "INTEGER")@
    switch($m2c_node_srh) {
@    foreach $e $v enum@
@        include m2c_setup_enum.m2i@
        case $m2c_ename:
             $m2c_ctx_rh = INTERNAL_$context.uc_$m2c_iname;
             break;

@    end@ # foreach
             default:
                 snmp_log(LOG_ERR, "couldn't reverse map value %ld for $node\n", $m2c_node_srh );
                 return SNMP_ERR_GENERR;
    }
@  end@ # integers/bits
$example_end
@else@
@  include generic-ctx-set.m2i@
@end@ # enums

##
########################################################################
@if $m2c_mark_boundary == 1@
/** END code generated by $RCSfile$ $Revision$ */
@end@
