File Index
Files and directories
Sign in
FILE

checksum.h

File preview with syntax highlighting.

linux-6.19.14/tools/objtool/include/objtool/checksum.h C
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2#ifndef _OBJTOOL_CHECKSUM_H
 3#define _OBJTOOL_CHECKSUM_H
 4
 5#include <objtool/elf.h>
 6
 7#ifdef BUILD_KLP
 8
 9static inline void checksum_init(struct symbol *func)
10{
11	if (func && !func->csum.state) {
12		func->csum.state = XXH3_createState();
13		XXH3_64bits_reset(func->csum.state);
14	}
15}
16
17static inline void checksum_update(struct symbol *func,
18				   struct instruction *insn,
19				   const void *data, size_t size)
20{
21	XXH3_64bits_update(func->csum.state, data, size);
22	dbg_checksum(func, insn, XXH3_64bits_digest(func->csum.state));
23}
24
25static inline void checksum_finish(struct symbol *func)
26{
27	if (func && func->csum.state) {
28		func->csum.checksum = XXH3_64bits_digest(func->csum.state);
29		func->csum.state = NULL;
30	}
31}
32
33#else /* !BUILD_KLP */
34
35static inline void checksum_init(struct symbol *func) {}
36static inline void checksum_update(struct symbol *func,
37				   struct instruction *insn,
38				   const void *data, size_t size) {}
39static inline void checksum_finish(struct symbol *func) {}
40
41#endif /* !BUILD_KLP */
42
43#endif /* _OBJTOOL_CHECKSUM_H */
~/ Read-only file preview.