1 /* 2 * This file is part of DGD, https://github.com/dworkin/dgd 3 * Copyright (C) 1993-2010 Dworkin B.V. 4 * Copyright (C) 2010-2012 DGD Authors (see the commit log for details) 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Affero General Public License as 8 * published by the Free Software Foundation, either version 3 of the 9 * License, or (at your option) any later version. 10 * 11 * This program 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 Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 # include "host.h" 21 22 typedef struct _string_ string; 23 typedef struct _array_ array; 24 typedef struct _object_ object; 25 typedef struct _value_ value; 26 typedef struct _control_ control; 27 typedef struct _dataplane_ dataplane; 28 typedef struct _dataspace_ dataspace; 29 typedef struct _frame_ frame; 30 31 # include "config.h" 32 # include "alloc.h" 33 # include "error.h" 34 35 # define BOFF(bit) ((bit) >> 5) 36 # define BBIT(bit) (1 << ((bit) & 31)) 37 # define BMAP(size) BOFF((size) + 31) 38 39 # define BSET(map, bit) (map[BOFF(bit)] |= BBIT(bit)) 40 # define BCLR(map, bit) (map[BOFF(bit)] &= ~BBIT(bit)) 41 # define BTST(map, bit) (map[BOFF(bit)] & BBIT(bit)) 42 43 extern bool call_driver_object (frame*, char*, int); 44 extern void interrupt (void); 45 extern void endthread (void); 46 extern void errhandler (frame*, Int); 47 extern int dgd_main (int, char**); 48 49 extern bool intr; 50