/*
 * Note: this file originally auto-generated by mib2c using
 *  : mib2c.table_data.conf,v 1.8 2005/07/19 14:52:03 dts12 Exp $
 */
#ifndef MTEEVENTNOTIFICATIONTABLE_H
#define MTEEVENTNOTIFICATIONTABLE_H

/*
 * function declarations 
 */
void            init_mteEventNotificationTable(void);
void            shutdown_mteEventNotificationTable(void);
Netsnmp_Node_Handler mteEventNotificationTable_handler;

/*
 * column number definitions for table mteEventNotificationTable 
 */
#define COLUMN_MTEEVENTNOTIFICATION			1
#define COLUMN_MTEEVENTNOTIFICATIONOBJECTSOWNER		2
#define COLUMN_MTEEVENTNOTIFICATIONOBJECTS		3
#endif                          /* MTEEVENTNOTIFICATIONTABLE_H */
