181ad6265SDimitry Andric //===-- LLDBLog.h -----------------------------------------------*- C++ -*-===//
281ad6265SDimitry Andric //
381ad6265SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
481ad6265SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
581ad6265SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
681ad6265SDimitry Andric //
781ad6265SDimitry Andric //===----------------------------------------------------------------------===//
881ad6265SDimitry Andric 
981ad6265SDimitry Andric #ifndef LLDB_UTILITY_LLDBLOG_H
1081ad6265SDimitry Andric #define LLDB_UTILITY_LLDBLOG_H
1181ad6265SDimitry Andric 
1281ad6265SDimitry Andric #include "lldb/Utility/Log.h"
1381ad6265SDimitry Andric #include "llvm/ADT/BitmaskEnum.h"
1481ad6265SDimitry Andric #include <cstdint>
1581ad6265SDimitry Andric 
1681ad6265SDimitry Andric namespace lldb_private {
1781ad6265SDimitry Andric 
1881ad6265SDimitry Andric enum class LLDBLog : Log::MaskType {
1981ad6265SDimitry Andric   API = Log::ChannelFlag<0>,
2081ad6265SDimitry Andric   AST = Log::ChannelFlag<1>,
2181ad6265SDimitry Andric   Breakpoints = Log::ChannelFlag<2>,
2281ad6265SDimitry Andric   Commands = Log::ChannelFlag<3>,
2381ad6265SDimitry Andric   Communication = Log::ChannelFlag<4>,
2481ad6265SDimitry Andric   Connection = Log::ChannelFlag<5>,
2581ad6265SDimitry Andric   DataFormatters = Log::ChannelFlag<6>,
2681ad6265SDimitry Andric   Demangle = Log::ChannelFlag<7>,
2781ad6265SDimitry Andric   DynamicLoader = Log::ChannelFlag<8>,
2881ad6265SDimitry Andric   Events = Log::ChannelFlag<9>,
2981ad6265SDimitry Andric   Expressions = Log::ChannelFlag<10>,
3081ad6265SDimitry Andric   Host = Log::ChannelFlag<11>,
3181ad6265SDimitry Andric   JITLoader = Log::ChannelFlag<12>,
3281ad6265SDimitry Andric   Language = Log::ChannelFlag<13>,
3381ad6265SDimitry Andric   MMap = Log::ChannelFlag<14>,
3481ad6265SDimitry Andric   Modules = Log::ChannelFlag<15>,
3581ad6265SDimitry Andric   Object = Log::ChannelFlag<16>,
3681ad6265SDimitry Andric   OS = Log::ChannelFlag<17>,
3781ad6265SDimitry Andric   Platform = Log::ChannelFlag<18>,
3881ad6265SDimitry Andric   Process = Log::ChannelFlag<19>,
3981ad6265SDimitry Andric   Script = Log::ChannelFlag<20>,
4081ad6265SDimitry Andric   State = Log::ChannelFlag<21>,
4181ad6265SDimitry Andric   Step = Log::ChannelFlag<22>,
4281ad6265SDimitry Andric   Symbols = Log::ChannelFlag<23>,
4381ad6265SDimitry Andric   SystemRuntime = Log::ChannelFlag<24>,
4481ad6265SDimitry Andric   Target = Log::ChannelFlag<25>,
4581ad6265SDimitry Andric   Temporary = Log::ChannelFlag<26>,
4681ad6265SDimitry Andric   Thread = Log::ChannelFlag<27>,
4781ad6265SDimitry Andric   Types = Log::ChannelFlag<28>,
4881ad6265SDimitry Andric   Unwind = Log::ChannelFlag<29>,
4981ad6265SDimitry Andric   Watchpoints = Log::ChannelFlag<30>,
5081ad6265SDimitry Andric   OnDemand = Log::ChannelFlag<31>,
51*06c3fb27SDimitry Andric   Source = Log::ChannelFlag<32>,
52bdd1243dSDimitry Andric   LLVM_MARK_AS_BITMASK_ENUM(OnDemand),
5381ad6265SDimitry Andric };
5481ad6265SDimitry Andric 
5581ad6265SDimitry Andric LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
5681ad6265SDimitry Andric 
5781ad6265SDimitry Andric void InitializeLldbChannel();
5881ad6265SDimitry Andric 
5981ad6265SDimitry Andric template <> Log::Channel &LogChannelFor<LLDBLog>();
6081ad6265SDimitry Andric } // namespace lldb_private
6181ad6265SDimitry Andric 
6281ad6265SDimitry Andric #endif // LLDB_UTILITY_LLDBLOG_H
63