162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Firmware Assisted dump header file.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright 2011 IBM Corporation
662306a36Sopenharmony_ci * Author: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef _ASM_POWERPC_FADUMP_H
1062306a36Sopenharmony_ci#define _ASM_POWERPC_FADUMP_H
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#ifdef CONFIG_FA_DUMP
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciextern int crashing_cpu;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciextern int is_fadump_memory_area(u64 addr, ulong size);
1762306a36Sopenharmony_ciextern int setup_fadump(void);
1862306a36Sopenharmony_ciextern int is_fadump_active(void);
1962306a36Sopenharmony_ciextern int should_fadump_crash(void);
2062306a36Sopenharmony_ciextern void crash_fadump(struct pt_regs *, const char *);
2162306a36Sopenharmony_ciextern void fadump_cleanup(void);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci#else	/* CONFIG_FA_DUMP */
2462306a36Sopenharmony_cistatic inline int is_fadump_active(void) { return 0; }
2562306a36Sopenharmony_cistatic inline int should_fadump_crash(void) { return 0; }
2662306a36Sopenharmony_cistatic inline void crash_fadump(struct pt_regs *regs, const char *str) { }
2762306a36Sopenharmony_cistatic inline void fadump_cleanup(void) { }
2862306a36Sopenharmony_ci#endif /* !CONFIG_FA_DUMP */
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
3162306a36Sopenharmony_ciextern int early_init_dt_scan_fw_dump(unsigned long node, const char *uname,
3262306a36Sopenharmony_ci				      int depth, void *data);
3362306a36Sopenharmony_ciextern int fadump_reserve_mem(void);
3462306a36Sopenharmony_ci#endif
3562306a36Sopenharmony_ci#endif /* _ASM_POWERPC_FADUMP_H */
36