00001 #ifndef INT64_INCLUDED
00002 #define INT64_INCLUDED
00003
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007
00008 typedef struct counter64 U64;
00009
00010 #define I64CHARSZ 21
00011
00012 void divBy10(U64, U64 *, unsigned int *);
00013 void multBy10(U64, U64 *);
00014 void incrByU16(U64 *, unsigned int);
00015 void incrByU32(U64 *, unsigned int);
00016 void zeroU64(U64 *);
00017 int isZeroU64(const U64 *);
00018 void printU64(char *, const U64 *);
00019 void printI64(char *, const U64 *);
00020 int read64(U64 *, const char *);
00021 void u64Subtract(const U64 * pu64one, const U64 * pu64two,
00022 U64 * pu64out);
00023 void u64Incr(U64 * pu64out, const U64 * pu64one);
00024 void u64UpdateCounter(U64 * pu64out, const U64 * pu64one,
00025 const U64 * pu64two);
00026 void u64Copy(U64 * pu64one, const U64 * pu64two);
00027
00028 int netsnmp_c64_check_for_32bit_wrap(U64 *old_val, U64 *new_val,
00029 int adjust);
00030 int netsnmp_c64_check32_and_update(struct counter64 *prev_val,
00031 struct counter64 *new_val,
00032 struct counter64 *old_prev_val,
00033 int *need_wrap_check);
00034
00035 #ifdef __cplusplus
00036 }
00037 #endif
00038 #endif