1 /* RDPRU test */ 2 3 #include "libcflat.h" 4 #include "processor.h" 5 #include "desc.h" 6 rdpru_safe(void)7static int rdpru_safe(void) 8 { 9 asm volatile (ASM_TRY("1f") 10 ".byte 0x0f,0x01,0xfd \n\t" /* rdpru */ 11 "1:" : : "c" (0) : "eax", "edx"); 12 return exception_vector(); 13 } 14 main(int ac,char ** av)15int main(int ac, char **av) 16 { 17 if (this_cpu_has(X86_FEATURE_RDPRU)) 18 report_skip("RDPRU raises #UD"); 19 else 20 report(rdpru_safe() == UD_VECTOR, "RDPRU raises #UD"); 21 22 return report_summary(); 23 } 24