Blame xen_hyper_dump_tables.c

Packit Service 501009
/*
Packit Service 501009
 *  xen_hyper_dump_tables.c
Packit Service 501009
 *
Packit Service 501009
 *  Portions Copyright (C) 2006-2007 Fujitsu Limited
Packit Service 501009
 *  Portions Copyright (C) 2006-2007 VA Linux Systems Japan K.K.
Packit Service 501009
 *
Packit Service 501009
 *  Authors: Itsuro Oda <oda@valinux.co.jp>
Packit Service 501009
 *           Fumihiko Kakuma <kakuma@valinux.co.jp>
Packit Service 501009
 *
Packit Service 501009
 *  This file is part of Xencrash.
Packit Service 501009
 *
Packit Service 501009
 *  Xencrash is free software; you can redistribute it and/or modify
Packit Service 501009
 *  it under the terms of the GNU General Public License as published by
Packit Service 501009
 *  the Free Software Foundation; either version 2 of the License, or
Packit Service 501009
 *  (at your option) any later version.
Packit Service 501009
 *
Packit Service 501009
 *  Xencrash is distributed in the hope that it will be useful,
Packit Service 501009
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 501009
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 501009
 *  GNU General Public License for more details.
Packit Service 501009
 *
Packit Service 501009
 *  You should have received a copy of the GNU General Public License
Packit Service 501009
 *  along with Xencrash; if not, write to the Free Software
Packit Service 501009
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
Packit Service 501009
 */
Packit Service 501009
Packit Service 501009
#include "defs.h"
Packit Service 501009
Packit Service 501009
#ifdef XEN_HYPERVISOR_ARCH
Packit Service 501009
#include "xen_hyper_defs.h"
Packit Service 501009
Packit Service 501009
static void xen_hyper_dump_xen_hyper_table(int verbose);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_dumpinfo_table(int verbose);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_domain_table(int verbose);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_vcpu_table(int verbose);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_pcpu_table(int verbose);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_sched_table(int verbose);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_size_table(char *spec, ulong makestruct);
Packit Service 501009
static void xen_hyper_dump_xen_hyper_offset_table(char *spec, ulong makestruct);
Packit Service 501009
Packit Service 501009
static void xen_hyper_dump_mem(void *mem, ulong len, int dsz);
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 *  Get help for a command, to dump an internal table, or the GNU public
Packit Service 501009
 *  license copying/warranty information.
Packit Service 501009
 */
