Date: Tue, 17 Nov 2015 13:09:51 +0000 (UTC) From: Zbigniew Bodek <zbb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r290979 - head/sys/arm/include Message-ID: <201511171309.tAHD9pLN008315@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: zbb Date: Tue Nov 17 13:09:51 2015 New Revision: 290979 URL: https://svnweb.freebsd.org/changeset/base/290979 Log: Make PCB structure binary compatible for old and new PMAP on ARM This structure must be binary compatible regardless of PMAP version being used. Create reserved section for NEW_PMAP to make other variables be placed exactly in the same memory addresses. This fixes kgdb/gdb behavoiur, which uses pcb.h stuctures. The NEW_PMAP is kernel flag, so it does not propagate to the buildworld, what makes the tools using pcb.h unable to parse PCB data. Reviewed by: mmel, kib Submitted by: Wojciech Macek <wma@semihalf.com> Obtained from: Semihalf Sponsored by: Juniper Networks Inc. Differential Revision: https://reviews.freebsd.org/D4011 Modified: head/sys/arm/include/pcb.h Modified: head/sys/arm/include/pcb.h ============================================================================== --- head/sys/arm/include/pcb.h Tue Nov 17 13:02:44 2015 (r290978) +++ head/sys/arm/include/pcb.h Tue Nov 17 13:09:51 2015 (r290979) @@ -52,14 +52,17 @@ struct pcb { #define PCB_OWNFPU 0x00000001 #define PCB_NOALIGNFLT 0x00000002 caddr_t pcb_onfault; /* On fault handler */ -#ifdef ARM_NEW_PMAP - uint32_t pcb_pagedir; /* TTB0 value */ -#else - vm_offset_t pcb_pagedir; /* PT hooks */ + vm_offset_t pcb_pagedir; /* TTB0 value */ + /* + * XXX: + * Variables pcb_pl1vec, pcb_l1vec, pcb_dacr are used solely + * by old PMAP. Keep them here for PCB binary compatibility + * between old and new PMAP. + */ uint32_t *pcb_pl1vec; /* PTR to vector_base L1 entry*/ uint32_t pcb_l1vec; /* Value to stuff on ctx sw */ u_int pcb_dacr; /* Domain Access Control Reg */ -#endif + struct vfp_state pcb_vfpstate; /* VP/NEON state */ u_int pcb_vfpcpu; /* VP/NEON last cpu */ } __aligned(8); /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201511171309.tAHD9pLN008315>