xref: /netbsd-src/external/ibm-public/postfix/dist/src/util/mvect.h (revision e89934bbf778a6d6d6894877c4da59d0c7835b0f)
1 /*	$NetBSD: mvect.h,v 1.2 2017/02/14 01:16:49 christos Exp $	*/
2 
3 #ifndef _MVECT_H_INCLUDED_
4 #define _MVECT_H_INCLUDED_
5 
6 /*++
7 /* NAME
8 /*	mvect 3h
9 /* SUMMARY
10 /*	memory vector management
11 /* SYNOPSIS
12 /*	#include <mvect.h>
13 /* DESCRIPTION
14 /* .nf
15 
16  /*
17   * Generic memory vector interface.
18   */
19 typedef void (*MVECT_FN) (char *, ssize_t);
20 
21 typedef struct {
22     char   *ptr;
23     ssize_t elsize;
24     ssize_t nelm;
25     MVECT_FN init_fn;
26     MVECT_FN wipe_fn;
27 } MVECT;
28 
29 extern char *mvect_alloc(MVECT *, ssize_t, ssize_t, MVECT_FN, MVECT_FN);
30 extern char *mvect_realloc(MVECT *, ssize_t);
31 extern char *mvect_free(MVECT *);
32 
33 /* LICENSE
34 /* .ad
35 /* .fi
36 /*	The Secure Mailer license must be distributed with this software.
37 /* AUTHOR(S)
38 /*	Wietse Venema
39 /*	IBM T.J. Watson Research
40 /*	P.O. Box 704
41 /*	Yorktown Heights, NY 10598, USA
42 /*--*/
43 
44 #endif
45