/*
 * interface data access header
 *
 * $Id$
 */
#ifndef NETSNMP_ACCESS_INTERFACE_CONFIG_H
#define NETSNMP_ACCESS_INTERFACE_CONFIG_H

/*
 * all platforms use this generic code
 */
config_require(if-mib/data_access/interface)

/**---------------------------------------------------------------------*/
/*
 * configure required files
 *
 * Notes:
 *
 * 1) prefer functionality over platform, where possible. If a method
 *    is available for multiple platforms, test that first. That way
 *    when a new platform is ported, it won't need a new test here.
 *
 * 2) don't do detail requirements here. If, for example,
 *    HPUX11 had different reuirements than other HPUX, that should
 *    be handled in the *_hpux.h header file.
 */

#ifdef NETSNMP_INCLUDE_IFTABLE_REWRITES

config_exclude(mibII/interfaces)

#   if defined( linux )

    config_require(if-mib/data_access/interface_linux)
    config_require(if-mib/data_access/interface_ioctl)

#   elif defined( openbsd3 ) || \
         defined( freebsd4 ) || defined( freebsd5 ) || defined( freebsd6 ) || \
         defined (darwin)    || defined( dragonfly )

    config_require(if-mib/data_access/interface_sysctl)

#   elif defined( solaris2 )

    config_require(if-mib/data_access/interface_solaris2)

#   else

    config_error(This platform does not yet support IF-MIB rewrites)

#   endif
#else
#   define NETSNMP_ACCESS_INTERFACE_NOARCH 1
#endif

#endif /* NETSNMP_ACCESS_INTERFACE_CONFIG_H */
