/*****************************************************************************

 @(#) src/snmp/strMIB.h

 -----------------------------------------------------------------------------

 Copyright (c) 2008-2019  Monavacon Limited <http://www.monavacon.com/>
 Copyright (c) 2001-2008  OpenSS7 Corporation <http://www.openss7.com/>
 Copyright (c) 1997-2001  Brian F. G. Bidulock <bidulock@openss7.org>

 All Rights Reserved.

 This program is free software; you can redistribute it and/or modify it under
 the terms of the GNU Affero General Public License as published by the Free
 Software Foundation; version 3 of the License.

 This program is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
 details.

 You should have received a copy of the GNU Affero General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>, or
 write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
 02139, USA.

 -----------------------------------------------------------------------------

 U.S. GOVERNMENT RESTRICTED RIGHTS.  If you are licensing this Software on
 behalf of the U.S. Government ("Government"), the following provisions apply
 to you.  If the Software is supplied by the Department of Defense ("DoD"), it
 is classified as "Commercial Computer Software" under paragraph 252.227-7014
 of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any
 successor regulations) and the Government is acquiring only the license rights
 granted herein (the license rights customarily provided to non-Government
 users).  If the Software is supplied to any unit or agency of the Government
 other than DoD, it is classified as "Restricted Computer Software" and the
 Government's rights in the Software are defined in paragraph 52.227-19 of the
 Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in
 the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR
 (or any successor regulations).

 -----------------------------------------------------------------------------

 Commercial licensing and support of this software is available from OpenSS7
 Corporation at a fee.  See http://www.openss7.com/

 *****************************************************************************/

#ifndef __LOCAL_STRMIB_H__
#define __LOCAL_STRMIB_H__

/*
 * This file was generated by mib2c and is intended for use as a mib module
 * for the ucd-snmp snmpd agent.
 */

extern const char sa_program[];
extern int sa_fclose;			/* default close files between requests */
extern int sa_changed;			/* indication to reread MIB configuration */
extern int sa_stats_refresh;		/* indications that statistics, the mib or its tables need to be refreshed */
extern int sa_request;			/* request number for per-request actions */

/* our storage structure(s) */
struct strMIB_data {
	struct strMIB_data *strMIB_old;
	uint strMIB_rsvs;
	uint strMIB_tsts;
	uint strMIB_sets;
	int strMIB_request;
	long strCltime;			/* ReadWrite */
	ulong strMaxApush;		/* ReadWrite */
	ulong strMaxMblk;		/* ReadWrite */
	ulong strMaxStramod;		/* ReadWrite */
	ulong strMaxStrdev;		/* ReadOnly */
	ulong strMaxStrmod;		/* ReadOnly */
	long strMsgPriority;		/* ReadWrite */
	ulong strNband;			/* ReadOnly */
	ulong strNstrmsgs;		/* ReadWrite */
	ulong strNstrpush;		/* ReadWrite */
	ulong strHiwat;			/* ReadWrite */
	ulong strLowat;			/* ReadWrite */
	long strMaxpsz;			/* ReadWrite */
	long strMinpsz;			/* ReadWrite */
	long strReuseFmodsw;		/* ReadWrite */
	long strRtime;			/* ReadWrite */
	long strStrhold;		/* ReadWrite */
	ulong strStrctlsz;		/* ReadWrite */
	ulong strStrmsgsz;		/* ReadWrite */
	ulong strStrthresh;		/* ReadWrite */
	ulong strLowthresh;		/* ReadWrite */
	ulong strMedthresh;		/* ReadWrite */
	long strIoctime;		/* ReadWrite */
};
struct strModTable_data {
	struct strModTable_data *strModTable_old;
	uint strModTable_rsvs;
	uint strModTable_tsts;
	uint strModTable_sets;
	int strModTable_request;
	uint strModTable_refs;
	uint strModTable_id;
	uint8_t *strModName;		/* NoAccess */
	size_t strModNameLen;
	ulong strModIdnum;		/* ReadOnly */
	long strModType;		/* ReadOnly */
	ulong strModMajor;		/* ReadOnly */
	long strModRowStatus;		/* Create */
};
struct strModInfoTable_data {
	struct strModInfoTable_data *strModInfoTable_old;
	uint strModInfoTable_rsvs;
	uint strModInfoTable_tsts;
	uint strModInfoTable_sets;
	int strModInfoTable_request;
	uint strModInfoTable_refs;
	uint strModInfoTable_id;
	uint8_t *strModName;		/* NoAccess */
	size_t strModNameLen;
	ulong strModInfoIndex;		/* NoAccess */
	uint8_t *strModInfoQueues;	/* ReadOnly */
	size_t strModInfoQueuesLen;
	long strModInfoMinpsz;		/* ReadWrite */
	long strModInfoMaxpsz;		/* ReadWrite */
	ulong strModInfoHiwat;		/* ReadWrite */
	ulong strModInfoLowat;		/* ReadWrite */
	ulong strModInfoTraceLevel;	/* ReadWrite */
};
struct strModStatTable_data {
	struct strModStatTable_data *strModStatTable_old;
	uint strModStatTable_rsvs;
	uint strModStatTable_tsts;
	uint strModStatTable_sets;
	int strModStatTable_request;
	uint strModStatTable_refs;
	uint strModStatTable_id;
	uint8_t *strModName;		/* NoAccess */
	size_t strModNameLen;
	ulong strModStatIndex;		/* NoAccess */
	uint8_t *strModStatQueues;	/* ReadOnly */
	size_t strModStatQueuesLen;
	long strModStatPcnt;		/* ReadOnly */
	long strModStatScnt;		/* ReadOnly */
	long strModStatOcnt;		/* ReadOnly */
	long strModStatCcnt;		/* ReadOnly */
	long strModStatAcnt;		/* ReadOnly */
	uint8_t *strModStatPrivate;	/* ReadOnly */
	size_t strModStatPrivateLen;
	ulong strModStatFlags;		/* ReadOnly */
};
struct strApshTable_data {
	struct strApshTable_data *strApshTable_old;
	uint strApshTable_rsvs;
	uint strApshTable_tsts;
	uint strApshTable_sets;
	int strApshTable_request;
	uint strApshTable_refs;
	uint strApshTable_id;
	uint8_t *strModName;		/* NoAccess */
	size_t strModNameLen;
	ulong strApshMajor;		/* ReadOnly */
	ulong strApshMinor;		/* NoAccess */
	ulong strApshLastMinor;		/* NoAccess */
	uint8_t *strApshModules;	/* Create */
	size_t strApshModulesLen;
	long strApshRowStatus;		/* Create */
};
struct strStatsTable_data {
	struct strStatsTable_data *strStatsTable_old;
	uint strStatsTable_rsvs;
	uint strStatsTable_tsts;
	uint strStatsTable_sets;
	int strStatsTable_request;
	uint strStatsTable_refs;
	uint strStatsTable_id;
	long strStatsStructure;		/* NoAccess */
	long strStatsCurrentAllocs;	/* ReadOnly */
	long strStatsHighWaterMark;	/* ReadOnly */
};

