]>
git.proxmox.com Git - mirror_smartmontools-debian.git/blob - os_win32/daemon_win32.h
2 * os_win32/daemon_win32.h
4 * Home page of code is: http://www.smartmontools.org
6 * Copyright (C) 2004-18 Christian Franke
8 * SPDX-License-Identifier: GPL-2.0-or-later
11 #ifndef DAEMON_WIN32_H
12 #define DAEMON_WIN32_H
14 #define DAEMON_WIN32_H_CVSID "$Id: daemon_win32.h 4818 2018-10-17 05:32:17Z chrfranke $"
18 // Additional non-ANSI signals
19 #define SIGHUP (NSIG+1)
20 #define SIGUSR1 (NSIG+2)
21 #define SIGUSR2 (NSIG+3)
24 // Options for Windows service
25 typedef struct daemon_winsvc_options_s
{
26 const char * cmd_opt
; // argv[1] option for services
27 // For service "install" command only:
28 const char * svcname
; // Service name
29 const char * dispname
; // Service display name
30 const char * descript
; // Service description
31 } daemon_winsvc_options
;
34 // This function must be called from main()
35 int daemon_main(const char * ident
, const daemon_winsvc_options
* svc_opts
,
36 int (*main_func
)(int, char **), int argc
, char **argv
);
38 // exit(code) returned by a service
39 extern int daemon_winsvc_exitcode
;
42 void (*daemon_signal(int sig
, void (*func
)(int)))(int);
43 const char * daemon_strsignal(int sig
);
46 void daemon_sleep(int seconds
);
48 // Disable/Enable console
49 void daemon_disable_console(void);
50 int daemon_enable_console(const char * title
);
52 // Detach from console
53 int daemon_detach(const char * ident
);
55 #endif // DAEMON_WIN32_H