1*3cab2bb3Spatrick //===-- flags.h -------------------------------------------------*- C++ -*-===// 2*3cab2bb3Spatrick // 3*3cab2bb3Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*3cab2bb3Spatrick // See https://llvm.org/LICENSE.txt for license information. 5*3cab2bb3Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*3cab2bb3Spatrick // 7*3cab2bb3Spatrick //===----------------------------------------------------------------------===// 8*3cab2bb3Spatrick 9*3cab2bb3Spatrick #ifndef SCUDO_FLAGS_H_ 10*3cab2bb3Spatrick #define SCUDO_FLAGS_H_ 11*3cab2bb3Spatrick 12*3cab2bb3Spatrick #include "internal_defs.h" 13*3cab2bb3Spatrick 14*3cab2bb3Spatrick namespace scudo { 15*3cab2bb3Spatrick 16*3cab2bb3Spatrick struct Flags { 17*3cab2bb3Spatrick #define SCUDO_FLAG(Type, Name, DefaultValue, Description) Type Name; 18*3cab2bb3Spatrick #include "flags.inc" 19*3cab2bb3Spatrick #undef SCUDO_FLAG 20*3cab2bb3Spatrick 21*3cab2bb3Spatrick #ifdef GWP_ASAN_HOOKS 22*3cab2bb3Spatrick #define GWP_ASAN_OPTION(Type, Name, DefaultValue, Description) \ 23*3cab2bb3Spatrick Type GWP_ASAN_##Name; 24*3cab2bb3Spatrick #include "gwp_asan/options.inc" 25*3cab2bb3Spatrick #undef GWP_ASAN_OPTION 26*3cab2bb3Spatrick #endif // GWP_ASAN_HOOKS 27*3cab2bb3Spatrick 28*3cab2bb3Spatrick void setDefaults(); 29*3cab2bb3Spatrick }; 30*3cab2bb3Spatrick 31*3cab2bb3Spatrick Flags *getFlags(); 32*3cab2bb3Spatrick void initFlags(); 33*3cab2bb3Spatrick class FlagParser; 34*3cab2bb3Spatrick void registerFlags(FlagParser *Parser, Flags *F); 35*3cab2bb3Spatrick 36*3cab2bb3Spatrick } // namespace scudo 37*3cab2bb3Spatrick 38*3cab2bb3Spatrick #endif // SCUDO_FLAGS_H_ 39