summaryrefslogtreecommitdiff
path: root/src/lib/libsum/sum.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libsum/sum.h')
-rw-r--r--src/lib/libsum/sum.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/lib/libsum/sum.h b/src/lib/libsum/sum.h
new file mode 100644
index 0000000..af8ba60
--- /dev/null
+++ b/src/lib/libsum/sum.h
@@ -0,0 +1,65 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1996-2011 AT&T Intellectual Property *
+* and is licensed under the *
+* Eclipse Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.eclipse.org/org/documents/epl-v10.html *
+* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+/*
+ * Glenn Fowler
+ * AT&T Research
+ *
+ * checksum library interface
+ */
+
+#ifndef _SUM_H
+#define _SUM_H
+
+#include <ast.h>
+
+#define SUM_SIZE (1<<0) /* print size too */
+#define SUM_SCALE (1<<1) /* traditional size scale */
+#define SUM_TOTAL (1<<2) /* print totals since sumopen */
+#define SUM_LEGACY (1<<3) /* legacy field widths */
+
+#define _SUM_PUBLIC_ const char* name;
+
+typedef struct Sumdata_s
+{
+ uint32_t size;
+ uint32_t num;
+ void* buf;
+} Sumdata_t;
+
+typedef struct Sum_s
+{
+ _SUM_PUBLIC_
+#ifdef _SUM_PRIVATE_
+ _SUM_PRIVATE_
+#endif
+} Sum_t;
+
+extern Sum_t* sumopen(const char*);
+extern int suminit(Sum_t*);
+extern int sumblock(Sum_t*, const void*, size_t);
+extern int sumdone(Sum_t*);
+extern int sumdata(Sum_t*, Sumdata_t*);
+extern int sumprint(Sum_t*, Sfio_t*, int, size_t);
+extern int sumusage(Sfio_t*);
+extern int sumclose(Sum_t*);
+
+#endif