Lines Matching defs:env

67 output_data_stack(fcode_env_t *env, int msglevel)
72 if (DS > env->ds0) {
73 for (i = 0; i < (DS - env->ds0); i++)
75 (uint64_t)(env->ds0[i + 1]));
82 output_return_stack(fcode_env_t *env, int show_wa, int msglevel)
90 acf_backup_search(env, (acf_t)WA));
95 log_message(msglevel, "%s ", acf_backup_search(env, IP));
97 for (i = (RS - env->rs0) - 1; i > 0; i--) {
100 acf_backup_search(env, (acf_t)env->rs0[i+1]));
108 dump_comma(fcode_env_t *env, char *type)
113 d = peek_xforth(env);
128 add_debug_acf(fcode_env_t *env, acf_t acf)
136 if (!within_dictionary(env, acf))
147 paren_debug(fcode_env_t *env)
152 if (!within_dictionary(env, acf)) {
167 add_debug_acf(env, acf);
171 debug(fcode_env_t *env)
177 parse_word(env);
178 dollar_find(env);
182 add_debug_acf(env, acf);
185 two_drop(env);
187 word = pop_a_duped_string(env, NULL);
197 order_to_dict_list(fcode_env_t *env, token_t *order[])
201 if (env->current)
202 order[norder++] = env->current;
203 for (i = env->order_depth; i >= 0; i--) {
204 for (j = 0; j < norder && order[j] != env->order[i]; j++)
207 order[norder++] = env->order[i];
209 for (j = 0; j < norder && order[j] != (token_t *)&env->forth_voc_link;
213 order[norder++] = (token_t *)&env->forth_voc_link;
218 search_all_dictionaries(fcode_env_t *env,
227 order_to_dict_list(env, order);
231 if ((acf = (*fn)(env, LINK_TO_ACF(dptr), arg)) != NULL)
282 dot_debug(fcode_env_t *env)
303 do_undebug(fcode_env_t *env, char *name)
321 undebug(fcode_env_t *env)
329 parse_word(env);
330 two_dup(env);
331 dollar_find(env);
351 two_drop(env);
352 name = pop_a_string(env, NULL);
353 do_undebug(env, name);
357 name_is_debugged(fcode_env_t *env, char *name)
374 is_debug_word(fcode_env_t *env, acf_t acf)
384 if (!within_dictionary(env, acf))
406 debug_set_level(fcode_env_t *env, int level)
413 find_semi_in_colon_def(fcode_env_t *env, acf_t acf)
415 for (; within_dictionary(env, acf); acf++)
422 check_for_debug_entry(fcode_env_t *env)
426 if (is_debug_word(env, WA) && ndebug_stack < MAX_DEBUG_STACK) {
432 find_semi_in_colon_def(env, WA);
436 debug_set_level(env, DEBUG_STEPPING);
437 output_step_message(env);
442 check_for_debug_exit(fcode_env_t *env)
460 check_semi_debug_exit(fcode_env_t *env)
477 current_debug_state(fcode_env_t *env)
487 clear_debug_state(fcode_env_t *env, int oldstate)
496 unbug(fcode_env_t *env)
507 clear_debug_state(env, 0);
511 output_vitals(fcode_env_t *env)
518 do_exec_debug(fcode_env_t *env, void *fn)
532 log_message(MSG_FC_DEBUG, "%-15s ", acf_to_name(env, WA));
536 output_data_stack(env, MSG_FC_DEBUG);
538 output_return_stack(env, show_wa, MSG_FC_DEBUG);
540 output_vitals(env);
542 do_fclib_trace(env, (void *) fn);
545 return (do_fclib_step(env));
550 smatch(fcode_env_t *env)
555 if ((str = parse_a_string(env, &len)) == NULL)
558 for (p = (char *)env->base; p < (char *)HERE; p++)
565 check_vitals(fcode_env_t *env)
570 dptr = env->current;
571 if (*dptr && !within_dictionary(env, (uchar_t *)*dptr))
574 for (i = env->order_depth; i >= 0; i--) {
575 dptr = env->order[i];
578 if (*dptr && !within_dictionary(env, (uchar_t *)*dptr))
582 if (HERE < env->base || HERE >= env->base + dict_size) {
585 if (DS < env->ds0 || DS >= &env->ds0[stack_size]) {
586 forth_abort(env, "DS: %p outside range\n", DS);
588 if (RS < env->rs0 || RS >= &env->rs0[stack_size]) {
590 RS = env->rs0;
592 if (IP && !within_dictionary(env, IP))
594 if (!within_dictionary(env, (void *)env->forth_voc_link))
596 " dictionary\n", env->forth_voc_link);
600 dump_table(fcode_env_t *env)
605 if (*(env->table[i].apf) != (token_t)(&f_error)) {
607 " %8p\n", i, env->table[i].name, env->table[i].apf,
608 *(env->table[i].apf));
615 verify_usage(fcode_env_t *env)
622 verify = env->table[i].flags & (ANSI_WORD|P1275_WORD);
625 (env->table[i].usage == 0) &&
627 (env->table[i].apf)) {
630 env->table[i].name, env->table[i].apf,
631 *(env->table[i].apf));
640 debugf(fcode_env_t *env)
646 control(fcode_env_t *env)
648 PUSH(DS, (fstack_t)&env->control);
690 debug_flags_to_output(fcode_env_t *env, int flags)
707 dot_debugf(fcode_env_t *env)
709 debug_flags_to_output(env, debug_level);
713 debugf_qmark(fcode_env_t *env)
715 debug_flags_to_output(env, 0xffffffff);
759 set_debugf(fcode_env_t *env)
763 str = parse_a_string(env, NULL);
768 show_a_word(fcode_env_t *env, acf_t acf, void *arg)
789 words(fcode_env_t *env)
791 (void) search_all_dictionaries(env, show_a_word, NULL);
792 (void) show_a_word(env, NULL, NULL);
796 dump_a_word(fcode_env_t *env, acf_t acf, void *arg)
803 dump_words(fcode_env_t *env)
805 (void) search_all_dictionaries(env, dump_a_word, NULL);
830 dump_dictionary(fcode_env_t *env)
834 log_message(MSG_INFO, "Dictionary dump: base: %p\n", env->base);
835 for (ptr = (uchar_t *)(((long)(env->base)) & ~0xf); ptr < HERE;
841 acf_to_fcode_name(fcode_env_t *env, acf_t acf)
846 if (env->table[i].apf == acf)
847 return (env->table[i].name);
852 acf_match(fcode_env_t *env, acf_t sacf, void *macf)
863 acf_to_name(fcode_env_t *env, acf_t acf)
870 if (!within_dictionary(env, acf)) {
879 within_dictionary(fcode_env_t *env, void *addr)
881 return ((uchar_t *)addr >= env->base &&
882 (uchar_t *)addr < env->base + dict_size);
886 within_word(fcode_env_t *env, acf_t acf, acf_t wacf)
905 acf_backup_search(fcode_env_t *env, acf_t acf)
910 if ((acf_t)_ALIGN(acf, token_t) == acf && within_dictionary(env, acf)) {
911 for (nacf = acf; nacf >= (acf_t)env->base; nacf--)
915 if (nacf >= (acf_t)env->base && *nacf == (token_t)(&do_colon) &&
926 ctrace(fcode_env_t *env)
946 ftrace(fcode_env_t *env)
949 output_data_stack(env, MSG_DEBUG);
950 output_return_stack(env, 1, MSG_DEBUG);
960 forth_abort(fcode_env_t *env, char *fmt, ...)
975 if (env) {
976 ctrace(env);
977 ftrace(env);
980 return_to_interact(env);
991 forth_perror(fcode_env_t *env, char *fmt, ...)
1000 forth_abort(env, "%s: %s", msg, strerror(save_errno));
1004 show_stack(fcode_env_t *env)
1040 dump(fcode_env_t *env)
1058 do_sifting(fcode_env_t *env, acf_t acf, void *pat)
1068 sifting(fcode_env_t *env)
1072 if ((pat = parse_a_string(env, NULL)) != NULL) {
1073 (void) search_all_dictionaries(env, do_sifting, pat);
1156 paren_see(fcode_env_t *env)
1174 acf_to_name(env, acf));
1177 log_message(MSG_INFO, ": %s", acf_to_name(env, acf));
1223 acf_to_name(env, (acf_t)*acf));
1377 see(fcode_env_t *env)
1381 parse_word(env);
1382 dollar_find(env);
1385 paren_see(env);
1388 two_drop(env);
1393 do_dot_calls(fcode_env_t *env, acf_t acf, void *cacf)
1411 dot_calls(fcode_env_t *env)
1415 search_all_dictionaries(env, do_dot_calls, acf);
1420 dot_pci_space(fcode_env_t *env)
1444 fcode_debug(fcode_env_t *env)
1446 PUSH(DS, (fstack_t)(&env->fcode_debug));
1450 base_addr(fcode_env_t *env)
1452 PUSH(DS, (fstack_t)env->base);
1474 do_memory_watch(fcode_env_t *env)
1487 do_fclib_step(env);
1494 set_memory_watch(fcode_env_t *env, int type, int size, void *addr,
1513 memory_watch(fcode_env_t *env)
1518 set_memory_watch(env, 1, size, addr, 0);
1522 memory_watch_value(fcode_env_t *env)
1528 set_memory_watch(env, 2, size, addr, value);
1532 memory_watch_clear(fcode_env_t *env)
1538 vsearch(fcode_env_t *env)
1568 fcode_env_t *env = initial_env;
1570 ASSERT(env);