1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * Copyright (C) 2018 Samsung Electronics Co., Ltd. 4 */ 5 6#ifndef __USER_CONFIG_MANAGEMENT_H__ 7#define __USER_CONFIG_MANAGEMENT_H__ 8 9#include "../glob.h" 10 11struct ksmbd_user { 12 unsigned short flags; 13 14 unsigned int uid; 15 unsigned int gid; 16 17 char *name; 18 19 size_t passkey_sz; 20 char *passkey; 21}; 22 23static inline bool user_guest(struct ksmbd_user *user) 24{ 25 return user->flags & KSMBD_USER_FLAG_GUEST_ACCOUNT; 26} 27 28static inline void set_user_flag(struct ksmbd_user *user, int flag) 29{ 30 user->flags |= flag; 31} 32 33static inline int test_user_flag(struct ksmbd_user *user, int flag) 34{ 35 return user->flags & flag; 36} 37 38static inline void set_user_guest(struct ksmbd_user *user) 39{ 40} 41 42static inline char *user_passkey(struct ksmbd_user *user) 43{ 44 return user->passkey; 45} 46 47static inline char *user_name(struct ksmbd_user *user) 48{ 49 return user->name; 50} 51 52static inline unsigned int user_uid(struct ksmbd_user *user) 53{ 54 return user->uid; 55} 56 57static inline unsigned int user_gid(struct ksmbd_user *user) 58{ 59 return user->gid; 60} 61 62struct ksmbd_user *ksmbd_login_user(const char *account); 63struct ksmbd_user *ksmbd_alloc_user(struct ksmbd_login_response *resp); 64void ksmbd_free_user(struct ksmbd_user *user); 65int ksmbd_anonymous_user(struct ksmbd_user *user); 66bool ksmbd_compare_user(struct ksmbd_user *u1, struct ksmbd_user *u2); 67#endif /* __USER_CONFIG_MANAGEMENT_H__ */ 68