blob: ed4be88a606de29de8f684ac3ec4cf9c6cb32405 [file] [log] [blame]
leozwangf25a6a42014-07-29 12:50:02 -07001/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef __ADB_TRACE_H
18#define __ADB_TRACE_H
19
Elliott Hughesf55ead92015-12-04 22:00:26 -080020#include <android-base/logging.h>
21#include <android-base/stringprintf.h>
leozwangf25a6a42014-07-29 12:50:02 -070022
leozwangf25a6a42014-07-29 12:50:02 -070023/* IMPORTANT: if you change the following list, don't
24 * forget to update the corresponding 'tags' table in
Yabin Cui19bec5b2015-09-22 15:52:57 -070025 * the adb_trace_init() function implemented in adb_trace.cpp.
leozwangf25a6a42014-07-29 12:50:02 -070026 */
Elliott Hughesfe7ff812015-04-17 09:47:42 -070027enum AdbTrace {
Alex Buynytskyy175ce292020-02-13 06:52:04 -080028 ADB = 0, /* 0x001 */
Yabin Cui19bec5b2015-09-22 15:52:57 -070029 SOCKETS,
30 PACKETS,
31 TRANSPORT,
Alex Buynytskyy175ce292020-02-13 06:52:04 -080032 RWX, /* 0x010 */
Yabin Cui19bec5b2015-09-22 15:52:57 -070033 USB,
34 SYNC,
35 SYSDEPS,
Alex Buynytskyy175ce292020-02-13 06:52:04 -080036 JDWP, /* 0x100 */
Yabin Cui19bec5b2015-09-22 15:52:57 -070037 SERVICES,
38 AUTH,
39 FDEVENT,
Alex Buynytskyy175ce292020-02-13 06:52:04 -080040 SHELL,
41 INCREMENTAL,
Elliott Hughes0ea59242015-08-28 14:46:33 -070042};
leozwangf25a6a42014-07-29 12:50:02 -070043
Yabin Cui19bec5b2015-09-22 15:52:57 -070044#define VLOG_IS_ON(TAG) \
Chih-Hung Hsieh88cee432016-05-18 15:53:15 -070045 ((adb_trace_mask & (1 << (TAG))) != 0)
leozwangf25a6a42014-07-29 12:50:02 -070046
Josh Gaoda857132018-02-06 15:49:26 -080047#define VLOG(TAG) \
Yabin Cui19bec5b2015-09-22 15:52:57 -070048 if (LIKELY(!VLOG_IS_ON(TAG))) \
Josh Gaoda857132018-02-06 15:49:26 -080049 ; \
50 else \
51 LOG(DEBUG)
leozwangf25a6a42014-07-29 12:50:02 -070052
Yabin Cui815ad882015-09-02 17:44:28 -070053// You must define TRACE_TAG before using this macro.
54#define D(...) \
Yabin Cui19bec5b2015-09-22 15:52:57 -070055 VLOG(TRACE_TAG) << android::base::StringPrintf(__VA_ARGS__)
56
57
58extern int adb_trace_mask;
59void adb_trace_init(char**);
60void adb_trace_enable(AdbTrace trace_tag);
leozwangf25a6a42014-07-29 12:50:02 -070061
Yabin Cui3cf1b362017-03-10 16:01:01 -080062// Include <atomic> before stdatomic.h (introduced in cutils/trace.h) to avoid compile error.
63#include <atomic>
64
Josh Gao14ed70a2016-11-22 14:33:08 -080065#define ATRACE_TAG ATRACE_TAG_ADB
66#include <cutils/trace.h>
67#include <utils/Trace.h>
68
leozwangf25a6a42014-07-29 12:50:02 -070069#endif /* __ADB_TRACE_H */