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