428
+ − 1 /* Fixed-size block allocator -- include file.
+ − 2 Copyright (C) 1994 Free Software Foundation, Inc.
+ − 3
+ − 4 This file is part of XEmacs.
+ − 5
+ − 6 XEmacs is free software; you can redistribute it and/or modify it
+ − 7 under the terms of the GNU General Public License as published by the
+ − 8 Free Software Foundation; either version 2, or (at your option) any
+ − 9 later version.
+ − 10
+ − 11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ − 12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ − 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ − 14 for more details.
+ − 15
+ − 16 You should have received a copy of the GNU General Public License
+ − 17 along with XEmacs; see the file COPYING. If not, write to
+ − 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ − 19 Boston, MA 02111-1307, USA.
+ − 20 */
+ − 21
+ − 22 /* Synched up with: Not in FSF. */
+ − 23
+ − 24 /* Authorship:
+ − 25
+ − 26 Ben Wing: December 1994, for 19.12.
+ − 27 */
+ − 28
440
+ − 29 #ifndef INCLUDED_blocktype_h_
+ − 30 #define INCLUDED_blocktype_h_
428
+ − 31
+ − 32 #define Blocktype_declare(type) \
+ − 33 type *free; \
665
+ − 34 Bytecount elsize; \
428
+ − 35 type *tempel
+ − 36
665
+ − 37 void *Blocktype_newf (Bytecount elsize);
428
+ − 38 void Blocktype_allocf (void *b);
+ − 39 void Blocktype_free (void *bbb, void *el);
+ − 40
+ − 41 #define Blocktype_new(structype) \
+ − 42 (structype *) Blocktype_newf (sizeof(*(((structype *) NULL)->free)))
+ − 43 #define Blocktype_alloc(b) (Blocktype_allocf (b), (b)->tempel)
+ − 44
440
+ − 45 #endif /* INCLUDED_blocktype_h_ */