Packit Service 501009
void
Packit Service 501009
xen_hyper_cmd_help(void)
Packit Service 501009
{
Packit Service 501009
	int c;
Packit Service 501009
	int oflag;
Packit Service 501009
Packit Service 501009
	oflag = 0;
Packit Service 501009
Packit Service 501009
        while ((c = getopt(argcnt, args, 
Packit Service 501009
	        "aBbcDgHhM:mnOopszX:")) != EOF) {
Packit Service 501009
                switch(c)
Packit Service 501009
                {
Packit Service 501009
		case 'a':
Packit Service 501009
			dump_alias_data();
Packit Service 501009
			return;
Packit Service 501009
		case 'b':
Packit Service 501009
			dump_shared_bufs();
Packit Service 501009
			return;
Packit Service 501009
		case 'B':
Packit Service 501009
			dump_build_data();
Packit Service 501009
			return;
Packit Service 501009
		case 'c':
Packit Service 501009
			dump_numargs_cache();
Packit Service 501009
			return;
Packit Service 501009
		case 'n':
Packit Service 501009
		case 'D':
Packit Service 501009
			dumpfile_memory(DUMPFILE_MEM_DUMP);
Packit Service 501009
			return;
Packit Service 501009
		case 'g':
Packit Service 501009
			dump_gdb_data();
Packit Service 501009
			return;
Packit Service 501009
		case 'H':
Packit Service 501009
			dump_hash_table(VERBOSE);
Packit Service 501009
			return;
Packit Service 501009
		case 'h':
Packit Service 501009
			dump_hash_table(!VERBOSE);
Packit Service 501009
 			return;
Packit Service 501009
		case 'M':
Packit Service 501009
			dump_machdep_table(stol(optarg, FAULT_ON_ERROR, NULL));
Packit Service 501009
			return;
Packit Service 501009
		case 'm':
Packit Service 501009
			dump_machdep_table(0);
Packit Service 501009
			return;
Packit Service 501009
		case 'O':
Packit Service 501009
			dump_offset_table(NULL, TRUE);
Packit Service 501009
			return;
Packit Service 501009
		case 'o':
Packit Service 501009
			oflag = TRUE;
Packit Service 501009
			break;
Packit Service 501009
		case 'p':
Packit Service 501009
			dump_program_context();
Packit Service 501009
			return;
Packit Service 501009
		case 's':
Packit Service 501009
			dump_symbol_table();
Packit Service 501009
			return;
Packit Service 501009
		case 'X':
Packit Service 501009
			if (strlen(optarg) != 3) {
Packit Service 501009
				argerrs++;
Packit Service 501009
				break;
Packit Service 501009
			}
Packit Service 501009
			if (!strncmp("Xen", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_table(VERBOSE);
Packit Service 501009
			else if (!strncmp("xen", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_table(!VERBOSE);
Packit Service 501009
			else if (!strncmp("Dmp", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_dumpinfo_table(VERBOSE);
Packit Service 501009
			else if (!strncmp("dmp", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_dumpinfo_table(!VERBOSE);
Packit Service 501009
			else if (!strncmp("Dom", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_domain_table(VERBOSE);
Packit Service 501009
			else if (!strncmp("dom", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_domain_table(!VERBOSE);
Packit Service 501009
			else if (!strncmp("Vcp", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_vcpu_table(VERBOSE);
Packit Service 501009
			else if (!strncmp("vcp", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_vcpu_table(!VERBOSE);
Packit Service 501009
			else if (!strncmp("Pcp", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_pcpu_table(VERBOSE);
Packit Service 501009
			else if (!strncmp("pcp", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_pcpu_table(!VERBOSE);
Packit Service 501009
			else if (!strncmp("Sch", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_sched_table(VERBOSE);
Packit Service 501009
			else if (!strncmp("sch", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_sched_table(!VERBOSE);
Packit Service 501009
			else if (!strncmp("siz", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_size_table(NULL, TRUE);
Packit Service 501009
			else if (!strncmp("ofs", optarg, strlen(optarg)))
Packit Service 501009
				xen_hyper_dump_xen_hyper_offset_table(NULL, TRUE);
Packit Service 501009
			else {
Packit Service 501009
				argerrs++;
Packit Service 501009
				break;
Packit Service 501009
			}
Packit Service 501009
 			return;
Packit Service 501009
		case 'z':
Packit Service 501009
			fprintf(fp, "help options:\n");
Packit Service 501009
			fprintf(fp, " -a - alias data\n");
Packit Service 501009
			fprintf(fp, " -b - shared buffer data\n");
Packit Service 501009
			fprintf(fp, " -B - build data\n");
Packit Service 501009
			fprintf(fp, " -c - numargs cache\n");
Packit Service 501009
			fprintf(fp, " -M <num> machine specific\n");
Packit Service 501009
			fprintf(fp, " -m - machdep_table\n");
Packit Service 501009
			fprintf(fp, " -s - symbol table data\n");
Packit Service 501009
			fprintf(fp, " -o - offset_table and size_table\n");
Packit Service 501009
			fprintf(fp, " -p - program_context\n");
Packit Service 501009
			fprintf(fp, " -h - hash_table data\n");
Packit Service 501009
			fprintf(fp, " -H - hash_table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X Xen - xen table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X xen - xen table data\n");
Packit Service 501009
			fprintf(fp, " -X Dmp - dumpinfo table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X dmp - dumpinfo table data\n");
Packit Service 501009
			fprintf(fp, " -X Dom - domain table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X dom - domain table data\n");
Packit Service 501009
			fprintf(fp, " -X Vcp - vcpu table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X vcp - vcpu table data\n");
Packit Service 501009
			fprintf(fp, " -X Pcp - pcpu table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X pcp - pcpu table data\n");
Packit Service 501009
			fprintf(fp, " -X Sch - schedule table data (verbose)\n");
Packit Service 501009
			fprintf(fp, " -X sch - schedule table data\n");
Packit Service 501009
			fprintf(fp, " -X siz - size table data\n");
Packit Service 501009
			fprintf(fp, " -X ofs - offset table data\n");
Packit Service 501009
			return;
Packit Service 501009
                default:  
Packit Service 501009
			argerrs++;
Packit Service 501009
                        break;
Packit Service 501009
                }
Packit Service 501009
        }
Packit Service 501009
Packit Service 501009
        if (argerrs)
Packit Service 501009
                cmd_usage(pc->curcmd, COMPLETE_HELP);
Packit Service 501009
Packit Service 501009
	if (!args[optind]) {
Packit Service 501009
		if (oflag) 
Packit Service 501009
			dump_offset_table(NULL, FALSE);
Packit Service 501009
		else 
Packit Service 501009
			display_help_screen("");
Packit Service 501009
		return;
Packit Service 501009
	}
Packit Service 501009
Packit Service 501009
        do {
Packit Service 501009
		if (oflag) 
Packit Service 501009
			dump_offset_table(args[optind], FALSE);
Packit Service 501009
		else	
Packit Service 501009
        		cmd_usage(args[optind], COMPLETE_HELP);
Packit Service 501009
		optind++;
Packit Service 501009
        } while (args[optind]);
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x xen" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_table(int verbose)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	uint cpuid;
Packit Service 501009
	int len, flag, i;
Packit Service 501009
Packit Service 501009
	len = 14;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_data_address: ", buf, flag,
Packit Service 501009
		(buf, "%lu\n", xht->cpu_data_address));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_curr: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xht->cpu_curr));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "max_cpus: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xht->max_cpus));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cores: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xht->cores));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "pcpus: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xht->pcpus));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpus: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xht->vcpus));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domains: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xht->domains));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "sys_pages: ", buf, flag,
Packit Service 501009
		(buf, "%lu\n", xht->sys_pages));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crashing_cpu: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xht->crashing_cpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crashing_vcc: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xht->crashing_vcc));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "max_page: ", buf, flag,
Packit Service 501009
		(buf, "%lu\n", xht->max_page));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "total_pages: ", buf, flag,
Packit Service 501009
		(buf, "%lu\n", xht->total_pages));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpumask: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xht->cpumask));
Packit Service 501009
	if (verbose && xht->cpumask) {
Packit Service 501009
		xen_hyper_dump_mem(xht->cpumask,
Packit Service 501009
				XEN_HYPER_SIZE(cpumask_t), sizeof(long));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_idxs: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xht->cpu_idxs));
Packit Service 501009
	if (verbose) {
Packit Service 501009
		for_cpu_indexes(i, cpuid)
Packit Service 501009
			fprintf(fp, "%03d : %d\n", i, cpuid);
Packit Service 501009
	}
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x dmp" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_dumpinfo_table(int verbose)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	int len, flag;
Packit Service 501009
Packit Service 501009
	len = 25;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "note_ver: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->note_ver));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "context_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdit->context_array));
Packit Service 501009
	if (verbose && xhdit->context_array) {
Packit Service 501009
		xen_hyper_dump_mem((long *)xhdit->context_array,
Packit Service 501009
				sizeof(struct xen_hyper_dumpinfo_context) *
Packit Service 501009
				XEN_HYPER_MAX_CPUS(), sizeof(long));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "context_xen_core_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdit->context_xen_core_array));
Packit Service 501009
	if (verbose && xhdit->context_xen_core_array) {
Packit Service 501009
		xen_hyper_dump_mem((long *)xhdit->context_xen_core_array,
Packit Service 501009
				sizeof(struct xen_hyper_dumpinfo_context_xen_core) *
Packit Service 501009
				XEN_HYPER_MAX_CPUS(), sizeof(long));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI_CONST(fp, len, "context_xen_info: ", flag|XEN_HYPER_PRI_LF);
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "note: ", buf, flag,
Packit Service 501009
		(buf, "%lx\n", xhdit->context_xen_info.note));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "pcpu_id: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->context_xen_info.pcpu_id));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_xen_info_ptr: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdit->context_xen_info.crash_xen_info_ptr));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_core_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdit->crash_note_core_array));
Packit Service 501009
	if (verbose && xhdit->crash_note_core_array) {
Packit Service 501009
		xen_hyper_dump_mem((long *)xhdit->crash_note_core_array,
Packit Service 501009
				xhdit->core_size * XEN_HYPER_NR_PCPUS(),
Packit Service 501009
				sizeof(long));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_core_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdit->crash_note_xen_core_array));
Packit Service 501009
	if (verbose && xhdit->crash_note_xen_core_array) {
Packit Service 501009
		xen_hyper_dump_mem(
Packit Service 501009
				xhdit->crash_note_xen_core_array,
Packit Service 501009
				xhdit->xen_core_size * XEN_HYPER_NR_PCPUS(),
Packit Service 501009
				sizeof(long));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_info_ptr: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdit->crash_note_xen_info_ptr));
Packit Service 501009
	if (verbose && xhdit->crash_note_xen_info_ptr) {
Packit Service 501009
		xen_hyper_dump_mem(
Packit Service 501009
				xhdit->crash_note_xen_info_ptr,
Packit Service 501009
				xhdit->xen_info_size, sizeof(long));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "xen_info_cpu: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->xen_info_cpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "note_size: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->note_size));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "core_offset: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->core_offset));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "core_size: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->core_size));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "xen_core_offset: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->xen_core_offset));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "xen_core_size: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->xen_core_size));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "xen_info_offset: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->xen_info_offset));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "xen_info_size: ", buf, flag,
Packit Service 501009
		(buf, "%u\n", xhdit->xen_info_size));
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x dom" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_domain_table(int verbose)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	struct xen_hyper_domain_context *dcca;
Packit Service 501009
	int len, flag, i;
Packit Service 501009
Packit Service 501009
	len = 22;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "context_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->context_array));
Packit Service 501009
	if (verbose) {
Packit Service 501009
		char buf1[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
		int j;
Packit Service 501009
		for (i = 0, dcca = xhdt->context_array;
Packit Service 501009
		i < xhdt->context_array_cnt; i++, dcca++) {
Packit Service 501009
			snprintf(buf, XEN_HYPER_CMD_BUFSIZE, "context_array[%d]: ", i);
Packit Service 501009
			XEN_HYPER_PRI_CONST(fp, len, buf, flag|XEN_HYPER_PRI_LF);
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "domain: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", dcca->domain));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "domain_id: ", buf, flag,
Packit Service 501009
				(buf, "%d\n", dcca->domain_id));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "tot_pages: ", buf, flag,
Packit Service 501009
				(buf, "%x\n", dcca->tot_pages));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "max_pages: ", buf, flag,
