/* * Copyright 2024 Intel Corporation * SPDX-License-Identifier: MIT */ #include "error2hangdump_lib.h" #include "common/intel_hang_dump.h" void write_header(FILE *f) { struct intel_hang_dump_block_header header = { .base = { .type = INTEL_HANG_DUMP_BLOCK_TYPE_HEADER, }, .magic = INTEL_HANG_DUMP_MAGIC, .version = INTEL_HANG_DUMP_VERSION, }; fwrite(&header, sizeof(header), 1, f); } void write_buffer(FILE *f, uint64_t offset, const void *data, uint64_t size, const char *name) { struct intel_hang_dump_block_bo header = { .base = { .type = INTEL_HANG_DUMP_BLOCK_TYPE_BO, }, .offset = offset, .size = size, }; snprintf(header.name, sizeof(header.name), "%s", name); fwrite(&header, sizeof(header), 1, f); fwrite(data, size, 1, f); } void write_hw_image_buffer(FILE *f, const void *data, uint64_t size) { struct intel_hang_dump_block_hw_image header = { .base = { .type = INTEL_HANG_DUMP_BLOCK_TYPE_HW_IMAGE, }, .size = size, }; fwrite(&header, sizeof(header), 1, f); fwrite(data, size, 1, f); } void write_exec(FILE *f, uint64_t offset) { struct intel_hang_dump_block_exec header = { .base = { .type = INTEL_HANG_DUMP_BLOCK_TYPE_EXEC, }, .offset = offset, }; fwrite(&header, sizeof(header), 1, f); }