| /************************************************************** |
| * Copyright (C) 2001 Alex Rozin, Optical Access |
| * |
| * All Rights Reserved |
| * |
| * Permission to use, copy, modify and distribute this software and its |
| * documentation for any purpose and without fee is hereby granted, |
| * provided that the above copyright notice appear in all copies and that |
| * both that copyright notice and this permission notice appear in |
| * supporting documentation. |
| * |
| * ALEX ROZIN DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING |
| * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL |
| * ALEX ROZIN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR |
| * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, |
| * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, |
| * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
| * SOFTWARE. |
| ******************************************************************/ |
| |
| #ifndef _agutil_api_h_included__ |
| #define _agutil_api_h_included__ |
| |
| #include <string.h> |
| |
| #if 0 /* for debug */ |
| #warning MEMORY DEBUG VERSION |
| void *dbg_f_AGMALLOC(size_t size); |
| void dbg_f_AGFREE(void *ptr); |
| char *dbg_f_AGSTRDUP(const char *s); |
| void dbg_f_AG_MEM_REPORT(void); |
| # define AGMALLOC(X) dbg_f_AGMALLOC(X) |
| # define AGFREE(X) { dbg_f_AGFREE(X); X = NULL; } |
| # define AGSTRDUP(X) dbg_f_AGSTRDUP(X) |
| #else |
| # define AGMALLOC(X) malloc(X) |
| # define AGFREE(X) { free(X); X = NULL; } |
| # define AGSTRDUP(X) strdup(X) |
| #endif |
| |
| typedef struct { |
| size_t length; |
| oid objid[MAX_OID_LEN]; |
| } VAR_OID_T; |
| |
| void ag_trace(const char *format, ...); |
| |
| int AGUTIL_advance_index_name(struct variable *vp, oid * name, |
| size_t * length, int exact); |
| int AGUTIL_get_int_value(u_char * var_val, u_char var_val_type, |
| size_t var_val_len, long min_value, |
| long max_value, long *long_tmp); |
| int AGUTIL_get_string_value(u_char * var_val, |
| u_char var_val_type, |
| size_t var_val_len, |
| size_t buffer_max_size, |
| u_char should_zero_limited, |
| size_t * buffer_actual_size, |
| char *buffer); |
| int AGUTIL_get_oid_value(u_char * var_val, u_char var_val_type, |
| size_t var_val_len, |
| VAR_OID_T * data_source_ptr); |
| |
| u_long AGUTIL_sys_up_time(void); |
| |
| #if OPTICALL_ACESS |
| #define ETH_STATS_T UID_PORT_STATISTICS_T |
| #else |
| typedef struct { |
| u_int ifIndex; |
| u_long octets; |
| u_long packets; |
| u_long bcast_pkts; |
| u_long mcast_pkts; |
| u_long crc_align; |
| u_long undersize; |
| u_long oversize; |
| u_long fragments; |
| u_long jabbers; |
| u_long collisions; |
| u_long pkts_64; |
| u_long pkts_65_127; |
| u_long pkts_128_255; |
| u_long pkts_256_511; |
| u_long pkts_512_1023; |
| u_long pkts_1024_1518; |
| } ETH_STATS_T; |
| #endif |
| |
| void SYSTEM_get_eth_statistics(VAR_OID_T * data_source, |
| ETH_STATS_T * where); |
| |
| #endif /* _agutil_api_h_included__ */ |