1 /* brig-c.h -- Header file for brig input's gcc C interface. 2 Copyright (C) 2016-2019 Free Software Foundation, Inc. 3 Contributed by Pekka Jaaskelainen <pekka.jaaskelainen@parmance.com> 4 for General Processor Tech. 5 6 This file is part of GCC. 7 8 GCC is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free 10 Software Foundation; either version 3, or (at your option) any later 11 version. 12 13 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 14 WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with GCC; see the file COPYING3. If not see 20 <http://www.gnu.org/licenses/>. */ 21 22 #ifndef BRIG_BRIG_C_H 23 #define BRIG_BRIG_C_H 24 25 #define BRIG_EXTERN_C 26 27 #include "machmode.h" 28 29 /* Functions defined in the Brig frontend proper called by the GCC 30 interface. */ 31 32 extern int brig_enable_dump (const char *); 33 extern int brig_enable_optimize (const char *); 34 35 extern void brig_add_search_path (const char *); 36 37 extern void brig_create_brigbrig (int int_type_size, int pointer_size, 38 const char *pkgpath, const char *prefix, 39 const char *relative_import_path); 40 41 extern void brig_parse_input_files (const char **, unsigned int, 42 bool only_check_syntax, 43 bool require_return_statement); 44 extern void brig_write_globals (void); 45 46 extern tree brig_type_for_size (unsigned int bits, int unsignedp); 47 extern tree brig_type_for_mode (machine_mode, int unsignedp); 48 49 /* Functions defined in the GCC interface called by the Brig frontend 50 proper. */ 51 52 extern void brig_preserve_from_gc (tree); 53 54 extern const char *brig_localize_identifier (const char *); 55 56 extern unsigned int brig_field_alignment (tree); 57 58 extern void brig_trampoline_info (unsigned int *size, unsigned int *alignment); 59 60 extern void brig_imported_unsafe (void); 61 62 extern void brig_write_export_data (const char *, unsigned int); 63 64 extern const char *brig_read_export_data (int, off_t, char **, size_t *, int *); 65 66 #endif /* !defined (BRIG_BRIG_C_H) */ 67