linux/fs/ksmbd/mgmt/user_config.h
<<
>>
Prefs
   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        unsigned int            failed_login_count;
  22};
  23
  24static inline bool user_guest(struct ksmbd_user *user)
  25{
  26        return user->flags & KSMBD_USER_FLAG_GUEST_ACCOUNT;
  27}
  28
  29static inline void set_user_flag(struct ksmbd_user *user, int flag)
  30{
  31        user->flags |= flag;
  32}
  33
  34static inline int test_user_flag(struct ksmbd_user *user, int flag)
  35{
  36        return user->flags & flag;
  37}
  38
  39static inline void set_user_guest(struct ksmbd_user *user)
  40{
  41}
  42
  43static inline char *user_passkey(struct ksmbd_user *user)
  44{
  45        return user->passkey;
  46}
  47
  48static inline char *user_name(struct ksmbd_user *user)
  49{
  50        return user->name;
  51}
  52
  53static inline unsigned int user_uid(struct ksmbd_user *user)
  54{
  55        return user->uid;
  56}
  57
  58static inline unsigned int user_gid(struct ksmbd_user *user)
  59{
  60        return user->gid;
  61}
  62
  63struct ksmbd_user *ksmbd_login_user(const char *account);
  64struct ksmbd_user *ksmbd_alloc_user(struct ksmbd_login_response *resp);
  65void ksmbd_free_user(struct ksmbd_user *user);
  66int ksmbd_anonymous_user(struct ksmbd_user *user);
  67#endif /* __USER_CONFIG_MANAGEMENT_H__ */
  68