static int print_xs(int indent, char *key) { char buf[1024]; assert(indent < sizeof(buf)); memset(buf, ' ', indent); buf[indent] = 0; printk("%s%s\n", buf, key); int st = xenstore_read_dir(key, buf, sizeof(buf)); if (st < 0) return st; char *dir = buf; while (*dir != 0) { char path[1024]; strcpy(path, key); strcat(path, "/"); strcat(path, dir); int ret_code = print_xs(indent +4, path); if (ret_code < 0) return ret_code; dir += strlen(dir) +1; } return 0; }
void print_results() { print_xs(); Vector euler_ys_dbld_h = print_euler(2.0 * h); Vector euler_ys_orig_h = print_euler(1.0 * h); Vector euler_ys_half_h = print_euler(0.5 * h); Vector runge_ys = print_runge(); Vector adams_ys = print_adams(); Vector euler_errors = print_euler_errors(&euler_ys_orig_h, &adams_ys); Vector max_euler_errors = print_max_euler_errors(&euler_ys_half_h); disposeVector(&max_euler_errors); disposeVector(&euler_errors); disposeVector(&adams_ys); disposeVector(&runge_ys); disposeVector(&euler_ys_half_h); disposeVector(&euler_ys_orig_h); disposeVector(&euler_ys_dbld_h); }
static void print_xs_tree(char *start) { int ret_code = print_xs(0, start); if (ret_code < 0) fatal_error("print_xs_tree failed: %d", ret_code); }