• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: MIT */
2 /* Copyright 2008 VMware, Inc. */
3 
4 /**
5  * Auto-detect the operating system family.
6  *
7  * See also:
8  * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
9  * - echo | gcc -dM -E - | sort
10  * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx
11  *
12  * @author José Fonseca <jfonseca@vmware.com>
13  */
14 
15 #ifndef DETECT_OS_H
16 #define DETECT_OS_H
17 
18 #if defined(__linux__)
19 #define DETECT_OS_LINUX 1
20 #define DETECT_OS_UNIX 1
21 #endif
22 
23 /*
24  * Android defines __linux__, so DETECT_OS_LINUX and DETECT_OS_UNIX will
25  * also be defined.
26  */
27 #if defined(__ANDROID__)
28 #define DETECT_OS_ANDROID 1
29 #endif
30 
31 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
32 #define DETECT_OS_FREEBSD 1
33 #define DETECT_OS_BSD 1
34 #define DETECT_OS_UNIX 1
35 #endif
36 
37 #if defined(__OpenBSD__)
38 #define DETECT_OS_OPENBSD 1
39 #define DETECT_OS_BSD 1
40 #define DETECT_OS_UNIX 1
41 #endif
42 
43 #if defined(__NetBSD__)
44 #define DETECT_OS_NETBSD 1
45 #define DETECT_OS_BSD 1
46 #define DETECT_OS_UNIX 1
47 #endif
48 
49 #if defined(__DragonFly__)
50 #define DETECT_OS_DRAGONFLY 1
51 #define DETECT_OS_BSD 1
52 #define DETECT_OS_UNIX 1
53 #endif
54 
55 #if defined(__GNU__)
56 #define DETECT_OS_HURD 1
57 #define DETECT_OS_UNIX 1
58 #endif
59 
60 #if defined(__sun)
61 #define DETECT_OS_SOLARIS 1
62 #define DETECT_OS_UNIX 1
63 #endif
64 
65 #if defined(__APPLE__)
66 #define DETECT_OS_APPLE 1
67 #define DETECT_OS_UNIX 1
68 #endif
69 
70 #if defined(_WIN32) || defined(WIN32)
71 #define DETECT_OS_WINDOWS 1
72 #endif
73 
74 #if defined(__HAIKU__)
75 #define DETECT_OS_HAIKU 1
76 #define DETECT_OS_UNIX 1
77 #endif
78 
79 #if defined(__CYGWIN__)
80 #define DETECT_OS_CYGWIN 1
81 #define DETECT_OS_UNIX 1
82 #endif
83 
84 #if defined(__managarm__)
85 #define DETECT_OS_MANAGARM 1
86 #define DETECT_OS_UNIX 1
87 #endif
88 
89 
90 /*
91  * Make sure DETECT_OS_* are always defined, so that they can be used with #if
92  */
93 #ifndef DETECT_OS_ANDROID
94 #define DETECT_OS_ANDROID 0
95 #endif
96 #ifndef DETECT_OS_APPLE
97 #define DETECT_OS_APPLE 0
98 #endif
99 #ifndef DETECT_OS_BSD
100 #define DETECT_OS_BSD 0
101 #endif
102 #ifndef DETECT_OS_CYGWIN
103 #define DETECT_OS_CYGWIN 0
104 #endif
105 #ifndef DETECT_OS_DRAGONFLY
106 #define DETECT_OS_DRAGONFLY 0
107 #endif
108 #ifndef DETECT_OS_FREEBSD
109 #define DETECT_OS_FREEBSD 0
110 #endif
111 #ifndef DETECT_OS_HAIKU
112 #define DETECT_OS_HAIKU 0
113 #endif
114 #ifndef DETECT_OS_HURD
115 #define DETECT_OS_HURD 0
116 #endif
117 #ifndef DETECT_OS_LINUX
118 #define DETECT_OS_LINUX 0
119 #endif
120 #ifndef DETECT_OS_NETBSD
121 #define DETECT_OS_NETBSD 0
122 #endif
123 #ifndef DETECT_OS_OPENBSD
124 #define DETECT_OS_OPENBSD 0
125 #endif
126 #ifndef DETECT_OS_SOLARIS
127 #define DETECT_OS_SOLARIS 0
128 #endif
129 #ifndef DETECT_OS_UNIX
130 #define DETECT_OS_UNIX 0
131 #endif
132 #ifndef DETECT_OS_WINDOWS
133 #define DETECT_OS_WINDOWS 0
134 #endif
135 #ifndef DETECT_OS_MANAGARM
136 #define DETECT_OS_MANAGARM 0
137 #endif
138 
139 #endif /* DETECT_OS_H */
140