diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-02-21 02:50:27 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-02-21 02:50:27 +0000 |
commit | 978a4d8b93d15d778bdd498f01f1689aff166375 (patch) | |
tree | 07736bc95280146a6c625a71232b041b2705b316 /sim/igen/lf.h | |
parent | a4c97499d90ab83a01d80d4c3df2455a73486e3c (diff) | |
download | gdb-978a4d8b93d15d778bdd498f01f1689aff166375.zip gdb-978a4d8b93d15d778bdd498f01f1689aff166375.tar.gz gdb-978a4d8b93d15d778bdd498f01f1689aff166375.tar.bz2 |
The remainder of igen taken from the PowerPC simulator directory.
Diffstat (limited to 'sim/igen/lf.h')
-rw-r--r-- | sim/igen/lf.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/sim/igen/lf.h b/sim/igen/lf.h new file mode 100644 index 0000000..4d3dc15 --- /dev/null +++ b/sim/igen/lf.h @@ -0,0 +1,137 @@ +/* This file is part of the program psim. + + Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + */ + + +/* LF: Line Numbered Output Stream */ + +typedef struct _lf lf; + +typedef enum { + lf_is_h, + lf_is_c, + lf_is_text, +} lf_file_type; + + +typedef enum { + lf_include_references, + lf_omit_references, +} lf_file_references; + + +/* Open the file NAME for writing. REAL_NAME is to be included in any + line number outputs. The output of line number information can be + suppressed with LINE_NUMBERS */ + +extern lf *lf_open +(char *name, + char *real_name, + lf_file_references file_references, + lf_file_type type, + const char *program); + +extern void lf_close +(lf *file); + + +/* Basic output functions */ + +extern int lf_putchr +(lf *file, + const char ch); + +extern int lf_putstr +(lf *file, + const char *string); + +extern int lf_putint +(lf *file, + int decimal); + +extern int lf_putbin +(lf *file, + int decimal, + int width); + +extern int lf_printf +(lf *file, + const char *fmt, + ...) __attribute__((format(printf, 2, 3))); + + +/* Indentation control. + + lf_indent_suppress suppresses indentation on the next line (current + line if that has not yet been started) */ + +extern void lf_indent_suppress +(lf *file); + +extern void lf_indent +(lf *file, + int delta); + + +/* Print generic text: */ + + +extern int lf_print__gnu_copyleft +(lf *file); + +extern int lf_print__file_start +(lf *file); + +extern int lf_print__this_file_is_empty +(lf *file); + +extern int lf_print__file_finish +(lf *file); + +extern int lf_print__internal_reference +(lf *file); + +extern int lf_print__external_reference +(lf *file, + int line_nr, + const char *file_name); + +extern int lf_print__ucase_filename +(lf *file); + +/* Tab prefix is suppressed */ + +extern int lf_print__c_code +(lf *file, + const char *code); + +extern int lf_print_function_type +(lf *file, + const char *type, + const char *prefix, + const char *trailing_space); + +typedef int print_function(lf *file); + +extern int lf_print_function_type_function +(lf *file, + print_function *print_type, + const char *prefix, + const char *trailing_space); + |