host.h
上传用户:cxs890
上传日期:2021-05-22
资源大小:347k
文件大小:4k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /*
  2.  *  Host Resources 'wrapper' interface
  3.  * calls the per-group interfaces from 'hr_*.h'
  4.  */
  5. #ifndef MIBGROUP_HOST_H
  6. #define MIBGROUP_HOST_H
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. config_require(host/hr_system)
  11. config_require(host/hr_storage)
  12. config_require(host/hr_device)
  13. config_require(host/hr_other)
  14. config_require(host/hr_proc)
  15. config_require(host/hr_network)
  16. config_require(host/hr_print)
  17. config_require(host/hr_disk)
  18. config_require(host/hr_partition)
  19. config_require(host/hr_filesys)
  20. config_require(host/hr_swrun)
  21. config_require(host/hr_swinst)
  22. config_require(host/hr_utils)
  23. /* add the host resources mib to the default mibs to load */
  24.         config_add_mib(HOST-RESOURCES-MIB) 
  25.         config_add_mib(HOST-RESOURCES-TYPES) 
  26. /*********************************************
  27.  *
  28.  *   A few words about the design of the Host Resources
  29.  *     implementation - particularly as regards the hrDevice
  30.  *     group and hrDeviceIndex.  This (and hrStorageIndex) make 
  31.  *     use of the non-consecutive nature of SNMP instance identifiers.
  32.  *
  33.  *   hrDeviceIndex is structured in a 'major/minor' form,
  34.  *     with the high end indicating the type of device
  35.  *     (following the enumerations of hrDeviceType) and the low
  36.  *     end being used to differentiate between devices of that type.
  37.  *
  38.  *   The implementation of walking through the available devices
  39.  *     uses a pair of arrays of functions - indexed by hrDeviceType
  40.  *     These are used to perform any initialisation needed for that
  41.  *     type of device, and to step through the instances of that type. 
  42.  *   This latter 'get_next' routing returns the hrDeviceIndex (including
  43.  *     the hrDeviceType major number), or -1 if there are no further
  44.  *     instances of that type.
  45.  *   When all devices of a particular type have been processed, the
  46.  *     initialisation function for the next device type is called,
  47.  *     and so on until all devices have been proceesed.
  48.  *   
  49.  *   Similar arrays are used to provide type-specific functions to
  50.  *     return the "common" device information (description, ID, status
  51.  *     and error count), and to save any internal structures needed
  52.  *     to provide these.
  53.  *   A final array is used to indicate whether hrDeviceIndexes are
  54.  *     returned in a random order, or strictly increasing.  In the
  55.  *     latter case, this allows the search for a particular index to
  56.  *     terminate as soon as the 'next' device is reached, without needing
  57.  *     to check the rest of them.  Similarly, once a particular type of
  58.  *     device has been scanned, further types will not be examined unless
  59.  *     a suitable index has not yet been found.
  60.  *
  61.  *   The index used for hrFSIndex is also used as hrStorageIndex,
  62.  *     for those storage areas corresponding to filestore.
  63.  *     Additional storage areas (such as memory or swap space) are
  64.  *     distinguished by index values greater than a defined constant.
  65.  *     Currently these are individually defined entries, but other
  66.  *     ranges could be implemented similarly.
  67.  *   If hrFSIndex was re-implemented to reflect internal identifiers,
  68.  *     it would be possible to reverse the sense of the current
  69.  *     implementation, with non-filestore storage having indices
  70.  *     less than a defined constant, rather than greater.
  71.  *
  72.  *
  73.  *   Much of the detailed implementation of this group (as opposed to
  74.  *     the implementation infrastructure outlined about) is likely to
  75.  *     be very system-specific.
  76.  *   The initial implementation (for HP-UX 9 and Linux) should be
  77.  *     regarded as a 'proof of concept' example, rather than as
  78.  *     finished, releasable code.  This particularly hold for the
  79.  *     disk device discovery code, which is gross in the extreme,
  80.  *     and should never have seen the light of day!
  81.  *   Hopefully this can be ripped out and given a quiet burial as
  82.  *     soon as is decently possible.  
  83.  *
  84.  *   Now it's up to the rest of you to hammer this into some sort of
  85.  *     sensible shape.
  86.  *                                Dave Shield
  87.  *   
  88.  *********************************************/
  89. #ifdef __cplusplus
  90. }
  91. #endif
  92. #endif