/* RDPRU test */ #include "libcflat.h" #include "processor.h" #include "desc.h" static int rdpru_safe(void) { asm volatile (ASM_TRY("1f") ".byte 0x0f,0x01,0xfd \n\t" /* rdpru */ "1:" : : "c" (0) : "eax", "edx"); return exception_vector(); } int main(int ac, char **av) { if (this_cpu_has(X86_FEATURE_RDPRU)) report_skip("RDPRU raises #UD"); else report(rdpru_safe() == UD_VECTOR, "RDPRU raises #UD"); return report_summary(); }