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 __USER_CONFIG_MANAGEMENT_H__
0007 #define __USER_CONFIG_MANAGEMENT_H__
0008 
0009 #include "../glob.h"
0010 
0011 struct ksmbd_user {
0012     unsigned short      flags;
0013 
0014     unsigned int        uid;
0015     unsigned int        gid;
0016 
0017     char            *name;
0018 
0019     size_t          passkey_sz;
0020     char            *passkey;
0021     unsigned int        failed_login_count;
0022 };
0023 
0024 static inline bool user_guest(struct ksmbd_user *user)
0025 {
0026     return user->flags & KSMBD_USER_FLAG_GUEST_ACCOUNT;
0027 }
0028 
0029 static inline void set_user_flag(struct ksmbd_user *user, int flag)
0030 {
0031     user->flags |= flag;
0032 }
0033 
0034 static inline int test_user_flag(struct ksmbd_user *user, int flag)
0035 {
0036     return user->flags & flag;
0037 }
0038 
0039 static inline void set_user_guest(struct ksmbd_user *user)
0040 {
0041 }
0042 
0043 static inline char *user_passkey(struct ksmbd_user *user)
0044 {
0045     return user->passkey;
0046 }
0047 
0048 static inline char *user_name(struct ksmbd_user *user)
0049 {
0050     return user->name;
0051 }
0052 
0053 static inline unsigned int user_uid(struct ksmbd_user *user)
0054 {
0055     return user->uid;
0056 }
0057 
0058 static inline unsigned int user_gid(struct ksmbd_user *user)
0059 {
0060     return user->gid;
0061 }
0062 
0063 struct ksmbd_user *ksmbd_login_user(const char *account);
0064 struct ksmbd_user *ksmbd_alloc_user(struct ksmbd_login_response *resp);
0065 void ksmbd_free_user(struct ksmbd_user *user);
0066 int ksmbd_anonymous_user(struct ksmbd_user *user);
0067 bool ksmbd_compare_user(struct ksmbd_user *u1, struct ksmbd_user *u2);
0068 #endif /* __USER_CONFIG_MANAGEMENT_H__ */