1*7c2fbfb3SApril Chin /*********************************************************************** 2*7c2fbfb3SApril Chin * * 3*7c2fbfb3SApril Chin * This software is part of the ast package * 4*7c2fbfb3SApril Chin * Copyright (c) 1996-2008 AT&T Intellectual Property * 5*7c2fbfb3SApril Chin * and is licensed under the * 6*7c2fbfb3SApril Chin * Common Public License, Version 1.0 * 7*7c2fbfb3SApril Chin * by AT&T Intellectual Property * 8*7c2fbfb3SApril Chin * * 9*7c2fbfb3SApril Chin * A copy of the License is available at * 10*7c2fbfb3SApril Chin * http://www.opensource.org/licenses/cpl1.0.txt * 11*7c2fbfb3SApril Chin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12*7c2fbfb3SApril Chin * * 13*7c2fbfb3SApril Chin * Information and Software Systems Research * 14*7c2fbfb3SApril Chin * AT&T Research * 15*7c2fbfb3SApril Chin * Florham Park NJ * 16*7c2fbfb3SApril Chin * * 17*7c2fbfb3SApril Chin * Glenn Fowler <gsf@research.att.com> * 18*7c2fbfb3SApril Chin * * 19*7c2fbfb3SApril Chin ***********************************************************************/ 20*7c2fbfb3SApril Chin #pragma prototyped 21*7c2fbfb3SApril Chin 22*7c2fbfb3SApril Chin /* 23*7c2fbfb3SApril Chin * Glenn Fowler 24*7c2fbfb3SApril Chin * AT&T Research 25*7c2fbfb3SApril Chin * 26*7c2fbfb3SApril Chin * checksum library interface 27*7c2fbfb3SApril Chin */ 28*7c2fbfb3SApril Chin 29*7c2fbfb3SApril Chin #ifndef _SUM_H 30*7c2fbfb3SApril Chin #define _SUM_H 31*7c2fbfb3SApril Chin 32*7c2fbfb3SApril Chin #include <ast.h> 33*7c2fbfb3SApril Chin 34*7c2fbfb3SApril Chin #define SUM_SIZE (1<<0) /* print size too */ 35*7c2fbfb3SApril Chin #define SUM_SCALE (1<<1) /* traditional size scale */ 36*7c2fbfb3SApril Chin #define SUM_TOTAL (1<<2) /* print totals since sumopen */ 37*7c2fbfb3SApril Chin #define SUM_LEGACY (1<<3) /* legacy field widths */ 38*7c2fbfb3SApril Chin 39*7c2fbfb3SApril Chin #define _SUM_PUBLIC_ const char* name; 40*7c2fbfb3SApril Chin 41*7c2fbfb3SApril Chin typedef struct Sumdata_s 42*7c2fbfb3SApril Chin { 43*7c2fbfb3SApril Chin uint32_t size; 44*7c2fbfb3SApril Chin uint32_t num; 45*7c2fbfb3SApril Chin void* buf; 46*7c2fbfb3SApril Chin } Sumdata_t; 47*7c2fbfb3SApril Chin 48*7c2fbfb3SApril Chin typedef struct Sum_s 49*7c2fbfb3SApril Chin { 50*7c2fbfb3SApril Chin _SUM_PUBLIC_ 51*7c2fbfb3SApril Chin #ifdef _SUM_PRIVATE_ 52*7c2fbfb3SApril Chin _SUM_PRIVATE_ 53*7c2fbfb3SApril Chin #endif 54*7c2fbfb3SApril Chin } Sum_t; 55*7c2fbfb3SApril Chin 56*7c2fbfb3SApril Chin extern Sum_t* sumopen(const char*); 57*7c2fbfb3SApril Chin extern int suminit(Sum_t*); 58*7c2fbfb3SApril Chin extern int sumblock(Sum_t*, const void*, size_t); 59*7c2fbfb3SApril Chin extern int sumdone(Sum_t*); 60*7c2fbfb3SApril Chin extern int sumdata(Sum_t*, Sumdata_t*); 61*7c2fbfb3SApril Chin extern int sumprint(Sum_t*, Sfio_t*, int, size_t); 62*7c2fbfb3SApril Chin extern int sumusage(Sfio_t*); 63*7c2fbfb3SApril Chin extern int sumclose(Sum_t*); 64*7c2fbfb3SApril Chin 65*7c2fbfb3SApril Chin #endif 66