File Index
Files and directories
Sign in
FILE

server.h

File preview with syntax highlighting.

linux-6.19.14/fs/smb/server/server.h 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 type
13 */
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 index
23 */
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	unsigned int		max_inflight_req;
46	unsigned int		max_ip_connections;
47
48	char			*conf[SERVER_CONF_WORK_GROUP + 1];
49	struct task_struct	*dh_task;
50	bool			bind_interfaces_only;
51};
52
53extern struct ksmbd_server_config server_conf;
54
55int ksmbd_set_netbios_name(char *v);
56int ksmbd_set_server_string(char *v);
57int ksmbd_set_work_group(char *v);
58
59char *ksmbd_netbios_name(void);
60char *ksmbd_server_string(void);
61char *ksmbd_work_group(void);
62
63static inline int ksmbd_server_running(void)
64{
65	return READ_ONCE(server_conf.state) == SERVER_STATE_RUNNING;
66}
67
68static inline int ksmbd_server_configurable(void)
69{
70	return READ_ONCE(server_conf.state) < SERVER_STATE_RESETTING;
71}
72
73int server_queue_ctrl_init_work(void);
74int server_queue_ctrl_reset_work(void);
75#endif /* __SERVER_H__ */
~/ Read-only file preview.