From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47191) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yhemo-0007aW-8X for qemu-devel@nongnu.org; Mon, 13 Apr 2015 09:52:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yhemm-0001yk-8M for qemu-devel@nongnu.org; Mon, 13 Apr 2015 09:52:26 -0400 Received: from mnementh.archaic.org.uk ([2001:8b0:1d0::1]:33853) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yhemm-0001yH-1s for qemu-devel@nongnu.org; Mon, 13 Apr 2015 09:52:24 -0400 From: Peter Maydell Date: Mon, 13 Apr 2015 14:22:02 +0100 Message-Id: <1428931324-4973-13-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1428931324-4973-1-git-send-email-peter.maydell@linaro.org> References: <1428931324-4973-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH v2 12/14] target-arm: Add user-mode transaction attribute List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Crosthwaite , patches@linaro.org, "Edgar E. Iglesias" , Greg Bellows , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson Add a transaction attribute indicating that a memory access is being done from user-mode (unprivileged). This corresponds to an equivalent signal in ARM AMBA buses. Signed-off-by: Peter Maydell --- include/exec/memattrs.h | 2 ++ target-arm/helper.c | 1 + 2 files changed, 3 insertions(+) diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h index 68a9c76..1389b4b 100644 --- a/include/exec/memattrs.h +++ b/include/exec/memattrs.h @@ -31,6 +31,8 @@ typedef struct MemTxAttrs { unsigned int unspecified:1; /* ARM/AMBA TrustZone Secure access */ unsigned int secure:1; + /* Memory access is usermode (unprivileged) */ + unsigned int user:1; } MemTxAttrs; /* Bus masters which don't specify any attributes will get this, diff --git a/target-arm/helper.c b/target-arm/helper.c index a01ff7f..50469cd 100644 --- a/target-arm/helper.c +++ b/target-arm/helper.c @@ -5749,6 +5749,7 @@ static inline int get_phys_addr(CPUARMState *env, target_ulong address, * to secure. */ attrs->secure = regime_is_secure(env, mmu_idx); + attrs->user = regime_is_user(env, mmu_idx); /* Fast Context Switch Extension. This doesn't exist at all in v8. * In v7 and earlier it affects all stage 1 translations. -- 1.9.1