Subversion Repositories HelenOS-historic

Rev

Rev 268 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 268 Rev 282
Line 138... Line 138...
138
        : "=r" (v)
138
        : "=r" (v)
139
    );
139
    );
140
    return v;
140
    return v;
141
}
141
}
142
 
142
 
-
 
143
/** Read CR0
-
 
144
 *
-
 
145
 * Return value in CR0
-
 
146
 *
-
 
147
 * @return Value read.
-
 
148
 */
-
 
149
static inline __u64 read_cr0(void)
-
 
150
{
-
 
151
    __u64 v;
-
 
152
    __asm__ volatile ("movq %%cr0,%0" : "=r" (v));
-
 
153
    return v;
-
 
154
}
-
 
155
 
143
/** Read CR2
156
/** Read CR2
144
 *
157
 *
145
 * Return value in CR2
158
 * Return value in CR2
146
 *
159
 *
147
 * @return Value read.
160
 * @return Value read.
148
 */
161
 */
-
 
162
static inline __u64 read_cr2(void)
-
 
163
{
-
 
164
    __u64 v;
149
static inline __u64 read_cr2(void) { __u64 v; __asm__ volatile ("movq %%cr2,%0" : "=r" (v)); return v; }
165
    __asm__ volatile ("movq %%cr2,%0" : "=r" (v));
-
 
166
    return v;
-
 
167
}
150
 
168
 
151
/** Write CR3
169
/** Write CR3
152
 *
170
 *
153
 * Write value to CR3.
171
 * Write value to CR3.
154
 *
172
 *
155
 * @param v Value to be written.
173
 * @param v Value to be written.
156
 */
174
 */
-
 
175
static inline void write_cr3(__u64 v)
-
 
176
{
157
static inline void write_cr3(__u64 v) { __asm__ volatile ("movq %0,%%cr3\n" : : "r" (v)); }
177
    __asm__ volatile ("movq %0,%%cr3\n" : : "r" (v));
-
 
178
}
158
 
179
 
159
/** Read CR3
180
/** Read CR3
160
 *
181
 *
161
 * Return value in CR3
182
 * Return value in CR3
162
 *
183
 *
163
 * @return Value read.
184
 * @return Value read.
164
 */
185
 */
-
 
186
static inline __u64 read_cr3(void)
-
 
187
{
-
 
188
    __u64 v;
165
static inline __u64 read_cr3(void) { __u64 v; __asm__ volatile ("movq %%cr3,%0" : "=r" (v)); return v; }
189
    __asm__ volatile ("movq %%cr3,%0" : "=r" (v));
-
 
190
    return v;
-
 
191
}
166
 
192
 
167
 
193
 
168
/** Enable local APIC
194
/** Enable local APIC
169
 *
195
 *
170
 * Enable local APIC in MSR.
196
 * Enable local APIC in MSR.