/* storage declarations */
extern struct strMIB_data *strMIBStorage;
extern struct header_complex_index *strModTableStorage;
extern struct header_complex_index *strModInfoTableStorage;
extern struct header_complex_index *strModStatTableStorage;
extern struct header_complex_index *strApshTableStorage;
extern struct header_complex_index *strStatsTableStorage;

/* enum definitions from the covered mib sections */

#define STRMODTYPE_MODULE                        1
#define STRMODTYPE_DRIVER                        2

#define STRMODINFOQUEUES_RQ                      0
#define STRMODINFOQUEUES_WQ                      1
#define STRMODINFOQUEUES_MUXRQ                   2
#define STRMODINFOQUEUES_MUXWQ                   3

#define STRMODSTATQUEUES_RQ                      0
#define STRMODSTATQUEUES_WQ                      1
#define STRMODSTATQUEUES_MUXRQ                   2
#define STRMODSTATQUEUES_MUXWQ                   3

#define STRSTATSSTRUCTURE_DYNSTREAM              1
#define STRSTATSSTRUCTURE_DYNQUEUE               2
#define STRSTATSSTRUCTURE_DYNMSGBLOCK            3
#define STRSTATSSTRUCTURE_DYNMDBBLOCK            4
#define STRSTATSSTRUCTURE_DYNLINKBLK             5
#define STRSTATSSTRUCTURE_DYNSTREVENT            6
#define STRSTATSSTRUCTURE_DYNQBAND               7
#define STRSTATSSTRUCTURE_DYNSTRAPUSH            8
#define STRSTATSSTRUCTURE_DYNDEVINFO             9
#define STRSTATSSTRUCTURE_DYNMODINFO             10
#define STRSTATSSTRUCTURE_DYNSYNQ                11
#define STRSTATSSTRUCTURE_DYNBUFFERS             12

#define STRMSGPRIORITY_TRUE                      1
#define STRMSGPRIORITY_FALSE                     2

#define STRREUSEFMODSW_TRUE                      1
#define STRREUSEFMODSW_FALSE                     2

#define STRSTRHOLD_TRUE                          1
#define STRSTRHOLD_FALSE                         2

/* notifications */

/* scalars accessible only for notify */

