17ec681f3Smrg/* SPDX-License-Identifier: MIT */ 27ec681f3Smrg/* Copyright 2008 VMware, Inc. */ 37ec681f3Smrg 47ec681f3Smrg/** 57ec681f3Smrg * Auto-detect the operating system family. 67ec681f3Smrg * 77ec681f3Smrg * See also: 87ec681f3Smrg * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html 97ec681f3Smrg * - echo | gcc -dM -E - | sort 107ec681f3Smrg * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx 117ec681f3Smrg * 127ec681f3Smrg * @author José Fonseca <jfonseca@vmware.com> 137ec681f3Smrg */ 147ec681f3Smrg 157ec681f3Smrg#ifndef DETECT_OS_H 167ec681f3Smrg#define DETECT_OS_H 177ec681f3Smrg 187ec681f3Smrg#if defined(__linux__) 197ec681f3Smrg#define DETECT_OS_LINUX 1 207ec681f3Smrg#define DETECT_OS_UNIX 1 217ec681f3Smrg#endif 227ec681f3Smrg 237ec681f3Smrg/* 247ec681f3Smrg * Android defines __linux__, so DETECT_OS_LINUX and DETECT_OS_UNIX will 257ec681f3Smrg * also be defined. 267ec681f3Smrg */ 277ec681f3Smrg#if defined(ANDROID) 287ec681f3Smrg#define DETECT_OS_ANDROID 1 297ec681f3Smrg#endif 307ec681f3Smrg 317ec681f3Smrg#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) 327ec681f3Smrg#define DETECT_OS_FREEBSD 1 337ec681f3Smrg#define DETECT_OS_BSD 1 347ec681f3Smrg#define DETECT_OS_UNIX 1 357ec681f3Smrg#endif 367ec681f3Smrg 377ec681f3Smrg#if defined(__OpenBSD__) 387ec681f3Smrg#define DETECT_OS_OPENBSD 1 397ec681f3Smrg#define DETECT_OS_BSD 1 407ec681f3Smrg#define DETECT_OS_UNIX 1 417ec681f3Smrg#endif 427ec681f3Smrg 437ec681f3Smrg#if defined(__NetBSD__) 447ec681f3Smrg#define DETECT_OS_NETBSD 1 457ec681f3Smrg#define DETECT_OS_BSD 1 467ec681f3Smrg#define DETECT_OS_UNIX 1 477ec681f3Smrg#endif 487ec681f3Smrg 497ec681f3Smrg#if defined(__DragonFly__) 507ec681f3Smrg#define DETECT_OS_DRAGONFLY 1 517ec681f3Smrg#define DETECT_OS_BSD 1 527ec681f3Smrg#define DETECT_OS_UNIX 1 537ec681f3Smrg#endif 547ec681f3Smrg 557ec681f3Smrg#if defined(__GNU__) 567ec681f3Smrg#define DETECT_OS_HURD 1 577ec681f3Smrg#define DETECT_OS_UNIX 1 587ec681f3Smrg#endif 597ec681f3Smrg 607ec681f3Smrg#if defined(__sun) 617ec681f3Smrg#define DETECT_OS_SOLARIS 1 627ec681f3Smrg#define DETECT_OS_UNIX 1 637ec681f3Smrg#endif 647ec681f3Smrg 657ec681f3Smrg#if defined(__APPLE__) 667ec681f3Smrg#define DETECT_OS_APPLE 1 677ec681f3Smrg#define DETECT_OS_UNIX 1 687ec681f3Smrg#endif 697ec681f3Smrg 707ec681f3Smrg#if defined(_WIN32) || defined(WIN32) 717ec681f3Smrg#define DETECT_OS_WINDOWS 1 727ec681f3Smrg#endif 737ec681f3Smrg 747ec681f3Smrg#if defined(__HAIKU__) 757ec681f3Smrg#define DETECT_OS_HAIKU 1 767ec681f3Smrg#define DETECT_OS_UNIX 1 777ec681f3Smrg#endif 787ec681f3Smrg 797ec681f3Smrg#if defined(__CYGWIN__) 807ec681f3Smrg#define DETECT_OS_CYGWIN 1 817ec681f3Smrg#define DETECT_OS_UNIX 1 827ec681f3Smrg#endif 837ec681f3Smrg 847ec681f3Smrg 857ec681f3Smrg/* 867ec681f3Smrg * Make sure DETECT_OS_* are always defined, so that they can be used with #if 877ec681f3Smrg */ 887ec681f3Smrg#ifndef DETECT_OS_ANDROID 897ec681f3Smrg#define DETECT_OS_ANDROID 0 907ec681f3Smrg#endif 917ec681f3Smrg#ifndef DETECT_OS_APPLE 927ec681f3Smrg#define DETECT_OS_APPLE 0 937ec681f3Smrg#endif 947ec681f3Smrg#ifndef DETECT_OS_BSD 957ec681f3Smrg#define DETECT_OS_BSD 0 967ec681f3Smrg#endif 977ec681f3Smrg#ifndef DETECT_OS_CYGWIN 987ec681f3Smrg#define DETECT_OS_CYGWIN 0 997ec681f3Smrg#endif 1007ec681f3Smrg#ifndef DETECT_OS_DRAGONFLY 1017ec681f3Smrg#define DETECT_OS_DRAGONFLY 0 1027ec681f3Smrg#endif 1037ec681f3Smrg#ifndef DETECT_OS_FREEBSD 1047ec681f3Smrg#define DETECT_OS_FREEBSD 0 1057ec681f3Smrg#endif 1067ec681f3Smrg#ifndef DETECT_OS_HAIKU 1077ec681f3Smrg#define DETECT_OS_HAIKU 0 1087ec681f3Smrg#endif 1097ec681f3Smrg#ifndef DETECT_OS_HURD 1107ec681f3Smrg#define DETECT_OS_HURD 0 1117ec681f3Smrg#endif 1127ec681f3Smrg#ifndef DETECT_OS_LINUX 1137ec681f3Smrg#define DETECT_OS_LINUX 0 1147ec681f3Smrg#endif 1157ec681f3Smrg#ifndef DETECT_OS_NETBSD 1167ec681f3Smrg#define DETECT_OS_NETBSD 0 1177ec681f3Smrg#endif 1187ec681f3Smrg#ifndef DETECT_OS_OPENBSD 1197ec681f3Smrg#define DETECT_OS_OPENBSD 0 1207ec681f3Smrg#endif 1217ec681f3Smrg#ifndef DETECT_OS_SOLARIS 1227ec681f3Smrg#define DETECT_OS_SOLARIS 0 1237ec681f3Smrg#endif 1247ec681f3Smrg#ifndef DETECT_OS_UNIX 1257ec681f3Smrg#define DETECT_OS_UNIX 0 1267ec681f3Smrg#endif 1277ec681f3Smrg#ifndef DETECT_OS_WINDOWS 1287ec681f3Smrg#define DETECT_OS_WINDOWS 0 1297ec681f3Smrg#endif 1307ec681f3Smrg 1317ec681f3Smrg#endif /* DETECT_OS_H */ 132