|  | /* SPDX-License-Identifier: GPL-2.0-or-later */ | 
|  | /* | 
|  | *   Copyright (C) 2018 Samsung Electronics Co., Ltd. | 
|  | */ | 
|  |  | 
|  | #ifndef __SERVER_H__ | 
|  | #define __SERVER_H__ | 
|  |  | 
|  | #include "smbacl.h" | 
|  |  | 
|  | /* | 
|  | * Server state type | 
|  | */ | 
|  | enum { | 
|  | SERVER_STATE_STARTING_UP, | 
|  | SERVER_STATE_RUNNING, | 
|  | SERVER_STATE_RESETTING, | 
|  | SERVER_STATE_SHUTTING_DOWN, | 
|  | }; | 
|  |  | 
|  | /* | 
|  | * Server global config string index | 
|  | */ | 
|  | enum { | 
|  | SERVER_CONF_NETBIOS_NAME, | 
|  | SERVER_CONF_SERVER_STRING, | 
|  | SERVER_CONF_WORK_GROUP, | 
|  | }; | 
|  |  | 
|  | struct ksmbd_server_config { | 
|  | unsigned int		flags; | 
|  | unsigned int		state; | 
|  | short			signing; | 
|  | short			enforced_signing; | 
|  | short			min_protocol; | 
|  | short			max_protocol; | 
|  | unsigned short		tcp_port; | 
|  | unsigned short		ipc_timeout; | 
|  | unsigned long		ipc_last_active; | 
|  | unsigned long		deadtime; | 
|  | unsigned int		share_fake_fscaps; | 
|  | struct smb_sid		domain_sid; | 
|  | unsigned int		auth_mechs; | 
|  | unsigned int		max_connections; | 
|  |  | 
|  | char			*conf[SERVER_CONF_WORK_GROUP + 1]; | 
|  | struct task_struct	*dh_task; | 
|  | }; | 
|  |  | 
|  | extern struct ksmbd_server_config server_conf; | 
|  |  | 
|  | int ksmbd_set_netbios_name(char *v); | 
|  | int ksmbd_set_server_string(char *v); | 
|  | int ksmbd_set_work_group(char *v); | 
|  |  | 
|  | char *ksmbd_netbios_name(void); | 
|  | char *ksmbd_server_string(void); | 
|  | char *ksmbd_work_group(void); | 
|  |  | 
|  | static inline int ksmbd_server_running(void) | 
|  | { | 
|  | return READ_ONCE(server_conf.state) == SERVER_STATE_RUNNING; | 
|  | } | 
|  |  | 
|  | static inline int ksmbd_server_configurable(void) | 
|  | { | 
|  | return READ_ONCE(server_conf.state) < SERVER_STATE_RESETTING; | 
|  | } | 
|  |  | 
|  | int server_queue_ctrl_init_work(void); | 
|  | int server_queue_ctrl_reset_work(void); | 
|  | #endif /* __SERVER_H__ */ |