svn commit: r352729 - head/sys/riscv/riscv

Mitchell Horne mhorne at FreeBSD.org
Thu Sep 26 00:54:08 UTC 2019


Author: mhorne
Date: Thu Sep 26 00:54:07 2019
New Revision: 352729
URL: https://svnweb.freebsd.org/changeset/base/352729

Log:
  Cleanup of elf_machdep.c
  
  Fix some style(9) violations.
  
  This also changes the name of the machine-dependent sysctl kern.debug_kld to
  debug.kld_reloc, and changes its type from int to bool. This is acceptable
  since we are not currently concerned with preserving the RISC-V ABI.
  
  Reviewed by:	markj, kp
  MFC after:	3 days
  Differential Revision:	https://reviews.freebsd.org/D21772

Modified:
  head/sys/riscv/riscv/elf_machdep.c

Modified: head/sys/riscv/riscv/elf_machdep.c
==============================================================================
--- head/sys/riscv/riscv/elf_machdep.c	Thu Sep 26 00:35:06 2019	(r352728)
+++ head/sys/riscv/riscv/elf_machdep.c	Thu Sep 26 00:54:07 2019	(r352729)
@@ -109,13 +109,11 @@ static Elf64_Brandinfo freebsd_brand_info = {
 };
 
 SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_FIRST,
-	(sysinit_cfunc_t) elf64_insert_brand_entry,
-	&freebsd_brand_info);
+    (sysinit_cfunc_t)elf64_insert_brand_entry, &freebsd_brand_info);
 
