1 /* frags.h - Header file for the frag concept. 2 Copyright (C) 1987 Free Software Foundation, Inc. 3 4 This file is part of GAS, the GNU Assembler. 5 6 GAS is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 1, or (at your option) 9 any later version. 10 11 GAS is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GAS; see the file COPYING. If not, write to 18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ 19 20 extern struct obstack frags; 21 /* Frags ONLY live in this obstack. */ 22 /* We use obstack_next_free() macro */ 23 /* so please don't put any other objects */ 24 /* on this stack! */ 25 26 /* 27 * A macro to speed up appending exactly 1 char 28 * to current frag. 29 */ 30 /* JF changed < 1 to <= 1 to avoid a race conditon */ 31 #define FRAG_APPEND_1_CHAR(datum) \ 32 { \ 33 if (obstack_room( &frags ) <= 1) {\ 34 frag_wane (frag_now); \ 35 frag_new (0); \ 36 } \ 37 obstack_1grow( &frags, datum ); \ 38 } 39 40 41 /* end: frags.h */ 42