Packit Service 501009
				(buf, "%x\n", dcca->max_pages));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "xenheap_pages: ", buf, flag,
Packit Service 501009
				(buf, "%x\n", dcca->xenheap_pages));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "shared_info: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", dcca->shared_info));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "sched_priv: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", dcca->sched_priv));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "next_in_list: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", dcca->next_in_list));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "domain_flags: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", dcca->domain_flags));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "evtchn: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", dcca->evtchn));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "vcpu_cnt: ", buf, flag,
Packit Service 501009
				(buf, "%d\n", dcca->vcpu_cnt));
Packit Service 501009
			for (j = 0; j < XEN_HYPER_MAX_VIRT_CPUS; j++) {
Packit Service 501009
				snprintf(buf1, XEN_HYPER_CMD_BUFSIZE, "vcpu[%d]: ", j);
Packit Service 501009
				XEN_HYPER_PRI(fp, len, buf1, buf, flag,
Packit Service 501009
					(buf, "%lx\n", dcca->vcpu[j]));
Packit Service 501009
			}
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "vcpu_context_array: ", buf, flag,
Packit Service 501009
				(buf, "%p\n", dcca->vcpu_context_array));
Packit Service 501009
		}
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "context_array_cnt: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xhdt->context_array_cnt));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "running_domains: ", buf, flag,
Packit Service 501009
		(buf, "%lu\n", xhdt->running_domains));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "dom_io: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->dom_io));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "dom_xen: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->dom_xen));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "dom0: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->dom0));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "idle_domain: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->idle_domain));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "curr_domain: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->curr_domain));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "last: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->last));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_struct: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->domain_struct));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_struct_verify: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhdt->domain_struct_verify));
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x vcp" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_vcpu_table(int verbose)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	int len, flag;
Packit Service 501009
Packit Service 501009
	len = 25;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_context_arrays: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhvct->vcpu_context_arrays));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_context_arrays_cnt: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xhvct->vcpu_context_arrays_cnt));
