Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  *   Copyright (C) 2018 Samsung Electronics Co., Ltd.
0004  */
0005 
0006 #ifndef __TREE_CONNECT_MANAGEMENT_H__
0007 #define __TREE_CONNECT_MANAGEMENT_H__
0008 
0009 #include <linux/hashtable.h>
0010 
0011 #include "../ksmbd_netlink.h"
0012 
0013 struct ksmbd_share_config;
0014 struct ksmbd_user;
0015 struct ksmbd_conn;
0016 
0017 struct ksmbd_tree_connect {
0018     int             id;
0019 
0020     unsigned int            flags;
0021     struct ksmbd_share_config   *share_conf;
0022     struct ksmbd_user       *user;
0023 
0024     struct list_head        list;
0025 
0026     int             maximal_access;
0027     bool                posix_extensions;
0028 };
0029 
0030 struct ksmbd_tree_conn_status {
0031     unsigned int            ret;
0032     struct ksmbd_tree_connect   *tree_conn;
0033 };
0034 
0035 static inline int test_tree_conn_flag(struct ksmbd_tree_connect *tree_conn,
0036                       int flag)
0037 {
0038     return tree_conn->flags & flag;
0039 }
0040 
0041 struct ksmbd_session;
0042 
0043 struct ksmbd_tree_conn_status
0044 ksmbd_tree_conn_connect(struct ksmbd_conn *conn, struct ksmbd_session *sess,
0045             char *share_name);
0046 
0047 int ksmbd_tree_conn_disconnect(struct ksmbd_session *sess,
0048                    struct ksmbd_tree_connect *tree_conn);
0049 
0050 struct ksmbd_tree_connect *ksmbd_tree_conn_lookup(struct ksmbd_session *sess,
0051                           unsigned int id);
0052 
0053 struct ksmbd_share_config *ksmbd_tree_conn_share(struct ksmbd_session *sess,
0054                          unsigned int id);
0055 
0056 int ksmbd_tree_conn_session_logoff(struct ksmbd_session *sess);
0057 
0058 #endif /* __TREE_CONNECT_MANAGEMENT_H__ */