Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/include/asm.h

    rd99c1d2 r3d6beaa  
    3838#include <config.h>
    3939#include <typedefs.h>
     40#include <arch/cpu.h>
    4041
    4142extern void asm_delay_loop(uint32_t t);
     
    269270        return v;
    270271}
     272
     273/** Check interrupts state.
     274 *
     275 * @return True if interrupts are disabled.
     276 *
     277 */
     278static inline bool interrupts_disabled(void)
     279{
     280        ipl_t v;
     281       
     282        asm volatile (
     283                "pushfq\n"
     284                "popq %[v]\n"
     285                : [v] "=r" (v)
     286        );
     287       
     288        return ((v & RFLAGS_IF) == 0);
     289}
     290
    271291
    272292/** Write to MSR */
     
    310330                ::: "%eax","%ecx","%edx"
    311331        );
    312 }
    313 
    314 static inline uintptr_t * get_ip()
    315 {
    316         uintptr_t *ip;
    317        
    318         asm volatile (
    319                 "mov %%rip, %[ip]"
    320                 : [ip] "=r" (ip)
    321         );
    322        
    323         return ip;
    324332}
    325333
Note: See TracChangeset for help on using the changeset viewer.