1da2e3ebdSchin /*********************************************************************** 2da2e3ebdSchin * * 3da2e3ebdSchin * This software is part of the ast package * 4*b30d1939SAndy Fiddaman * Copyright (c) 1996-2011 AT&T Intellectual Property * 5da2e3ebdSchin * and is licensed under the * 6*b30d1939SAndy Fiddaman * Eclipse Public License, Version 1.0 * 77c2fbfb3SApril Chin * by AT&T Intellectual Property * 8da2e3ebdSchin * * 9da2e3ebdSchin * A copy of the License is available at * 10*b30d1939SAndy Fiddaman * http://www.eclipse.org/org/documents/epl-v10.html * 11*b30d1939SAndy Fiddaman * (with md5 checksum b35adb5213ca9657e911e9befb180842) * 12da2e3ebdSchin * * 13da2e3ebdSchin * Information and Software Systems Research * 14da2e3ebdSchin * AT&T Research * 15da2e3ebdSchin * Florham Park NJ * 16da2e3ebdSchin * * 17da2e3ebdSchin * Glenn Fowler <gsf@research.att.com> * 18da2e3ebdSchin * * 19da2e3ebdSchin ***********************************************************************/ 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 65da2e3ebdSchin #endif 66