#include <elfio/elfio.hpp>
using namespace ELFIO;
int main( void )
{
elfio writer;
writer.create( ELFCLASS64, ELFDATA2LSB );
writer.set_os_abi( ELFOSABI_LINUX );
writer.set_type( ET_EXEC );
writer.set_machine( EM_X86_64 );
segment* load_seg = writer.segments.add();
load_seg->set_type( PT_LOAD );
load_seg->set_virtual_address( 0x400000 );
load_seg->set_physical_address( 0x0 );
load_seg->set_flags( PF_R );
load_seg->set_align( 0x200000 );
segment* note_seg = writer.segments.add();
note_seg->set_type( PT_NOTE );
note_seg->set_virtual_address( 0x04000e0 );
note_seg->set_physical_address( 0x04000e0 );
note_seg->set_flags( PF_R );
note_seg->set_align( 0x4 );
section* xen_note_sec = writer.sections.add( ".note.dummy" );
xen_note_sec->set_type( SHT_NOTE );
xen_note_sec->set_addr_align( 0x4 );
xen_note_sec->set_flags( SHF_ALLOC );
note_section_accessor xen_note_writer( writer, xen_note_sec );
xen_note_writer.add_note( 0x12, "dummy", 0, 0 );
note_seg->add_section_index( xen_note_sec->get_index(),
xen_note_sec->get_addr_align() );
writer.set_entry( 0x400104 );
writer.save( "test_dummy_note.bin" );
return 0;
}