Packit Service 501009
	if (verbose) {
Packit Service 501009
		struct xen_hyper_vcpu_context_array *vcca;
Packit Service 501009
		struct xen_hyper_vcpu_context *vca;
Packit Service 501009
		int i, j;
Packit Service 501009
Packit Service 501009
		for (i = 0, vcca = xhvct->vcpu_context_arrays;
Packit Service 501009
		i < xhvct->vcpu_context_arrays_cnt; i++, vcca++) {
Packit Service 501009
			snprintf(buf, XEN_HYPER_CMD_BUFSIZE, "vcpu_context_arrays[%d]: ", i);
Packit Service 501009
			XEN_HYPER_PRI_CONST(fp, len, buf, flag|XEN_HYPER_PRI_LF);
Packit Service 501009
			if (vcca->context_array) {
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "context_array: ", buf, flag,
Packit Service 501009
					(buf, "%p\n", vcca->context_array));
Packit Service 501009
			} else {
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "context_array: ", buf, flag,
Packit Service 501009
					(buf, "NULL\n"));
Packit Service 501009
			}
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "context_array_cnt: ", buf, flag,
Packit Service 501009
				(buf, "%d\n", vcca->context_array_cnt));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "context_array_valid: ", buf, flag,
Packit Service 501009
				(buf, "%d\n", vcca->context_array_valid));
