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