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