Packit Service 501009
			for (j = 0, vca = vcca->context_array;
Packit Service 501009
			j < vcca->context_array_cnt; j++, vca++) {
Packit Service 501009
				snprintf(buf, XEN_HYPER_CMD_BUFSIZE, "context_array[%d]: ", j);
Packit Service 501009
				XEN_HYPER_PRI_CONST(fp, len, buf, flag|XEN_HYPER_PRI_LF);
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "vcpu: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->vcpu));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "vcpu_id: ", buf, flag,
Packit Service 501009
					(buf, "%d\n", vca->vcpu_id));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "processor: ", buf, flag,
Packit Service 501009
					(buf, "%d\n", vca->processor));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "vcpu_info: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->vcpu_info));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "domain: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->domain));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "next_in_list: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->next_in_list));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "sleep_tick: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->sleep_tick));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "sched_priv: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->sched_priv));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "state: ", buf, flag,
Packit Service 501009
					(buf, "%d\n", vca->state));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "state_entry_time: ", buf, flag,
Packit Service 501009
					(buf, "%llux\n", (unsigned long long)(vca->state_entry_time)));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "runstate_guest: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->runstate_guest));
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "vcpu_flags: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", vca->vcpu_flags));
Packit Service 501009
			}
Packit Service 501009
		}
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "idle_vcpu: ", buf, flag,
Packit Service 501009
		(buf, "%lx\n", xhvct->idle_vcpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "idle_vcpu_context_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhvct->idle_vcpu_context_array));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "last: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhvct->last));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_struct: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhvct->vcpu_struct));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_struct_verify: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhvct->vcpu_struct_verify));
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x pcp" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_pcpu_table(int verbose)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	struct xen_hyper_pcpu_context *pcca;
Packit Service 501009
	int len, flag, i;
Packit Service 501009
#ifdef X86_64
Packit Service 501009
	uint64_t *ist_p;
Packit Service 501009
	int j;
Packit Service 501009
#endif
Packit Service 501009
Packit Service 501009
	len = 21;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "context_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhpct->context_array));
Packit Service 501009
	if (verbose) {
Packit Service 501009
		for (i = 0, pcca = xhpct->context_array;
Packit Service 501009
		i < XEN_HYPER_MAX_CPUS(); i++, pcca++) {
Packit Service 501009
			snprintf(buf, XEN_HYPER_CMD_BUFSIZE, "context_array %d: ", i);
Packit Service 501009
			XEN_HYPER_PRI_CONST(fp, len, buf, flag|XEN_HYPER_PRI_LF);
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "pcpu: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", pcca->pcpu));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "processor_id: ", buf, flag,
Packit Service 501009
				(buf, "%u\n", pcca->processor_id));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "guest_cpu_user_regs: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", pcca->guest_cpu_user_regs));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "current_vcpu: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", pcca->current_vcpu));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "init_tss: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", pcca->init_tss));
