Commit | Line | Data |
---|---|---|
0626e664 NJ |
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 | ||
b9cbfb52 NJ |
11 | /* |
12 | * Server state type | |
13 | */ | |
14 | enum { | |
15 | SERVER_STATE_STARTING_UP, | |
16 | SERVER_STATE_RUNNING, | |
17 | SERVER_STATE_RESETTING, | |
18 | SERVER_STATE_SHUTTING_DOWN, | |
19 | }; | |
0626e664 | 20 | |
c63ee4a5 NJ |
21 | /* |
22 | * Server global config string index | |
23 | */ | |
24 | enum { | |
25 | SERVER_CONF_NETBIOS_NAME, | |
26 | SERVER_CONF_SERVER_STRING, | |
27 | SERVER_CONF_WORK_GROUP, | |
28 | }; | |
0626e664 | 29 | |
0626e664 NJ |
30 | struct 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; | |
0d0d4680 | 44 | unsigned int max_connections; |
0626e664 NJ |
45 | |
46 | char *conf[SERVER_CONF_WORK_GROUP + 1]; | |
47 | }; | |
48 | ||
49 | extern struct ksmbd_server_config server_conf; | |
50 | ||
51 | int ksmbd_set_netbios_name(char *v); | |
52 | int ksmbd_set_server_string(char *v); | |
53 | int ksmbd_set_work_group(char *v); | |
54 | ||
55 | char *ksmbd_netbios_name(void); | |
56 | char *ksmbd_server_string(void); | |
57 | char *ksmbd_work_group(void); | |
58 | ||
59 | static inline int ksmbd_server_running(void) | |
60 | { | |
61 | return READ_ONCE(server_conf.state) == SERVER_STATE_RUNNING; | |
62 | } | |
63 | ||
64 | static inline int ksmbd_server_configurable(void) | |
65 | { | |
66 | return READ_ONCE(server_conf.state) < SERVER_STATE_RESETTING; | |
67 | } | |
68 | ||
69 | int server_queue_ctrl_init_work(void); | |
70 | int server_queue_ctrl_reset_work(void); | |
71 | #endif /* __SERVER_H__ */ |