/src/perfetto/buildtools/android-logging/liblog/logger.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright (C) 2016 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 | | #pragma once |
18 | | |
19 | | #include <stdatomic.h> |
20 | | #include <sys/cdefs.h> |
21 | | |
22 | | #include <log/log.h> |
23 | | |
24 | | #include "uio.h" |
25 | | |
26 | | __BEGIN_DECLS |
27 | | |
28 | | struct logger_list { |
29 | | atomic_int fd; |
30 | | int mode; |
31 | | unsigned int tail; |
32 | | log_time start; |
33 | | pid_t pid; |
34 | | uint32_t log_mask; |
35 | | }; |
36 | | |
37 | | // Format for a 'logger' entry: uintptr_t where only the bottom 32 bits are used. |
38 | | // bit 31: Set if this 'logger' is for logd. |
39 | | // bit 30: Set if this 'logger' is for pmsg |
40 | | // bits 0-2: the decimal value of the log buffer. |
41 | | // Other bits are unused. |
42 | | |
43 | | #define LOGGER_LOGD (1U << 31) |
44 | | #define LOGGER_PMSG (1U << 30) |
45 | | #define LOGGER_LOG_ID_MASK ((1U << 3) - 1) |
46 | | |
47 | 0 | inline bool android_logger_is_logd(struct logger* logger) { |
48 | 0 | return reinterpret_cast<uintptr_t>(logger) & LOGGER_LOGD; |
49 | 0 | } |
50 | | |
51 | | __END_DECLS |