Skip to content

Commit 882c0d0

Browse files
szafonimateusz-mipkarashchenko
authored andcommitted
arch/x86_64: convert all asm() to __asm__()
asm() is not supported by -std=c99, __asm__() is more portable Signed-off-by: p-szafonimateusz <[email protected]>
1 parent 8b81689 commit 882c0d0

14 files changed

+126
-120
lines changed

arch/x86_64/include/intel64/io.h

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050

5151
static inline void outb(uint8_t regval, uint16_t port)
5252
{
53-
asm volatile(
53+
__asm__ volatile(
5454
"\toutb %0,%1\n"
5555
:
5656
: "a" (regval), "dN" (port)
@@ -60,17 +60,17 @@ static inline void outb(uint8_t regval, uint16_t port)
6060
static inline uint8_t inb(uint16_t port)
6161
{
6262
uint8_t regval;
63-
asm volatile(
63+
__asm__ volatile(
6464
"\tinb %1,%0\n"
6565
: "=a" (regval)
6666
: "dN" (port)
67-
);
67+
);
6868
return regval;
6969
}
7070

7171
static inline void outw(uint16_t regval, uint16_t port)
7272
{
73-
asm volatile(
73+
__asm__ volatile(
7474
"\toutw %0,%1\n"
7575
:
7676
: "a" (regval), "dN" (port)
@@ -81,7 +81,7 @@ static inline uint16_t inw(uint16_t port)
8181
{
8282
uint16_t regval;
8383

84-
asm volatile(
84+
__asm__ volatile(
8585
"\tinw %1,%0\n"
8686
: "=a" (regval)
8787
: "dN" (port)
@@ -91,7 +91,7 @@ static inline uint16_t inw(uint16_t port)
9191

9292
static inline void outl(uint32_t regval, uint16_t port)
9393
{
94-
asm volatile(
94+
__asm__ volatile(
9595
"\toutl %0,%1\n"
9696
:
9797
: "a" (regval), "dN" (port)
@@ -101,7 +101,7 @@ static inline void outl(uint32_t regval, uint16_t port)
101101
static inline uint32_t inl(uint16_t port)
102102
{
103103
uint32_t regval;
104-
asm volatile(
104+
__asm__ volatile(
105105
"\tinl %1,%0\n"
106106
: "=a" (regval)
107107
: "dN" (port)
@@ -127,7 +127,7 @@ static inline uint32_t mmio_read32(void *address)
127127

128128
/* Assembly-encoded to match the hypervisor MMIO parser support */
129129

130-
asm volatile("movl (%1),%0" : "=r" (value) : "r" (address));
130+
__asm__ volatile("movl (%1),%0" : "=r" (value) : "r" (address));
131131
return value;
132132
}
133133

@@ -150,7 +150,7 @@ static inline void mmio_write32(void *address, uint32_t value)
150150
{
151151
/* Assembly-encoded to match the hypervisor MMIO parser support */
152152

153-
asm volatile("movl %0,(%1)" : : "r" (value), "r" (address));
153+
__asm__ volatile("movl %0,(%1)" : : "r" (value), "r" (address));
154154
}
155155

156156
static inline void mmio_write64(void *address, uint64_t value)
@@ -162,10 +162,10 @@ static inline void up_trash_cpu(void)
162162
{
163163
for (; ; )
164164
{
165-
asm volatile ("cli;hlt;");
165+
__asm__ volatile ("cli;hlt;");
166166
}
167167

168-
asm("ud2":::"memory");
168+
__asm__ volatile ("ud2":::"memory");
169169
}
170170

171171
static inline void up_invalid_tlb(uintptr_t start, uintptr_t end)
@@ -177,7 +177,7 @@ static inline void up_invalid_tlb(uintptr_t start, uintptr_t end)
177177

178178
for (i = start; i < end; i += PAGE_SIZE)
179179
{
180-
asm("invlpg %0;":: "m"(i):"memory");
180+
__asm__ volatile ("invlpg %0;":: "m"(i):"memory");
181181
}
182182
}
183183

arch/x86_64/include/intel64/irq.h

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ static inline void setgdt(void *gdt, int size)
518518
gdt_ptr.limit = size;
519519
gdt_ptr.base = (uintptr_t)gdt;
520520

521-
asm volatile ("lgdt %0"::"m"(gdt_ptr):"memory");
521+
__asm__ volatile ("lgdt %0"::"m"(gdt_ptr):"memory");
522522
}
523523

524524
static inline void setidt(void *idt, int size)
@@ -527,15 +527,15 @@ static inline void setidt(void *idt, int size)
527527
idt_ptr.limit = size;
528528
idt_ptr.base = (uintptr_t)idt;
529529

530-
asm volatile ("lidt %0"::"m"(idt_ptr):"memory");
530+
__asm__ volatile ("lidt %0"::"m"(idt_ptr):"memory");
531531
}
532532

533533
static inline uint64_t rdtscp(void)
534534
{
535535
uint32_t lo;
536536
uint32_t hi;
537537

538-
asm volatile("rdtscp" : "=a" (lo), "=d" (hi)::"ecx", "memory");
538+
__asm__ volatile("rdtscp" : "=a" (lo), "=d" (hi)::"ecx", "memory");
539539
return (uint64_t)lo | (((uint64_t)hi) << 32);
540540
}
541541

@@ -544,29 +544,29 @@ static inline uint64_t rdtsc(void)
544544
uint32_t lo;
545545
uint32_t hi;
546546

547-
asm volatile("rdtsc" : "=a" (lo), "=d" (hi)::"memory");
547+
__asm__ volatile("rdtsc" : "=a" (lo), "=d" (hi)::"memory");
548548
return (uint64_t)lo | (((uint64_t)hi) << 32);
549549
}
550550

551551
static inline void set_pcid(uint64_t pcid)
552552
{
553-
if (pcid < 4095)
554-
{
555-
asm volatile("mov %%cr3, %%rbx; andq $-4096, %%rbx; or %0, "
556-
"%%rbx; mov %%rbx, %%cr3;"
557-
::"g"(pcid):"memory", "rbx", "rax");
558-
}
553+
if (pcid < 4095)
554+
{
555+
__asm__ volatile("mov %%cr3, %%rbx; andq $-4096, %%rbx; or %0, "
556+
"%%rbx; mov %%rbx, %%cr3;"
557+
::"g"(pcid):"memory", "rbx", "rax");
558+
}
559559
}
560560

561561
static inline void set_cr3(uint64_t cr3)
562562
{
563-
asm volatile("mov %0, %%cr3" : "=rm"(cr3) : : "memory");
563+
__asm__ volatile("mov %0, %%cr3" : "=rm"(cr3) : : "memory");
564564
}
565565

566566
static inline uint64_t get_cr3(void)
567567
{
568568
uint64_t cr3;
569-
asm volatile("mov %%cr3, %0" : "=rm"(cr3) : : "memory");
569+
__asm__ volatile("mov %%cr3, %0" : "=rm"(cr3) : : "memory");
570570
return cr3;
571571
}
572572

@@ -582,54 +582,54 @@ static inline unsigned long read_msr(unsigned int msr)
582582
uint32_t low;
583583
uint32_t high;
584584

585-
asm volatile("rdmsr" : "=a" (low), "=d" (high) : "c" (msr));
585+
__asm__ volatile("rdmsr" : "=a" (low), "=d" (high) : "c" (msr));
586586
return low | ((unsigned long)high << 32);
587587
}
588588

589589
static inline void write_msr(unsigned int msr, unsigned long val)
590590
{
591-
asm volatile("wrmsr"
592-
: /* no output */
593-
: "c" (msr), "a" (val), "d" (val >> 32)
594-
: "memory");
591+
__asm__ volatile("wrmsr"
592+
: /* no output */
593+
: "c" (msr), "a" (val), "d" (val >> 32)
594+
: "memory");
595595
}
596596

597597
static inline uint64_t read_fsbase(void)
598598
{
599-
uint64_t val;
600-
asm volatile("rdfsbase %0"
601-
: "=r" (val)
602-
: /* no output */
603-
: "memory");
599+
uint64_t val;
600+
__asm__ volatile("rdfsbase %0"
601+
: "=r" (val)
602+
: /* no output */
603+
: "memory");
604604

605-
return val;
605+
return val;
606606
}
607607

608608
static inline void write_fsbase(unsigned long val)
609609
{
610-
asm volatile("wrfsbase %0"
611-
: /* no output */
612-
: "r" (val)
613-
: "memory");
610+
__asm__ volatile("wrfsbase %0"
611+
: /* no output */
612+
: "r" (val)
613+
: "memory");
614614
}
615615

616616
static inline uint64_t read_gsbase(void)
617617
{
618-
uint64_t val;
619-
asm volatile("rdgsbase %0"
620-
: "=r" (val)
621-
: /* no output */
622-
: "memory");
618+
uint64_t val;
619+
__asm__ volatile("rdgsbase %0"
620+
: "=r" (val)
621+
: /* no output */
622+
: "memory");
623623

624-
return val;
624+
return val;
625625
}
626626

627627
static inline void write_gsbase(unsigned long val)
628628
{
629-
asm volatile("wrgsbase %0"
630-
: /* no output */
631-
: "r" (val)
632-
: "memory");
629+
__asm__ volatile("wrgsbase %0"
630+
: /* no output */
631+
: "r" (val)
632+
: "memory");
633633
}
634634

635635
/* Return stack pointer */
@@ -638,7 +638,7 @@ static inline uint64_t up_getsp(void)
638638
{
639639
uint64_t regval;
640640

641-
asm volatile(
641+
__asm__ volatile(
642642
"\tmovq %%rsp, %0\n"
643643
: "=rm" (regval)
644644
:
@@ -652,7 +652,7 @@ static inline uint32_t up_getds(void)
652652
{
653653
uint32_t regval;
654654

655-
asm volatile(
655+
__asm__ volatile(
656656
"\tmov %%ds, %0\n"
657657
: "=rm" (regval)
658658
:
@@ -664,7 +664,7 @@ static inline uint32_t up_getcs(void)
664664
{
665665
uint32_t regval;
666666

667-
asm volatile(
667+
__asm__ volatile(
668668
"\tmov %%cs, %0\n"
669669
: "=rm" (regval)
670670
:
@@ -676,7 +676,7 @@ static inline uint32_t up_getss(void)
676676
{
677677
uint32_t regval;
678678

679-
asm volatile(
679+
__asm__ volatile(
680680
"\tmov %%ss, %0\n"
681681
: "=rm" (regval)
682682
:
@@ -688,7 +688,7 @@ static inline uint32_t up_getes(void)
688688
{
689689
uint32_t regval;
690690

691-
asm volatile(
691+
__asm__ volatile(
692692
"\tmov %%es, %0\n"
693693
: "=rm" (regval)
694694
:
@@ -700,7 +700,7 @@ static inline uint32_t up_getfs(void)
700700
{
701701
uint32_t regval;
702702

703-
asm volatile(
703+
__asm__ volatile(
704704
"\tmov %%fs, %0\n"
705705
: "=rm" (regval)
706706
:
@@ -712,7 +712,7 @@ static inline uint32_t up_getgs(void)
712712
{
713713
uint32_t regval;
714714

715-
asm volatile(
715+
__asm__ volatile(
716716
"\tmov %%gs, %0\n"
717717
: "=rm" (regval)
718718
:
@@ -735,7 +735,7 @@ static inline irqstate_t irqflags()
735735
{
736736
irqstate_t flags;
737737

738-
asm volatile(
738+
__asm__ volatile(
739739
"\tpushfq\n"
740740
"\tpopq %0\n"
741741
: "=rm" (flags)
@@ -763,14 +763,14 @@ static inline bool up_irq_enabled(irqstate_t flags)
763763

764764
static inline void up_irq_disable(void)
765765
{
766-
asm volatile("cli": : :"memory");
766+
__asm__ volatile("cli": : :"memory");
767767
}
768768

769769
/* Enable interrupts unconditionally */
770770

771771
static inline void up_irq_enable(void)
772772
{
773-
asm volatile("sti": : :"memory");
773+
__asm__ volatile("sti": : :"memory");
774774
}
775775

776776
/* Disable interrupts, but return previous interrupt state */

arch/x86_64/include/irq.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ static inline_function int up_cpu_index(void)
100100
{
101101
int cpu;
102102

103-
asm volatile(
103+
__asm__ volatile(
104104
"\tmovl %%gs:(%c1), %0\n"
105105
: "=r" (cpu)
106106
: "i" (offsetof(struct intel64_cpu_s, id))
@@ -119,17 +119,17 @@ static inline_function int up_cpu_index(void)
119119
static inline_function uint64_t *up_current_regs(void)
120120
{
121121
uint64_t *regs;
122-
asm volatile("movq %%gs:(%c1), %0"
123-
: "=rm" (regs)
124-
: "i" (offsetof(struct intel64_cpu_s, current_regs)));
122+
__asm__ volatile("movq %%gs:(%c1), %0"
123+
: "=rm" (regs)
124+
: "i" (offsetof(struct intel64_cpu_s, current_regs)));
125125
return regs;
126126
}
127127

128128
static inline_function void up_set_current_regs(uint64_t *regs)
129129
{
130-
asm volatile("movq %0, %%gs:(%c1)"
131-
:: "r" (regs), "i" (offsetof(struct intel64_cpu_s,
132-
current_regs)));
130+
__asm__ volatile("movq %0, %%gs:(%c1)"
131+
:: "r" (regs), "i" (offsetof(struct intel64_cpu_s,
132+
current_regs)));
133133
}
134134

135135
/****************************************************************************

0 commit comments

Comments
 (0)