diff options
| author | Vijay Venkatraman <vijaykv@google.com> | 2017-01-05 10:39:38 -0800 |
|---|---|---|
| committer | Vijay Venkatraman <vijaykv@google.com> | 2017-01-24 22:51:36 +0000 |
| commit | 75acc7bf81d43850694d39d2c45a20ca81d99379 (patch) | |
| tree | 39f8b964c90102fbc6a8b954110342724cf6f394 /libutils/include/utils/Trace.h | |
| parent | 897bc9b2b38ead33aa883359593eb4356b68bda2 (diff) | |
| download | system_core-75acc7bf81d43850694d39d2c45a20ca81d99379.tar.gz system_core-75acc7bf81d43850694d39d2c45a20ca81d99379.tar.bz2 system_core-75acc7bf81d43850694d39d2c45a20ca81d99379.zip | |
Exporting C++ headers from system/core
Moved headers from include/libutils and include/libsysutils to
libutils/include and libsysutils/include respectively, so they can be
exported via these libs. They needed to be moved since Soong does
not allow export from external folder.
Added symlink from old locations. They are needed since Soong
includes system/core/include by default. Once all modules are
cleaned up to explicitly add the required libs, the symlinks will be
removed.
Moved headers of libutils to libutils_headers. They should be used
by modules for header-only inlines. Added libutils_headers as
dependency of libutils.
Split of C++ headers into those that have no dependency and those that
have dependency on libutils.so will be handled in a later CL.
Test: Add above libs to shared lib of local module
Change-Id: I122db72056b26b1f39bad1d9a0c2a1c5efda3550
Diffstat (limited to 'libutils/include/utils/Trace.h')
| -rw-r--r-- | libutils/include/utils/Trace.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/libutils/include/utils/Trace.h b/libutils/include/utils/Trace.h new file mode 100644 index 000000000..eeba40d65 --- /dev/null +++ b/libutils/include/utils/Trace.h @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * 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 + * + * http://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. + */ + +#ifndef ANDROID_TRACE_H +#define ANDROID_TRACE_H + +#if defined(__ANDROID__) + +#include <fcntl.h> +#include <stdint.h> +#include <stdio.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> + +#include <cutils/compiler.h> +#include <utils/threads.h> +#include <cutils/trace.h> + +// See <cutils/trace.h> for more ATRACE_* macros. + +// ATRACE_NAME traces from its location until the end of its enclosing scope. +#define _PASTE(x, y) x ## y +#define PASTE(x, y) _PASTE(x,y) +#define ATRACE_NAME(name) android::ScopedTrace PASTE(___tracer, __LINE__) (ATRACE_TAG, name) +// ATRACE_CALL is an ATRACE_NAME that uses the current function name. +#define ATRACE_CALL() ATRACE_NAME(__FUNCTION__) + +namespace android { + +class ScopedTrace { +public: +inline ScopedTrace(uint64_t tag, const char* name) + : mTag(tag) { + atrace_begin(mTag,name); +} + +inline ~ScopedTrace() { + atrace_end(mTag); +} + +private: + uint64_t mTag; +}; + +}; // namespace android + +#else // !__ANDROID__ + +#define ATRACE_NAME(...) +#define ATRACE_CALL() + +#endif // __ANDROID__ + +#endif // ANDROID_TRACE_H |
