Subversion Repositories HelenOS-historic

Rev

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

Rev 581 Rev 597
Line 30... Line 30...
30
#define __amd64_ASM_H__
30
#define __amd64_ASM_H__
31
 
31
 
32
#include <arch/types.h>
32
#include <arch/types.h>
33
#include <config.h>
33
#include <config.h>
34
 
34
 
35
 
-
 
36
void asm_delay_loop(__u32 t);
35
extern void asm_delay_loop(__u32 t);
37
void asm_fake_loop(__u32 t);
36
extern void asm_fake_loop(__u32 t);
38
 
37
 
39
/** Return base address of current stack.
38
/** Return base address of current stack.
40
 *
39
 *
41
 * Return the base address of the current stack.
40
 * Return the base address of the current stack.
42
 * The stack is assumed to be STACK_SIZE bytes long.
41
 * The stack is assumed to be STACK_SIZE bytes long.
Line 226... Line 225...
226
        : "=r" (ip)
225
        : "=r" (ip)
227
        );
226
        );
228
    return ip;
227
    return ip;
229
}
228
}
230
 
229
 
-
 
230
/** Invalidate TLB Entry.
-
 
231
 *
-
 
232
 * @param addr Address on a page whose TLB entry is to be invalidated.
-
 
233
 */
-
 
234
static inline void invlpg(__address addr)
-
 
235
{
-
 
236
        __asm__ volatile ("invlpg %0\n" :: "m" (addr));
-
 
237
}
231
 
238
 
232
extern size_t interrupt_handler_size;
239
extern size_t interrupt_handler_size;
233
extern void interrupt_handlers(void);
240
extern void interrupt_handlers(void);
234
 
241
 
235
#endif
242
#endif