1 /*
2  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
3  *
4  * SPDX-License-Identifier: MPL-2.0
5  *
6  * This Source Code Form is subject to the terms of the Mozilla Public
7  * License, v. 2.0.  If a copy of the MPL was not distributed with this
8  * file, you can obtain one at https://mozilla.org/MPL/2.0/.
9  *
10  * See the COPYRIGHT file distributed with this work for additional
11  * information regarding copyright ownership.
12  */
13 
14 #pragma once
15 
16 /*! \file isc/lib.h */
17 
18 #include <isc/lang.h>
19 #include <isc/types.h>
20 
21 ISC_LANG_BEGINDECLS
22 
23 void
24 isc_lib_register(void);
25 /*!<
26  * \brief Register the ISC library implementations for some base services
27  * such as memory or event management and handling socket or timer events.
28  * An external application that wants to use the ISC library must call this
29  * function very early in main().
30  */
31 
32 #ifdef WIN32
33 int
34 isc_lib_ntservice(int(WINAPI *mainfunc)(int argc, char *argv[]), int argc,
35 		  char *argv[]);
36 /*!<
37  * \brief Execute a special routine needed when running as a Windows Service.
38  */
39 #endif /* ifdef WIN32 */
40 
41 extern void
42 isc_enable_constructors(void);
43 /*!<
44  * \brief Enable constructor linkage in non-libtool static builds.
45  */
46 
47 ISC_LANG_ENDDECLS
48