############################################################# -*- c -*- ## generic include for enums. Do not use directly. ## ######################################################################## @if $m2c_mark_boundary == 1@ /** START code generated by details-enums.m2i */ @end@ ######################################################################## @ifconf $node.syntax.m2i@ @ include $node.syntax.m2i@ @else@ ## ## Generating enums ## ## Examples: ## ## enums syntax perltype net-snmp type cdecl m2c_decl ## ----- -------- -------- ------------- ----- ------- ## 1 SomeTC BITS ASN_OCTET_STR char u_long ## 1 INTEGER INTEGER ASN_INTEGER long u_long ## 1 RowStatus INTEGER ASN_INTEGER long u_long ## /************************************************************* * constants for enums for the MIB node * $node ($node.syntax / $node.type) * * since a Textual Convention may be referenced more than once in a * MIB, protect againt redefinitions of the enum values. */ ## #ifndef ${m2c_de_pfx}_ENUMS #define ${m2c_de_pfx}_ENUMS @ eval $m2c_mask=""@ @ foreach $e $v enum@ @ include m2c_setup_enum.m2i@ @ if "$node.perltype" eq "BITS"@ @ if $v > 31@ @ print ** ACK! I cannot handle BITS longer than 4 bytes!@ @ exit@ @ end@ @ if "x$m2c_mask" eq "x"@ @ eval $m2c_mask="$m2c_ename"@ @ else@ @ eval $m2c_mask="$m2c_mask | $m2c_ename"@ @ end@ $m2c_const_dcl $m2c_ename $m2c_const_del (1 << (31-$v)) $m2c_const_sfx @ else@ $m2c_const_dcl $m2c_ename $m2c_const_del $v $m2c_const_sfx @ end@ @ end@ # for each #endif /* ${m2c_de_pfx}_ENUMS */ @ if "$node.perltype" eq "BITS"@ $m2c_const_dcl $m2c_enum_mask $m2c_const_del ($m2c_mask) @ end@ @ if ($m2c_node_skip_mapping != 1) && ($node.enums == 1)@ /* * TODO:140:o: Define your interal representation of $node enums. * (used for value mapping; see notes at top of file) */ @ foreach $e $v enum@ @ include m2c_setup_enum.m2i@ @ if ("$node.perltype" ne "BITS")@ $m2c_const_dcl INTERNAL_$context.uc_$m2c_iname $m2c_const_del $v $m2c_const_sfx @ else@ $m2c_const_dcl INTERNAL_$context.uc_$m2c_iname $m2c_const_del (0x01 << $v) $m2c_const_sfx @ end@ @ end@ // foreach @ end@ // skip mapping / enums @end@ # ! syntax include ######################################################################## @if $m2c_mark_boundary == 1@ /** END code generated by details-enums.m2i */ @end@