1 /************************************************************** 2 * Copyright (C) 2001 Alex Rozin, Optical Access 3 * 4 * All Rights Reserved 5 * 6 * Permission to use, copy, modify and distribute this software and its 7 * documentation for any purpose and without fee is hereby granted, 8 * provided that the above copyright notice appear in all copies and that 9 * both that copyright notice and this permission notice appear in 10 * supporting documentation. 11 * 12 * ALEX ROZIN DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 13 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 14 * ALEX ROZIN BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 15 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 16 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 17 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 18 * SOFTWARE. 19 ******************************************************************/ 20 21 #ifndef _agutil_api_h_included__ 22 #define _agutil_api_h_included__ 23 24 #include <string.h> 25 26 #if 0 /* for debug */ 27 #warning MEMORY DEBUG VERSION 28 void *dbg_f_AGMALLOC(size_t size); 29 void dbg_f_AGFREE(void *ptr); 30 char *dbg_f_AGSTRDUP(const char *s); 31 void dbg_f_AG_MEM_REPORT(void); 32 # define AGMALLOC(X) dbg_f_AGMALLOC(X) 33 # define AGFREE(X) { dbg_f_AGFREE(X); X = NULL; } 34 # define AGSTRDUP(X) dbg_f_AGSTRDUP(X) 35 #else 36 # define AGMALLOC(X) malloc(X) 37 # define AGFREE(X) { free(X); X = NULL; } 38 # define AGSTRDUP(X) strdup(X) 39 #endif 40 41 typedef struct { 42 size_t length; 43 oid objid[MAX_OID_LEN]; 44 } VAR_OID_T; 45 46 void ag_trace(const char *format, ...); 47 48 int AGUTIL_advance_index_name(struct variable *vp, oid * name, 49 size_t * length, int exact); 50 int AGUTIL_get_int_value(u_char * var_val, u_char var_val_type, 51 size_t var_val_len, long min_value, 52 long max_value, long *long_tmp); 53 int AGUTIL_get_string_value(u_char * var_val, 54 u_char var_val_type, 55 size_t var_val_len, 56 size_t buffer_max_size, 57 u_char should_zero_limited, 58 size_t * buffer_actual_size, 59 char *buffer); 60 int AGUTIL_get_oid_value(u_char * var_val, u_char var_val_type, 61 size_t var_val_len, 62 VAR_OID_T * data_source_ptr); 63 64 u_long AGUTIL_sys_up_time(void); 65 66 #if OPTICALL_ACESS 67 #define ETH_STATS_T UID_PORT_STATISTICS_T 68 #else 69 typedef struct { 70 u_int ifIndex; 71 u_long octets; 72 u_long packets; 73 u_long bcast_pkts; 74 u_long mcast_pkts; 75 u_long crc_align; 76 u_long undersize; 77 u_long oversize; 78 u_long fragments; 79 u_long jabbers; 80 u_long collisions; 81 u_long pkts_64; 82 u_long pkts_65_127; 83 u_long pkts_128_255; 84 u_long pkts_256_511; 85 u_long pkts_512_1023; 86 u_long pkts_1024_1518; 87 } ETH_STATS_T; 88 #endif 89 90 void SYSTEM_get_eth_statistics(VAR_OID_T * data_source, 91 ETH_STATS_T * where); 92 93 #endif /* _agutil_api_h_included__ */ 94