1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) 2020 SiFive 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef _ASM_RISCV_CACHEINFO_H 7*4882a593Smuzhiyun #define _ASM_RISCV_CACHEINFO_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <linux/cacheinfo.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun struct riscv_cacheinfo_ops { 12*4882a593Smuzhiyun const struct attribute_group * (*get_priv_group)(struct cacheinfo 13*4882a593Smuzhiyun *this_leaf); 14*4882a593Smuzhiyun }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun void riscv_set_cacheinfo_ops(struct riscv_cacheinfo_ops *ops); 17*4882a593Smuzhiyun uintptr_t get_cache_size(u32 level, enum cache_type type); 18*4882a593Smuzhiyun uintptr_t get_cache_geometry(u32 level, enum cache_type type); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #endif /* _ASM_RISCV_CACHEINFO_H */ 21