/* object id definitions */
extern oid strMIBCompliance_oid[12];
extern oid strTunablesMandatoryGroup_oid[12];
extern oid strMessagePoolsConditionalGroup_oid[12];
extern oid strHoldConditionalGroup_oid[12];
extern oid strTunablesOptionalGroup_oid[12];
extern oid strApshTableMandatoryGroup_oid[12];
extern oid strApshTableConditionalGroup_oid[12];
extern oid strModTableMandatoryGroup_oid[12];
extern oid strModTableConditionalGroup_oid[12];
extern oid strModInfoTableMandatoryGroup_oid[12];
extern oid strModInfoTableConditionalGroup_oid[12];
extern oid strModStatTableMandatoryGroup_oid[12];
extern oid strModStatTableConditionalGroup_oid[12];
extern oid strStatsTableMandatoryGroup_oid[12];
extern oid strStatsTableConditionalGroup_oid[12];

/* function prototypes */
/* trap function prototypes */

/* variable function prototypes */
void init_strMIB(void);
void deinit_strMIB(void);
int term_strMIB(int majorID, int minorID, void *serverarg, void *clientarg);
FindVarMethod var_strMIB;
struct strMIB_data *strMIB_create(void);
struct strMIB_data *strMIB_duplicate(struct strMIB_data *);
int strMIB_destroy(struct strMIB_data **);
int strMIB_add(struct strMIB_data *);
void parse_strMIB(const char *, char *);
SNMPCallback store_strMIB;
void refresh_strMIB(int);
FindVarMethod var_strModTable;
struct strModTable_data *strModTable_create(void);
struct strModTable_data *strModTable_duplicate(struct strModTable_data *);
int strModTable_destroy(struct strModTable_data **);
int strModTable_add(struct strModTable_data *);
int strModTable_del(struct strModTable_data *);
void parse_strModTable(const char *, char *);
SNMPCallback store_strModTable;
void refresh_strModTable(int);
FindVarMethod var_strModInfoTable;
struct strModInfoTable_data *strModInfoTable_create(void);
struct strModInfoTable_data *strModInfoTable_duplicate(struct strModInfoTable_data *);
int strModInfoTable_destroy(struct strModInfoTable_data **);
int strModInfoTable_add(struct strModInfoTable_data *);
int strModInfoTable_del(struct strModInfoTable_data *);
void parse_strModInfoTable(const char *, char *);
SNMPCallback store_strModInfoTable;
void refresh_strModInfoTable(int);
FindVarMethod var_strModStatTable;
struct strModStatTable_data *strModStatTable_create(void);
struct strModStatTable_data *strModStatTable_duplicate(struct strModStatTable_data *);
int strModStatTable_destroy(struct strModStatTable_data **);
int strModStatTable_add(struct strModStatTable_data *);
int strModStatTable_del(struct strModStatTable_data *);
void parse_strModStatTable(const char *, char *);
SNMPCallback store_strModStatTable;
void refresh_strModStatTable(int);
FindVarMethod var_strApshTable;
struct strApshTable_data *strApshTable_create(void);
struct strApshTable_data *strApshTable_duplicate(struct strApshTable_data *);
int strApshTable_destroy(struct strApshTable_data **);
int strApshTable_add(struct strApshTable_data *);
int strApshTable_del(struct strApshTable_data *);
void parse_strApshTable(const char *, char *);
SNMPCallback store_strApshTable;
void refresh_strApshTable(int);
FindVarMethod var_strStatsTable;
struct strStatsTable_data *strStatsTable_create(void);
struct strStatsTable_data *strStatsTable_duplicate(struct strStatsTable_data *);
int strStatsTable_destroy(struct strStatsTable_data **);
int strStatsTable_add(struct strStatsTable_data *);
int strStatsTable_del(struct strStatsTable_data *);
void parse_strStatsTable(const char *, char *);
SNMPCallback store_strStatsTable;
void refresh_strStatsTable(int);

WriteMethod write_strModRowStatus;
WriteMethod write_strModInfoMinpsz;
WriteMethod write_strModInfoMaxpsz;
WriteMethod write_strModInfoHiwat;
WriteMethod write_strModInfoLowat;
WriteMethod write_strModInfoTraceLevel;
WriteMethod write_strApshModules;
WriteMethod write_strApshRowStatus;
WriteMethod write_strCltime;
WriteMethod write_strMaxApush;
WriteMethod write_strMaxMblk;
WriteMethod write_strMaxStramod;
WriteMethod write_strMsgPriority;
WriteMethod write_strNstrmsgs;
WriteMethod write_strNstrpush;
WriteMethod write_strHiwat;
WriteMethod write_strLowat;
WriteMethod write_strMaxpsz;
WriteMethod write_strMinpsz;
WriteMethod write_strReuseFmodsw;
WriteMethod write_strRtime;
WriteMethod write_strStrhold;
WriteMethod write_strStrctlsz;
WriteMethod write_strStrmsgsz;
WriteMethod write_strStrthresh;
WriteMethod write_strLowthresh;
WriteMethod write_strMedthresh;
WriteMethod write_strIoctime;
#endif				/* __LOCAL_STRMIB_H__ */
