34 static inline uint8_t ckPortInByte(uint16_t port)
37 __asm__ __volatile__ (
"in %1, %0" :
"=a"(ret) :
"d"(port) );
41 static inline void ckPortOutByte(uint16_t port, uint8_t
data)
43 __asm__ __volatile__ (
"out %0, %1" : :
"a"(data),
"d"(port) );
46 static inline void ckAsmGetTimeStamp(uint32_t *high, uint32_t *low)
49 __asm__ __volatile__ (
"rdtsc" :
"=d"(h),
"=a"(l) );
53 static inline uint32_t ckAsmGetEFlag(
void)
56 __asm__ __volatile__ (
"pushfl \n pop %0" :
"=g"(ret) );
60 static inline void ckAsmSetEFlag(uint32_t eflag)
62 __asm__ __volatile__ (
"push %0 \n popfl" : :
"g"(eflag) :
"cc" );
65 static inline void ckAsmCli(
void)
67 __asm__ __volatile__ (
"cli" );
70 static inline void ckAsmSti(
void)
72 __asm__ __volatile__ (
"sti" );
75 static inline void ckAsmHlt(
void)
77 __asm__ __volatile__ (
"hlt" );
uint8_t data[512]
Definition: task.h:819