aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/boot/boot.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/boot/boot.h')
-rw-r--r--arch/i386/boot/boot.h24
1 files changed, 12 insertions, 12 deletions
diff --git a/arch/i386/boot/boot.h b/arch/i386/boot/boot.h
index dec70c9b6050..20bab9431acb 100644
--- a/arch/i386/boot/boot.h
+++ b/arch/i386/boot/boot.h
@@ -87,7 +87,7 @@ static inline void set_fs(u16 seg)
87static inline u16 fs(void) 87static inline u16 fs(void)
88{ 88{
89 u16 seg; 89 u16 seg;
90 asm("movw %%fs,%0" : "=rm" (seg)); 90 asm volatile("movw %%fs,%0" : "=rm" (seg));
91 return seg; 91 return seg;
92} 92}
93 93
@@ -98,7 +98,7 @@ static inline void set_gs(u16 seg)
98static inline u16 gs(void) 98static inline u16 gs(void)
99{ 99{
100 u16 seg; 100 u16 seg;
101 asm("movw %%gs,%0" : "=rm" (seg)); 101 asm volatile("movw %%gs,%0" : "=rm" (seg));
102 return seg; 102 return seg;
103} 103}
104 104
@@ -107,19 +107,19 @@ typedef unsigned int addr_t;
107static inline u8 rdfs8(addr_t addr) 107static inline u8 rdfs8(addr_t addr)
108{ 108{
109 u8 v; 109 u8 v;
110 asm("movb %%fs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); 110 asm volatile("movb %%fs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr));
111 return v; 111 return v;
112} 112}
113static inline u16 rdfs16(addr_t addr) 113static inline u16 rdfs16(addr_t addr)
114{ 114{
115 u16 v; 115 u16 v;
116 asm("movw %%fs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr)); 116 asm volatile("movw %%fs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr));
117 return v; 117 return v;
118} 118}
119static inline u32 rdfs32(addr_t addr) 119static inline u32 rdfs32(addr_t addr)
120{ 120{
121 u32 v; 121 u32 v;
122 asm("movl %%fs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr)); 122 asm volatile("movl %%fs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr));
123 return v; 123 return v;
124} 124}
125 125
@@ -139,19 +139,19 @@ static inline void wrfs32(u32 v, addr_t addr)
139static inline u8 rdgs8(addr_t addr) 139static inline u8 rdgs8(addr_t addr)
140{ 140{
141 u8 v; 141 u8 v;
142 asm("movb %%gs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); 142 asm volatile("movb %%gs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr));
143 return v; 143 return v;
144} 144}
145static inline u16 rdgs16(addr_t addr) 145static inline u16 rdgs16(addr_t addr)
146{ 146{
147 u16 v; 147 u16 v;
148 asm("movw %%gs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr)); 148 asm volatile("movw %%gs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr));
149 return v; 149 return v;
150} 150}
151static inline u32 rdgs32(addr_t addr) 151static inline u32 rdgs32(addr_t addr)
152{ 152{
153 u32 v; 153 u32 v;
154 asm("movl %%gs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr)); 154 asm volatile("movl %%gs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr));
155 return v; 155 return v;
156} 156}
157 157
@@ -180,15 +180,15 @@ static inline int memcmp(const void *s1, const void *s2, size_t len)
180static inline int memcmp_fs(const void *s1, addr_t s2, size_t len) 180static inline int memcmp_fs(const void *s1, addr_t s2, size_t len)
181{ 181{
182 u8 diff; 182 u8 diff;
183 asm("fs; repe; cmpsb; setnz %0" 183 asm volatile("fs; repe; cmpsb; setnz %0"
184 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); 184 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
185 return diff; 185 return diff;
186} 186}
187static inline int memcmp_gs(const void *s1, addr_t s2, size_t len) 187static inline int memcmp_gs(const void *s1, addr_t s2, size_t len)
188{ 188{
189 u8 diff; 189 u8 diff;
190 asm("gs; repe; cmpsb; setnz %0" 190 asm volatile("gs; repe; cmpsb; setnz %0"
191 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); 191 : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len));
192 return diff; 192 return diff;
193} 193}
194 194