-static int debug_kld;
-SYSCTL_INT(_kern, OID_AUTO, debug_kld,
-	   CTLFLAG_RW, &debug_kld, 0,
-	   "Activate debug prints in elf_reloc_internal()");
+static bool debug_kld;
+SYSCTL_BOOL(_debug, OID_AUTO, kld_reloc, CTLFLAG_RW, &debug_kld, 0,
+    "Activate debug prints in elf_reloc_internal()");
 
 struct type2str_ent {
 	int type;
@@ -274,7 +272,7 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 	uint32_t before32_1;
 	uint32_t before32;
 	uint64_t before64;
-	uint32_t* insn32p;
+	uint32_t *insn32p;
 	uint32_t imm20;
 	int error;
 
@@ -282,15 +280,15 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 	case ELF_RELOC_RELA:
 		rela = (const Elf_Rela *)data;
 		where = (Elf_Addr *)(relocbase + rela->r_offset);
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		addend = rela->r_addend;
 		rtype = ELF_R_TYPE(rela->r_info);
 		symidx = ELF_R_SYM(rela->r_info);
 		break;
 	default:
 		printf("%s:%d unknown reloc type %d\n",
-		       __FUNCTION__, __LINE__, type);
-		return -1;
+		    __FUNCTION__, __LINE__, type);
+		return (-1);
 	}
 
 	switch (rtype) {
@@ -301,43 +299,36 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 	case R_RISCV_JUMP_SLOT:
 		error = lookup(lf, symidx, 1, &addr);
 		if (error != 0)
-			return -1;
+			return (-1);
 
 		val = addr;
 		before64 = *where;
 		if (*where != val)
 			*where = val;
-
 		if (debug_kld)
-			printf("%p %c %-24s %016lx -> %016lx\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before64, *where);
+			printf("%p %c %-24s %016lx -> %016lx\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before64, *where);
 		break;
 
 	case R_RISCV_RELATIVE:
 		before64 = *where;
-
 		*where = elf_relocaddr(lf, relocbase + addend);
-
 		if (debug_kld)
-			printf("%p %c %-24s %016lx -> %016lx\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before64, *where);
+			printf("%p %c %-24s %016lx -> %016lx\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before64, *where);
 		break;
 
 	case R_RISCV_JAL:
 		error = lookup(lf, symidx, 1, &addr);
 		if (error != 0)
-			return -1;
+			return (-1);
 
 		val = addr - (Elf_Addr)where;
-		if ((val <= -(1UL << 20) || (1UL << 20) <= val)) {
+		if (val <= -(1UL << 20) || (1UL << 20) <= val) {
 			printf("kldload: huge offset against R_RISCV_JAL\n");
-			return -1;
+			return (-1);
 		}
 
 		before32 = *insn32p;
@@ -345,13 +336,10 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 		*insn32p = insert_imm(*insn32p, val, 10,  1, 21);
 		*insn32p = insert_imm(*insn32p, val, 11, 11, 20);
 		*insn32p = insert_imm(*insn32p, val, 19, 12, 12);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	case R_RISCV_CALL:
@@ -359,14 +347,15 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 		 * R_RISCV_CALL relocates 8-byte region that consists
 		 * of the sequence of AUIPC and JALR.
 		 */
-		/* calculate and check the pc relative offset. */
+		/* Calculate and check the pc relative offset. */
 		error = lookup(lf, symidx, 1, &addr);
 		if (error != 0)
-			return -1;
+			return (-1);
+
 		val = addr - (Elf_Addr)where;
-		if ((val <= -(1UL << 32) || (1UL << 32) <= val)) {
+		if (val <= -(1UL << 32) || (1UL << 32) <= val) {
 			printf("kldload: huge offset against R_RISCV_CALL\n");
-			return -1;
+			return (-1);
 		}
 
 		/* Relocate AUIPC. */
@@ -377,112 +366,91 @@ elf_reloc_internal(linker_file_t lf, Elf_Addr relocbas
 		/* Relocate JALR. */
 		before32_1 = insn32p[1];
 		insn32p[1] = insert_imm(insn32p[1], val, 11,  0, 20);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x %08x -> %08x %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32,   insn32p[0],
-			       before32_1, insn32p[1]);
+			printf("%p %c %-24s %08x %08x -> %08x %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, insn32p[0], before32_1, insn32p[1]);
 		break;
 
 	case R_RISCV_PCREL_HI20:
 		val = addr - (Elf_Addr)where;
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		before32 = *insn32p;
 		imm20 = calc_hi20_imm(val);
 		*insn32p = insert_imm(*insn32p, imm20, 31, 12, 12);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	case R_RISCV_PCREL_LO12_I:
 		val = addr - (Elf_Addr)where;
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		before32 = *insn32p;
 		*insn32p = insert_imm(*insn32p, addr, 11,  0, 20);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	case R_RISCV_PCREL_LO12_S:
 		val = addr - (Elf_Addr)where;
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		before32 = *insn32p;
 		*insn32p = insert_imm(*insn32p, addr, 11,  5, 25);
 		*insn32p = insert_imm(*insn32p, addr,  4,  0,  7);
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	case R_RISCV_HI20:
 		error = lookup(lf, symidx, 1, &addr);
 		if (error != 0)
-			return -1;
+			return (-1);
 
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		before32 = *insn32p;
 		imm20 = calc_hi20_imm(val);
 		*insn32p = insert_imm(*insn32p, imm20, 31, 12, 12);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	case R_RISCV_LO12_I:
 		error = lookup(lf, symidx, 1, &addr);
 		if (error != 0)
-			return -1;
+			return (-1);
 
 		val = addr;
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		before32 = *insn32p;
 		*insn32p = insert_imm(*insn32p, addr, 11,  0, 20);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	case R_RISCV_LO12_S:
 		error = lookup(lf, symidx, 1, &addr);
 		if (error != 0)
-			return -1;
+			return (-1);
 
 		val = addr;
-		insn32p = (uint32_t*)where;
+		insn32p = (uint32_t *)where;
 		before32 = *insn32p;
 		*insn32p = insert_imm(*insn32p, addr, 11,  5, 25);
 		*insn32p = insert_imm(*insn32p, addr,  4,  0,  7);
-
 		if (debug_kld)
-			printf("%p %c %-24s %08x -> %08x\n",
-			       where,
-			       (local? 'l': 'g'),
-			       reloctype_to_str(rtype),
-			       before32, *insn32p);
+			printf("%p %c %-24s %08x -> %08x\n", where,
+			    (local ? 'l' : 'g'), reloctype_to_str(rtype),
+			    before32, *insn32p);
 		break;
 
 	default:


More information about the svn-src-head mailing list