xref: /OK3568_Linux_fs/kernel/drivers/soc/rockchip/minidump/minidump_memory.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4*4882a593Smuzhiyun  * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #define MD_MEMINFO_PAGES	1
8*4882a593Smuzhiyun #define MD_SLABINFO_PAGES	8
9*4882a593Smuzhiyun #ifdef CONFIG_PAGE_OWNER
10*4882a593Smuzhiyun extern size_t md_pageowner_dump_size;
11*4882a593Smuzhiyun extern char *md_pageowner_dump_addr;
12*4882a593Smuzhiyun #endif
13*4882a593Smuzhiyun #ifdef CONFIG_SLUB_DEBUG
14*4882a593Smuzhiyun extern size_t md_slabowner_dump_size;
15*4882a593Smuzhiyun extern char *md_slabowner_dump_addr;
16*4882a593Smuzhiyun #endif
17*4882a593Smuzhiyun extern size_t md_dma_buf_info_size;
18*4882a593Smuzhiyun extern char *md_dma_buf_info_addr;
19*4882a593Smuzhiyun extern size_t md_dma_buf_procs_size;
20*4882a593Smuzhiyun extern char *md_dma_buf_procs_addr;
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun void md_dump_meminfo(struct seq_buf *m);
23*4882a593Smuzhiyun #ifdef CONFIG_SLUB_DEBUG
24*4882a593Smuzhiyun void md_dump_slabinfo(struct seq_buf *m);
25*4882a593Smuzhiyun #else
md_dump_slabinfo(struct seq_buf * m)26*4882a593Smuzhiyun static inline void md_dump_slabinfo(struct seq_buf *m) {}
27*4882a593Smuzhiyun #endif
28*4882a593Smuzhiyun bool md_register_memory_dump(int size, char *name);
29*4882a593Smuzhiyun bool md_unregister_memory_dump(char *name);
30*4882a593Smuzhiyun #ifdef CONFIG_PAGE_OWNER
31*4882a593Smuzhiyun bool is_page_owner_enabled(void);
32*4882a593Smuzhiyun void md_dump_pageowner(char *addr, size_t dump_size);
33*4882a593Smuzhiyun void md_debugfs_pageowner(struct dentry *minidump_dir);
34*4882a593Smuzhiyun #else
is_page_owner_enabled(void)35*4882a593Smuzhiyun static inline bool is_page_owner_enabled(void) { return false; }
md_dump_pageowner(char * addr,size_t dump_size)36*4882a593Smuzhiyun static inline void md_dump_pageowner(char *addr, size_t dump_size) {}
md_debugfs_pageowner(struct dentry * minidump_dir)37*4882a593Smuzhiyun static inline void md_debugfs_pageowner(struct dentry *minidump_dir) {}
38*4882a593Smuzhiyun #endif
39*4882a593Smuzhiyun #ifdef CONFIG_SLUB_DEBUG
40*4882a593Smuzhiyun bool is_slub_debug_enabled(void);
41*4882a593Smuzhiyun void md_dump_slabowner(char *addr, size_t dump_size);
42*4882a593Smuzhiyun void md_debugfs_slabowner(struct dentry *minidump_dir);
43*4882a593Smuzhiyun #else
is_slub_debug_enabled(void)44*4882a593Smuzhiyun static inline bool is_slub_debug_enabled(void) { return false; }
md_dump_slabowner(char * addr,size_t dump_size)45*4882a593Smuzhiyun static inline void md_dump_slabowner(char *addr, size_t dump_size) {}
md_debugfs_slabowner(struct dentry * minidump_dir)46*4882a593Smuzhiyun static inline void md_debugfs_slabowner(struct dentry *minidump_dir) {}
47*4882a593Smuzhiyun #endif
48*4882a593Smuzhiyun void md_dma_buf_info(char *m, size_t dump_size);
49*4882a593Smuzhiyun void md_debugfs_dmabufinfo(struct dentry *minidump_dir);
50*4882a593Smuzhiyun void md_dma_buf_procs(char *m, size_t dump_size);
51*4882a593Smuzhiyun void md_debugfs_dmabufprocs(struct dentry *minidump_dir);
52