xref: /titanic_51/usr/src/cmd/smbsrv/smbd/smbd.h (revision a4b239dfde5f1d873c730c047e87e5714ebddbb7)
1da6c28aaSamw /*
2da6c28aaSamw  * CDDL HEADER START
3da6c28aaSamw  *
4da6c28aaSamw  * The contents of this file are subject to the terms of the
5da6c28aaSamw  * Common Development and Distribution License (the "License").
6da6c28aaSamw  * You may not use this file except in compliance with the License.
7da6c28aaSamw  *
8da6c28aaSamw  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9da6c28aaSamw  * or http://www.opensolaris.org/os/licensing.
10da6c28aaSamw  * See the License for the specific language governing permissions
11da6c28aaSamw  * and limitations under the License.
12da6c28aaSamw  *
13da6c28aaSamw  * When distributing Covered Code, include this CDDL HEADER in each
14da6c28aaSamw  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15da6c28aaSamw  * If applicable, add the following below this CDDL HEADER, with the
16da6c28aaSamw  * fields enclosed by brackets "[]" replaced with your own identifying
17da6c28aaSamw  * information: Portions Copyright [yyyy] [name of copyright owner]
18da6c28aaSamw  *
19da6c28aaSamw  * CDDL HEADER END
20da6c28aaSamw  */
21da6c28aaSamw 
22da6c28aaSamw /*
2389dc44ceSjose borrego  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24da6c28aaSamw  * Use is subject to license terms.
25da6c28aaSamw  */
26da6c28aaSamw 
27da6c28aaSamw #ifndef _SMBD_H
28da6c28aaSamw #define	_SMBD_H
29da6c28aaSamw 
30da6c28aaSamw #ifdef __cplusplus
31da6c28aaSamw extern "C" {
32da6c28aaSamw #endif
33da6c28aaSamw 
34da6c28aaSamw #include <sys/types.h>
3594fff790SAlan Wright #include <smbsrv/smb_ioctl.h>
36da6c28aaSamw #include <smbsrv/smb_token.h>
37da6c28aaSamw #include <smbsrv/libsmb.h>
38da6c28aaSamw #include <smbsrv/libmlsvc.h>
39da6c28aaSamw 
403db3f65cSamw extern int smbd_opipe_dsrv_start(void);
413db3f65cSamw extern void smbd_opipe_dsrv_stop(void);
42da6c28aaSamw 
433ad684d6Sjb150015 extern int smb_share_dsrv_start(void);
443ad684d6Sjb150015 extern void smb_share_dsrv_stop(void);
45da6c28aaSamw 
468d7e4166Sjose borrego extern boolean_t smbd_set_netlogon_cred(void);
478d7e4166Sjose borrego extern int smbd_locate_dc_start(void);
48da6c28aaSamw 
49da6c28aaSamw extern smb_token_t *smbd_user_auth_logon(netr_client_t *);
50da6c28aaSamw extern void smbd_user_nonauth_logon(uint32_t);
51da6c28aaSamw extern void smbd_user_auth_logoff(uint32_t);
52faa1795aSjb150015 extern uint32_t smbd_join(smb_joininfo_t *);
53da6c28aaSamw 
5494fff790SAlan Wright extern int smbd_ioctl(int, smb_io_t *);
558d7e4166Sjose borrego extern void smbd_set_secmode(int);
563ad684d6Sjb150015 
576d57f833SAlan Wright extern int smbd_vss_get_count(const char *, uint32_t *);
586d57f833SAlan Wright extern void smbd_vss_get_snapshots(const char *, uint32_t, uint32_t *,
596d57f833SAlan Wright     uint32_t *, char **);
606d57f833SAlan Wright extern int smbd_vss_map_gmttoken(const char *, char *, char *);
6189dc44ceSjose borrego 
62da6c28aaSamw typedef struct smbd {
63da6c28aaSamw 	const char	*s_version;	/* smbd version string */
64da6c28aaSamw 	const char	*s_pname;	/* basename to use for messages */
65da6c28aaSamw 	pid_t		s_pid;		/* process-ID of current daemon */
66da6c28aaSamw 	uid_t		s_uid;		/* UID of current daemon */
67da6c28aaSamw 	gid_t		s_gid;		/* GID of current daemon */
68da6c28aaSamw 	int		s_fg;		/* Run in foreground */
69da6c28aaSamw 	int		s_drv_fd;	/* Handle for SMB kernel driver */
708d7e4166Sjose borrego 	boolean_t	s_shutting_down; /* shutdown control */
718d7e4166Sjose borrego 	volatile uint_t	s_sigval;
728d7e4166Sjose borrego 	volatile uint_t	s_refreshes;
736537f381Sas200622 	boolean_t	s_kbound;	/* B_TRUE if bound to kernel */
746537f381Sas200622 	int		s_door_lmshr;
756537f381Sas200622 	int		s_door_srv;
763db3f65cSamw 	int		s_door_opipe;
776537f381Sas200622 	int		s_secmode;	/* Current security mode */
78*a4b239dfSjose borrego 	boolean_t	s_nbt_listener_running;
79*a4b239dfSjose borrego 	boolean_t	s_tcp_listener_running;
80*a4b239dfSjose borrego 	pthread_t	s_nbt_listener_id;
81*a4b239dfSjose borrego 	pthread_t	s_tcp_listener_id;
82da6c28aaSamw } smbd_t;
83da6c28aaSamw 
84da6c28aaSamw #ifdef __cplusplus
85da6c28aaSamw }
86da6c28aaSamw #endif
87da6c28aaSamw 
88da6c28aaSamw #endif /* _SMBD_H */
89