transport dynamic modules
[exim.git] / src / src / osfunctions.h
1 /*************************************************
2 *     Exim - an Internet mail transport agent    *
3 *************************************************/
4
5 /* Copyright (c) University of Cambridge 1995 - 2016 */
6 /* Copyright (c) The Exim Maintainers 2020 */
7 /* See the file NOTICE for conditions of use and distribution. */
8 /* SPDX-License-Identifier: GPL-2.0-or-later */
9
10 /* Prototypes for os-specific functions. For utilities, we don't need the one
11 that uses a type that isn't defined for them. */
12
13 #ifndef COMPILE_UTILITY
14 extern ip_address_item *os_common_find_running_interfaces(void);
15 #endif
16
17 /* If these exist as a macro, then they're overridden away from us and we
18 rely upon the system headers to provide prototype declarations for us.
19 Notably, strsignal() is not in the Single Unix Specification (v3) and
20 predicting constness is awkward. */
21
22 #ifndef os_getloadavg
23 extern int           os_getloadavg(void);
24 #endif
25 #ifndef os_restarting_signal
26 extern void          os_restarting_signal(int, void (*)(int));
27 #endif
28 #ifndef os_non_restarting_signal
29 extern void          os_non_restarting_signal(int, void (*)(int));
30 #endif
31 #ifndef os_strexit
32 extern const char   *os_strexit(int);     /* char to match os_strsignal */
33 #endif
34 #ifndef os_strsignal
35 extern const char   *os_strsignal(int);   /* char to match strsignal in some OS */
36 #endif
37 #ifndef os_unsetenv
38 extern int           os_unsetenv(const uschar *);
39 #endif
40 #ifndef os_getcwd
41 extern uschar       *os_getcwd(uschar *, size_t);
42 #endif
43
44 /* End of osfunctions.h */