linux/include/linux/vmcore_info.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef LINUX_VMCORE_INFO_H
#define LINUX_VMCORE_INFO_H

#include <linux/linkage.h>
#include <linux/elfcore.h>
#include <linux/elf.h>

#define CRASH_CORE_NOTE_NAME
#define CRASH_CORE_NOTE_HEAD_BYTES
#define CRASH_CORE_NOTE_NAME_BYTES
#define CRASH_CORE_NOTE_DESC_BYTES

/*
 * The per-cpu notes area is a list of notes terminated by a "NULL"
 * note header.  For kdump, the code in vmcore.c runs in the context
 * of the second kernel to combine them into one note.
 */
#define CRASH_CORE_NOTE_BYTES

#define VMCOREINFO_BYTES
#define VMCOREINFO_NOTE_NAME
#define VMCOREINFO_NOTE_NAME_BYTES
#define VMCOREINFO_NOTE_SIZE

note_buf_t;
/* Per cpu memory for storing cpu states in case of system crash. */
extern note_buf_t __percpu *crash_notes;

void crash_update_vmcoreinfo_safecopy(void *ptr);
void crash_save_vmcoreinfo(void);
void arch_crash_save_vmcoreinfo(void);
__printf(1, 2)
void vmcoreinfo_append_str(const char *fmt, ...);
phys_addr_t paddr_vmcoreinfo_note(void);

#define VMCOREINFO_OSRELEASE(value)
#define VMCOREINFO_BUILD_ID()

#define VMCOREINFO_PAGESIZE(value)
#define VMCOREINFO_SYMBOL(name)
#define VMCOREINFO_SYMBOL_ARRAY(name)
#define VMCOREINFO_SIZE(name)
#define VMCOREINFO_STRUCT_SIZE(name)
#define VMCOREINFO_OFFSET(name, field)
#define VMCOREINFO_TYPE_OFFSET(name, field)
#define VMCOREINFO_LENGTH(name, value)
#define VMCOREINFO_NUMBER(name)
#define VMCOREINFO_CONFIG(name)

extern unsigned char *vmcoreinfo_data;
extern size_t vmcoreinfo_size;
extern u32 *vmcoreinfo_note;

Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type,
			  void *data, size_t data_len);
void final_note(Elf_Word *buf);
#endif /* LINUX_VMCORE_INFO_H */