forked from mirrors/linux
		
	 5b9633af29
			
		
	
	
		5b9633af29
		
	
	
	
	
		
			
			binderfs should not have a separate device_initcall(). When a kernel is compiled with CONFIG_ANDROID_BINDERFS register the filesystem alongside CONFIG_ANDROID_IPC. This use-case is especially sensible when users specify CONFIG_ANDROID_IPC=y, CONFIG_ANDROID_BINDERFS=y and ANDROID_BINDER_DEVICES="". When CONFIG_ANDROID_BINDERFS=n then this always succeeds so there's no regression potential for legacy workloads. Signed-off-by: Christian Brauner <christian@brauner.io> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| 
 | |
| #ifndef _LINUX_BINDER_INTERNAL_H
 | |
| #define _LINUX_BINDER_INTERNAL_H
 | |
| 
 | |
| #include <linux/export.h>
 | |
| #include <linux/fs.h>
 | |
| #include <linux/list.h>
 | |
| #include <linux/miscdevice.h>
 | |
| #include <linux/mutex.h>
 | |
| #include <linux/stddef.h>
 | |
| #include <linux/types.h>
 | |
| #include <linux/uidgid.h>
 | |
| 
 | |
| struct binder_context {
 | |
| 	struct binder_node *binder_context_mgr_node;
 | |
| 	struct mutex context_mgr_node_lock;
 | |
| 	kuid_t binder_context_mgr_uid;
 | |
| 	const char *name;
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * struct binder_device - information about a binder device node
 | |
|  * @hlist:          list of binder devices (only used for devices requested via
 | |
|  *                  CONFIG_ANDROID_BINDER_DEVICES)
 | |
|  * @miscdev:        information about a binder character device node
 | |
|  * @context:        binder context information
 | |
|  * @binderfs_inode: This is the inode of the root dentry of the super block
 | |
|  *                  belonging to a binderfs mount.
 | |
|  */
 | |
| struct binder_device {
 | |
| 	struct hlist_node hlist;
 | |
| 	struct miscdevice miscdev;
 | |
| 	struct binder_context context;
 | |
| 	struct inode *binderfs_inode;
 | |
| };
 | |
| 
 | |
| extern const struct file_operations binder_fops;
 | |
| 
 | |
| #ifdef CONFIG_ANDROID_BINDERFS
 | |
| extern bool is_binderfs_device(const struct inode *inode);
 | |
| #else
 | |
| static inline bool is_binderfs_device(const struct inode *inode)
 | |
| {
 | |
| 	return false;
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_ANDROID_BINDERFS
 | |
| extern int __init init_binderfs(void);
 | |
| #else
 | |
| static inline int __init init_binderfs(void)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* _LINUX_BINDER_INTERNAL_H */
 |