xref: /netbsd-src/external/gpl3/gdb.old/dist/sim/ppc/lf.h (revision 8b657b0747480f8989760d71343d6dd33f8d4cf9)
1 /*  This file is part of the program psim.
2 
3     Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
4 
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 3 of the License, or
8     (at your option) any later version.
9 
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14 
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, see <http://www.gnu.org/licenses/>.
17 
18     */
19 
20 
21 /* LF: Line Numbered Output Stream */
22 
23 #include "ansidecl.h"
24 
25 typedef struct _lf lf;
26 
27 typedef enum {
28   lf_is_h,
29   lf_is_c,
30   lf_is_text,
31 } lf_file_type;
32 
33 
34 typedef enum {
35   lf_include_references,
36   lf_omit_references,
37 } lf_file_references;
38 
39 
40 /* Open the file NAME for writing.  REAL_NAME is to be included in any
41    line number outputs.  The output of line number information can be
42    suppressed with LINE_NUMBERS */
43 
44 extern lf *lf_open
45 (const char *name,
46  const char *real_name,
47  lf_file_references file_references,
48  lf_file_type type,
49  const char *program);
50 
51 extern void lf_close
52 (lf *file);
53 
54 
55 /* Basic output functions */
56 
57 extern int lf_putchr
58 (lf *file,
59  const char ch);
60 
61 extern int lf_putstr
62 (lf *file,
63  const char *string);
64 
65 extern int lf_putint
66 (lf *file,
67  int decimal);
68 
69 extern int lf_putbin
70 (lf *file,
71  int decimal,
72  int width);
73 
74 extern int lf_printf
75 (lf *file,
76  const char *fmt,
77  ...) ATTRIBUTE_PRINTF_2;
78 
79 
80 /* Indentation control.
81 
82    lf_indent_suppress suppresses indentation on the next line (current
83    line if that has not yet been started) */
84 
85 extern void lf_indent_suppress
86 (lf *file);
87 
88 extern void lf_indent
89 (lf *file,
90  int delta);
91 
92 
93 /* Print generic text: */
94 
95 
96 extern int lf_print__gnu_copyleft
97 (lf *file);
98 
99 extern int lf_print__file_start
100 (lf *file);
101 
102 extern int lf_print__this_file_is_empty
103 (lf *file);
104 
105 extern int lf_print__file_finish
106 (lf *file);
107 
108 extern int lf_print__internal_reference
109 (lf *file);
110 
111 extern int lf_print__external_reference
112 (lf *file,
113  int line_nr,
114  const char *file_name);
115 
116 extern int lf_print__ucase_filename
117 (lf *file);
118 
119 /* Tab prefix is suppressed */
120 
121 extern int lf_print__c_code
122 (lf *file,
123  const char *code);
124 
125 
126 extern int lf_print_function_type
127 (lf *file,
128  const char *type,
129  const char *prefix,
130  const char *trailing_space);
131