Lines Matching refs:env

37 create_prop(fcode_env_t *env, char *name)
39 push_a_string(env, name);
40 property(env);
44 create_int_prop(fcode_env_t *env, char *name, int val)
47 encode_int(env);
48 create_prop(env, name);
52 create_string_prop(fcode_env_t *env, char *name, char *val)
54 push_a_string(env, val);
55 encode_string(env);
56 create_prop(env, name);
66 add_property_buffer(fcode_env_t *env, int len)
69 return (add_resource(&env->propbufs, data, addr_cmp));
73 free_property_buffer(fcode_env_t *env, void *buffer)
75 free_resource(&env->propbufs, buffer, addr_cmp);
121 stack_find_property(fcode_env_t *env, device_t *d)
125 propname = pop_a_string(env, NULL);
130 property(fcode_env_t *env)
137 CHECK_DEPTH(env, 4, "property");
141 d = env->current_device;
145 two_drop(env);
146 if ((buffer = pop_a_string(env, NULL)) != NULL)
147 free_property_buffer(env, buffer);
151 propname = pop_a_string(env, NULL);
160 srcptr = pop_a_string(env, &datalen);
166 free_property_buffer(env, srcptr);
170 lookup_package_property(fcode_env_t *env, char *propname, device_t *d)
183 push_a_string(env, propname);
184 REVERT_PHANDLE(env, n, d);
186 d->vectors.get_package_prop(env);
200 get_package_property(fcode_env_t *env)
206 CHECK_DEPTH(env, 3, "get-package-property");
207 CONVERT_PHANDLE(env, d, POP(DS));
208 propname = pop_a_string(env, NULL);
209 p = lookup_package_property(env, propname, d);
219 get_inherited_prop(fcode_env_t *env)
233 CHECK_DEPTH(env, 2, "get-inherited-property");
234 pname = pop_a_string(env, &plen);
248 push_a_string(env, pname);
249 dev->vectors.get_inherited_prop(env);
257 delete_property(fcode_env_t *env)
259 CHECK_DEPTH(env, 2, "delete-property");
263 p = stack_find_property(env, MYSELF->device);
272 two_drop(env);
277 get_my_property(fcode_env_t *env)
279 CHECK_DEPTH(env, 2, "get-my-property");
281 ihandle_to_phandle(env);
282 get_package_property(env);
286 encode_string(fcode_env_t *env)
292 CHECK_DEPTH(env, 2, "encode-string");
293 str = pop_a_string(env, &len);
295 prop = add_property_buffer(env, len);
303 encode_int(fcode_env_t *env)
308 CHECK_DEPTH(env, 1, "encode-int");
310 ptr = add_property_buffer(env, sizeof (uint32_t));
318 encode_phys(fcode_env_t *env)
322 ncells = get_number_of_parent_address_cells(env);
323 CHECK_DEPTH(env, ncells, "encode-phys");
324 encode_int(env);
326 rot(env);
327 encode_int(env);
328 encode_plus(env);
342 get_default_intprop(fcode_env_t *env, char *name, device_t *d, int def)
348 p = lookup_package_property(env, name, d);
355 get_num_addr_cells(fcode_env_t *env, device_t *d)
357 return (get_default_intprop(env, "#address-cells", d, 2));
361 get_num_size_cells(fcode_env_t *env, device_t *d)
363 return (get_default_intprop(env, "#size-cells", d, 1));
367 decode_phys(fcode_env_t *env)
374 CHECK_DEPTH(env, 2, "decode-phys");
375 ptr = pop_a_string(env, &len);
377 adr_cells = get_num_addr_cells(env, env->current_device->parent);
396 reg_prop(fcode_env_t *env)
400 CHECK_DEPTH(env, 1, "reg");
402 encode_phys(env);
404 encode_int(env);
405 encode_plus(env);
406 create_prop(env, "reg");
410 encode_bytes(fcode_env_t *env)
416 CHECK_DEPTH(env, 2, "encode-bytes");
417 str = pop_a_string(env, &len);
418 prop = add_property_buffer(env, len);
426 decode_int(fcode_env_t *env)
432 CHECK_DEPTH(env, 2, "decode-int");
433 dp = pop_a_string(env, &len);
441 decode_string(fcode_env_t *env)
446 CHECK_DEPTH(env, 2, "decode-string");
447 dp = pop_a_string(env, &plen);
456 encode_plus(fcode_env_t *env)
462 CHECK_DEPTH(env, 4, "encode+");
463 src1 = pop_a_string(env, &len1);
464 src2 = pop_a_string(env, &len2);
465 new = add_property_buffer(env, len1 + len2);
468 free_property_buffer(env, src2);
472 free_property_buffer(env, src1);
479 make_special_property(fcode_env_t *env, char *name)
481 push_a_string(env, name);
482 property(env);
486 device_name(fcode_env_t *env)
488 CHECK_DEPTH(env, 2, "device-name");
489 encode_string(env);
490 make_special_property(env, "name");
494 model_prop(fcode_env_t *env)
496 CHECK_DEPTH(env, 2, "model");
497 encode_string(env);
498 make_special_property(env, "model");
502 device_type(fcode_env_t *env)
504 CHECK_DEPTH(env, 2, "device-type");
505 encode_string(env);
506 make_special_property(env, "device_type");
513 next_property(fcode_env_t *env)
519 CHECK_DEPTH(env, 3, "next-property");
521 previous = pop_a_string(env, NULL);
532 push_a_string(env, p->name);
534 push_a_string(env, "");
539 get_property(fcode_env_t *env)
542 get_my_property(env);
543 else if (env->current_device) {
546 REVERT_PHANDLE(env, d, env->current_device);
548 get_package_property(env);
550 two_drop(env);
564 print_string(fcode_env_t *env, uchar_t *data, int len)
591 print_integer(fcode_env_t *env, uchar_t *data, int len)
597 print_bytes(fcode_env_t *env, uchar_t *data, int len)
606 print_bytes_indented(fcode_env_t *env, uchar_t *data, int len)
612 print_bytes(env, data, nbytes);
622 print_reg(fcode_env_t *env, uchar_t *data, int len)
626 if (env->current_device != NULL &&
627 env->current_device->parent != NULL) {
628 pcells = get_num_size_cells(env, env->current_device->parent);
629 pcells += get_num_addr_cells(env, env->current_device->parent);
639 print_bytes_indented(env, data, len);
643 print_imap(fcode_env_t *env, uchar_t *dp, int len)
647 if (env->current_device == NULL) {
648 print_bytes_indented(env, dp, len);
651 n = get_num_addr_cells(env, env->current_device);
660 CONVERT_PHANDLE(env, node, data);
663 icells = get_default_intprop(env, "#interrupt-cells", node, 1);
674 print_ranges(fcode_env_t *env, uchar_t *data, int len)
678 if (env->current_device != NULL &&
679 env->current_device->parent != NULL) {
680 pcells = get_num_addr_cells(env, env->current_device);
681 pcells += get_num_addr_cells(env, env->current_device->parent);
682 pcells += get_num_size_cells(env, env->current_device);
692 print_bytes_indented(env, data, len);
697 void (*fn)(fcode_env_t *env, uchar_t *data, int len);
722 print_content(fcode_env_t *env, char *prop, uchar_t *data, int len)
728 (*p->fn)(env, data, len);
731 print_bytes_indented(env, data, len);
735 print_property(fcode_env_t *env, prop_t *p, char *prepend)
746 print_content(env, p->name, p->data, p->size);
748 print_bytes_indented(env, p->data, p->size);
752 dot_properties(fcode_env_t *env)
760 if (env->current_device) {
761 for (p = env->current_device->properties; p; p = p->next)
762 print_property(env, p, NULL);
776 fcode_env_t *env = initial_env;
778 ASSERT(env);