Lines Matching refs:env

41 check_my_self(fcode_env_t *env, char *fn)  in check_my_self()  argument
44 forth_abort(env, "%s: MYSELF is NULL", fn); in check_my_self()
48 get_number_of_parent_address_cells(fcode_env_t *env) in get_number_of_parent_address_cells() argument
59 ncells = get_default_intprop(env, "#address-cells", d->parent, in get_number_of_parent_address_cells()
64 get_path(env, d->parent), ncells, MAX_MY_ADDR); in get_number_of_parent_address_cells()
73 create_ihandle(fcode_env_t *env, device_t *phandle, instance_t *parent) in create_ihandle() argument
96 create_phandle(fcode_env_t *env, device_t *parent) in create_phandle() argument
110 do_push_package(fcode_env_t *env, device_t *d) in do_push_package() argument
112 do_previous(env); in do_push_package()
113 do_also(env); in do_push_package()
117 get_path(env, d), env->order_depth, CONTEXT, env->current); in do_push_package()
122 push_package(fcode_env_t *env) in push_package() argument
127 CHECK_DEPTH(env, 1, "push-package"); in push_package()
129 CONVERT_PHANDLE(env, d, ph); in push_package()
130 do_push_package(env, d); in push_package()
134 pop_package(fcode_env_t *env) in pop_package() argument
136 do_previous(env); in pop_package()
137 do_definitions(env); in pop_package()
141 interpose(fcode_env_t *env) in interpose() argument
147 activate_device(fcode_env_t *env, device_t *d) in activate_device() argument
149 env->current_device = d; in activate_device()
150 do_push_package(env, d); in activate_device()
151 do_definitions(env); in activate_device()
155 deactivate_device(fcode_env_t *env, device_t *d) in deactivate_device() argument
157 env->current_device = d; in deactivate_device()
158 do_previous(env); in deactivate_device()
162 " %s%d/%p/%p\n", get_path(env, d), env->order_depth, in deactivate_device()
163 CONTEXT, env->current); in deactivate_device()
165 do_definitions(env); in deactivate_device()
173 starfire_hack(fcode_env_t *env) in starfire_hack() argument
179 find_property(env->root_node, "device_type") == NULL) { in starfire_hack()
180 create_string_prop(env, "device_type", "upa"); in starfire_hack()
185 root_node(fcode_env_t *env) in root_node() argument
187 do_also(env); in root_node()
188 activate_device(env, env->root_node); in root_node()
189 starfire_hack(env); in root_node()
193 child_node(fcode_env_t *env) in child_node() argument
197 CHECK_DEPTH(env, 1, "child"); in child_node()
198 CONVERT_PHANDLE(env, d, TOS); in child_node()
200 REVERT_PHANDLE(env, TOS, d->child); in child_node()
204 peer_node(fcode_env_t *env) in peer_node() argument
208 CHECK_DEPTH(env, 1, "peer"); in peer_node()
209 CONVERT_PHANDLE(env, d, TOS); in peer_node()
210 REVERT_PHANDLE(env, TOS, d->peer); in peer_node()
214 new_device(fcode_env_t *env) in new_device() argument
219 check_my_self(env, "new-device"); in new_device()
222 phandle = create_phandle(env, parent); in new_device()
223 MYSELF = create_ihandle(env, phandle, MYSELF); in new_device()
224 activate_device(env, phandle); in new_device()
232 ALLOCATE_PHANDLE(env); in new_device()
236 finish_device(fcode_env_t *env) in finish_device() argument
243 check_my_self(env, "finish-device"); in finish_device()
245 ASSERT(env->current_device); in finish_device()
257 parent_dev = env->current_device->parent; in finish_device()
260 activate_device(env, parent_dev); in finish_device()
264 create_internal_value(fcode_env_t *env, char *name, int offset, int token) in create_internal_value() argument
266 header(env, name, strlen(name), 0); in create_internal_value()
270 SET_TOKEN(token, 0, name, LINK_TO_ACF(env->lastlink)); in create_internal_value()
273 lcomma(env); in create_internal_value()
274 set_internal_value_actions(env); in create_internal_value()
278 create_my_self(fcode_env_t *env) in create_my_self() argument
282 create_internal_value(env, "my-self", offset, 0x203); in create_my_self()
286 create_my_space(fcode_env_t *env) in create_my_space() argument
290 create_internal_value(env, "my-space", -offset, 0x103); in create_my_space()
294 my_address(fcode_env_t *env) in my_address() argument
299 check_my_self(env, "my-address"); in my_address()
300 ncells = get_number_of_parent_address_cells(env); in my_address()
309 my_unit(fcode_env_t *env) in my_unit() argument
311 check_my_self(env, "my-unit"); in my_unit()
312 my_address(env); in my_unit()
317 my_args(fcode_env_t *env) in my_args() argument
319 check_my_self(env, "my-args"); in my_args()
325 call_my_parent(fcode_env_t *env, char *method) in call_my_parent() argument
327 push_a_string(env, method); in call_my_parent()
328 dollar_call_parent(env); in call_my_parent()
329 return (env->last_error); in call_my_parent()
333 set_args(fcode_env_t *env) in set_args() argument
340 CHECK_DEPTH(env, 4, "set-args"); in set_args()
342 check_my_self(env, "set-args"); in set_args()
351 two_swap(env); in set_args()
352 MYSELF->my_args = pop_a_duped_string(env, &args_len); in set_args()
355 if (call_my_parent(env, "decode-unit")) in set_args()
356 forth_abort(env, "set-args: decode-unit failed"); in set_args()
358 ncells = get_number_of_parent_address_cells(env); in set_args()
368 if ((cdp = (common_data_t *)env->private) != NULL) in set_args()
381 my_parent(fcode_env_t *env) in my_parent() argument
383 check_my_self(env, "my-parent"); in my_parent()
388 open_instance_chain(fcode_env_t *env, device_t *phandle, int exec) in open_instance_chain() argument
394 parent = open_instance_chain(env, phandle->parent, exec); in open_instance_chain()
395 return (create_ihandle(env, phandle, parent)); in open_instance_chain()
399 close_instance_chain(fcode_env_t *env, instance_t *ihandle, int exec) in close_instance_chain() argument
405 close_instance_chain(env, parent, exec); in close_instance_chain()
413 begin_package(fcode_env_t *env) in begin_package() argument
418 CHECK_DEPTH(env, 6, "begin-package"); in begin_package()
419 two_dup(env); in begin_package()
420 name = pop_a_string(env, NULL); in begin_package()
421 find_package(env); in begin_package()
426 rot(env); in begin_package()
427 open_package(env); in begin_package()
429 check_my_self(env, "begin-package"); in begin_package()
430 new_device(env); in begin_package()
431 set_args(env); in begin_package()
438 open_package(fcode_env_t *env) in open_package() argument
444 CHECK_DEPTH(env, 3, "open-package"); in open_package()
445 CONVERT_PHANDLE(env, phandle, POP(DS)); in open_package()
446 ihandle = open_instance_chain(env, phandle, 1); in open_package()
447 ihandle->my_args = pop_a_duped_string(env, &len); in open_package()
453 dollar_open_package(fcode_env_t *env) in dollar_open_package() argument
457 CHECK_DEPTH(env, 4, "$open-package"); in dollar_open_package()
458 find_package(env); in dollar_open_package()
461 open_package(env); in dollar_open_package()
470 close_package(fcode_env_t *env) in close_package() argument
474 CHECK_DEPTH(env, 1, "close-package"); in close_package()
476 close_instance_chain(env, ihandle, 1); in close_package()
482 set_find_method_hook(fcode_env_t *env, void (*hook)(fcode_env_t *)) in set_find_method_hook() argument
488 find_method(fcode_env_t *env) in find_method() argument
494 CHECK_DEPTH(env, 3, "find-method"); in find_method()
496 (*find_method_hook)(env); in find_method()
503 CONVERT_PHANDLE(env, device, d); in find_method()
505 acf = voc_find(env); in find_method()
516 call_package(fcode_env_t *env) in call_package() argument
520 CHECK_DEPTH(env, 2, "call-package"); in call_package()
524 execute(env); in call_package()
529 ihandle_to_phandle(fcode_env_t *env) in ihandle_to_phandle() argument
533 CHECK_DEPTH(env, 1, "ihandle>phandle"); in ihandle_to_phandle()
535 REVERT_PHANDLE(env, TOS, i->device); in ihandle_to_phandle()
539 get_package_name(fcode_env_t *env, device_t *d) in get_package_name() argument
544 prop = lookup_package_property(env, "name", d); in get_package_name()
556 match_package_path(fcode_env_t *env, char *path) in match_package_path() argument
563 d = env->root_node->child; in match_package_path()
566 d = env->current_device; in match_package_path()
568 name = get_package_name(env, d); in match_package_path()
587 locate_package(fcode_env_t *env, char *start) in locate_package() argument
593 if ((d = match_package_path(env, start)) != NULL) in locate_package()
608 if ((d = match_package_path(env, tpath)) != NULL) { in locate_package()
620 find_package(fcode_env_t *env) in find_package() argument
626 CHECK_DEPTH(env, 2, "find-package"); in find_package()
627 if ((path = pop_a_duped_string(env, NULL)) != NULL) { in find_package()
629 package = env->root_node; in find_package()
631 package = locate_package(env, path); in find_package()
633 REVERT_PHANDLE(env, ph, package); in find_package()
641 encode_unit_hack(fcode_env_t *env) in encode_unit_hack() argument
644 uint_t ncells = get_number_of_parent_address_cells(env); in encode_unit_hack()
648 push_a_string(env, NULL); in encode_unit_hack()
652 dollar_call_method(fcode_env_t *env) in dollar_call_method() argument
659 CHECK_DEPTH(env, 3, "$call-method"); in dollar_call_method()
660 check_my_self(env, "$call-method"); in dollar_call_method()
674 check_my_self(env, "$call-method"); in dollar_call_method()
676 do_push_package(env, device); in dollar_call_method()
678 REVERT_PHANDLE(env, TOS, device); in dollar_call_method()
679 find_method(env); in dollar_call_method()
682 execute(env); in dollar_call_method()
684 encode_unit_hack(env); in dollar_call_method()
686 throw_from_fclib(env, 1, "Unimplemented package method: %s%s", in dollar_call_method()
687 get_path(env, device), method); in dollar_call_method()
690 do_push_package(env, MYSELF->device); in dollar_call_method()
694 dollar_call_parent(fcode_env_t *env) in dollar_call_parent() argument
696 CHECK_DEPTH(env, 2, "$call-parent"); in dollar_call_parent()
698 check_my_self(env, "$call-parent"); in dollar_call_parent()
701 dollar_call_method(env); in dollar_call_parent()
706 current_device(fcode_env_t *env) in current_device() argument
708 PUSH(DS, (fstack_t)&env->current_device); in current_device()
712 get_path(fcode_env_t *env, device_t *d) in get_path() argument
718 pre_path = get_path(env, d->parent); in get_path()
722 name = get_package_name(env, d); in get_path()
734 pwd_dollar(fcode_env_t *env) in pwd_dollar() argument
736 if (env->current_device) in pwd_dollar()
737 push_a_string(env, get_path(env, env->current_device)); in pwd_dollar()
739 push_a_string(env, NULL); in pwd_dollar()
743 pwd(fcode_env_t *env) in pwd() argument
745 if (env->current_device) { in pwd()
747 get_path(env, env->current_device)); in pwd()
754 do_ls(fcode_env_t *env) in do_ls() argument
758 if (env->current_device == NULL) { in do_ls()
763 d = env->current_device->child; in do_ls()
767 name = get_package_name(env, d); in do_ls()
768 REVERT_PHANDLE(env, ph, d); in do_ls()
775 paren_cd(fcode_env_t *env) in paren_cd() argument
780 str = pop_a_string(env, NULL); in paren_cd()
782 root_node(env); in paren_cd()
786 if (env->current_device == NULL) { in paren_cd()
792 p = env->current_device->parent; in paren_cd()
794 device_t *n = env->current_device->child; in paren_cd()
800 name = get_package_name(env, n); in paren_cd()
810 activate_device(env, p); in paren_cd()
817 do_cd(fcode_env_t *env) in do_cd() argument
819 parse_word(env); in do_cd()
820 paren_cd(env); in do_cd()
824 do_unselect_dev(fcode_env_t *env) in do_unselect_dev() argument
826 check_my_self(env, "unselect-dev"); in do_unselect_dev()
828 close_package(env); in do_unselect_dev()
829 deactivate_device(env, NULL); in do_unselect_dev()
833 do_select_dev(fcode_env_t *env) in do_select_dev() argument
837 two_swap(env); in do_select_dev()
838 dollar_open_package(env); in do_select_dev()
841 check_my_self(env, "select-dev"); in do_select_dev()
842 activate_device(env, MYSELF->device); in do_select_dev()
844 drop(env); in do_select_dev()
850 device_end(fcode_env_t *env) in device_end() argument
852 if (env->current_device) { in device_end()
853 deactivate_device(env, NULL); in device_end()
858 end_package(fcode_env_t *env) in end_package() argument
860 finish_device(env); in end_package()
861 close_instance_chain(env, MYSELF, 0); in end_package()
862 device_end(env); in end_package()
867 exec_parent_method(fcode_env_t *env) in exec_parent_method() argument
875 check_my_self(env, "exec-parent-method"); in exec_parent_method()
882 check_my_self(env, "exec-parent-method"); in exec_parent_method()
884 do_push_package(env, device); in exec_parent_method()
886 REVERT_PHANDLE(env, TOS, device); in exec_parent_method()
887 find_method(env); in exec_parent_method()
892 execute(env); in exec_parent_method()
900 do_push_package(env, MYSELF->device); in exec_parent_method()
904 dump_device(fcode_env_t *env) in dump_device() argument
909 CONVERT_PHANDLE(env, phandle, POP(DS)); in dump_device()
940 dump_instance(fcode_env_t *env) in dump_instance() argument
987 safe_convert_phandle(fcode_env_t *env, fstack_t d) in safe_convert_phandle() argument
993 safe_revert_phandle(fcode_env_t *env, device_t *d) in safe_revert_phandle() argument
999 safe_allocate_phandle(fcode_env_t *env) in safe_allocate_phandle() argument
1008 fcode_env_t *env = initial_env; in _init() local
1012 ASSERT(env); in _init()
1016 env->convert_phandle = safe_convert_phandle; in _init()
1017 env->revert_phandle = safe_revert_phandle; in _init()
1018 env->allocate_phandle = safe_allocate_phandle; in _init()
1022 d = create_phandle(env, NULL); in _init()
1023 env->current_device = d; in _init()
1024 env->root_node = d; in _init()
1025 push_a_string(env, name); in _init()
1026 device_name(env); in _init()
1027 env->current_device = NULL; in _init()
1029 create_my_self(env); in _init()
1030 create_my_space(env); in _init()