pw_log_tokenized: Tokenized backend for pw_log
- pw_log_tokenized is a backend for pw_log that packs the log level and
flags into the PW_TOKENIZE_TO_GLOBAL_HANDLER payload argument. In a
future change, it will pack a truncated module name token as well.
This allows for full runtime log filtering in the backend with no
overhead beyond the tokenization macro.
- Make the pw_TokenizerPayload a uintptr_t, which is guaranteed to fit a
pointer, but it easier to work with when dealing with numeric values.
Change-Id: Iee265eda2dad56af88eedc70916e4e92eeb5f2af
diff --git a/pw_log_tokenized/BUILD b/pw_log_tokenized/BUILD
new file mode 100644
index 0000000..6f78805
--- /dev/null
+++ b/pw_log_tokenized/BUILD
@@ -0,0 +1,57 @@
+# Copyright 2020 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load(
+ "//pw_build:pigweed.bzl",
+ "pw_cc_library",
+ "pw_cc_test",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"]) # Apache License 2.0
+
+pw_cc_library(
+ name = "headers",
+ hdrs = [
+ "public/pw_log_tokenized/log_tokenized.h",
+ "public_overrides/pw_log_backend/log_backend.h",
+ ],
+ includes = [
+ "public",
+ "public_overrides",
+ ],
+ deps = [
+ "//pw_tokenizer",
+ ],
+)
+
+pw_cc_library(
+ name = "pw_log_tokenized",
+ deps = [
+ ":headers",
+ "//pw_log:facade",
+ ],
+)
+
+pw_cc_test(
+ name = "test",
+ srcs = [
+ "test.cc",
+ ],
+ deps = [
+ ":headers",
+ "//pw_unit_test",
+ ],
+)