17c478bdstevel@tonic-gate/*
27c478bdstevel@tonic-gate * CDDL HEADER START
37c478bdstevel@tonic-gate *
47c478bdstevel@tonic-gate * The contents of this file are subject to the terms of the
57c478bdstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only
67c478bdstevel@tonic-gate * (the "License").  You may not use this file except in compliance
77c478bdstevel@tonic-gate * with the License.
87c478bdstevel@tonic-gate *
97c478bdstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bdstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
117c478bdstevel@tonic-gate * See the License for the specific language governing permissions
127c478bdstevel@tonic-gate * and limitations under the License.
137c478bdstevel@tonic-gate *
147c478bdstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
157c478bdstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bdstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
177c478bdstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
187c478bdstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bdstevel@tonic-gate *
207c478bdstevel@tonic-gate * CDDL HEADER END
217c478bdstevel@tonic-gate */
227c478bdstevel@tonic-gate/*
237c478bdstevel@tonic-gate * Copyright 2000-2003 Sun Microsystems, Inc.  All rights reserved.
247c478bdstevel@tonic-gate * Use is subject to license terms.
257c478bdstevel@tonic-gate */
267c478bdstevel@tonic-gate
277c478bdstevel@tonic-gate#ifndef	_FCODE_PROTO_H
287c478bdstevel@tonic-gate#define	_FCODE_PROTO_H
297c478bdstevel@tonic-gate
307c478bdstevel@tonic-gate#pragma ident	"%Z%%M%	%I%	%E% SMI"
317c478bdstevel@tonic-gate
327c478bdstevel@tonic-gate#ifdef	__cplusplus
337c478bdstevel@tonic-gateextern "C" {
347c478bdstevel@tonic-gate#endif
357c478bdstevel@tonic-gate
367c478bdstevel@tonic-gate#define	FNPROTO(x)	void x(fcode_env_t *)
377c478bdstevel@tonic-gate
387c478bdstevel@tonic-gateFNPROTO(bdo);
397c478bdstevel@tonic-gateFNPROTO(bqdo);
407c478bdstevel@tonic-gate
417c478bdstevel@tonic-gateFNPROTO(literal);
427c478bdstevel@tonic-gatevoid branch_common(fcode_env_t *, short, fstack_t, int);
437c478bdstevel@tonic-gateFNPROTO(zero);
447c478bdstevel@tonic-gateFNPROTO(bloop);
457c478bdstevel@tonic-gateFNPROTO(bplusloop);
467c478bdstevel@tonic-gateFNPROTO(loop_i);
477c478bdstevel@tonic-gateFNPROTO(loop_j);
487c478bdstevel@tonic-gateFNPROTO(bleave);
497c478bdstevel@tonic-gateFNPROTO(execute);
507c478bdstevel@tonic-gateFNPROTO(add);
517c478bdstevel@tonic-gateFNPROTO(subtract);
527c478bdstevel@tonic-gateFNPROTO(multiply);
537c478bdstevel@tonic-gateFNPROTO(slash_mod);
547c478bdstevel@tonic-gateFNPROTO(uslash_mod);
557c478bdstevel@tonic-gateFNPROTO(divide);
567c478bdstevel@tonic-gateFNPROTO(mod);
577c478bdstevel@tonic-gateFNPROTO(and);
587c478bdstevel@tonic-gateFNPROTO(or);
597c478bdstevel@tonic-gateFNPROTO(xor);
607c478bdstevel@tonic-gateFNPROTO(invert);
617c478bdstevel@tonic-gateFNPROTO(lshift);
627c478bdstevel@tonic-gateFNPROTO(rshift);
637c478bdstevel@tonic-gateFNPROTO(rshifta);
647c478bdstevel@tonic-gateFNPROTO(negate);
657c478bdstevel@tonic-gateFNPROTO(f_abs);
667c478bdstevel@tonic-gateFNPROTO(f_min);
677c478bdstevel@tonic-gateFNPROTO(f_max);
687c478bdstevel@tonic-gateFNPROTO(to_r);
697c478bdstevel@tonic-gateFNPROTO(from_r);
707c478bdstevel@tonic-gateFNPROTO(rfetch);
717c478bdstevel@tonic-gateFNPROTO(f_exit);
727c478bdstevel@tonic-gateFNPROTO(zero_equals);
737c478bdstevel@tonic-gateFNPROTO(zero_not_equals);
747c478bdstevel@tonic-gateFNPROTO(zero_less);
757c478bdstevel@tonic-gateFNPROTO(zero_less_equals);
767c478bdstevel@tonic-gateFNPROTO(zero_greater);
777c478bdstevel@tonic-gateFNPROTO(zero_greater_equals);
787c478bdstevel@tonic-gateFNPROTO(less);
797c478bdstevel@tonic-gateFNPROTO(greater);
807c478bdstevel@tonic-gateFNPROTO(equals);
817c478bdstevel@tonic-gateFNPROTO(not_equals);
827c478bdstevel@tonic-gateFNPROTO(unsign_greater);
837c478bdstevel@tonic-gateFNPROTO(unsign_less_equals);
847c478bdstevel@tonic-gateFNPROTO(unsign_less);
857c478bdstevel@tonic-gateFNPROTO(unsign_greater_equals);
867c478bdstevel@tonic-gateFNPROTO(greater_equals);
877c478bdstevel@tonic-gateFNPROTO(less_equals);
887c478bdstevel@tonic-gateFNPROTO(between);
897c478bdstevel@tonic-gateFNPROTO(within);
907c478bdstevel@tonic-gateFNPROTO(drop);
917c478bdstevel@tonic-gateFNPROTO(f_dup);
927c478bdstevel@tonic-gateFNPROTO(over);
937c478bdstevel@tonic-gateFNPROTO(swap);
947c478bdstevel@tonic-gateFNPROTO(rot);
957c478bdstevel@tonic-gateFNPROTO(minus_rot);
967c478bdstevel@tonic-gateFNPROTO(tuck);
977c478bdstevel@tonic-gateFNPROTO(nip);
987c478bdstevel@tonic-gateFNPROTO(pick);
997c478bdstevel@tonic-gateFNPROTO(roll);
1007c478bdstevel@tonic-gateFNPROTO(qdup);
1017c478bdstevel@tonic-gateFNPROTO(depth);
1027c478bdstevel@tonic-gateFNPROTO(two_drop);
1037c478bdstevel@tonic-gateFNPROTO(two_dup);
1047c478bdstevel@tonic-gateFNPROTO(two_over);
1057c478bdstevel@tonic-gateFNPROTO(two_swap);
1067c478bdstevel@tonic-gateFNPROTO(two_rot);
1077c478bdstevel@tonic-gateFNPROTO(two_slash);
1087c478bdstevel@tonic-gateFNPROTO(utwo_slash);
1097c478bdstevel@tonic-gateFNPROTO(two_times);
1107c478bdstevel@tonic-gateFNPROTO(slash_c);
1117c478bdstevel@tonic-gateFNPROTO(slash_w);
1127c478bdstevel@tonic-gateFNPROTO(slash_l);
1137c478bdstevel@tonic-gateFNPROTO(slash_n);
1147c478bdstevel@tonic-gateFNPROTO(ca_plus);
1157c478bdstevel@tonic-gateFNPROTO(wa_plus);
1167c478bdstevel@tonic-gateFNPROTO(la_plus);
1177c478bdstevel@tonic-gateFNPROTO(na_plus);
1187c478bdstevel@tonic-gateFNPROTO(c1_plus);
1197c478bdstevel@tonic-gateFNPROTO(w1_plus);
1207c478bdstevel@tonic-gateFNPROTO(l1_plus);
1217c478bdstevel@tonic-gateFNPROTO(cell_plus);
1227c478bdstevel@tonic-gateFNPROTO(do_chars);
1237c478bdstevel@tonic-gateFNPROTO(slash_w_times);
1247c478bdstevel@tonic-gateFNPROTO(slash_l_times);
1257c478bdstevel@tonic-gateFNPROTO(cells);
1267c478bdstevel@tonic-gateFNPROTO(do_off);
1277c478bdstevel@tonic-gateFNPROTO(do_on);
1287c478bdstevel@tonic-gateFNPROTO(fetch);
1297c478bdstevel@tonic-gateFNPROTO(lfetch);
1307c478bdstevel@tonic-gateFNPROTO(wfetch);
1317c478bdstevel@tonic-gateFNPROTO(swfetch);
1327c478bdstevel@tonic-gateFNPROTO(cfetch);
1337c478bdstevel@tonic-gateFNPROTO(store);
1347c478bdstevel@tonic-gateFNPROTO(lstore);
1357c478bdstevel@tonic-gateFNPROTO(wstore);
1367c478bdstevel@tonic-gateFNPROTO(cstore);
1377c478bdstevel@tonic-gate
1387c478bdstevel@tonic-gateFNPROTO(noop);
1397c478bdstevel@tonic-gateFNPROTO(lwsplit);
1407c478bdstevel@tonic-gateFNPROTO(wljoin);
1417c478bdstevel@tonic-gateFNPROTO(lbsplit);
1427c478bdstevel@tonic-gateFNPROTO(bljoin);
1437c478bdstevel@tonic-gateFNPROTO(wbflip);
1447c478bdstevel@tonic-gateFNPROTO(upper_case);
1457c478bdstevel@tonic-gateFNPROTO(lower_case);
1467c478bdstevel@tonic-gateFNPROTO(pack_str);
1477c478bdstevel@tonic-gateFNPROTO(count_str);
1487c478bdstevel@tonic-gateFNPROTO(to_body);
1497c478bdstevel@tonic-gateFNPROTO(to_acf);
1507c478bdstevel@tonic-gateFNPROTO(bcase);
1517c478bdstevel@tonic-gateFNPROTO(bendcase);
1527c478bdstevel@tonic-gate
1537c478bdstevel@tonic-gateFNPROTO(span);
1547c478bdstevel@tonic-gate
1557c478bdstevel@tonic-gateFNPROTO(expect);
1567c478bdstevel@tonic-gate
1577c478bdstevel@tonic-gateFNPROTO(emit);
1587c478bdstevel@tonic-gateFNPROTO(type);
1597c478bdstevel@tonic-gate
1607c478bdstevel@tonic-gateFNPROTO(fc_crlf);
1617c478bdstevel@tonic-gate
1627c478bdstevel@tonic-gateFNPROTO(base);
1637c478bdstevel@tonic-gateFNPROTO(dollar_number);
1647c478bdstevel@tonic-gateFNPROTO(digit);
1657c478bdstevel@tonic-gate
1667c478bdstevel@tonic-gateFNPROTO(do_constant);
1677c478bdstevel@tonic-gateFNPROTO(do_defer);
1687c478bdstevel@tonic-gateFNPROTO(do_crash);
1697c478bdstevel@tonic-gateFNPROTO(do_field);
1707c478bdstevel@tonic-gateFNPROTO(idefer_exec);
1717c478bdstevel@tonic-gate
1727c478bdstevel@tonic-gateFNPROTO(set_args);
1737c478bdstevel@tonic-gate
1747c478bdstevel@tonic-gatevoid make_common_access(fcode_env_t *, char *, int, int, int,
1757c478bdstevel@tonic-gate    void (*acf_i)(fcode_env_t *), void (*acf_s)(fcode_env_t *),
1767c478bdstevel@tonic-gate    void (*set_a)(fcode_env_t *, int));
1777c478bdstevel@tonic-gate
1787c478bdstevel@tonic-gateFNPROTO(do_create);
1797c478bdstevel@tonic-gate
1807c478bdstevel@tonic-gateFNPROTO(instance);
1817c478bdstevel@tonic-gateFNPROTO(semi);
1827c478bdstevel@tonic-gate
1837c478bdstevel@tonic-gateFNPROTO(dollar_find);
1847c478bdstevel@tonic-gateacf_t voc_find(fcode_env_t *env);
1857c478bdstevel@tonic-gate
1867c478bdstevel@tonic-gateFNPROTO(evaluate);
1877c478bdstevel@tonic-gate
1887c478bdstevel@tonic-gateFNPROTO(ccomma);
1897c478bdstevel@tonic-gateFNPROTO(wcomma);
1907c478bdstevel@tonic-gateFNPROTO(lcomma);
1917c478bdstevel@tonic-gateFNPROTO(comma);
1927c478bdstevel@tonic-gateFNPROTO(state);
1937c478bdstevel@tonic-gateFNPROTO(compile_comma);
1947c478bdstevel@tonic-gate
1957c478bdstevel@tonic-gateFNPROTO(here);
1967c478bdstevel@tonic-gateFNPROTO(aligned);
1977c478bdstevel@tonic-gateFNPROTO(wbsplit);
1987c478bdstevel@tonic-gateFNPROTO(bwjoin);
1997c478bdstevel@tonic-gateFNPROTO(bmark);
2007c478bdstevel@tonic-gateFNPROTO(bresolve);
2017c478bdstevel@tonic-gate
2027c478bdstevel@tonic-gateFNPROTO(f_error);
2037c478bdstevel@tonic-gateFNPROTO(fc_unimplemented);
2047c478bdstevel@tonic-gateFNPROTO(fc_obsolete);
2057c478bdstevel@tonic-gateFNPROTO(fc_historical);
2067c478bdstevel@tonic-gate
2077c478bdstevel@tonic-gateFNPROTO(myspace);
2087c478bdstevel@tonic-gateFNPROTO(property);
2097c478bdstevel@tonic-gateFNPROTO(encode_int);
2107c478bdstevel@tonic-gateFNPROTO(encode_plus);
2117c478bdstevel@tonic-gateFNPROTO(encode_phys);
2127c478bdstevel@tonic-gateFNPROTO(encode_string);
2137c478bdstevel@tonic-gateFNPROTO(encode_bytes);
2147c478bdstevel@tonic-gateFNPROTO(model_prop);
2157c478bdstevel@tonic-gateFNPROTO(device_type);
2167c478bdstevel@tonic-gateFNPROTO(new_device);
2177c478bdstevel@tonic-gate
2187c478bdstevel@tonic-gateFNPROTO(finish_device);
2197c478bdstevel@tonic-gate
2207c478bdstevel@tonic-gateFNPROTO(device_name);
2217c478bdstevel@tonic-gate
2227c478bdstevel@tonic-gateFNPROTO(lwflip);
2237c478bdstevel@tonic-gateFNPROTO(lbflip);
2247c478bdstevel@tonic-gate
2257c478bdstevel@tonic-gateFNPROTO(child_node);
2267c478bdstevel@tonic-gateFNPROTO(peer_node);
2277c478bdstevel@tonic-gate
2287c478bdstevel@tonic-gateFNPROTO(byte_load);
2297c478bdstevel@tonic-gate
2307c478bdstevel@tonic-gateuchar_t  next_bytecode(fcode_env_t *);
2317c478bdstevel@tonic-gateushort_t get_short(fcode_env_t *);
2327c478bdstevel@tonic-gateuint_t   get_int(fcode_env_t *);
2337c478bdstevel@tonic-gate
2347c478bdstevel@tonic-gatechar *get_name(long *);
2357c478bdstevel@tonic-gateFNPROTO(words);
2367c478bdstevel@tonic-gatevoid header(fcode_env_t *, char *, int, flag_t);
2377c478bdstevel@tonic-gatevoid do_code(fcode_env_t *, int, char *, FNPROTO((*)));
2387c478bdstevel@tonic-gatevoid push_string(fcode_env_t *, char *, int);
2397c478bdstevel@tonic-gate
2407c478bdstevel@tonic-gateFNPROTO(verify_usage);
2417c478bdstevel@tonic-gateFNPROTO(dump_dictionary);
2427c478bdstevel@tonic-gatevoid print_stack_element(fcode_env_t *, fstack_t);
2437c478bdstevel@tonic-gatevoid dump_data_stack(fcode_env_t *, int);
2447c478bdstevel@tonic-gatevoid dump_return_stack(fcode_env_t *, int);
2457c478bdstevel@tonic-gatechar *acf_lookup(fcode_env_t *, acf_t);
2467c478bdstevel@tonic-gatechar *acf_to_name(fcode_env_t *, acf_t);
2477c478bdstevel@tonic-gateint within_dictionary(fcode_env_t *, void *);
2487c478bdstevel@tonic-gatechar *acf_backup_search(fcode_env_t *, acf_t);
2497c478bdstevel@tonic-gatevoid dump_forth_environment(fcode_env_t *);
2507c478bdstevel@tonic-gatevoid forth_abort(fcode_env_t *, char *, ...);
2517c478bdstevel@tonic-gatevoid forth_perror(fcode_env_t *, char *, ...);
2527c478bdstevel@tonic-gatevoid return_to_interact(fcode_env_t *);
2537c478bdstevel@tonic-gatechar *get_path(fcode_env_t *, device_t *);
2547c478bdstevel@tonic-gatechar *search_for_fcode_file(fcode_env_t *, char *);
2557c478bdstevel@tonic-gateint current_debug_state(fcode_env_t *);
2567c478bdstevel@tonic-gateint debug_flags_to_mask(char *);
2577c478bdstevel@tonic-gateint do_exec_debug(fcode_env_t *, void *);
2587c478bdstevel@tonic-gateint name_is_debugged(fcode_env_t *, char *);
2597c478bdstevel@tonic-gateprop_t *find_property(device_t *, char *);
2607c478bdstevel@tonic-gatevoid buffer_init(fcode_env_t *env);
2617c478bdstevel@tonic-gatevoid check_for_debug_entry(fcode_env_t *);
2627c478bdstevel@tonic-gatevoid check_for_debug_exit(fcode_env_t *);
2637c478bdstevel@tonic-gatevoid check_semi_debug_exit(fcode_env_t *);
2647c478bdstevel@tonic-gatevoid check_vitals(fcode_env_t *);
2657c478bdstevel@tonic-gatevoid clear_debug_state(fcode_env_t *, int);
2667c478bdstevel@tonic-gatevoid debug_set_level(fcode_env_t *, int);
2677c478bdstevel@tonic-gatevoid define_actions(fcode_env_t *env, int n, token_t *array);
2687c478bdstevel@tonic-gatevoid do_alias(fcode_env_t *);
2697c478bdstevel@tonic-gatevoid do_bbranch(fcode_env_t *env);
2707c478bdstevel@tonic-gatevoid do_bdo(fcode_env_t *);
2717c478bdstevel@tonic-gatevoid do_bleave(fcode_env_t *env);
2727c478bdstevel@tonic-gatevoid do_bloop(fcode_env_t *env);
2737c478bdstevel@tonic-gatevoid do_bofbranch(fcode_env_t *env);
2747c478bdstevel@tonic-gatevoid do_bploop(fcode_env_t *env);
2757c478bdstevel@tonic-gatevoid do_bqbranch(fcode_env_t *env);
2767c478bdstevel@tonic-gatevoid do_bqdo(fcode_env_t *env);
2777c478bdstevel@tonic-gatevoid do_creator(fcode_env_t *env);
2787c478bdstevel@tonic-gatevoid do_default_action(fcode_env_t *env);
2797c478bdstevel@tonic-gatevoid do_emit(fcode_env_t *, uchar_t);
2807c478bdstevel@tonic-gatevoid do_literal(fcode_env_t *);
2817c478bdstevel@tonic-gatevoid dump_comma(fcode_env_t *, char *);
2827c478bdstevel@tonic-gatevoid dump_words(fcode_env_t *);
2837c478bdstevel@tonic-gatevoid fevaluate(fcode_env_t *);
2847c478bdstevel@tonic-gatevoid ibuffer_init(fcode_env_t *env);
2857c478bdstevel@tonic-gatevoid install_builtin_nodes(fcode_env_t *);
2867c478bdstevel@tonic-gatevoid install_does(fcode_env_t *);
2877c478bdstevel@tonic-gatevoid install_openprom_nodes(fcode_env_t *);
2887c478bdstevel@tonic-gatevoid install_package_nodes(fcode_env_t *);
2897c478bdstevel@tonic-gatevoid internal_env_addr(fcode_env_t *env);
2907c478bdstevel@tonic-gatevoid internal_env_fetch(fcode_env_t *env);
2917c478bdstevel@tonic-gatevoid internal_env_store(fcode_env_t *env);
2927c478bdstevel@tonic-gatevoid key(fcode_env_t *);
2937c478bdstevel@tonic-gatevoid keyquestion(fcode_env_t *);
2947c478bdstevel@tonic-gatevoid make_a_node(fcode_env_t *, char *, int);
2957c478bdstevel@tonic-gatevoid output_data_stack(fcode_env_t *, int);
2967c478bdstevel@tonic-gatevoid output_return_stack(fcode_env_t *, int, int);
2977c478bdstevel@tonic-gatevoid output_step_message(fcode_env_t *);
2987c478bdstevel@tonic-gatevoid output_vitals(fcode_env_t *);
2997c478bdstevel@tonic-gatevoid print_property(fcode_env_t *, prop_t *, char *);
3007c478bdstevel@tonic-gatevoid read_line(fcode_env_t *);
3017c478bdstevel@tonic-gatevoid run_daemon(fcode_env_t *);
3027c478bdstevel@tonic-gatevoid run_fcode_from_file(fcode_env_t *, char *, int);
3037c478bdstevel@tonic-gatevoid tick_literal(fcode_env_t *);
3047c478bdstevel@tonic-gatevoid unbug(fcode_env_t *);
3057c478bdstevel@tonic-gatevoid xbflip(fcode_env_t *);
3067c478bdstevel@tonic-gatevoid xfetch(fcode_env_t *);
3077c478bdstevel@tonic-gatevoid xlflip(fcode_env_t *);
3087c478bdstevel@tonic-gatevoid xstore(fcode_env_t *);
3097c478bdstevel@tonic-gatevoid expose_acf(fcode_env_t *, char *);
3107c478bdstevel@tonic-gate
3117c478bdstevel@tonic-gateFNPROTO(do_semi);
3127c478bdstevel@tonic-gateFNPROTO(do_colon);
3137c478bdstevel@tonic-gateFNPROTO(do_next);
3147c478bdstevel@tonic-gatevoid do_run(fcode_env_t *, int);
3157c478bdstevel@tonic-gate
3167c478bdstevel@tonic-gatevoid *safe_malloc(size_t, char *, int);
3177c478bdstevel@tonic-gatevoid *safe_realloc(void *, size_t, char *, int);
3187c478bdstevel@tonic-gatechar *safe_strdup(char *, char *, int);
3197c478bdstevel@tonic-gatevoid safe_free(void *, char *, int);
3207c478bdstevel@tonic-gate
3217c478bdstevel@tonic-gateFNPROTO(do_forth);
3227c478bdstevel@tonic-gateFNPROTO(do_current);
3237c478bdstevel@tonic-gateFNPROTO(do_context);
3247c478bdstevel@tonic-gateFNPROTO(do_definitions);
3257c478bdstevel@tonic-gateFNPROTO(do_interact);
3267c478bdstevel@tonic-gateFNPROTO(do_resume);
3277c478bdstevel@tonic-gateFNPROTO(do_vocab);
3287c478bdstevel@tonic-gateFNPROTO(create);
3297c478bdstevel@tonic-gateFNPROTO(colon);
3307c478bdstevel@tonic-gateFNPROTO(does);
3317c478bdstevel@tonic-gateFNPROTO(recursive);
3327c478bdstevel@tonic-gateFNPROTO(do_if);
3337c478bdstevel@tonic-gateFNPROTO(do_else);
3347c478bdstevel@tonic-gateFNPROTO(do_then);
3357c478bdstevel@tonic-gateFNPROTO(parse_word);
3367c478bdstevel@tonic-gateFNPROTO(do_quote);
3377c478bdstevel@tonic-gateFNPROTO(run_quote);
3387c478bdstevel@tonic-gate
3397c478bdstevel@tonic-gateFNPROTO(do_order);
3407c478bdstevel@tonic-gateFNPROTO(do_also);
3417c478bdstevel@tonic-gateFNPROTO(do_previous);
3427c478bdstevel@tonic-gate
3437c478bdstevel@tonic-gateFNPROTO(find_package);
3447c478bdstevel@tonic-gateFNPROTO(open_package);
3457c478bdstevel@tonic-gateFNPROTO(close_package);
3467c478bdstevel@tonic-gateFNPROTO(find_method);
3477c478bdstevel@tonic-gateFNPROTO(dollar_call_parent);
3487c478bdstevel@tonic-gateFNPROTO(my_parent);
3497c478bdstevel@tonic-gateFNPROTO(my_unit);
3507c478bdstevel@tonic-gateFNPROTO(ihandle_to_phandle);
3517c478bdstevel@tonic-gateFNPROTO(dollar_call_method);
3527c478bdstevel@tonic-gateFNPROTO(dollar_open_package);
3537c478bdstevel@tonic-gate
3547c478bdstevel@tonic-gateFNPROTO(call_environment_method);
3557c478bdstevel@tonic-gate
3567c478bdstevel@tonic-gateFNPROTO(f_abort);
3577c478bdstevel@tonic-gateFNPROTO(catch);
3587c478bdstevel@tonic-gateFNPROTO(throw);
3597c478bdstevel@tonic-gate
3607c478bdstevel@tonic-gateFNPROTO(get_my_property);
3617c478bdstevel@tonic-gateFNPROTO(decode_int);
3627c478bdstevel@tonic-gateFNPROTO(decode_string);
3637c478bdstevel@tonic-gateFNPROTO(get_inherited_prop);
3647c478bdstevel@tonic-gateFNPROTO(delete_property);
3657c478bdstevel@tonic-gateFNPROTO(get_package_property);
3667c478bdstevel@tonic-gatevoid get_environment_property(fcode_env_t *env, int);
3677c478bdstevel@tonic-gate
3687c478bdstevel@tonic-gateFNPROTO(root_node);
3697c478bdstevel@tonic-gateFNPROTO(current_device);
3707c478bdstevel@tonic-gateFNPROTO(dot_properties);
3717c478bdstevel@tonic-gateFNPROTO(pwd);
3727c478bdstevel@tonic-gateFNPROTO(do_ls);
3737c478bdstevel@tonic-gateFNPROTO(do_cd);
3747c478bdstevel@tonic-gateFNPROTO(do_select_dev);
3757c478bdstevel@tonic-gateFNPROTO(do_unselect_dev);
3767c478bdstevel@tonic-gateFNPROTO(device_end);
3777c478bdstevel@tonic-gateFNPROTO(value);
3787c478bdstevel@tonic-gateFNPROTO(buffer_colon);
3797c478bdstevel@tonic-gateFNPROTO(variable);
3807c478bdstevel@tonic-gateFNPROTO(constant);
3817c478bdstevel@tonic-gateFNPROTO(actions);
3827c478bdstevel@tonic-gateFNPROTO(use_actions);
3837c478bdstevel@tonic-gateFNPROTO(action_colon);
3847c478bdstevel@tonic-gateFNPROTO(perform_action);
3857c478bdstevel@tonic-gateFNPROTO(do_tick);
3867c478bdstevel@tonic-gateFNPROTO(bracket_tick);
3877c478bdstevel@tonic-gateFNPROTO(defer);
3887c478bdstevel@tonic-gateFNPROTO(bye);
3897c478bdstevel@tonic-gateFNPROTO(dump_device);
3907c478bdstevel@tonic-gateFNPROTO(dump_instance);
3917c478bdstevel@tonic-gateFNPROTO(compile_string);
3927c478bdstevel@tonic-gateFNPROTO(parse_two_int);
3937c478bdstevel@tonic-gate
3947c478bdstevel@tonic-gatetoken_t *alloc_instance_data(fcode_env_t *, int, int, int *);
3957c478bdstevel@tonic-gateFNPROTO(fetch_instance_data);
3967c478bdstevel@tonic-gateFNPROTO(set_instance_data);
3977c478bdstevel@tonic-gateFNPROTO(address_instance_data);
3987c478bdstevel@tonic-gateFNPROTO(instance_variable);
3997c478bdstevel@tonic-gateFNPROTO(decode_phys);
4007c478bdstevel@tonic-gate
4017c478bdstevel@tonic-gatevoid install_actions(fcode_env_t *env, token_t *table);
4027c478bdstevel@tonic-gatevoid set_value_actions(fcode_env_t *env, int);
4037c478bdstevel@tonic-gatevoid set_internal_value_actions(fcode_env_t *env);
4047c478bdstevel@tonic-gatevoid set_buffer_actions(fcode_env_t *env, int);
4057c478bdstevel@tonic-gate
4067c478bdstevel@tonic-gatevoid system_message(fcode_env_t *env, char *msg);
4077c478bdstevel@tonic-gate
4087c478bdstevel@tonic-gatevoid check_interrupt(void);
4097c478bdstevel@tonic-gatevoid complete_interrupt(void);
4107c478bdstevel@tonic-gate
4117c478bdstevel@tonic-gateFNPROTO(do_set_action);
4127c478bdstevel@tonic-gatevoid push_a_string(fcode_env_t *, char *);
4137c478bdstevel@tonic-gatechar *pop_a_string(fcode_env_t *, int *);
4147c478bdstevel@tonic-gatechar *pop_a_duped_string(fcode_env_t *, int *);
4157c478bdstevel@tonic-gatechar *parse_a_string(fcode_env_t *, int *);
4167c478bdstevel@tonic-gatevoid push_double(fcode_env_t *, dforth_t);
4177c478bdstevel@tonic-gatedforth_t pop_double(fcode_env_t *);
4187c478bdstevel@tonic-gatedforth_t peek_double(fcode_env_t *);
4197c478bdstevel@tonic-gatevoid push_xforth(fcode_env_t *, xforth_t);
4207c478bdstevel@tonic-gatexforth_t pop_xforth(fcode_env_t *);
4217c478bdstevel@tonic-gatexforth_t peek_xforth(fcode_env_t *);
4227c478bdstevel@tonic-gatevoid create_prop(fcode_env_t *, char *);
4237c478bdstevel@tonic-gatevoid create_int_prop(fcode_env_t *, char *, int);
4247c478bdstevel@tonic-gatevoid create_string_prop(fcode_env_t *, char *, char *);
4257c478bdstevel@tonic-gatevoid make_builtin_hooks(fcode_env_t *, char *);
4267c478bdstevel@tonic-gatefstack_t mapping_to_mcookie(uint64_t, size_t, uint64_t, size_t);
4277c478bdstevel@tonic-gatevoid delete_mapping(fstack_t);
4287c478bdstevel@tonic-gateint is_mcookie(fstack_t);
4297c478bdstevel@tonic-gateuint64_t mcookie_to_addr(fstack_t);
4307c478bdstevel@tonic-gatefstack_t mcookie_to_rlen(fstack_t);
4317c478bdstevel@tonic-gatefstack_t mcookie_to_rvirt(fstack_t);
4327c478bdstevel@tonic-gatevoid set_here(fcode_env_t *, uchar_t *, char *);
4337c478bdstevel@tonic-gateint call_my_parent(fcode_env_t *, char *);
4347c478bdstevel@tonic-gateFILE *get_dump_fd(fcode_env_t *);
4357c478bdstevel@tonic-gate
4367c478bdstevel@tonic-gatevoid load_file(fcode_env_t *);
4377c478bdstevel@tonic-gatevoid token_roundup(fcode_env_t *, char *);
4387c478bdstevel@tonic-gate
4397c478bdstevel@tonic-gate#ifdef DEBUG
4407c478bdstevel@tonic-gatevoid do_fclib_trace(fcode_env_t *, void *);
4417c478bdstevel@tonic-gateint do_fclib_step(fcode_env_t *);
4427c478bdstevel@tonic-gate#endif
4437c478bdstevel@tonic-gate
4447c478bdstevel@tonic-gate#ifdef	__cplusplus
4457c478bdstevel@tonic-gate}
4467c478bdstevel@tonic-gate#endif
4477c478bdstevel@tonic-gate
4487c478bdstevel@tonic-gate#endif /* _FCODE_PROTO_H */
449