Packit Service 501009
#ifdef X86
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "sp.esp0: ", buf, flag,
Packit Service 501009
				(buf, "%x\n", pcca->sp.esp0));
Packit Service 501009
#endif
Packit Service 501009
#ifdef X86_64
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "sp.rsp0: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", pcca->sp.rsp0));
Packit Service 501009
			for (j = 0, ist_p = pcca->ist;
Packit Service 501009
			j < XEN_HYPER_TSS_IST_MAX; j++, ist_p++) {
Packit Service 501009
				XEN_HYPER_PRI(fp, len, "ist: ", buf, flag,
Packit Service 501009
					(buf, "%lx\n", *ist_p));
Packit Service 501009
			}
Packit Service 501009
#endif
Packit Service 501009
		}
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "last: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhpct->last));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "pcpu_struct: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhpct->pcpu_struct));
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x sch" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_sched_table(int verbose)
Packit Service 501009
{
Packit Service 501009
	struct xen_hyper_sched_context *schc;
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	int len, flag, i;
Packit Service 501009
Packit Service 501009
	len = 21;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "name: ", buf, flag,
Packit Service 501009
		(buf, "%s\n", xhscht->name));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "opt_sched: ", buf, flag,
Packit Service 501009
		(buf, "%s\n", xhscht->opt_sched));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "sched_id: ", buf, flag,
Packit Service 501009
		(buf, "%d\n", xhscht->sched_id));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler: ", buf, flag,
Packit Service 501009
		(buf, "%lx\n", xhscht->scheduler));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_struct: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhscht->scheduler_struct));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "sched_context_array: ", buf, flag,
Packit Service 501009
		(buf, "%p\n", xhscht->sched_context_array));
Packit Service 501009
	if (verbose) {
Packit Service 501009
		for (i = 0, schc = xhscht->sched_context_array;
Packit Service 501009
		i < xht->pcpus; i++, schc++) {
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "sched_context_array[", buf,
Packit Service 501009
				flag, (buf, "%d]\n", i));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "schedule_data: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", schc->schedule_data));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "curr: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", schc->curr));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "idle: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", schc->idle));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "sched_priv: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", schc->sched_priv));
Packit Service 501009
			XEN_HYPER_PRI(fp, len, "tick: ", buf, flag,
Packit Service 501009
				(buf, "%lx\n", schc->tick));
Packit Service 501009
		}
Packit Service 501009
	}
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x siz" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_size_table(char *spec, ulong makestruct)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	int len, flag;
Packit Service 501009
Packit Service 501009
	len = 23;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.ELF_Prstatus));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Signifo: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.ELF_Signifo));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Gregset: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.ELF_Gregset));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Timeval: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.ELF_Timeval));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "arch_domain: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.arch_domain));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "arch_shared_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.arch_shared_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.cpu_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_time: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.cpu_time));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_user_regs: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.cpu_user_regs));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpumask_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.cpumask_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpuinfo_ia64: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.cpuinfo_ia64));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpuinfo_x86: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.cpuinfo_x86));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_note_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_core_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_note_core_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_note_xen_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_core_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_note_xen_core_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_info_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_note_xen_info_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_xen_core_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_xen_core_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_xen_info_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.crash_xen_info_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.domain));
