From: Dave.Martin@arm.com (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 03/10] arm64: esr.h type fixes and cleanup
Date: Mon, 13 Jul 2015 14:25:50 +0100 [thread overview]
Message-ID: <1436793967-7138-4-git-send-email-Dave.Martin@arm.com> (raw)
In-Reply-To: <1436793967-7138-1-git-send-email-Dave.Martin@arm.com>
ESR_ELx is a 32-bit register, so it is not necessary for all the
template values defined by esr.h to be forced to 64-bit (long).
This patch introduces a UINT() macro analogous to UL(), and applies
it consistently. (Unfortunately, the more succinct U and UI names
are already used in unrelated code, and cause conflicts since
memory.h is widely included.)
Since this change touches many lines already, I've taken the
opportunity to squash some redundant parentheses and bogus
whitespace at the same time.
The missing include of <asm/memory.h> (for UL(), UINT() etc.) is
also added.
No functional change.
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
---
arch/arm64/include/asm/esr.h | 128 ++++++++++++++++++++-------------------
arch/arm64/include/asm/memory.h | 3 +-
2 files changed, 67 insertions(+), 64 deletions(-)
diff --git a/arch/arm64/include/asm/esr.h b/arch/arm64/include/asm/esr.h
index 7052245..8dab2a9 100644
--- a/arch/arm64/include/asm/esr.h
+++ b/arch/arm64/include/asm/esr.h
@@ -18,86 +18,88 @@
#ifndef __ASM_ESR_H
#define __ASM_ESR_H
-#define ESR_ELx_EC_UNKNOWN (0x00)
-#define ESR_ELx_EC_WFx (0x01)
+#include <asm/memory.h>
+
+#define ESR_ELx_EC_UNKNOWN UINT(0x00)
+#define ESR_ELx_EC_WFx UINT(0x01)
/* Unallocated EC: 0x02 */
-#define ESR_ELx_EC_CP15_32 (0x03)
-#define ESR_ELx_EC_CP15_64 (0x04)
-#define ESR_ELx_EC_CP14_MR (0x05)
-#define ESR_ELx_EC_CP14_LS (0x06)
-#define ESR_ELx_EC_FP_ASIMD (0x07)
-#define ESR_ELx_EC_CP10_ID (0x08)
+#define ESR_ELx_EC_CP15_32 UINT(0x03)
+#define ESR_ELx_EC_CP15_64 UINT(0x04)
+#define ESR_ELx_EC_CP14_MR UINT(0x05)
+#define ESR_ELx_EC_CP14_LS UINT(0x06)
+#define ESR_ELx_EC_FP_ASIMD UINT(0x07)
+#define ESR_ELx_EC_CP10_ID UINT(0x08)
/* Unallocated EC: 0x09 - 0x0B */
-#define ESR_ELx_EC_CP14_64 (0x0C)
+#define ESR_ELx_EC_CP14_64 UINT(0x0C)
/* Unallocated EC: 0x0d */
-#define ESR_ELx_EC_ILL (0x0E)
+#define ESR_ELx_EC_ILL UINT(0x0E)
/* Unallocated EC: 0x0F - 0x10 */
-#define ESR_ELx_EC_SVC32 (0x11)
-#define ESR_ELx_EC_HVC32 (0x12)
-#define ESR_ELx_EC_SMC32 (0x13)
+#define ESR_ELx_EC_SVC32 UINT(0x11)
+#define ESR_ELx_EC_HVC32 UINT(0x12)
+#define ESR_ELx_EC_SMC32 UINT(0x13)
/* Unallocated EC: 0x14 */
-#define ESR_ELx_EC_SVC64 (0x15)
-#define ESR_ELx_EC_HVC64 (0x16)
-#define ESR_ELx_EC_SMC64 (0x17)
-#define ESR_ELx_EC_SYS64 (0x18)
+#define ESR_ELx_EC_SVC64 UINT(0x15)
+#define ESR_ELx_EC_HVC64 UINT(0x16)
+#define ESR_ELx_EC_SMC64 UINT(0x17)
+#define ESR_ELx_EC_SYS64 UINT(0x18)
/* Unallocated EC: 0x19 - 0x1E */
-#define ESR_ELx_EC_IMP_DEF (0x1f)
-#define ESR_ELx_EC_IABT_LOW (0x20)
-#define ESR_ELx_EC_IABT_CUR (0x21)
-#define ESR_ELx_EC_PC_ALIGN (0x22)
+#define ESR_ELx_EC_IMP_DEF UINT(0x1f)
+#define ESR_ELx_EC_IABT_LOW UINT(0x20)
+#define ESR_ELx_EC_IABT_CUR UINT(0x21)
+#define ESR_ELx_EC_PC_ALIGN UINT(0x22)
/* Unallocated EC: 0x23 */
-#define ESR_ELx_EC_DABT_LOW (0x24)
-#define ESR_ELx_EC_DABT_CUR (0x25)
-#define ESR_ELx_EC_SP_ALIGN (0x26)
+#define ESR_ELx_EC_DABT_LOW UINT(0x24)
+#define ESR_ELx_EC_DABT_CUR UINT(0x25)
+#define ESR_ELx_EC_SP_ALIGN UINT(0x26)
/* Unallocated EC: 0x27 */
-#define ESR_ELx_EC_FP_EXC32 (0x28)
+#define ESR_ELx_EC_FP_EXC32 UINT(0x28)
/* Unallocated EC: 0x29 - 0x2B */
-#define ESR_ELx_EC_FP_EXC64 (0x2C)
+#define ESR_ELx_EC_FP_EXC64 UINT(0x2C)
/* Unallocated EC: 0x2D - 0x2E */
-#define ESR_ELx_EC_SERROR (0x2F)
-#define ESR_ELx_EC_BREAKPT_LOW (0x30)
-#define ESR_ELx_EC_BREAKPT_CUR (0x31)
-#define ESR_ELx_EC_SOFTSTP_LOW (0x32)
-#define ESR_ELx_EC_SOFTSTP_CUR (0x33)
-#define ESR_ELx_EC_WATCHPT_LOW (0x34)
-#define ESR_ELx_EC_WATCHPT_CUR (0x35)
+#define ESR_ELx_EC_SERROR UINT(0x2F)
+#define ESR_ELx_EC_BREAKPT_LOW UINT(0x30)
+#define ESR_ELx_EC_BREAKPT_CUR UINT(0x31)
+#define ESR_ELx_EC_SOFTSTP_LOW UINT(0x32)
+#define ESR_ELx_EC_SOFTSTP_CUR UINT(0x33)
+#define ESR_ELx_EC_WATCHPT_LOW UINT(0x34)
+#define ESR_ELx_EC_WATCHPT_CUR UINT(0x35)
/* Unallocated EC: 0x36 - 0x37 */
-#define ESR_ELx_EC_BKPT32 (0x38)
+#define ESR_ELx_EC_BKPT32 UINT(0x38)
/* Unallocated EC: 0x39 */
-#define ESR_ELx_EC_VECTOR32 (0x3A)
+#define ESR_ELx_EC_VECTOR32 UINT(0x3A)
/* Unallocted EC: 0x3B */
-#define ESR_ELx_EC_BRK64 (0x3C)
+#define ESR_ELx_EC_BRK64 UINT(0x3C)
/* Unallocated EC: 0x3D - 0x3F */
-#define ESR_ELx_EC_MAX (0x3F)
+#define ESR_ELx_EC_MAX UINT(0x3F)
-#define ESR_ELx_EC_SHIFT (26)
-#define ESR_ELx_EC_MASK (UL(0x3F) << ESR_ELx_EC_SHIFT)
+#define ESR_ELx_EC_SHIFT 26
+#define ESR_ELx_EC_MASK (ESR_ELx_EC_MAX << ESR_ELx_EC_SHIFT)
-#define ESR_ELx_IL (UL(1) << 25)
+#define ESR_ELx_IL (UINT(1) << 25)
#define ESR_ELx_ISS_MASK (ESR_ELx_IL - 1)
-#define ESR_ELx_ISV (UL(1) << 24)
-#define ESR_ELx_SAS_SHIFT (22)
-#define ESR_ELx_SAS (UL(3) << ESR_ELx_SAS_SHIFT)
-#define ESR_ELx_SSE (UL(1) << 21)
-#define ESR_ELx_SRT_SHIFT (16)
-#define ESR_ELx_SRT_MASK (UL(0x1F) << ESR_ELx_SRT_SHIFT)
-#define ESR_ELx_SF (UL(1) << 15)
-#define ESR_ELx_AR (UL(1) << 14)
-#define ESR_ELx_EA (UL(1) << 9)
-#define ESR_ELx_CM (UL(1) << 8)
-#define ESR_ELx_S1PTW (UL(1) << 7)
-#define ESR_ELx_WNR (UL(1) << 6)
-#define ESR_ELx_FSC (0x3F)
-#define ESR_ELx_FSC_TYPE (0x3C)
-#define ESR_ELx_FSC_EXTABT (0x10)
-#define ESR_ELx_FSC_ACCESS (0x08)
-#define ESR_ELx_FSC_FAULT (0x04)
-#define ESR_ELx_FSC_PERM (0x0C)
-#define ESR_ELx_CV (UL(1) << 24)
-#define ESR_ELx_COND_SHIFT (20)
-#define ESR_ELx_COND_MASK (UL(0xF) << ESR_ELx_COND_SHIFT)
-#define ESR_ELx_WFx_ISS_WFE (UL(1) << 0)
-#define ESR_ELx_xVC_IMM_MASK ((1UL << 16) - 1)
+#define ESR_ELx_ISV (UINT(1) << 24)
+#define ESR_ELx_SAS_SHIFT 22
+#define ESR_ELx_SAS (UINT(3) << ESR_ELx_SAS_SHIFT)
+#define ESR_ELx_SSE (UINT(1) << 21)
+#define ESR_ELx_SRT_SHIFT 16
+#define ESR_ELx_SRT_MASK (UINT(0x1F) << ESR_ELx_SRT_SHIFT)
+#define ESR_ELx_SF (UINT(1) << 15)
+#define ESR_ELx_AR (UINT(1) << 14)
+#define ESR_ELx_EA (UINT(1) << 9)
+#define ESR_ELx_CM (UINT(1) << 8)
+#define ESR_ELx_S1PTW (UINT(1) << 7)
+#define ESR_ELx_WNR (UINT(1) << 6)
+#define ESR_ELx_FSC UINT(0x3F)
+#define ESR_ELx_FSC_TYPE UINT(0x3C)
+#define ESR_ELx_FSC_EXTABT UINT(0x10)
+#define ESR_ELx_FSC_ACCESS UINT(0x08)
+#define ESR_ELx_FSC_FAULT UINT(0x04)
+#define ESR_ELx_FSC_PERM UINT(0x0C)
+#define ESR_ELx_CV (UINT(1) << 24)
+#define ESR_ELx_COND_SHIFT 20
+#define ESR_ELx_COND_MASK (UINT(0xF) << ESR_ELx_COND_SHIFT)
+#define ESR_ELx_WFx_ISS_WFE (UINT(1) << 0)
+#define ESR_ELx_xVC_IMM_MASK ((UINT(1) << 16) - 1)
#ifndef __ASSEMBLY__
#include <asm/types.h>
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index f800d45..c6a6592a 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -28,9 +28,10 @@
/*
* Allow for constants defined here to be used from assembly code
- * by prepending the UL suffix only with actual C code compilation.
+ * by prepending type suffixes only with actual C code compilation.
*/
#define UL(x) _AC(x, UL)
+#define UINT(x) _AC(x, U)
/*
* Size of the PCI I/O space. This must remain a power of two so that
--
1.7.10.4
next prev parent reply other threads:[~2015-07-13 13:25 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 13:25 [PATCH v2 00/10] arm64: Use BRK instruction for generic BUG traps Dave Martin
2015-07-13 13:25 ` [PATCH v2 01/10] arm64/debug: Eliminate magic number for size of BRK instruction Dave Martin
2015-07-13 14:47 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 02/10] arm64/debug: Mask off all reserved bits from generated ESR values Dave Martin
2015-07-13 14:14 ` Mark Rutland
2015-07-13 14:22 ` Dave Martin
2015-07-13 13:25 ` Dave Martin [this message]
2015-07-14 15:54 ` [PATCH v2 03/10] arm64: esr.h type fixes and cleanup Mark Rutland
2015-07-14 16:53 ` Dave Martin
2015-07-13 13:25 ` [PATCH v2 04/10] arm64/debug: Eliminate magic number from ESR template definition Dave Martin
2015-07-13 14:16 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 05/10] arm64/debug: More consistent naming for the BRK ESR template macro Dave Martin
2015-07-13 14:19 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 06/10] arm64/debug: Move BRK ESR template macro into <asm/esr.h> Dave Martin
2015-07-13 14:18 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 07/10] arm64/debug: Simplify BRK insn opcode declarations Dave Martin
2015-07-13 14:38 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 08/10] arm64/debug: Add missing #include Dave Martin
2015-07-13 14:34 ` Mark Rutland
2015-07-13 14:44 ` Dave Martin
2015-07-13 14:45 ` Mark Rutland
2015-07-13 13:25 ` [PATCH v2 09/10] arm64/BUG: Use BRK instruction for generic BUG traps Dave Martin
2015-07-13 16:43 ` Mark Rutland
2015-07-13 16:51 ` Dave Martin
2015-07-13 16:56 ` Mark Rutland
2015-07-13 17:05 ` Dave P Martin
2015-07-14 10:20 ` Dave Martin
2015-07-14 11:09 ` Mark Rutland
2015-07-14 11:34 ` Dave Martin
2015-07-14 15:51 ` Mark Rutland
2015-07-14 16:53 ` Dave Martin
2015-07-14 16:11 ` Catalin Marinas
2015-07-14 16:55 ` Dave Martin
2015-07-13 13:25 ` [PATCH v2 10/10] arm64/BUG: Show explicit backtrace for WARNs Dave Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1436793967-7138-4-git-send-email-Dave.Martin@arm.com \
--to=dave.martin@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.