From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49356) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZPLyf-0000tS-VY for qemu-devel@nongnu.org; Tue, 11 Aug 2015 22:41:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZPLyc-0008Tk-Of for qemu-devel@nongnu.org; Tue, 11 Aug 2015 22:41:17 -0400 Date: Wed, 12 Aug 2015 11:12:04 +1000 From: David Gibson Message-ID: <20150812011204.GC19634@voom.fritz.box> References: <1438838757-32352-1-git-send-email-aik@ozlabs.ru> <1438838757-32352-2-git-send-email-aik@ozlabs.ru> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="OBd5C1Lgu00Gd/Tn" Content-Disposition: inline In-Reply-To: <1438838757-32352-2-git-send-email-aik@ozlabs.ru> Subject: Re: [Qemu-devel] [PATCH qemu 1/2] monitor: Add CPU class callback to read registers for monitor List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: Alexander Graf , qemu-devel@nongnu.org, Markus Armbruster , Luiz Capitulino , qemu-ppc@nongnu.org, Andreas =?iso-8859-1?Q?F=E4rber?= --OBd5C1Lgu00Gd/Tn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Aug 06, 2015 at 03:25:56PM +1000, Alexey Kardashevskiy wrote: > At the moment the monitor only prints registers from monitor_defs. > Some may not be supported but it will print those anyway, other > may be missing in the list so monitor_defs needs an update every time > new register is added. >=20 > This defines a CPUClass callback to read various registers from CPU. >=20 > Next patch makes use of it. >=20 > Signed-off-by: Alexey Kardashevskiy Reviewed-by: David Gibson > --- > include/qom/cpu.h | 1 + > monitor.c | 14 +++++++++++++- > 2 files changed, 14 insertions(+), 1 deletion(-) >=20 > diff --git a/include/qom/cpu.h b/include/qom/cpu.h > index 20aabc9..fcf981f 100644 > --- a/include/qom/cpu.h > +++ b/include/qom/cpu.h > @@ -144,6 +144,7 @@ typedef struct CPUClass { > int flags); > void (*dump_statistics)(CPUState *cpu, FILE *f, > fprintf_function cpu_fprintf, int flags); > + int (*get_monitor_def)(CPUState *cs, const char *name, uint64_t *pva= l); > int64_t (*get_arch_id)(CPUState *cpu); > bool (*get_paging_enabled)(const CPUState *cpu); > void (*get_memory_mapping)(CPUState *cpu, MemoryMappingList *list, > diff --git a/monitor.c b/monitor.c > index aeea2b5..bdfcacc 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -3303,13 +3303,25 @@ static int get_monitor_def(target_long *pval, con= st char *name) > { > const MonitorDef *md; > void *ptr; > + CPUState *cs =3D mon_get_cpu(); > + CPUClass *cc =3D CPU_GET_CLASS(cs); > + > + if (cc->get_monitor_def) { > + uint64_t tmp =3D 0; > + int ret =3D cc->get_monitor_def(cs, name, &tmp); > + > + if (!ret) { > + *pval =3D (target_long) tmp; > + } > + return ret; > + } > =20 > for(md =3D monitor_defs; md->name !=3D NULL; md++) { > if (compare_cmd(name, md->name)) { > if (md->get_value) { > *pval =3D md->get_value(md, md->offset); > } else { > - CPUArchState *env =3D mon_get_cpu_env(); > + CPUArchState *env =3D cs->env_ptr; > ptr =3D (uint8_t *)env + md->offset; > switch(md->type) { > case MD_I32: --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --OBd5C1Lgu00Gd/Tn Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJVyp1kAAoJEGw4ysog2bOSaaIQAIOBAfmpA39g6hVORE+b6pMP 3T5Z/cT5KujYt29vyfWLp7vshyCGBiY1A4iOfTOmHva36b9RifqK152Zhgb/3I+w 7JAORB1b7qwjyzgmO0RoCAIrIZrY4pQ3mFfftNhYV6lnFt/4SINNCkVYnu/YGIc/ biRRjm3F5YNO7ScJvDKbsI91XRLBaVZgH6eZjEy0nTKt1P/eWwTXNKATaPREac71 qIj5Q7p0cyS537DjmMvggmYBlTpf444FBPd0TJTIN1OP1qMZU+kBceoi7eM1lsub LJSMRogBvuiJlyHrVCEQhHdF6MFuPtZY/lxRt4swX7gjel4f10+vWQ14WZnR/6Rj FsPrPce+smOYtnzTCWAufSHCRGeTG9HvguI9pb7OdiSy98kq5seM8+glo+LbZgf8 HW+6BkAmdWV2h+fpXM04Cyql5L+kN8zD0HoYaFM9Pr763dwyaB2Xatz9/HQr2nWF 2qH4H4A7GjrYGNcbFnCwEO9zdicnIckV1fUk0QXcZ3INkq/LkkxWRVpa3wQ2wMkt WPRGbP20Xsz4zP7KGh4FPh9mKnkdxyHMY1VyXtkgMcec2RLp2muSHYoWhEaRcg6T OD1+Ht0TGJluJzCR+b66orYhvgVWw4t/fSXYnOxB8LER6GZz1h4aohMayvwHZ6HZ tkW9Chqol2/9z0+hgxXd =iG7n -----END PGP SIGNATURE----- --OBd5C1Lgu00Gd/Tn--