Lines Matching defs:env

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