Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at nocache-cleanup 49 lines 1.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_BUILDID_H 3#define _LINUX_BUILDID_H 4 5#include <linux/types.h> 6 7#define BUILD_ID_SIZE_MAX 20 8 9struct vm_area_struct; 10struct file; 11 12int build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size); 13int build_id_parse_file(struct file *file, unsigned char *build_id, __u32 *size); 14int build_id_parse_nofault(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size); 15int build_id_parse_buf(const void *buf, unsigned char *build_id, u32 buf_size); 16 17#if IS_ENABLED(CONFIG_STACKTRACE_BUILD_ID) || IS_ENABLED(CONFIG_VMCORE_INFO) 18extern unsigned char vmlinux_build_id[BUILD_ID_SIZE_MAX]; 19void init_vmlinux_build_id(void); 20#else 21static inline void init_vmlinux_build_id(void) { } 22#endif 23 24struct freader { 25 void *buf; 26 u32 buf_sz; 27 int err; 28 union { 29 struct { 30 struct file *file; 31 struct folio *folio; 32 void *addr; 33 loff_t folio_off; 34 bool may_fault; 35 }; 36 struct { 37 const char *data; 38 u64 data_sz; 39 }; 40 }; 41}; 42 43void freader_init_from_file(struct freader *r, void *buf, u32 buf_sz, 44 struct file *file, bool may_fault); 45void freader_init_from_mem(struct freader *r, const char *data, u64 data_sz); 46const void *freader_fetch(struct freader *r, loff_t file_off, size_t sz); 47void freader_cleanup(struct freader *r); 48 49#endif