xref: /titanic_51/usr/src/lib/libsum/common/sum.h (revision 7c2fbfb345896881c631598ee3852ce9ce33fb07)
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