18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Firmware Assisted dump header file.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright 2011 IBM Corporation
68c2ecf20Sopenharmony_ci * Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#ifndef _ASM_POWERPC_FADUMP_H
108c2ecf20Sopenharmony_ci#define _ASM_POWERPC_FADUMP_H
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#ifdef CONFIG_FA_DUMP
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciextern int crashing_cpu;
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciextern int is_fadump_memory_area(u64 addr, ulong size);
178c2ecf20Sopenharmony_ciextern int setup_fadump(void);
188c2ecf20Sopenharmony_ciextern int is_fadump_active(void);
198c2ecf20Sopenharmony_ciextern int should_fadump_crash(void);
208c2ecf20Sopenharmony_ciextern void crash_fadump(struct pt_regs *, const char *);
218c2ecf20Sopenharmony_ciextern void fadump_cleanup(void);
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#else	/* CONFIG_FA_DUMP */
248c2ecf20Sopenharmony_cistatic inline int is_fadump_active(void) { return 0; }
258c2ecf20Sopenharmony_cistatic inline int should_fadump_crash(void) { return 0; }
268c2ecf20Sopenharmony_cistatic inline void crash_fadump(struct pt_regs *regs, const char *str) { }
278c2ecf20Sopenharmony_cistatic inline void fadump_cleanup(void) { }
288c2ecf20Sopenharmony_ci#endif /* !CONFIG_FA_DUMP */
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
318c2ecf20Sopenharmony_ciextern int early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
328c2ecf20Sopenharmony_ci				      int depth, void *data);
338c2ecf20Sopenharmony_ciextern int fadump_reserve_mem(void);
348c2ecf20Sopenharmony_ci#endif
358c2ecf20Sopenharmony_ci#endif /* _ASM_POWERPC_FADUMP_H */
36