In an attempt to get the Interrupt Descriptor Table's data using the following code:
/* SIDT returns IDT in following format */
#pragma pack(1)
typedef struct
{
    unsigned short IDTLimit;
    unsigned short LowIDTBase;
    unsigned short HighIDTBase
} s_idt_info;
#pragma pack()
.
.
.
    s_idt_info idt_info;        // returned by sidt
    s_idt_entry *idt_entries;   // obtained from idt_info
    unsigned long count;
    // load idt_info
    __asm ("sidt idt_info");
I get the following error:
||=== Build: Release in driver2 (compiler: gnu_64) ===|
obj\Release\driver.o:driver.c|| undefined reference to `idt_info'|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Using MinGW-64bit's g++ compiler
 
     
    