[coreboot] [PATCH] v3: make inline asm declarations consistent

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sat Sep 6 20:48:07 CEST 2008


v3 uses all combinations of __asm__, asm, __volatile__, volatile and
single variations to declare inline asm statements. "asm" is a GNU C
extension, while volatile is ANSI C. That means:
- __volatile__ can be replaced by volatile unless you use a pure K&R
compiler.
- asm is not a reserved keyword and should be replaced by __asm__.
As a bonus, grepping for __asm__ returns less hits than asm because asm
is also used as a normal word in comments.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Index: corebootv3-inline_asm_consistent_underscores/include/arch/x86/msr.h
===================================================================
--- corebootv3-inline_asm_consistent_underscores/include/arch/x86/msr.h	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/include/arch/x86/msr.h	(Arbeitskopie)
@@ -36,7 +36,7 @@
 static inline struct msr rdmsr(u32 index)
 {
 	struct msr  result;
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"rdmsr"
 		: "=a" (result.lo), "=d" (result.hi)
 		: "c" (index)
@@ -46,7 +46,7 @@
 
 static inline void wrmsr(u32 index, struct msr msr)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"wrmsr"
 		: /* No outputs */
 		: "c" (index), "a" (msr.lo), "d" (msr.hi)
Index: corebootv3-inline_asm_consistent_underscores/include/arch/x86/io.h
===================================================================
--- corebootv3-inline_asm_consistent_underscores/include/arch/x86/io.h	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/include/arch/x86/io.h	(Arbeitskopie)
@@ -28,43 +28,43 @@
 
 static inline void outb(u8 value, u16 port)
 {
-	__asm__ __volatile__ ("outb %b0, %w1" : : "a" (value), "Nd" (port));
+	__asm__ volatile ("outb %b0, %w1" : : "a" (value), "Nd" (port));
 }
 
 static inline void outw(u16 value, u16 port)
 {
-	__asm__ __volatile__ ("outw %w0, %w1" : : "a" (value), "Nd" (port));
+	__asm__ volatile ("outw %w0, %w1" : : "a" (value), "Nd" (port));
 }
 
 static inline void outl(u32 value, u16 port)
 {
-	__asm__ __volatile__ ("outl %0, %w1" : : "a" (value), "Nd" (port));
+	__asm__ volatile ("outl %0, %w1" : : "a" (value), "Nd" (port));
 }
 
 static inline u8 inb(u16 port)
 {
 	u8 value;
-	__asm__ __volatile__ ("inb %w1, %b0" : "=a"(value) : "Nd" (port));
+	__asm__ volatile ("inb %w1, %b0" : "=a"(value) : "Nd" (port));
 	return value;
 }
 
 static inline u16 inw(u16 port)
 {
 	u16 value;
-	__asm__ __volatile__ ("inw %w1, %w0" : "=a"(value) : "Nd" (port));
+	__asm__ volatile ("inw %w1, %w0" : "=a"(value) : "Nd" (port));
 	return value;
 }
 
 static inline u32 inl(u16 port)
 {
 	u32 value;
-	__asm__ __volatile__ ("inl %w1, %0" : "=a"(value) : "Nd" (port));
+	__asm__ volatile ("inl %w1, %0" : "=a"(value) : "Nd" (port));
 	return value;
 }
 
 static inline void outsb(u16 port, const void *addr, unsigned long count)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"cld ; rep ; outsb " 
 		: "=S" (addr), "=c" (count)
 		: "d"(port), "0"(addr), "1" (count)
@@ -73,7 +73,7 @@
 
 static inline void outsw(u16 port, const void *addr, unsigned long count)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"cld ; rep ; outsw " 
 		: "=S" (addr), "=c" (count)
 		: "d"(port), "0"(addr), "1" (count)
@@ -82,7 +82,7 @@
 
 static inline void outsl(u16 port, const void *addr, unsigned long count)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"cld ; rep ; outsl " 
 		: "=S" (addr), "=c" (count)
 		: "d"(port), "0"(addr), "1" (count)
@@ -92,7 +92,7 @@
 
 static inline void insb(u16 port, void *addr, unsigned long count)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"cld ; rep ; insb " 
 		: "=D" (addr), "=c" (count)
 		: "d"(port), "0"(addr), "1" (count)
@@ -101,7 +101,7 @@
 
 static inline void insw(u16 port, void *addr, unsigned long count)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"cld ; rep ; insw " 
 		: "=D" (addr), "=c" (count)
 		: "d"(port), "0"(addr), "1" (count)
@@ -110,7 +110,7 @@
 
 static inline void insl(u16 port, void *addr, unsigned long count)
 {
-	__asm__ __volatile__ (
+	__asm__ volatile (
 		"cld ; rep ; insl " 
 		: "=D" (addr), "=c" (count)
 		: "d"(port), "0"(addr), "1" (count)
Index: corebootv3-inline_asm_consistent_underscores/include/arch/x86/arch/spinlock.h
===================================================================
--- corebootv3-inline_asm_consistent_underscores/include/arch/x86/arch/spinlock.h	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/include/arch/x86/arch/spinlock.h	(Arbeitskopie)
@@ -29,7 +29,7 @@
  *
  * We make no fairness assumptions. They have a cost.
  */
-#define barrier()		__asm__ __volatile__("": : :"memory")
+#define barrier()		__asm__ volatile("": : :"memory")
 #define spin_is_locked(x)	(*(volatile char *)(&(x)->lock) <= 0)
 #define spin_unlock_wait(x)	do { barrier(); } while(spin_is_locked(x))
 
@@ -53,14 +53,14 @@
 
 static inline __attribute__((always_inline)) void spin_lock(struct spinlock *lock)
 {
-	__asm__ __volatile__(
+	__asm__ volatile(
 		spin_lock_string
 		:"=m" (lock->lock) : : "memory");
 }
 
 static inline __attribute__((always_inline)) void spin_unlock(struct spinlock *lock)
 {
-	__asm__ __volatile__(
+	__asm__ volatile(
 		spin_unlock_string
 		:"=m" (lock->lock) : : "memory");
 }
Index: corebootv3-inline_asm_consistent_underscores/include/arch/x86/cpu.h
===================================================================
--- corebootv3-inline_asm_consistent_underscores/include/arch/x86/cpu.h	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/include/arch/x86/cpu.h	(Arbeitskopie)
@@ -149,23 +149,23 @@
 static inline unsigned long read_cr0(void)
 {
 	unsigned long cr0;
-	asm volatile("movl %%cr0, %0" : "=r" (cr0));
+	__asm__ volatile("movl %%cr0, %0" : "=r" (cr0));
 	return cr0;
 }
 
 static inline void write_cr0(unsigned long cr0)
 {
-	asm volatile("movl %0, %%cr0" : : "r" (cr0));
+	__asm__ volatile("movl %0, %%cr0" : : "r" (cr0));
 }
 
 static inline void invd(void)
 {
-	asm volatile("invd" : : : "memory");
+	__asm__ volatile("invd" : : : "memory");
 }
 
 static inline void wbinvd(void)
 {
-	asm volatile("wbinvd");
+	__asm__ volatile("wbinvd");
 }
 
 static inline void enable_cache(void)
@@ -194,7 +194,7 @@
  */
 static inline void cpu_relax(void)
 {
-	__asm__ __volatile__("rep; nop" : : : "memory");
+	__asm__ volatile("rep; nop" : : : "memory");
 }
 
 /**
@@ -206,7 +206,7 @@
  */
 static inline __attribute__((always_inline)) void hlt(void)
 {
-	__asm__ __volatile__("hlt" : : : "memory");
+	__asm__ volatile("hlt" : : : "memory");
 }
 
 /** 
@@ -216,7 +216,7 @@
  */
 static inline void clear_memory(void *addr, unsigned long size)
 {
-        asm volatile(
+	__asm__ volatile(
                 "cld \n\t"
                 "rep; stosl\n\t"
                 : /* No outputs */
Index: corebootv3-inline_asm_consistent_underscores/include/arch/x86/lapic.h
===================================================================
--- corebootv3-inline_asm_consistent_underscores/include/arch/x86/lapic.h	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/include/arch/x86/lapic.h	(Arbeitskopie)
@@ -93,19 +93,19 @@
 {
 	switch (size) {
 		case 1:
-			__asm__ __volatile__("xchgb %b0,%1"
+			__asm__ volatile("xchgb %b0,%1"
 				:"=q" (x)
 				:"m" (*__xg(ptr)), "0" (x)
 				:"memory");
 			break;
 		case 2:
-			__asm__ __volatile__("xchgw %w0,%1"
+			__asm__ volatile("xchgw %w0,%1"
 				:"=r" (x)
 				:"m" (*__xg(ptr)), "0" (x)
 				:"memory");
 			break;
 		case 4:
-			__asm__ __volatile__("xchgl %0,%1"
+			__asm__ volatile("xchgl %0,%1"
 				:"=r" (x)
 				:"m" (*__xg(ptr)), "0" (x)
 				:"memory");
Index: corebootv3-inline_asm_consistent_underscores/northbridge/amd/k8/dqs.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/northbridge/amd/k8/dqs.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/northbridge/amd/k8/dqs.c	(Arbeitskopie)
@@ -139,13 +139,13 @@
 static inline unsigned long read_cr4(void)
 {
         unsigned long cr4;
-        asm volatile ("movl %%cr4, %0" : "=r" (cr4));
+	__asm__ volatile ("movl %%cr4, %0" : "=r" (cr4));
         return cr4;
 }
 
 static inline void write_cr4(unsigned long cr4)
 {
-        asm volatile ("movl %0, %%cr4" : : "r" (cr4));
+	__asm__ volatile ("movl %0, %%cr4" : : "r" (cr4));
 }
 
 
Index: corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/raminit.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/raminit.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/raminit.c	(Arbeitskopie)
@@ -815,7 +815,7 @@
 	post_code(POST_MEM_SETUP_GOOD);
 
 	/* Make sure there is nothing stale in the cache. */
-	/* CAR stack is in the cache __asm__ __volatile__("wbinvd\n"); */
+	/* CAR stack is in the cache __asm__ volatile("wbinvd\n"); */
 
 	/* The RAM dll needs a write to lock on so generate a few dummy
 	 * writes. Note: The descriptor needs to be enabled to point at memory.
Index: corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/vsmsetup.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/vsmsetup.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/vsmsetup.c	(Arbeitskopie)
@@ -50,7 +50,7 @@
 	u16 entryHi = (VSA2_ENTRY_POINT & 0xffff0000) >> 4;
 	u16 entryLo = (VSA2_ENTRY_POINT & 0xffff);
 
-	__asm__ __volatile__(
+	__asm__ volatile(
 		/* Paranoia -- does ecx get saved? not sure. This is
 		 * the easiest safe thing to do.
 		 */
@@ -148,7 +148,7 @@
 u32 VSA_vrRead(u16 classIndex)
 {
 	unsigned eax, ebx, ecx, edx;
-	asm volatile (
+	__asm__ volatile (
 		"movw	$0x0AC1C, %%dx		\n"
 		"orl	$0x0FC530000, %%eax	\n"
 		"outl	%%eax, %%dx		\n"
@@ -164,7 +164,7 @@
 u32 VSA_msrRead(u32 msrAddr)
 {
 	unsigned eax, ebx, ecx, edx;
-	asm volatile (
+	__asm__ volatile (
 		"movw	$0x0AC1C, %%dx			\n"
 		"movl	$0x0FC530007, %%eax		\n"
 		"outl	%%eax, %%dx				\n"
Index: corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/geodelxinit.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/geodelxinit.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/northbridge/amd/geodelx/geodelxinit.c	(Arbeitskopie)
@@ -758,7 +758,7 @@
 	GLPCI_init();
 	clock_gating_init();
 
-	__asm__ __volatile__("FINIT\n"); /* TODO: Create finit() function? */
+	__asm__ volatile("FINIT\n"); /* TODO: Create finit() function? */
 
 	printk(BIOS_DEBUG, "Exit %s\n", __FUNCTION__);
 }
Index: corebootv3-inline_asm_consistent_underscores/arch/x86/geodelx/stage1.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/arch/x86/geodelx/stage1.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/arch/x86/geodelx/stage1.c	(Arbeitskopie)
@@ -65,8 +65,8 @@
 	 * the data back over itself, and the wbinvd should then 
 	 * flush to memory. Let's see. 
 	 */
-	__asm__ __volatile__("cld; rep movsl" ::"D" (DCACHE_RAM_BASE), "S" (DCACHE_RAM_BASE), "c" (DCACHE_RAM_SIZE/4): "memory");
-	__asm__ __volatile__ ("wbinvd\n");
+	__asm__ volatile("cld; rep movsl" ::"D" (DCACHE_RAM_BASE), "S" (DCACHE_RAM_BASE), "c" (DCACHE_RAM_SIZE/4): "memory");
+	__asm__ volatile ("wbinvd\n");
 	banner(BIOS_DEBUG, "Disable_car: done wbinvd");
 	northbridge_init_early();
 	banner(BIOS_DEBUG, "disable_car: done");
Index: corebootv3-inline_asm_consistent_underscores/arch/x86/archtables.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/arch/x86/archtables.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/arch/x86/archtables.c	(Arbeitskopie)
@@ -54,7 +54,7 @@
 	memcpy((void*)newgdt, &gdt, num_gdt_bytes);
 	gdtarg.base = newgdt;
 	gdtarg.limit = num_gdt_bytes - 1;
-	__asm__ __volatile__ ("lgdt %0\n\t" : : "m" (gdtarg));
+	__asm__ volatile ("lgdt %0\n\t" : : "m" (gdtarg));
 	printk(BIOS_DEBUG,"OK\n");
 }
 #endif
Index: corebootv3-inline_asm_consistent_underscores/arch/x86/amd/k8/stage1.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/arch/x86/amd/k8/stage1.c	(Revision 858)
+++ corebootv3-inline_asm_consistent_underscores/arch/x86/amd/k8/stage1.c	(Arbeitskopie)
@@ -45,7 +45,7 @@
 	 * The solution for geode of using a inline asm memcpy of the stack
 	 * onto itself will not mark the cache tags as dirty on K8.
 	 */
-	__asm__ __volatile__(
+	__asm__ volatile(
 	"	movl %[carbase], %%esi		\n"
 	"	movl %[backuplocation], %%edi	\n"
 	"	movl %[carsizequads], %%ecx	\n"
Index: corebootv3-inline_asm_consistent_underscores/arch/x86/stage1.c
===================================================================
--- corebootv3-inline_asm_consistent_underscores/arch/x86/stage1.c	(Revision 856)
+++ corebootv3-inline_asm_consistent_underscores/arch/x86/stage1.c	(Arbeitskopie)
@@ -117,7 +117,7 @@
 u64 cycles(void)
 {
 	u64 ret;
-	asm volatile ("rdtsc" : "=A" (ret));
+	__asm__ volatile ("rdtsc" : "=A" (ret));
 	return ret;
 }
 


-- 
http://www.hailfinger.org/





More information about the coreboot mailing list