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