Packit Service 501009
#ifdef IA64
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "mm_struct: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.mm_struct));
Packit Service 501009
#endif
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "note_buf_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.note_buf_t));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.schedule_data));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.scheduler));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "shared_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.shared_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.timer));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "tss: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.tss));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.vcpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_runstate_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.vcpu_runstate_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "xen_crash_xen_regs_t: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_size_table.xen_crash_xen_regs_t));
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * "help -x ofs" output
Packit Service 501009
 */
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_xen_hyper_offset_table(char *spec, ulong makestruct)
Packit Service 501009
{
Packit Service 501009
	char buf[XEN_HYPER_CMD_BUFSIZE];
Packit Service 501009
	int len, flag;
Packit Service 501009
Packit Service 501009
	len = 45;
Packit Service 501009
	flag = XEN_HYPER_PRI_R;
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_cursig: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_cursig));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_sigpend: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_sigpend));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_sighold: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_sighold));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_pid: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_pid));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_ppid: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_ppid));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_pgrp: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_pgrp));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_sid: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_sid));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_stime: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_stime));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_cutime: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_cutime));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_cstime: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_cstime));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_reg: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_reg));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Prstatus_pr_fpvalid: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Prstatus_pr_fpvalid));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Timeval_tv_sec: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Timeval_tv_sec));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "ELF_Timeval_tv_usec: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.ELF_Timeval_tv_usec));
Packit Service 501009
Packit Service 501009
#ifdef IA64
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "arch_domain_mm: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.arch_domain_mm));
Packit Service 501009
#endif
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "arch_shared_info_max_pfn: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.arch_shared_info_max_pfn));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "arch_shared_info_pfn_to_mfn_frame_list_list: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.arch_shared_info_pfn_to_mfn_frame_list_list));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "arch_shared_info_nmi_reason: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.arch_shared_info_nmi_reason));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_info_guest_cpu_user_regs: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_info_guest_cpu_user_regs));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_info_processor_id: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_info_processor_id));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_info_current_vcpu: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_info_current_vcpu));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_time_local_tsc_stamp: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_time_local_tsc_stamp));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_time_stime_local_stamp: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_time_stime_local_stamp));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_time_stime_master_stamp: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_time_stime_master_stamp));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_time_tsc_scale: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_time_tsc_scale));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "cpu_time_calibration_timer: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.cpu_time_calibration_timer));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_t_core: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_t_core));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_t_xen: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_t_xen));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_t_xen_regs: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_t_xen_regs));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_t_xen_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_t_xen_info));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_core_t_note: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_core_t_note));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_core_t_desc: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_core_t_desc));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_t_note: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_xen_t_note));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_t_desc: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_xen_t_desc));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_core_t_note: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_xen_core_t_note));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_core_t_desc: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_xen_core_t_desc));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_info_t_note: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_xen_info_t_note));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "crash_note_xen_info_t_desc: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.crash_note_xen_info_t_desc));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_page_list: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_page_list));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_xenpage_list: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_xenpage_list));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_domain_id: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_domain_id));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_tot_pages: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_tot_pages));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_max_pages: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_max_pages));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_xenheap_pages: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_xenheap_pages));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_shared_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_shared_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_sched_priv: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_sched_priv));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_next_in_list: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_next_in_list));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_domain_flags: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_domain_flags));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_evtchn: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_evtchn));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_is_hvm: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_is_hvm));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_guest_type: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_guest_type));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_is_privileged: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_is_privileged));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_debugger_attached: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_debugger_attached));
Packit Service 501009
	if (XEN_HYPER_VALID_MEMBER(domain_is_polling)) {
Packit Service 501009
		XEN_HYPER_PRI(fp, len, "domain_is_polling: ", buf, flag,
Packit Service 501009
			(buf, "%ld\n", xen_hyper_offset_table.domain_is_polling));
Packit Service 501009
	}
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_is_dying: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_is_dying));
Packit Service 501009
	/* Only one of next both exists but print both, ones value is -1. */
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_is_paused_by_controller: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_is_paused_by_controller));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_controller_pause_count: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_controller_pause_count));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_is_shutting_down: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_is_shutting_down));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_is_shut_down: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_is_shut_down));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_vcpu: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_vcpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "domain_arch: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.domain_arch));
Packit Service 501009
Packit Service 501009
#ifdef IA64
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "mm_struct_pgd: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.mm_struct_pgd));
Packit Service 501009
#endif
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data_schedule_lock: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.schedule_data_schedule_lock));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data_curr: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.schedule_data_curr));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data_idle: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.schedule_data_idle));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data_sched_priv: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.schedule_data_sched_priv));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data_s_timer: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.schedule_data_s_timer));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "schedule_data_tick: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.schedule_data_tick));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_name: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_name));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_opt_name: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_opt_name));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_sched_id: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_sched_id));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_init: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_init));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_tick: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_tick));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_init_vcpu: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_init_vcpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_destroy_domain: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_destroy_domain));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_sleep: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_sleep));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_wake: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_wake));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_set_affinity: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_set_affinity));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_do_schedule: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_do_schedule));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_adjust: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_adjust));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_dump_settings: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_dump_settings));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "scheduler_dump_cpu_state: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.scheduler_dump_cpu_state));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "shared_info_vcpu_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.shared_info_vcpu_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "shared_info_evtchn_pending: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.shared_info_evtchn_pending));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "shared_info_evtchn_mask: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.shared_info_evtchn_mask));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "shared_info_arch: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.shared_info_arch));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer_expires: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.timer_expires));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer_cpu: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.timer_cpu));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer_function: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.timer_function));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer_data: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.timer_data));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer_heap_offset: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.timer_heap_offset));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "timer_killed: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.timer_killed));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "tss_struct_rsp0: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.tss_rsp0));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "tss_struct_esp0: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.tss_esp0));
Packit Service 501009
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_vcpu_id: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_vcpu_id));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_processor: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_processor));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_vcpu_info: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_vcpu_info));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_domain: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_domain));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_next_in_list: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_next_in_list));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_timer: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_timer));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_sleep_tick: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_sleep_tick));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_poll_timer: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_poll_timer));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_sched_priv: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_sched_priv));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_runstate: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_runstate));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_runstate_guest: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_runstate_guest));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_vcpu_flags: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_vcpu_flags));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_pause_count: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_pause_count));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_virq_to_evtchn: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_virq_to_evtchn));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_cpu_affinity: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_cpu_affinity));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_nmi_addr: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_nmi_addr));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_vcpu_dirty_cpumask: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_vcpu_dirty_cpumask));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_arch: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_arch));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_runstate_info_state: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_runstate_info_state));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_runstate_info_state_entry_time: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_runstate_info_state_entry_time));
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_runstate_info_time: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_runstate_info_time));
Packit Service 501009
#ifdef IA64
Packit Service 501009
	XEN_HYPER_PRI(fp, len, "vcpu_thread_ksp: ", buf, flag,
Packit Service 501009
		(buf, "%ld\n", xen_hyper_offset_table.vcpu_thread_ksp));
