Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion igvm_c/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ EXE =
PREFIX ?= /usr
DESTDIR ?=

CFLAGS ?= -g3 -O0
CFLAGS ?= -g3 -O0 -Wall -Wextra

CARGO=CARGO_TARGET_DIR=$(IGVM_DIR)/$(TARGET_DIR) cargo
CARGO_BUILD_HOST := $(shell $(CARGO) -Vv | sed -n 's,^host: ,,p')
Expand Down
27 changes: 7 additions & 20 deletions igvm_c/sample/dump_igvm.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,42 +256,29 @@ static void igvm_dump_variable_header(IGVM_VHS_VARIABLE_HEADER *header)
printf("\n");
}

static void igvm_dump_fixed_header(IGVM_FIXED_HEADER *header)
{
printf("IGVM_FIXED_HEADER:\n");
printf(" Magic: 0x%08X\n", header->magic);
printf(" FormatVersion: 0x%08X\n", header->format_version);
printf(" VariableHeaderOffset: 0x%08X\n",
header->variable_header_offset);
printf(" VariableHeaderSize: 0x%08X\n", header->variable_header_size);
printf(" TotalFileSize: 0x%08X\n", header->total_file_size);
printf(" Checksum: 0x%08X\n", header->checksum);
printf("\n");
}

static int dump_igvm(uint8_t* igvm_buf, unsigned long igvm_length)
{
IgvmHandle igvm;
if ((igvm = igvm_new_from_binary(igvm_buf, igvm_length)) < 0) {
printf("Failed to parse IGVM file. Error code: %ld\n", igvm);
printf("Failed to parse IGVM file. Error code: %d\n", igvm);
return 1;
}

for (long section = 0; section <= IGVM_HEADER_SECTION_DIRECTIVE; ++section) {
int32_t count = igvm_header_count(igvm, (IgvmHeaderSection)section);
printf("----------------------------------------------------------\n"
"%s count = %ld\n\n",
"%s count = %d\n\n",
section_name[section], count);

for (long i = 0; i < count; ++i) {
IgvmVariableHeaderType typ = igvm_get_header_type(igvm, section, i);
if (typ > 0) {
IgvmHandle header_handle;
IgvmHandle header_data;

header_handle = igvm_get_header(igvm, section, i);
if (header_handle < 0) {
printf("Invalid header (%ld)\n", header_handle);
printf("Invalid header (%d)\n", header_handle);
return 1;
}
igvm_dump_variable_header((IGVM_VHS_VARIABLE_HEADER*)igvm_get_buffer(igvm, header_handle));
Expand All @@ -300,8 +287,8 @@ static int dump_igvm(uint8_t* igvm_buf, unsigned long igvm_length)
/* Do the same for any associated file data */
header_data = igvm_get_header_data(igvm, section, i);
if (header_data > 0) {
uint32_t filedata_length = igvm_get_buffer_size(igvm, header_data);
printf("Got %u bytes of file data:\n", filedata_length);
int32_t filedata_length = igvm_get_buffer_size(igvm, header_data);
printf("Got %d bytes of file data:\n", filedata_length);
hexdump(igvm_get_buffer(igvm, header_data), (filedata_length > hex_context) ? hex_context : filedata_length, 32, 0);
igvm_free_buffer(igvm, header_data);
}
Expand Down
2 changes: 0 additions & 2 deletions igvm_c/tests/igvm_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ void test_valid_igvm(void) {
}

void test_invalid_fixed_header(void) {
IgvmHandle igvm;
CU_ASSERT_EQUAL(igvm_new_from_binary(invalid_igvm_buf, sizeof(invalid_igvm_buf)), IGVMAPI_INVALID_FIXED_HEADER);
}

Expand Down Expand Up @@ -194,7 +193,6 @@ void test_associated_data(void) {

void test_no_associated_data(void) {
IgvmHandle igvm;
uint32_t data_length = 0;

igvm = igvm_new_from_binary(igvm_buf, igvm_buf_length);
CU_ASSERT(igvm > 0);
Expand Down