/*
 * Note: this file originally auto-generated by mib2c using
 *       version : 1.48 $ of : mfd-top.m2c,v $
 *
 * $Id$
 */
#ifndef IFTABLE_H
#define IFTABLE_H

#ifdef __cplusplus
extern          "C" {
#endif


/** @ingroup agent
 * @defgroup misc misc: Miscellaneous routines
 *
 * @{
 */
#include <net-snmp/library/asn1.h>
#include <net-snmp/data_access/interface.h>

    /*
     * other required module components 
     */
    /* *INDENT-OFF*  */
config_require(if-mib/data_access/interface)
config_require(if-mib/ifTable/ifTable_interface)
config_require(if-mib/ifTable/ifTable_data_access)
/*
 * conflicts with mibII/interfaces
 */
config_exclude(mibII/interfaces)
    /* *INDENT-ON*  */

    /*
     * OID, column number and enum definions for ifTable 
     */
#include "ifTable_constants.h"

    /*
     *********************************************************************
     * function declarations
     */
    void            init_ifTable(void);
    void            shutdown_ifTable(void);

    /*
     *********************************************************************
     * Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table ifTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * IF-MIB::ifTable is subid 2 of interfaces.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.2.2, length: 8
     */
    /*
     *********************************************************************
     * When you register your mib, you get to provide a generic
     * pointer that will be passed back to you for most of the
     * functions calls.
     *
     * TODO:100:r: Review all context structures
     */
    /*
     * TODO:101:o: |-> Review ifTable registration context.
     */
    typedef netsnmp_data_list ifTable_registration;

/**********************************************************************/
    /*
     * TODO:110:r: |-> Review ifTable data context structure.
     * This structure is used to represent the data for ifTable.
     */
    /*
     * This structure contains storage for all the columns defined in the
     * ifTable.
     */
    typedef struct ifTable_data_s {

        /*
         * ifDescr(2)/DisplayString/ASN_OCTET_STR/char(char)//L/A/w/e/R/d/h
         */

        /*
         * ifType(3)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h
         */

        /*
         * ifMtu(4)/INTEGER/ASN_INTEGER/long(long)//l/A/w/e/r/d/h
         */

        /*
         * ifSpeed(5)/GAUGE/ASN_GAUGE/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifPhysAddress(6)/PhysAddress/ASN_OCTET_STR/char(char)//L/A/w/e/r/d/h
         */

        /*
         * ifAdminStatus(7)/INTEGER/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
         */

        /*
         * ifOperStatus(8)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h
         */

        /*
         * ifLastChange(9)/TICKS/ASN_TIMETICKS/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInOctets(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInUcastPkts(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInNUcastPkts(12)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInDiscards(13)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInErrors(14)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInUnknownProtos(15)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutOctets(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutUcastPkts(17)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutNUcastPkts(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutDiscards(19)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutErrors(20)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutQLen(21)/GAUGE/ASN_GAUGE/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifSpecific(22)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/w/e/r/d/h
         */
#ifdef IFTABLE_HAS_IFSPECIFIC
        oid             ifSpecific[128];
        size_t          ifSpecific_len; /* # of oid elements, not bytes */
#endif

#ifdef USING_IF_MIB_IFXTABLE_IFXTABLE_MODULE
        /*
         * ifXTable stuff
         */
        /*
         * ifName(1)/DisplayString/ASN_OCTET_STR/char(char)//L/A/w/e/R/d/H
         */

        /*
         * ifInMulticastPkts(2)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifInBroadcastPkts(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutMulticastPkts(4)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifOutBroadcastPkts(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCInUcastPkts(7)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCInMulticastPkts(8)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCInBroadcastPkts(9)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCOutOctets(10)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCOutUcastPkts(11)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCOutMulticastPkts(12)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifHCOutBroadcastPkts(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
         */

        /*
         * ifLinkUpDownTrapEnable(14)/INTEGER/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
         */
        u_long          ifLinkUpDownTrapEnable;

        /*
         * ifHighSpeed(15)/GAUGE/ASN_GAUGE/u_long(u_long)//l/A/w/e/r/d/h
         */

        /*
         * ifPromiscuousMode(16)/TruthValue/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
         */

        /*
         * ifConnectorPresent(17)/TruthValue/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h
         */

        /*
         * ifAlias(18)/DisplayString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/H
         */
        char            ifAlias[64];
        size_t          ifAlias_len;    /* # of char elements, not bytes */

        /*
         * ifCounterDiscontinuityTime(19)/TimeStamp/ASN_TIMETICKS/u_long(u_long)//l/A/w/e/r/d/h
         */
        u_long          ifCounterDiscontinuityTime;
#endif                          /* USING_IF_MIB_IFXTABLE_IFXTABLE_MODULE */


        /*
         * some data kept externally 
         */
        netsnmp_interface_entry *ifentry;
    } ifTable_data;


    /*
     *********************************************************************
     * TODO:115:o: |-> Review ifTable undo context.
     * We're just going to use the same data structure for our
     * undo_context. If you want to do something more efficent,
     * define your typedef here.
     */
    typedef ifTable_data ifTable_undo_data;

    /*
     * TODO:120:r: |-> Review ifTable mib index.
     * This structure is used to represent the index for ifTable.
     */
    typedef struct ifTable_mib_index_s {

        /*
         * ifIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H
         */
        long            ifIndex;


    } ifTable_mib_index;

    /*
     * TODO:121:r: |   |-> Review ifTable max index length.
     * If you KNOW that your indexes will never exceed a certain
     * length, update this macro to that length.
     */
#define MAX_ifTable_IDX_LEN     1


    /*
     *********************************************************************
     * TODO:130:o: |-> Review ifTable Row request (rowreq) context.
     * When your functions are called, you will be passed a
     * ifTable_rowreq_ctx pointer.
     */
    typedef struct ifTable_rowreq_ctx_s {

    /** this must be first for container compare to work */
        netsnmp_index   oid_idx;
        oid             oid_tmp[MAX_ifTable_IDX_LEN];

        ifTable_mib_index tbl_idx;

        ifTable_data    data;
        ifTable_undo_data *undo;
        unsigned int    column_set_flags;       /* flags for set columns */


        /*
         * flags per row. Currently, the first (lower) 8 bits are reserved
         * for the user. See mfd.h for other flags.
         */
        u_int           rowreq_flags;

        /*
         * TODO:131:o: |   |-> Add useful data to ifTable rowreq context.
         */
        char            known_missing;
	u_char          undo_ref_count;

        /*
         * storage for future expansion
         */
        netsnmp_data_list *ifTable_data_list;

    } ifTable_rowreq_ctx;

    typedef struct ifTable_ref_rowreq_ctx_s {
        ifTable_rowreq_ctx *rowreq_ctx;
    } ifTable_ref_rowreq_ctx;

    /*
     *********************************************************************
     * function prototypes
     */
    	
    int             _mfd_ifTable_undo_setup_allocate(ifTable_rowreq_ctx *rowreq_ctx);
    void            _mfd_ifTable_undo_setup_release(ifTable_rowreq_ctx *rowreq_ctx);
    int             ifTable_pre_request(ifTable_registration *
                                        user_context);
    int             ifTable_post_request(ifTable_registration *
                                         user_context, int rc);

    int             ifTable_rowreq_ctx_init(ifTable_rowreq_ctx *
                                            rowreq_ctx,
                                            void *user_init_ctx);
    void            ifTable_rowreq_ctx_cleanup(ifTable_rowreq_ctx *
                                               rowreq_ctx);

    int             ifTable_check_dependencies(ifTable_rowreq_ctx *
                                               rowreq_ctx);
    int             ifTable_commit(ifTable_rowreq_ctx * rowreq_ctx);

    ifTable_rowreq_ctx *ifTable_row_find_by_mib_index(ifTable_mib_index *
                                                      mib_idx);

    extern const oid ifTable_oid[];
    extern const int ifTable_oid_size;


#include "ifTable_interface.h"
#include "ifTable_data_access.h"
    /*
     *********************************************************************
     * GET function declarations
     */

    /*
     *********************************************************************
     * GET Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table ifTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * IF-MIB::ifTable is subid 2 of interfaces.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.2.2, length: 8
     */
    /*
     * indexes
     */

    int             ifDescr_get(ifTable_rowreq_ctx * rowreq_ctx,
                                char **ifDescr_val_ptr_ptr,
                                size_t * ifDescr_val_ptr_len_ptr);
    int             ifType_get(ifTable_rowreq_ctx * rowreq_ctx,
                               u_long * ifType_val_ptr);
    int             ifMtu_get(ifTable_rowreq_ctx * rowreq_ctx,
                              long *ifMtu_val_ptr);
    int             ifSpeed_get(ifTable_rowreq_ctx * rowreq_ctx,
                                u_long * ifSpeed_val_ptr);
    int             ifPhysAddress_get(ifTable_rowreq_ctx * rowreq_ctx,
                                      char **ifPhysAddress_val_ptr_ptr,
                                      size_t
                                      * ifPhysAddress_val_ptr_len_ptr);
    int             ifAdminStatus_get(ifTable_rowreq_ctx * rowreq_ctx,
                                      u_long * ifAdminStatus_val_ptr);
    int             ifOperStatus_get(ifTable_rowreq_ctx * rowreq_ctx,
                                     u_long * ifOperStatus_val_ptr);
    int             ifLastChange_get(ifTable_rowreq_ctx * rowreq_ctx,
                                     u_long * ifLastChange_val_ptr);
    int             ifInOctets_get(ifTable_rowreq_ctx * rowreq_ctx,
                                   u_long * ifInOctets_val_ptr);
    int             ifInUcastPkts_get(ifTable_rowreq_ctx * rowreq_ctx,
                                      u_long * ifInUcastPkts_val_ptr);
    int             ifInNUcastPkts_get(ifTable_rowreq_ctx * rowreq_ctx,
                                       u_long * ifInNUcastPkts_val_ptr);
    int             ifInDiscards_get(ifTable_rowreq_ctx * rowreq_ctx,
                                     u_long * ifInDiscards_val_ptr);
    int             ifInErrors_get(ifTable_rowreq_ctx * rowreq_ctx,
                                   u_long * ifInErrors_val_ptr);
    int             ifInUnknownProtos_get(ifTable_rowreq_ctx * rowreq_ctx,
                                          u_long *
                                          ifInUnknownProtos_val_ptr);
    int             ifOutOctets_get(ifTable_rowreq_ctx * rowreq_ctx,
                                    u_long * ifOutOctets_val_ptr);
    int             ifOutUcastPkts_get(ifTable_rowreq_ctx * rowreq_ctx,
                                       u_long * ifOutUcastPkts_val_ptr);
    int             ifOutNUcastPkts_get(ifTable_rowreq_ctx * rowreq_ctx,
                                        u_long * ifOutNUcastPkts_val_ptr);
    int             ifOutDiscards_get(ifTable_rowreq_ctx * rowreq_ctx,
                                      u_long * ifOutDiscards_val_ptr);
    int             ifOutErrors_get(ifTable_rowreq_ctx * rowreq_ctx,
                                    u_long * ifOutErrors_val_ptr);
    int             ifOutQLen_get(ifTable_rowreq_ctx * rowreq_ctx,
                                  u_long * ifOutQLen_val_ptr);
    int             ifSpecific_get(ifTable_rowreq_ctx * rowreq_ctx,
                                   oid ** ifSpecific_val_ptr_ptr,
                                   size_t * ifSpecific_val_ptr_len_ptr);


    int             ifTable_indexes_set_tbl_idx(ifTable_mib_index *
                                                tbl_idx, long ifIndex_val);
    int             ifTable_indexes_set(ifTable_rowreq_ctx * rowreq_ctx,
                                        long ifIndex_val);



#ifndef NETSNMP_NO_WRITE_SUPPORT
    /*
     *********************************************************************
     * SET function declarations
     */

    /*
     *********************************************************************
     * SET Table declarations
     */
/**********************************************************************
 **********************************************************************
 ***
 *** Table ifTable
 ***
 **********************************************************************
 **********************************************************************/
    /*
     * IF-MIB::ifTable is subid 2 of interfaces.
     * Its status is Current.
     * OID: .1.3.6.1.2.1.2.2, length: 8
     */


    int             ifTable_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifTable_undo_cleanup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifTable_undo(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifTable_commit(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifTable_undo_commit(ifTable_rowreq_ctx * rowreq_ctx);


    int             ifDescr_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                        char *ifDescr_val_ptr,
                                        size_t ifDescr_val_ptr_len);
    int             ifDescr_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifDescr_set(ifTable_rowreq_ctx * rowreq_ctx,
                                char *ifDescr_val_ptr,
                                size_t ifDescr_val_ptr_len);
    int             ifDescr_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifType_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                       u_long ifType_val);
    int             ifType_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifType_set(ifTable_rowreq_ctx * rowreq_ctx,
                               u_long ifType_val);
    int             ifType_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifMtu_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                      long ifMtu_val);
    int             ifMtu_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifMtu_set(ifTable_rowreq_ctx * rowreq_ctx,
                              long ifMtu_val);
    int             ifMtu_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifSpeed_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                        u_long ifSpeed_val);
    int             ifSpeed_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifSpeed_set(ifTable_rowreq_ctx * rowreq_ctx,
                                u_long ifSpeed_val);
    int             ifSpeed_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifPhysAddress_check_value(ifTable_rowreq_ctx *
                                              rowreq_ctx,
                                              char *ifPhysAddress_val_ptr,
                                              size_t
                                              ifPhysAddress_val_ptr_len);
    int             ifPhysAddress_undo_setup(ifTable_rowreq_ctx *
                                             rowreq_ctx);
    int             ifPhysAddress_set(ifTable_rowreq_ctx * rowreq_ctx,
                                      char *ifPhysAddress_val_ptr,
                                      size_t ifPhysAddress_val_ptr_len);
    int             ifPhysAddress_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifAdminStatus_check_value(ifTable_rowreq_ctx *
                                              rowreq_ctx,
                                              u_long ifAdminStatus_val);
    int             ifAdminStatus_undo_setup(ifTable_rowreq_ctx *
                                             rowreq_ctx);
    int             ifAdminStatus_set(ifTable_rowreq_ctx * rowreq_ctx,
                                      u_long ifAdminStatus_val);
    int             ifAdminStatus_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifOperStatus_check_value(ifTable_rowreq_ctx *
                                             rowreq_ctx,
                                             u_long ifOperStatus_val);
    int             ifOperStatus_undo_setup(ifTable_rowreq_ctx *
                                            rowreq_ctx);
    int             ifOperStatus_set(ifTable_rowreq_ctx * rowreq_ctx,
                                     u_long ifOperStatus_val);
    int             ifOperStatus_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifLastChange_check_value(ifTable_rowreq_ctx *
                                             rowreq_ctx,
                                             u_long ifLastChange_val);
    int             ifLastChange_undo_setup(ifTable_rowreq_ctx *
                                            rowreq_ctx);
    int             ifLastChange_set(ifTable_rowreq_ctx * rowreq_ctx,
                                     u_long ifLastChange_val);
    int             ifLastChange_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifInOctets_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                           u_long ifInOctets_val);
    int             ifInOctets_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifInOctets_set(ifTable_rowreq_ctx * rowreq_ctx,
                                   u_long ifInOctets_val);
    int             ifInOctets_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifInUcastPkts_check_value(ifTable_rowreq_ctx *
                                              rowreq_ctx,
                                              u_long ifInUcastPkts_val);
    int             ifInUcastPkts_undo_setup(ifTable_rowreq_ctx *
                                             rowreq_ctx);
    int             ifInUcastPkts_set(ifTable_rowreq_ctx * rowreq_ctx,
                                      u_long ifInUcastPkts_val);
    int             ifInUcastPkts_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifInNUcastPkts_check_value(ifTable_rowreq_ctx *
                                               rowreq_ctx,
                                               u_long ifInNUcastPkts_val);
    int             ifInNUcastPkts_undo_setup(ifTable_rowreq_ctx *
                                              rowreq_ctx);
    int             ifInNUcastPkts_set(ifTable_rowreq_ctx * rowreq_ctx,
                                       u_long ifInNUcastPkts_val);
    int             ifInNUcastPkts_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifInDiscards_check_value(ifTable_rowreq_ctx *
                                             rowreq_ctx,
                                             u_long ifInDiscards_val);
    int             ifInDiscards_undo_setup(ifTable_rowreq_ctx *
                                            rowreq_ctx);
    int             ifInDiscards_set(ifTable_rowreq_ctx * rowreq_ctx,
                                     u_long ifInDiscards_val);
    int             ifInDiscards_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifInErrors_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                           u_long ifInErrors_val);
    int             ifInErrors_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifInErrors_set(ifTable_rowreq_ctx * rowreq_ctx,
                                   u_long ifInErrors_val);
    int             ifInErrors_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifInUnknownProtos_check_value(ifTable_rowreq_ctx *
                                                  rowreq_ctx,
                                                  u_long
                                                  ifInUnknownProtos_val);
    int             ifInUnknownProtos_undo_setup(ifTable_rowreq_ctx *
                                                 rowreq_ctx);
    int             ifInUnknownProtos_set(ifTable_rowreq_ctx * rowreq_ctx,
                                          u_long ifInUnknownProtos_val);
    int             ifInUnknownProtos_undo(ifTable_rowreq_ctx *
                                           rowreq_ctx);

    int             ifOutOctets_check_value(ifTable_rowreq_ctx *
                                            rowreq_ctx,
                                            u_long ifOutOctets_val);
    int             ifOutOctets_undo_setup(ifTable_rowreq_ctx *
                                           rowreq_ctx);
    int             ifOutOctets_set(ifTable_rowreq_ctx * rowreq_ctx,
                                    u_long ifOutOctets_val);
    int             ifOutOctets_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifOutUcastPkts_check_value(ifTable_rowreq_ctx *
                                               rowreq_ctx,
                                               u_long ifOutUcastPkts_val);
    int             ifOutUcastPkts_undo_setup(ifTable_rowreq_ctx *
                                              rowreq_ctx);
    int             ifOutUcastPkts_set(ifTable_rowreq_ctx * rowreq_ctx,
                                       u_long ifOutUcastPkts_val);
    int             ifOutUcastPkts_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifOutNUcastPkts_check_value(ifTable_rowreq_ctx *
                                                rowreq_ctx,
                                                u_long
                                                ifOutNUcastPkts_val);
    int             ifOutNUcastPkts_undo_setup(ifTable_rowreq_ctx *
                                               rowreq_ctx);
    int             ifOutNUcastPkts_set(ifTable_rowreq_ctx * rowreq_ctx,
                                        u_long ifOutNUcastPkts_val);
    int             ifOutNUcastPkts_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifOutDiscards_check_value(ifTable_rowreq_ctx *
                                              rowreq_ctx,
                                              u_long ifOutDiscards_val);
    int             ifOutDiscards_undo_setup(ifTable_rowreq_ctx *
                                             rowreq_ctx);
    int             ifOutDiscards_set(ifTable_rowreq_ctx * rowreq_ctx,
                                      u_long ifOutDiscards_val);
    int             ifOutDiscards_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifOutErrors_check_value(ifTable_rowreq_ctx *
                                            rowreq_ctx,
                                            u_long ifOutErrors_val);
    int             ifOutErrors_undo_setup(ifTable_rowreq_ctx *
                                           rowreq_ctx);
    int             ifOutErrors_set(ifTable_rowreq_ctx * rowreq_ctx,
                                    u_long ifOutErrors_val);
    int             ifOutErrors_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifOutQLen_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                          u_long ifOutQLen_val);
    int             ifOutQLen_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifOutQLen_set(ifTable_rowreq_ctx * rowreq_ctx,
                                  u_long ifOutQLen_val);
    int             ifOutQLen_undo(ifTable_rowreq_ctx * rowreq_ctx);

    int             ifSpecific_check_value(ifTable_rowreq_ctx * rowreq_ctx,
                                           oid * ifSpecific_val_ptr,
                                           size_t ifSpecific_val_ptr_len);
    int             ifSpecific_undo_setup(ifTable_rowreq_ctx * rowreq_ctx);
    int             ifSpecific_set(ifTable_rowreq_ctx * rowreq_ctx,
                                   oid * ifSpecific_val_ptr,
                                   size_t ifSpecific_val_ptr_len);
    int             ifSpecific_undo(ifTable_rowreq_ctx * rowreq_ctx);


    int             ifTable_check_dependencies(ifTable_rowreq_ctx * ctx);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */

    /*
     * DUMMY markers, ignore
     *
     * TODO:099:x: *************************************************************
     * TODO:199:x: *************************************************************
     * TODO:299:x: *************************************************************
     * TODO:399:x: *************************************************************
     * TODO:499:x: *************************************************************
     */

#ifdef __cplusplus
}
#endif
#endif                          /* IFTABLE_H */
/**  @} */

