1*8cb5d216SEli Billauer /* SPDX-License-Identifier: GPL-2.0-only */
2*8cb5d216SEli Billauer /*
3*8cb5d216SEli Billauer  * Copyright 2021 Xillybus Ltd, http://www.xillybus.com
4*8cb5d216SEli Billauer  *
5*8cb5d216SEli Billauer  * Header file for the Xillybus class
6*8cb5d216SEli Billauer  */
7*8cb5d216SEli Billauer 
8*8cb5d216SEli Billauer #ifndef __XILLYBUS_CLASS_H
9*8cb5d216SEli Billauer #define __XILLYBUS_CLASS_H
10*8cb5d216SEli Billauer 
11*8cb5d216SEli Billauer #include <linux/types.h>
12*8cb5d216SEli Billauer #include <linux/device.h>
13*8cb5d216SEli Billauer #include <linux/fs.h>
14*8cb5d216SEli Billauer #include <linux/module.h>
15*8cb5d216SEli Billauer 
16*8cb5d216SEli Billauer int xillybus_init_chrdev(struct device *dev,
17*8cb5d216SEli Billauer 			 const struct file_operations *fops,
18*8cb5d216SEli Billauer 			 struct module *owner,
19*8cb5d216SEli Billauer 			 void *private_data,
20*8cb5d216SEli Billauer 			 unsigned char *idt, unsigned int len,
21*8cb5d216SEli Billauer 			 int num_nodes,
22*8cb5d216SEli Billauer 			 const char *prefix, bool enumerate);
23*8cb5d216SEli Billauer 
24*8cb5d216SEli Billauer void xillybus_cleanup_chrdev(void *private_data,
25*8cb5d216SEli Billauer 			     struct device *dev);
26*8cb5d216SEli Billauer 
27*8cb5d216SEli Billauer int xillybus_find_inode(struct inode *inode,
28*8cb5d216SEli Billauer 			void **private_data, int *index);
29*8cb5d216SEli Billauer 
30*8cb5d216SEli Billauer #endif /* __XILLYBUS_CLASS_H */
31