17c2fbfb3SApril Chin /*********************************************************************** 27c2fbfb3SApril Chin * * 37c2fbfb3SApril Chin * This software is part of the ast package * 4*3e14f97fSRoger A. Faulkner * Copyright (c) 1996-2010 AT&T Intellectual Property * 57c2fbfb3SApril Chin * and is licensed under the * 67c2fbfb3SApril Chin * Common Public License, Version 1.0 * 77c2fbfb3SApril Chin * by AT&T Intellectual Property * 87c2fbfb3SApril Chin * * 97c2fbfb3SApril Chin * A copy of the License is available at * 107c2fbfb3SApril Chin * http://www.opensource.org/licenses/cpl1.0.txt * 117c2fbfb3SApril Chin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 127c2fbfb3SApril Chin * * 137c2fbfb3SApril Chin * Information and Software Systems Research * 147c2fbfb3SApril Chin * AT&T Research * 157c2fbfb3SApril Chin * Florham Park NJ * 167c2fbfb3SApril Chin * * 177c2fbfb3SApril Chin * Glenn Fowler <gsf@research.att.com> * 187c2fbfb3SApril Chin * * 197c2fbfb3SApril Chin ***********************************************************************/ 207c2fbfb3SApril Chin #pragma prototyped 217c2fbfb3SApril Chin 227c2fbfb3SApril Chin /* 237c2fbfb3SApril Chin * Glenn Fowler 247c2fbfb3SApril Chin * AT&T Research 257c2fbfb3SApril Chin * 267c2fbfb3SApril Chin * checksum library interface 277c2fbfb3SApril Chin */ 287c2fbfb3SApril Chin 297c2fbfb3SApril Chin #ifndef _SUM_H 307c2fbfb3SApril Chin #define _SUM_H 317c2fbfb3SApril Chin 327c2fbfb3SApril Chin #include <ast.h> 337c2fbfb3SApril Chin 347c2fbfb3SApril Chin #define SUM_SIZE (1<<0) /* print size too */ 357c2fbfb3SApril Chin #define SUM_SCALE (1<<1) /* traditional size scale */ 367c2fbfb3SApril Chin #define SUM_TOTAL (1<<2) /* print totals since sumopen */ 377c2fbfb3SApril Chin #define SUM_LEGACY (1<<3) /* legacy field widths */ 387c2fbfb3SApril Chin 397c2fbfb3SApril Chin #define _SUM_PUBLIC_ const char* name; 407c2fbfb3SApril Chin 417c2fbfb3SApril Chin typedef struct Sumdata_s 427c2fbfb3SApril Chin { 437c2fbfb3SApril Chin uint32_t size; 447c2fbfb3SApril Chin uint32_t num; 457c2fbfb3SApril Chin void* buf; 467c2fbfb3SApril Chin } Sumdata_t; 477c2fbfb3SApril Chin 487c2fbfb3SApril Chin typedef struct Sum_s 497c2fbfb3SApril Chin { 507c2fbfb3SApril Chin _SUM_PUBLIC_ 517c2fbfb3SApril Chin #ifdef _SUM_PRIVATE_ 527c2fbfb3SApril Chin _SUM_PRIVATE_ 537c2fbfb3SApril Chin #endif 547c2fbfb3SApril Chin } Sum_t; 557c2fbfb3SApril Chin 567c2fbfb3SApril Chin extern Sum_t* sumopen(const char*); 577c2fbfb3SApril Chin extern int suminit(Sum_t*); 587c2fbfb3SApril Chin extern int sumblock(Sum_t*, const void*, size_t); 597c2fbfb3SApril Chin extern int sumdone(Sum_t*); 607c2fbfb3SApril Chin extern int sumdata(Sum_t*, Sumdata_t*); 617c2fbfb3SApril Chin extern int sumprint(Sum_t*, Sfio_t*, int, size_t); 627c2fbfb3SApril Chin extern int sumusage(Sfio_t*); 637c2fbfb3SApril Chin extern int sumclose(Sum_t*); 647c2fbfb3SApril Chin 657c2fbfb3SApril Chin #endif 66