Rework SPA fix to avoid overflows. Bug 2571
[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
9 /* Prototypes for os-specific functions. For utilities, we don't need the one
10 that uses a type that isn't defined for them. */
11
12 #ifndef COMPILE_UTILITY
13 extern ip_address_item *os_common_find_running_interfaces(void);
14 #endif
15
16 /* If these exist as a macro, then they're overridden away from us and we
17 rely upon the system headers to provide prototype declarations for us.
18 Notably, strsignal() is not in the Single Unix Specification (v3) and
19 predicting constness is awkward. */
20
21 #ifndef os_getloadavg
22 extern int os_getloadavg(void);
23 #endif
24 #ifndef os_restarting_signal
25 extern void os_restarting_signal(int, void (*)(int));
26 #endif
27 #ifndef os_non_restarting_signal
28 extern void os_non_restarting_signal(int, void (*)(int));
29 #endif
30 #ifndef os_strexit
31 extern const char *os_strexit(int); /* char to match os_strsignal */
32 #endif
33 #ifndef os_strsignal
34 extern const char *os_strsignal(int); /* char to match strsignal in some OS */
35 #endif
36 #ifndef os_unsetenv
37 extern int os_unsetenv(const uschar *);
38 #endif
39 #ifndef os_getcwd
40 extern uschar *os_getcwd(uschar *, size_t);
41 #endif
42
43 /* End of osfunctions.h */