brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 4fc5293 Raw
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