Thread (78 messages) 78 messages, 12 authors, 2022-05-14

Re: [PATCH V9 03/24] LoongArch: Add elf-related definitions

From: Huacai Chen <hidden>
Date: 2022-05-01 14:28:05
Also in: linux-arch, lkml

Hi, Xuerui,

On Sun, May 1, 2022 at 5:41 PM WANG Xuerui [off-list ref] wrote:
Hi,

Commit message title could be "ELF" -- proper capitalization.
OK, thanks.

Huacai
On 4/30/22 17:04, Huacai Chen wrote:
quoted
Add elf-related definitions for LoongArch, including: EM_LOONGARCH,
KEXEC_ARCH_LOONGARCH, AUDIT_ARCH_LOONGARCH32, AUDIT_ARCH_LOONGARCH64
and NT_LOONGARCH_*.

Signed-off-by: Huacai Chen <redacted>
---
  include/uapi/linux/audit.h  | 2 ++
  include/uapi/linux/elf-em.h | 1 +
  include/uapi/linux/elf.h    | 5 +++++
  include/uapi/linux/kexec.h  | 1 +
  scripts/sorttable.c         | 5 +++++
  5 files changed, 14 insertions(+)
diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h
index 8eda133ca4c1..7c1dc818b1d5 100644
--- a/include/uapi/linux/audit.h
+++ b/include/uapi/linux/audit.h
@@ -439,6 +439,8 @@ enum {
  #define AUDIT_ARCH_UNICORE  (EM_UNICORE|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_X86_64   (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_XTENSA   (EM_XTENSA)
+#define AUDIT_ARCH_LOONGARCH32       (EM_LOONGARCH|__AUDIT_ARCH_LE)
+#define AUDIT_ARCH_LOONGARCH64       (EM_LOONGARCH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)

  #define AUDIT_PERM_EXEC             1
  #define AUDIT_PERM_WRITE    2
diff --git a/include/uapi/linux/elf-em.h b/include/uapi/linux/elf-em.h
index f47e853546fa..ef38c2bc5ab7 100644
--- a/include/uapi/linux/elf-em.h
+++ b/include/uapi/linux/elf-em.h
@@ -51,6 +51,7 @@
  #define EM_RISCV    243     /* RISC-V */
  #define EM_BPF              247     /* Linux BPF - in-kernel virtual machine */
  #define EM_CSKY             252     /* C-SKY */
+#define EM_LOONGARCH 258     /* LoongArch */
  #define EM_FRV              0x5441  /* Fujitsu FR-V */

  /*
diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
index 7ce993e6786c..1e0ae3f554f6 100644
--- a/include/uapi/linux/elf.h
+++ b/include/uapi/linux/elf.h
@@ -436,6 +436,11 @@ typedef struct elf64_shdr {
  #define NT_MIPS_DSP 0x800           /* MIPS DSP ASE registers */
  #define NT_MIPS_FP_MODE     0x801           /* MIPS floating-point mode */
  #define NT_MIPS_MSA 0x802           /* MIPS SIMD registers */
+#define NT_LOONGARCH_CPUCFG  0xa00   /* LoongArch CPU config registers */
+#define NT_LOONGARCH_CSR     0xa01   /* LoongArch control and status registers */
+#define NT_LOONGARCH_LSX     0xa02   /* LoongArch Loongson SIMD Extension registers */
+#define NT_LOONGARCH_LASX    0xa03   /* LoongArch Loongson Advanced SIMD Extension registers */
+#define NT_LOONGARCH_LBT     0xa04   /* LoongArch Loongson Binary Translation registers */
These are named NT_LARCH_* in binutils source, better keep consistent?
quoted
  /* Note types with note name "GNU" */
  #define NT_GNU_PROPERTY_TYPE_0      5
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index fb7e2ef60825..981016e05cfa 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -43,6 +43,7 @@
  #define KEXEC_ARCH_MIPS    ( 8 << 16)
  #define KEXEC_ARCH_AARCH64 (183 << 16)
  #define KEXEC_ARCH_RISCV   (243 << 16)
+#define KEXEC_ARCH_LOONGARCH (258 << 16)

  /* The artificial cap on the number of segments passed to kexec_load. */
  #define KEXEC_SEGMENT_MAX 16
diff --git a/scripts/sorttable.c b/scripts/sorttable.c
index d00504c5f530..fba40e99f354 100644
--- a/scripts/sorttable.c
+++ b/scripts/sorttable.c
@@ -60,6 +60,10 @@
  #define EM_RISCV    243
  #endif

+#ifndef EM_LOONGARCH
+#define EM_LOONGARCH 258
+#endif
+
  static uint32_t (*r)(const uint32_t *);
  static uint16_t (*r2)(const uint16_t *);
  static uint64_t (*r8)(const uint64_t *);
@@ -313,6 +317,7 @@ static int do_file(char const *const fname, void *addr)
      case EM_ARCOMPACT:
      case EM_ARCV2:
      case EM_ARM:
+     case EM_LOONGARCH:
      case EM_MICROBLAZE:
      case EM_MIPS:
      case EM_XTENSA:
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help