73 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Copyright (C) 2018 Samsung Electronics Co., Ltd.4 */5 6#ifndef __SERVER_H__7#define __SERVER_H__8 9#include "smbacl.h"10 11/*12 * Server state type13 */14enum {15 SERVER_STATE_STARTING_UP,16 SERVER_STATE_RUNNING,17 SERVER_STATE_RESETTING,18 SERVER_STATE_SHUTTING_DOWN,19};20 21/*22 * Server global config string index23 */24enum {25 SERVER_CONF_NETBIOS_NAME,26 SERVER_CONF_SERVER_STRING,27 SERVER_CONF_WORK_GROUP,28};29 30struct ksmbd_server_config {31 unsigned int flags;32 unsigned int state;33 short signing;34 short enforced_signing;35 short min_protocol;36 short max_protocol;37 unsigned short tcp_port;38 unsigned short ipc_timeout;39 unsigned long ipc_last_active;40 unsigned long deadtime;41 unsigned int share_fake_fscaps;42 struct smb_sid domain_sid;43 unsigned int auth_mechs;44 unsigned int max_connections;45 46 char *conf[SERVER_CONF_WORK_GROUP + 1];47 struct task_struct *dh_task;48};49 50extern struct ksmbd_server_config server_conf;51 52int ksmbd_set_netbios_name(char *v);53int ksmbd_set_server_string(char *v);54int ksmbd_set_work_group(char *v);55 56char *ksmbd_netbios_name(void);57char *ksmbd_server_string(void);58char *ksmbd_work_group(void);59 60static inline int ksmbd_server_running(void)61{62 return READ_ONCE(server_conf.state) == SERVER_STATE_RUNNING;63}64 65static inline int ksmbd_server_configurable(void)66{67 return READ_ONCE(server_conf.state) < SERVER_STATE_RESETTING;68}69 70int server_queue_ctrl_init_work(void);71int server_queue_ctrl_reset_work(void);72#endif /* __SERVER_H__ */73