blob: 055856ba3e15480123353e83b8f4854cbea6e752 [file] [log] [blame]
/*
* 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);
}