1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef _LINUX_BINDER_INTERNAL_H 4#define _LINUX_BINDER_INTERNAL_H 5 6#include <linux/export.h> 7#include <linux/fs.h> 8#include <linux/list.h> 9#include <linux/miscdevice.h> 10#include <linux/mutex.h> 11#include <linux/stddef.h> 12#include <linux/types.h> 13#include <linux/uidgid.h> 14 15struct binder_context { 16 struct binder_node *binder_context_mgr_node; 17 struct mutex context_mgr_node_lock; 18 kuid_t binder_context_mgr_uid; 19 const char *name; 20}; 21 22/** 23 * struct binder_device - information about a binder device node 24 * @hlist: list of binder devices (only used for devices requested via 25 * CONFIG_ANDROID_BINDER_DEVICES) 26 * @miscdev: information about a binder character device node 27 * @context: binder context information 28 * @binderfs_inode: This is the inode of the root dentry of the super block 29 * belonging to a binderfs mount. 30 */ 31struct binder_device { 32 struct hlist_node hlist; 33 struct miscdevice miscdev; 34 struct binder_context context; 35 struct inode *binderfs_inode; 36}; 37 38extern const struct file_operations binder_fops; 39 40#ifdef CONFIG_ANDROID_BINDERFS 41extern bool is_binderfs_device(const struct inode *inode); 42#else 43static inline bool is_binderfs_device(const struct inode *inode) 44{ 45 return false; 46} 47#endif 48 49#ifdef CONFIG_ANDROID_BINDERFS 50extern int __init init_binderfs(void); 51#else 52static inline int __init init_binderfs(void) 53{ 54 return 0; 55} 56#endif 57 58#endif /* _LINUX_BINDER_INTERNAL_H */ 59