details-enums.m2i
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #############################################################  -*- c -*-
  2. ## generic include for enums. Do not use directly.
  3. ##
  4. ## $Id: details-enums.m2i,v 1.10 2004/10/08 23:40:24 rstory Exp $
  5. ########################################################################
  6. @if $m2c_mark_boundary == 1@
  7. /** START code generated by $RCSfile: details-enums.m2i,v $ $Revision: 1.10 $ */
  8. @end@
  9. ########################################################################
  10. @ifconf $node.syntax.m2i@
  11. @   include $node.syntax.m2i@
  12. @else@
  13. ##
  14. ##   Generating enums
  15. ##
  16. ## Examples:
  17. ##
  18. ## enums  syntax    perltype  net-snmp type  cdecl  m2c_decl
  19. ## -----  --------  --------  -------------  -----  -------
  20. ##   1    SomeTC    BITS      ASN_OCTET_STR  char    u_long
  21. ##   1    INTEGER   INTEGER   ASN_INTEGER    long    u_long
  22. ##   1    RowStatus INTEGER   ASN_INTEGER    long    u_long
  23. ##
  24. /*************************************************************
  25.  * constants for enums for the MIB node
  26.  * $node ($node.syntax / $node.type)
  27.  *
  28.  * since a Textual Convention may be referenced more than once in a
  29.  * MIB, protect againt redefinitions of the enum values.
  30.  */
  31. ##
  32. #ifndef ${m2c_de_pfx}_ENUMS
  33. #define ${m2c_de_pfx}_ENUMS
  34. @      eval $m2c_mask=""@
  35. @      foreach $e $v enum@
  36. @         include m2c_setup_enum.m2i@
  37. @         if "$node.perltype" eq "BITS"@
  38. @            if $v > 31@
  39. @               print ** ACK! I cannot handle BITS longer than 4 bytes!@
  40. @               exit@
  41. @            end@
  42. @            if "x$m2c_mask" eq "x"@
  43. @               eval $m2c_mask="$m2c_ename"@
  44. @            else@
  45. @               eval $m2c_mask="$m2c_mask | $m2c_ename"@
  46. @            end@
  47. $m2c_const_dcl $m2c_ename $m2c_const_del (1 << (31-$v)) $m2c_const_sfx
  48. @         else@
  49. $m2c_const_dcl $m2c_ename $m2c_const_del $v $m2c_const_sfx
  50. @         end@
  51. @      end@ # for each
  52. @      if "$node.perltype" eq "BITS"@
  53. $m2c_const_dcl $m2c_enum_mask $m2c_const_del ($m2c_mask)
  54.     
  55. @      end@
  56. #endif /* ${m2c_de_pfx}_ENUMS */
  57. @     if $m2c_node_skip_mapping == 0@
  58. @      if ($node.enums == 1) && ("$node.perltype" ne "BITS")@
  59.     /*
  60.      * TODO:140:o: Define interal representation of $node enums.
  61.      * (used for value mapping; see notes at top of file)
  62.      */
  63. @         foreach $e $v enum@
  64. @            include m2c_setup_enum.m2i@
  65. $m2c_const_dcl INTERNAL_$m2c_iname $m2c_const_del $v $m2c_const_sfx
  66. @         end@
  67. @      end@ // enums, ! BITS
  68. @     end@ // skip mapping
  69. @end@ # ! syntax include
  70. ########################################################################
  71. @if $m2c_mark_boundary == 1@
  72. /** END code generated by $RCSfile: details-enums.m2i,v $ $Revision: 1.10 $ */
  73. @end@