xref: /onnv-gate/usr/src/lib/efcode/include/fcode/proto.h (revision 0:68f95e015346)
1*0Sstevel@tonic-gate /*
2*0Sstevel@tonic-gate  * CDDL HEADER START
3*0Sstevel@tonic-gate  *
4*0Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*0Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*0Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*0Sstevel@tonic-gate  * with the License.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*0Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*0Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*0Sstevel@tonic-gate  * and limitations under the License.
13*0Sstevel@tonic-gate  *
14*0Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*0Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*0Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*0Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*0Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*0Sstevel@tonic-gate  *
20*0Sstevel@tonic-gate  * CDDL HEADER END
21*0Sstevel@tonic-gate  */
22*0Sstevel@tonic-gate /*
23*0Sstevel@tonic-gate  * Copyright 2000-2003 Sun Microsystems, Inc.  All rights reserved.
24*0Sstevel@tonic-gate  * Use is subject to license terms.
25*0Sstevel@tonic-gate  */
26*0Sstevel@tonic-gate 
27*0Sstevel@tonic-gate #ifndef	_FCODE_PROTO_H
28*0Sstevel@tonic-gate #define	_FCODE_PROTO_H
29*0Sstevel@tonic-gate 
30*0Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
31*0Sstevel@tonic-gate 
32*0Sstevel@tonic-gate #ifdef	__cplusplus
33*0Sstevel@tonic-gate extern "C" {
34*0Sstevel@tonic-gate #endif
35*0Sstevel@tonic-gate 
36*0Sstevel@tonic-gate #define	FNPROTO(x)	void x(fcode_env_t *)
37*0Sstevel@tonic-gate 
38*0Sstevel@tonic-gate FNPROTO(bdo);
39*0Sstevel@tonic-gate FNPROTO(bqdo);
40*0Sstevel@tonic-gate 
41*0Sstevel@tonic-gate FNPROTO(literal);
42*0Sstevel@tonic-gate void branch_common(fcode_env_t *, short, fstack_t, int);
43*0Sstevel@tonic-gate FNPROTO(zero);
44*0Sstevel@tonic-gate FNPROTO(bloop);
45*0Sstevel@tonic-gate FNPROTO(bplusloop);
46*0Sstevel@tonic-gate FNPROTO(loop_i);
47*0Sstevel@tonic-gate FNPROTO(loop_j);
48*0Sstevel@tonic-gate FNPROTO(bleave);
49*0Sstevel@tonic-gate FNPROTO(execute);
50*0Sstevel@tonic-gate FNPROTO(add);
51*0Sstevel@tonic-gate FNPROTO(subtract);
52*0Sstevel@tonic-gate FNPROTO(multiply);
53*0Sstevel@tonic-gate FNPROTO(slash_mod);
54*0Sstevel@tonic-gate FNPROTO(uslash_mod);
55*0Sstevel@tonic-gate FNPROTO(divide);
56*0Sstevel@tonic-gate FNPROTO(mod);
57*0Sstevel@tonic-gate FNPROTO(and);
58*0Sstevel@tonic-gate FNPROTO(or);
59*0Sstevel@tonic-gate FNPROTO(xor);
60*0Sstevel@tonic-gate FNPROTO(invert);
61*0Sstevel@tonic-gate FNPROTO(lshift);
62*0Sstevel@tonic-gate FNPROTO(rshift);
63*0Sstevel@tonic-gate FNPROTO(rshifta);
64*0Sstevel@tonic-gate FNPROTO(negate);
65*0Sstevel@tonic-gate FNPROTO(f_abs);
66*0Sstevel@tonic-gate FNPROTO(f_min);
67*0Sstevel@tonic-gate FNPROTO(f_max);
68*0Sstevel@tonic-gate FNPROTO(to_r);
69*0Sstevel@tonic-gate FNPROTO(from_r);
70*0Sstevel@tonic-gate FNPROTO(rfetch);
71*0Sstevel@tonic-gate FNPROTO(f_exit);
72*0Sstevel@tonic-gate FNPROTO(zero_equals);
73*0Sstevel@tonic-gate FNPROTO(zero_not_equals);
74*0Sstevel@tonic-gate FNPROTO(zero_less);
75*0Sstevel@tonic-gate FNPROTO(zero_less_equals);
76*0Sstevel@tonic-gate FNPROTO(zero_greater);
77*0Sstevel@tonic-gate FNPROTO(zero_greater_equals);
78*0Sstevel@tonic-gate FNPROTO(less);
79*0Sstevel@tonic-gate FNPROTO(greater);
80*0Sstevel@tonic-gate FNPROTO(equals);
81*0Sstevel@tonic-gate FNPROTO(not_equals);
82*0Sstevel@tonic-gate FNPROTO(unsign_greater);
83*0Sstevel@tonic-gate FNPROTO(unsign_less_equals);
84*0Sstevel@tonic-gate FNPROTO(unsign_less);
85*0Sstevel@tonic-gate FNPROTO(unsign_greater_equals);
86*0Sstevel@tonic-gate FNPROTO(greater_equals);
87*0Sstevel@tonic-gate FNPROTO(less_equals);
88*0Sstevel@tonic-gate FNPROTO(between);
89*0Sstevel@tonic-gate FNPROTO(within);
90*0Sstevel@tonic-gate FNPROTO(drop);
91*0Sstevel@tonic-gate FNPROTO(f_dup);
92*0Sstevel@tonic-gate FNPROTO(over);
93*0Sstevel@tonic-gate FNPROTO(swap);
94*0Sstevel@tonic-gate FNPROTO(rot);
95*0Sstevel@tonic-gate FNPROTO(minus_rot);
96*0Sstevel@tonic-gate FNPROTO(tuck);
97*0Sstevel@tonic-gate FNPROTO(nip);
98*0Sstevel@tonic-gate FNPROTO(pick);
99*0Sstevel@tonic-gate FNPROTO(roll);
100*0Sstevel@tonic-gate FNPROTO(qdup);
101*0Sstevel@tonic-gate FNPROTO(depth);
102*0Sstevel@tonic-gate FNPROTO(two_drop);
103*0Sstevel@tonic-gate FNPROTO(two_dup);
104*0Sstevel@tonic-gate FNPROTO(two_over);
105*0Sstevel@tonic-gate FNPROTO(two_swap);
106*0Sstevel@tonic-gate FNPROTO(two_rot);
107*0Sstevel@tonic-gate FNPROTO(two_slash);
108*0Sstevel@tonic-gate FNPROTO(utwo_slash);
109*0Sstevel@tonic-gate FNPROTO(two_times);
110*0Sstevel@tonic-gate FNPROTO(slash_c);
111*0Sstevel@tonic-gate FNPROTO(slash_w);
112*0Sstevel@tonic-gate FNPROTO(slash_l);
113*0Sstevel@tonic-gate FNPROTO(slash_n);
114*0Sstevel@tonic-gate FNPROTO(ca_plus);
115*0Sstevel@tonic-gate FNPROTO(wa_plus);
116*0Sstevel@tonic-gate FNPROTO(la_plus);
117*0Sstevel@tonic-gate FNPROTO(na_plus);
118*0Sstevel@tonic-gate FNPROTO(c1_plus);
119*0Sstevel@tonic-gate FNPROTO(w1_plus);
120*0Sstevel@tonic-gate FNPROTO(l1_plus);
121*0Sstevel@tonic-gate FNPROTO(cell_plus);
122*0Sstevel@tonic-gate FNPROTO(do_chars);
123*0Sstevel@tonic-gate FNPROTO(slash_w_times);
124*0Sstevel@tonic-gate FNPROTO(slash_l_times);
125*0Sstevel@tonic-gate FNPROTO(cells);
126*0Sstevel@tonic-gate FNPROTO(do_off);
127*0Sstevel@tonic-gate FNPROTO(do_on);
128*0Sstevel@tonic-gate FNPROTO(fetch);
129*0Sstevel@tonic-gate FNPROTO(lfetch);
130*0Sstevel@tonic-gate FNPROTO(wfetch);
131*0Sstevel@tonic-gate FNPROTO(swfetch);
132*0Sstevel@tonic-gate FNPROTO(cfetch);
133*0Sstevel@tonic-gate FNPROTO(store);
134*0Sstevel@tonic-gate FNPROTO(lstore);
135*0Sstevel@tonic-gate FNPROTO(wstore);
136*0Sstevel@tonic-gate FNPROTO(cstore);
137*0Sstevel@tonic-gate 
138*0Sstevel@tonic-gate FNPROTO(noop);
139*0Sstevel@tonic-gate FNPROTO(lwsplit);
140*0Sstevel@tonic-gate FNPROTO(wljoin);
141*0Sstevel@tonic-gate FNPROTO(lbsplit);
142*0Sstevel@tonic-gate FNPROTO(bljoin);
143*0Sstevel@tonic-gate FNPROTO(wbflip);
144*0Sstevel@tonic-gate FNPROTO(upper_case);
145*0Sstevel@tonic-gate FNPROTO(lower_case);
146*0Sstevel@tonic-gate FNPROTO(pack_str);
147*0Sstevel@tonic-gate FNPROTO(count_str);
148*0Sstevel@tonic-gate FNPROTO(to_body);
149*0Sstevel@tonic-gate FNPROTO(to_acf);
150*0Sstevel@tonic-gate FNPROTO(bcase);
151*0Sstevel@tonic-gate FNPROTO(bendcase);
152*0Sstevel@tonic-gate 
153*0Sstevel@tonic-gate FNPROTO(span);
154*0Sstevel@tonic-gate 
155*0Sstevel@tonic-gate FNPROTO(expect);
156*0Sstevel@tonic-gate 
157*0Sstevel@tonic-gate FNPROTO(emit);
158*0Sstevel@tonic-gate FNPROTO(type);
159*0Sstevel@tonic-gate 
160*0Sstevel@tonic-gate FNPROTO(fc_crlf);
161*0Sstevel@tonic-gate 
162*0Sstevel@tonic-gate FNPROTO(base);
163*0Sstevel@tonic-gate FNPROTO(dollar_number);
164*0Sstevel@tonic-gate FNPROTO(digit);
165*0Sstevel@tonic-gate 
166*0Sstevel@tonic-gate FNPROTO(do_constant);
167*0Sstevel@tonic-gate FNPROTO(do_defer);
168*0Sstevel@tonic-gate FNPROTO(do_crash);
169*0Sstevel@tonic-gate FNPROTO(do_field);
170*0Sstevel@tonic-gate FNPROTO(idefer_exec);
171*0Sstevel@tonic-gate 
172*0Sstevel@tonic-gate FNPROTO(set_args);
173*0Sstevel@tonic-gate 
174*0Sstevel@tonic-gate void make_common_access(fcode_env_t *, char *, int, int, int,
175*0Sstevel@tonic-gate     void (*acf_i)(fcode_env_t *), void (*acf_s)(fcode_env_t *),
176*0Sstevel@tonic-gate     void (*set_a)(fcode_env_t *, int));
177*0Sstevel@tonic-gate 
178*0Sstevel@tonic-gate FNPROTO(do_create);
179*0Sstevel@tonic-gate 
180*0Sstevel@tonic-gate FNPROTO(instance);
181*0Sstevel@tonic-gate FNPROTO(semi);
182*0Sstevel@tonic-gate 
183*0Sstevel@tonic-gate FNPROTO(dollar_find);
184*0Sstevel@tonic-gate acf_t voc_find(fcode_env_t *env);
185*0Sstevel@tonic-gate 
186*0Sstevel@tonic-gate FNPROTO(evaluate);
187*0Sstevel@tonic-gate 
188*0Sstevel@tonic-gate FNPROTO(ccomma);
189*0Sstevel@tonic-gate FNPROTO(wcomma);
190*0Sstevel@tonic-gate FNPROTO(lcomma);
191*0Sstevel@tonic-gate FNPROTO(comma);
192*0Sstevel@tonic-gate FNPROTO(state);
193*0Sstevel@tonic-gate FNPROTO(compile_comma);
194*0Sstevel@tonic-gate 
195*0Sstevel@tonic-gate FNPROTO(here);
196*0Sstevel@tonic-gate FNPROTO(aligned);
197*0Sstevel@tonic-gate FNPROTO(wbsplit);
198*0Sstevel@tonic-gate FNPROTO(bwjoin);
199*0Sstevel@tonic-gate FNPROTO(bmark);
200*0Sstevel@tonic-gate FNPROTO(bresolve);
201*0Sstevel@tonic-gate 
202*0Sstevel@tonic-gate FNPROTO(f_error);
203*0Sstevel@tonic-gate FNPROTO(fc_unimplemented);
204*0Sstevel@tonic-gate FNPROTO(fc_obsolete);
205*0Sstevel@tonic-gate FNPROTO(fc_historical);
206*0Sstevel@tonic-gate 
207*0Sstevel@tonic-gate FNPROTO(myspace);
208*0Sstevel@tonic-gate FNPROTO(property);
209*0Sstevel@tonic-gate FNPROTO(encode_int);
210*0Sstevel@tonic-gate FNPROTO(encode_plus);
211*0Sstevel@tonic-gate FNPROTO(encode_phys);
212*0Sstevel@tonic-gate FNPROTO(encode_string);
213*0Sstevel@tonic-gate FNPROTO(encode_bytes);
214*0Sstevel@tonic-gate FNPROTO(model_prop);
215*0Sstevel@tonic-gate FNPROTO(device_type);
216*0Sstevel@tonic-gate FNPROTO(new_device);
217*0Sstevel@tonic-gate 
218*0Sstevel@tonic-gate FNPROTO(finish_device);
219*0Sstevel@tonic-gate 
220*0Sstevel@tonic-gate FNPROTO(device_name);
221*0Sstevel@tonic-gate 
222*0Sstevel@tonic-gate FNPROTO(lwflip);
223*0Sstevel@tonic-gate FNPROTO(lbflip);
224*0Sstevel@tonic-gate 
225*0Sstevel@tonic-gate FNPROTO(child_node);
226*0Sstevel@tonic-gate FNPROTO(peer_node);
227*0Sstevel@tonic-gate 
228*0Sstevel@tonic-gate FNPROTO(byte_load);
229*0Sstevel@tonic-gate 
230*0Sstevel@tonic-gate uchar_t  next_bytecode(fcode_env_t *);
231*0Sstevel@tonic-gate ushort_t get_short(fcode_env_t *);
232*0Sstevel@tonic-gate uint_t   get_int(fcode_env_t *);
233*0Sstevel@tonic-gate 
234*0Sstevel@tonic-gate char *get_name(long *);
235*0Sstevel@tonic-gate FNPROTO(words);
236*0Sstevel@tonic-gate void header(fcode_env_t *, char *, int, flag_t);
237*0Sstevel@tonic-gate void do_code(fcode_env_t *, int, char *, FNPROTO((*)));
238*0Sstevel@tonic-gate void push_string(fcode_env_t *, char *, int);
239*0Sstevel@tonic-gate 
240*0Sstevel@tonic-gate FNPROTO(verify_usage);
241*0Sstevel@tonic-gate FNPROTO(dump_dictionary);
242*0Sstevel@tonic-gate void print_stack_element(fcode_env_t *, fstack_t);
243*0Sstevel@tonic-gate void dump_data_stack(fcode_env_t *, int);
244*0Sstevel@tonic-gate void dump_return_stack(fcode_env_t *, int);
245*0Sstevel@tonic-gate char *acf_lookup(fcode_env_t *, acf_t);
246*0Sstevel@tonic-gate char *acf_to_name(fcode_env_t *, acf_t);
247*0Sstevel@tonic-gate int within_dictionary(fcode_env_t *, void *);
248*0Sstevel@tonic-gate char *acf_backup_search(fcode_env_t *, acf_t);
249*0Sstevel@tonic-gate void dump_forth_environment(fcode_env_t *);
250*0Sstevel@tonic-gate void forth_abort(fcode_env_t *, char *, ...);
251*0Sstevel@tonic-gate void forth_perror(fcode_env_t *, char *, ...);
252*0Sstevel@tonic-gate void return_to_interact(fcode_env_t *);
253*0Sstevel@tonic-gate char *get_path(fcode_env_t *, device_t *);
254*0Sstevel@tonic-gate char *search_for_fcode_file(fcode_env_t *, char *);
255*0Sstevel@tonic-gate int current_debug_state(fcode_env_t *);
256*0Sstevel@tonic-gate int debug_flags_to_mask(char *);
257*0Sstevel@tonic-gate int do_exec_debug(fcode_env_t *, void *);
258*0Sstevel@tonic-gate int name_is_debugged(fcode_env_t *, char *);
259*0Sstevel@tonic-gate prop_t *find_property(device_t *, char *);
260*0Sstevel@tonic-gate void buffer_init(fcode_env_t *env);
261*0Sstevel@tonic-gate void check_for_debug_entry(fcode_env_t *);
262*0Sstevel@tonic-gate void check_for_debug_exit(fcode_env_t *);
263*0Sstevel@tonic-gate void check_semi_debug_exit(fcode_env_t *);
264*0Sstevel@tonic-gate void check_vitals(fcode_env_t *);
265*0Sstevel@tonic-gate void clear_debug_state(fcode_env_t *, int);
266*0Sstevel@tonic-gate void debug_set_level(fcode_env_t *, int);
267*0Sstevel@tonic-gate void define_actions(fcode_env_t *env, int n, token_t *array);
268*0Sstevel@tonic-gate void do_alias(fcode_env_t *);
269*0Sstevel@tonic-gate void do_bbranch(fcode_env_t *env);
270*0Sstevel@tonic-gate void do_bdo(fcode_env_t *);
271*0Sstevel@tonic-gate void do_bleave(fcode_env_t *env);
272*0Sstevel@tonic-gate void do_bloop(fcode_env_t *env);
273*0Sstevel@tonic-gate void do_bofbranch(fcode_env_t *env);
274*0Sstevel@tonic-gate void do_bploop(fcode_env_t *env);
275*0Sstevel@tonic-gate void do_bqbranch(fcode_env_t *env);
276*0Sstevel@tonic-gate void do_bqdo(fcode_env_t *env);
277*0Sstevel@tonic-gate void do_creator(fcode_env_t *env);
278*0Sstevel@tonic-gate void do_default_action(fcode_env_t *env);
279*0Sstevel@tonic-gate void do_emit(fcode_env_t *, uchar_t);
280*0Sstevel@tonic-gate void do_literal(fcode_env_t *);
281*0Sstevel@tonic-gate void dump_comma(fcode_env_t *, char *);
282*0Sstevel@tonic-gate void dump_words(fcode_env_t *);
283*0Sstevel@tonic-gate void fevaluate(fcode_env_t *);
284*0Sstevel@tonic-gate void ibuffer_init(fcode_env_t *env);
285*0Sstevel@tonic-gate void install_builtin_nodes(fcode_env_t *);
286*0Sstevel@tonic-gate void install_does(fcode_env_t *);
287*0Sstevel@tonic-gate void install_openprom_nodes(fcode_env_t *);
288*0Sstevel@tonic-gate void install_package_nodes(fcode_env_t *);
289*0Sstevel@tonic-gate void internal_env_addr(fcode_env_t *env);
290*0Sstevel@tonic-gate void internal_env_fetch(fcode_env_t *env);
291*0Sstevel@tonic-gate void internal_env_store(fcode_env_t *env);
292*0Sstevel@tonic-gate void key(fcode_env_t *);
293*0Sstevel@tonic-gate void keyquestion(fcode_env_t *);
294*0Sstevel@tonic-gate void make_a_node(fcode_env_t *, char *, int);
295*0Sstevel@tonic-gate void output_data_stack(fcode_env_t *, int);
296*0Sstevel@tonic-gate void output_return_stack(fcode_env_t *, int, int);
297*0Sstevel@tonic-gate void output_step_message(fcode_env_t *);
298*0Sstevel@tonic-gate void output_vitals(fcode_env_t *);
299*0Sstevel@tonic-gate void print_property(fcode_env_t *, prop_t *, char *);
300*0Sstevel@tonic-gate void read_line(fcode_env_t *);
301*0Sstevel@tonic-gate void run_daemon(fcode_env_t *);
302*0Sstevel@tonic-gate void run_fcode_from_file(fcode_env_t *, char *, int);
303*0Sstevel@tonic-gate void tick_literal(fcode_env_t *);
304*0Sstevel@tonic-gate void unbug(fcode_env_t *);
305*0Sstevel@tonic-gate void xbflip(fcode_env_t *);
306*0Sstevel@tonic-gate void xfetch(fcode_env_t *);
307*0Sstevel@tonic-gate void xlflip(fcode_env_t *);
308*0Sstevel@tonic-gate void xstore(fcode_env_t *);
309*0Sstevel@tonic-gate void expose_acf(fcode_env_t *, char *);
310*0Sstevel@tonic-gate 
311*0Sstevel@tonic-gate FNPROTO(do_semi);
312*0Sstevel@tonic-gate FNPROTO(do_colon);
313*0Sstevel@tonic-gate FNPROTO(do_next);
314*0Sstevel@tonic-gate void do_run(fcode_env_t *, int);
315*0Sstevel@tonic-gate 
316*0Sstevel@tonic-gate void *safe_malloc(size_t, char *, int);
317*0Sstevel@tonic-gate void *safe_realloc(void *, size_t, char *, int);
318*0Sstevel@tonic-gate char *safe_strdup(char *, char *, int);
319*0Sstevel@tonic-gate void safe_free(void *, char *, int);
320*0Sstevel@tonic-gate 
321*0Sstevel@tonic-gate FNPROTO(do_forth);
322*0Sstevel@tonic-gate FNPROTO(do_current);
323*0Sstevel@tonic-gate FNPROTO(do_context);
324*0Sstevel@tonic-gate FNPROTO(do_definitions);
325*0Sstevel@tonic-gate FNPROTO(do_interact);
326*0Sstevel@tonic-gate FNPROTO(do_resume);
327*0Sstevel@tonic-gate FNPROTO(do_vocab);
328*0Sstevel@tonic-gate FNPROTO(create);
329*0Sstevel@tonic-gate FNPROTO(colon);
330*0Sstevel@tonic-gate FNPROTO(does);
331*0Sstevel@tonic-gate FNPROTO(recursive);
332*0Sstevel@tonic-gate FNPROTO(do_if);
333*0Sstevel@tonic-gate FNPROTO(do_else);
334*0Sstevel@tonic-gate FNPROTO(do_then);
335*0Sstevel@tonic-gate FNPROTO(parse_word);
336*0Sstevel@tonic-gate FNPROTO(do_quote);
337*0Sstevel@tonic-gate FNPROTO(run_quote);
338*0Sstevel@tonic-gate 
339*0Sstevel@tonic-gate FNPROTO(do_order);
340*0Sstevel@tonic-gate FNPROTO(do_also);
341*0Sstevel@tonic-gate FNPROTO(do_previous);
342*0Sstevel@tonic-gate 
343*0Sstevel@tonic-gate FNPROTO(find_package);
344*0Sstevel@tonic-gate FNPROTO(open_package);
345*0Sstevel@tonic-gate FNPROTO(close_package);
346*0Sstevel@tonic-gate FNPROTO(find_method);
347*0Sstevel@tonic-gate FNPROTO(dollar_call_parent);
348*0Sstevel@tonic-gate FNPROTO(my_parent);
349*0Sstevel@tonic-gate FNPROTO(my_unit);
350*0Sstevel@tonic-gate FNPROTO(ihandle_to_phandle);
351*0Sstevel@tonic-gate FNPROTO(dollar_call_method);
352*0Sstevel@tonic-gate FNPROTO(dollar_open_package);
353*0Sstevel@tonic-gate 
354*0Sstevel@tonic-gate FNPROTO(call_environment_method);
355*0Sstevel@tonic-gate 
356*0Sstevel@tonic-gate FNPROTO(f_abort);
357*0Sstevel@tonic-gate FNPROTO(catch);
358*0Sstevel@tonic-gate FNPROTO(throw);
359*0Sstevel@tonic-gate 
360*0Sstevel@tonic-gate FNPROTO(get_my_property);
361*0Sstevel@tonic-gate FNPROTO(decode_int);
362*0Sstevel@tonic-gate FNPROTO(decode_string);
363*0Sstevel@tonic-gate FNPROTO(get_inherited_prop);
364*0Sstevel@tonic-gate FNPROTO(delete_property);
365*0Sstevel@tonic-gate FNPROTO(get_package_property);
366*0Sstevel@tonic-gate void get_environment_property(fcode_env_t *env, int);
367*0Sstevel@tonic-gate 
368*0Sstevel@tonic-gate FNPROTO(root_node);
369*0Sstevel@tonic-gate FNPROTO(current_device);
370*0Sstevel@tonic-gate FNPROTO(dot_properties);
371*0Sstevel@tonic-gate FNPROTO(pwd);
372*0Sstevel@tonic-gate FNPROTO(do_ls);
373*0Sstevel@tonic-gate FNPROTO(do_cd);
374*0Sstevel@tonic-gate FNPROTO(do_select_dev);
375*0Sstevel@tonic-gate FNPROTO(do_unselect_dev);
376*0Sstevel@tonic-gate FNPROTO(device_end);
377*0Sstevel@tonic-gate FNPROTO(value);
378*0Sstevel@tonic-gate FNPROTO(buffer_colon);
379*0Sstevel@tonic-gate FNPROTO(variable);
380*0Sstevel@tonic-gate FNPROTO(constant);
381*0Sstevel@tonic-gate FNPROTO(actions);
382*0Sstevel@tonic-gate FNPROTO(use_actions);
383*0Sstevel@tonic-gate FNPROTO(action_colon);
384*0Sstevel@tonic-gate FNPROTO(perform_action);
385*0Sstevel@tonic-gate FNPROTO(do_tick);
386*0Sstevel@tonic-gate FNPROTO(bracket_tick);
387*0Sstevel@tonic-gate FNPROTO(defer);
388*0Sstevel@tonic-gate FNPROTO(bye);
389*0Sstevel@tonic-gate FNPROTO(dump_device);
390*0Sstevel@tonic-gate FNPROTO(dump_instance);
391*0Sstevel@tonic-gate FNPROTO(compile_string);
392*0Sstevel@tonic-gate FNPROTO(parse_two_int);
393*0Sstevel@tonic-gate 
394*0Sstevel@tonic-gate token_t *alloc_instance_data(fcode_env_t *, int, int, int *);
395*0Sstevel@tonic-gate FNPROTO(fetch_instance_data);
396*0Sstevel@tonic-gate FNPROTO(set_instance_data);
397*0Sstevel@tonic-gate FNPROTO(address_instance_data);
398*0Sstevel@tonic-gate FNPROTO(instance_variable);
399*0Sstevel@tonic-gate FNPROTO(decode_phys);
400*0Sstevel@tonic-gate 
401*0Sstevel@tonic-gate void install_actions(fcode_env_t *env, token_t *table);
402*0Sstevel@tonic-gate void set_value_actions(fcode_env_t *env, int);
403*0Sstevel@tonic-gate void set_internal_value_actions(fcode_env_t *env);
404*0Sstevel@tonic-gate void set_buffer_actions(fcode_env_t *env, int);
405*0Sstevel@tonic-gate 
406*0Sstevel@tonic-gate void system_message(fcode_env_t *env, char *msg);
407*0Sstevel@tonic-gate 
408*0Sstevel@tonic-gate void check_interrupt(void);
409*0Sstevel@tonic-gate void complete_interrupt(void);
410*0Sstevel@tonic-gate 
411*0Sstevel@tonic-gate FNPROTO(do_set_action);
412*0Sstevel@tonic-gate void push_a_string(fcode_env_t *, char *);
413*0Sstevel@tonic-gate char *pop_a_string(fcode_env_t *, int *);
414*0Sstevel@tonic-gate char *pop_a_duped_string(fcode_env_t *, int *);
415*0Sstevel@tonic-gate char *parse_a_string(fcode_env_t *, int *);
416*0Sstevel@tonic-gate void push_double(fcode_env_t *, dforth_t);
417*0Sstevel@tonic-gate dforth_t pop_double(fcode_env_t *);
418*0Sstevel@tonic-gate dforth_t peek_double(fcode_env_t *);
419*0Sstevel@tonic-gate void push_xforth(fcode_env_t *, xforth_t);
420*0Sstevel@tonic-gate xforth_t pop_xforth(fcode_env_t *);
421*0Sstevel@tonic-gate xforth_t peek_xforth(fcode_env_t *);
422*0Sstevel@tonic-gate void create_prop(fcode_env_t *, char *);
423*0Sstevel@tonic-gate void create_int_prop(fcode_env_t *, char *, int);
424*0Sstevel@tonic-gate void create_string_prop(fcode_env_t *, char *, char *);
425*0Sstevel@tonic-gate void make_builtin_hooks(fcode_env_t *, char *);
426*0Sstevel@tonic-gate fstack_t mapping_to_mcookie(uint64_t, size_t, uint64_t, size_t);
427*0Sstevel@tonic-gate void delete_mapping(fstack_t);
428*0Sstevel@tonic-gate int is_mcookie(fstack_t);
429*0Sstevel@tonic-gate uint64_t mcookie_to_addr(fstack_t);
430*0Sstevel@tonic-gate fstack_t mcookie_to_rlen(fstack_t);
431*0Sstevel@tonic-gate fstack_t mcookie_to_rvirt(fstack_t);
432*0Sstevel@tonic-gate void set_here(fcode_env_t *, uchar_t *, char *);
433*0Sstevel@tonic-gate int call_my_parent(fcode_env_t *, char *);
434*0Sstevel@tonic-gate FILE *get_dump_fd(fcode_env_t *);
435*0Sstevel@tonic-gate 
436*0Sstevel@tonic-gate void load_file(fcode_env_t *);
437*0Sstevel@tonic-gate void token_roundup(fcode_env_t *, char *);
438*0Sstevel@tonic-gate 
439*0Sstevel@tonic-gate #ifdef DEBUG
440*0Sstevel@tonic-gate void do_fclib_trace(fcode_env_t *, void *);
441*0Sstevel@tonic-gate int do_fclib_step(fcode_env_t *);
442*0Sstevel@tonic-gate #endif
443*0Sstevel@tonic-gate 
444*0Sstevel@tonic-gate #ifdef	__cplusplus
445*0Sstevel@tonic-gate }
446*0Sstevel@tonic-gate #endif
447*0Sstevel@tonic-gate 
448*0Sstevel@tonic-gate #endif /* _FCODE_PROTO_H */
449