Packit Service 501009
#endif
Packit Service 501009
}
Packit Service 501009
Packit Service 501009
/*
Packit Service 501009
 * dump specified memory with specified size.
Packit Service 501009
 */
Packit Service 501009
#define DSP_BYTE_SIZE 16
Packit Service 501009
Packit Service 501009
static void
Packit Service 501009
xen_hyper_dump_mem(void *mem, ulong len, int dsz)
Packit Service 501009
{
Packit Service 501009
	long i, max;
Packit Service 501009
	void *mem_w = mem;
Packit Service 501009
Packit Service 501009
	if (!len || 
Packit Service 501009
	(dsz != SIZEOF_8BIT && dsz != SIZEOF_16BIT &&
Packit Service 501009
	 dsz != SIZEOF_32BIT && dsz != SIZEOF_64BIT))
Packit Service 501009
		return;
Packit Service 501009
	max = len / dsz + (len % dsz ? 1 : 0);
Packit Service 501009
	for (i = 0; i <  max; i++) {
Packit Service 501009
		if (i != 0 && !(i % (DSP_BYTE_SIZE / dsz)))
Packit Service 501009
			fprintf(fp, "\n");
Packit Service 501009
		if (i == 0 || !(i % (DSP_BYTE_SIZE / dsz)))
Packit Service 501009
			fprintf(fp, "%p : ", mem_w);
Packit Service 501009
		if (dsz == SIZEOF_8BIT)
Packit Service 501009
			fprintf(fp, "%02x ", *(uint8_t *)mem_w);
Packit Service 501009
		else if (dsz == SIZEOF_16BIT)
Packit Service 501009
			fprintf(fp, "%04x ", *(uint16_t *)mem_w);
Packit Service 501009
		else if (dsz == SIZEOF_32BIT)
Packit Service 501009
			fprintf(fp, "%08x ", *(uint32_t *)mem_w);
Packit Service 501009
		else if (dsz == SIZEOF_64BIT)
Packit Service 501009
			fprintf(fp, "%016llx ", *(unsigned long long *)mem_w);
Packit Service 501009
		mem_w = (char *)mem_w + dsz;
Packit Service 501009
	}
Packit Service 501009
	fprintf(fp, "\n");
Packit Service 501009
}
Packit Service 501009
#endif