Print backtrace on abort(), if mode=debug
add get_base_class_code() and get_sub_class_code() on pci-function
add insl outsl function
add ide driver
add ide driver on build.mk
register ide driver
remove debug prints
add feature to get disk size
x64: Add symbol on assembly functions

If abort() called the result of an exception (ex: segv), my
backtrace-on-abort patch outputs incorrect symbol name on exception
handler.  Because it doesn't have enough information on elf header.

This patch adds the information.

Before the patch applied:
page fault outside application
[backtrace]
0x2f3b31 <mmu::vm_sigsegv(unsigned long, exception_frame*)+37>
0x2f3d4d <mmu::vm_fault(unsigned long, exception_frame*)+215>
0x325b34 <page_fault+157>
0x324797 <void std::__introsort_loop<fault_fixup*, long>(fault_fixup*, fault_fixup*, long)+1129>  <-- This is incorrect !
0x312a05 <vmware::vmxnet3::vmxnet3(pci::device&)+473>

After applied:
page fault outside application
[backtrace]
0x2f3b31 <mmu::vm_sigsegv(unsigned long, exception_frame*)+37>
0x2f3d4d <mmu::vm_fault(unsigned long, exception_frame*)+215>
0x325b34 <page_fault+157>
0x324797 <ex_pf+35> <-- Correct name
0x312a05 <vmware::vmxnet3::vmxnet3(pci::device&)+473>

Reviewed-by: Nadav Har'El <nyh@cloudius-systems.com>
Reviewed-by: Glauber Costa <glommer@cloudius-systems.com>
Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
fix headers
add ide on run.py