27#ifndef _RTEMS_SCORE_CPU_ASM_H
28#define _RTEMS_SCORE_CPU_ASM_H
37 __asm__
volatile (
"inb %1, %0"
45 __asm__
volatile (
"outb %0, %1" : :
"a" (val),
"Nd" (port) );
52 __asm__
volatile (
"movw %%cs, %0" :
"=r" (segment) :
"0" (segment) );
59 __asm__
volatile (
"movq %0, %%cr3" :
"=r" (segment) :
"0" (segment) );
63 uint32_t
code, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx
65 __asm__
volatile (
"cpuid"
66 :
"=a" (*eax),
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
73 __asm__
volatile (
"rdmsr" :
74 "=a" (low),
"=d" (high) :
76 return low | (uint64_t) high << 32;
81 __asm__
volatile (
"wrmsr" : :
82 "a" (low),
"d" (high),
"c" (msr) );
87 __asm__
volatile (
"sti" );
92 __asm__
volatile (
"cli" );
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
Definition: inftrees.h:24