cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

debugfs.h (1524B)


      1/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
      2/*
      3 * Copyright (C) 2012-2014 Intel Corporation
      4 * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
      5 */
      6#define MVM_DEBUGFS_READ_FILE_OPS(name)					\
      7static const struct file_operations iwl_dbgfs_##name##_ops = {		\
      8	.read = iwl_dbgfs_##name##_read,				\
      9	.open = simple_open,						\
     10	.llseek = generic_file_llseek,					\
     11}
     12
     13#define MVM_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype)		\
     14static ssize_t _iwl_dbgfs_##name##_write(struct file *file,		\
     15					 const char __user *user_buf,	\
     16					 size_t count, loff_t *ppos)	\
     17{									\
     18	argtype *arg = file->private_data;				\
     19	char buf[buflen] = {};						\
     20	size_t buf_size = min(count, sizeof(buf) -  1);			\
     21									\
     22	if (copy_from_user(buf, user_buf, buf_size))			\
     23		return -EFAULT;						\
     24									\
     25	return iwl_dbgfs_##name##_write(arg, buf, buf_size, ppos);	\
     26}									\
     27
     28#define _MVM_DEBUGFS_READ_WRITE_FILE_OPS(name, buflen, argtype)		\
     29MVM_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype)			\
     30static const struct file_operations iwl_dbgfs_##name##_ops = {		\
     31	.write = _iwl_dbgfs_##name##_write,				\
     32	.read = iwl_dbgfs_##name##_read,				\
     33	.open = simple_open,						\
     34	.llseek = generic_file_llseek,					\
     35};
     36
     37#define _MVM_DEBUGFS_WRITE_FILE_OPS(name, buflen, argtype)		\
     38MVM_DEBUGFS_WRITE_WRAPPER(name, buflen, argtype)			\
     39static const struct file_operations iwl_dbgfs_##name##_ops = {		\
     40	.write = _iwl_dbgfs_##name##_write,				\
     41	.open = simple_open,						\
     42	.llseek = generic_file_llseek,					\
     43};