#include "libcflat.h"
#include "processor.h"
#include "desc.h"

static int test_ud2(bool *rflags_rf)
{
    asm volatile(ASM_TRY("1f")
                 "ud2 \n\t"
                 "1:" :);
    *rflags_rf = exception_rflags_rf();
    return exception_vector();
}

static int test_gp(bool *rflags_rf)
{
    unsigned long tmp;

    asm volatile("mov $0xffffffff, %0 \n\t"
                 ASM_TRY("1f")
		 "mov %0, %%cr4\n\t"
                 "1:"
                 : "=a"(tmp));
    *rflags_rf = exception_rflags_rf();
    return exception_vector();
}

int main(void)
{
    int r;
    bool rflags_rf;

    printf("Starting IDT test\n");
    setup_idt();
    r = test_gp(&rflags_rf);
    report(r == GP_VECTOR, "Testing #GP");
    report(rflags_rf, "Testing #GP rflags.rf");
    r = test_ud2(&rflags_rf);
    report(r == UD_VECTOR, "Testing #UD");
    report(rflags_rf, "Testing #UD rflags.rf");

    return report_summary();
}
