diff options
| author | Alex Ray <aray@google.com> | 2013-03-19 00:30:03 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2013-03-19 00:30:03 +0000 |
| commit | b178fbe67bc532519242cfec0a9f5190878daef0 (patch) | |
| tree | 1c75d2625fb18d25a771c16d4bd94f221a149857 /include | |
| parent | c8d85a4b2415cce34f0b8f73870eb10b4ecb032c (diff) | |
| parent | ee2dccf21b61094a0fd782d32f221804b0a7d3fa (diff) | |
| download | system_core-b178fbe67bc532519242cfec0a9f5190878daef0.zip system_core-b178fbe67bc532519242cfec0a9f5190878daef0.tar.gz system_core-b178fbe67bc532519242cfec0a9f5190878daef0.tar.bz2 | |
am ee2dccf2: am 66317770: cutils: trace: add asynchronous events
* commit 'ee2dccf21b61094a0fd782d32f221804b0a7d3fa':
cutils: trace: add asynchronous events
Diffstat (limited to 'include')
| -rw-r--r-- | include/cutils/trace.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/include/cutils/trace.h b/include/cutils/trace.h index 1db3903..ad65dfb 100644 --- a/include/cutils/trace.h +++ b/include/cutils/trace.h @@ -182,6 +182,47 @@ static inline void atrace_end(uint64_t tag) } /** + * Trace the beginning of an asynchronous event. Unlike ATRACE_BEGIN/ATRACE_END + * contexts, asynchronous events do not need to be nested. The name describes + * the event, and the cookie provides a unique identifier for distinguishing + * simultaneous events. The name and cookie used to begin an event must be + * used to end it. + */ +#define ATRACE_ASYNC_BEGIN(name, cookie) \ + atrace_async_begin(ATRACE_TAG, name, cookie) +static inline void atrace_async_begin(uint64_t tag, const char* name, + int32_t cookie) +{ + if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) { + char buf[ATRACE_MESSAGE_LENGTH]; + size_t len; + + len = snprintf(buf, ATRACE_MESSAGE_LENGTH, "S|%d|%s|%d", getpid(), + name, cookie); + write(atrace_marker_fd, buf, len); + } +} + +/** + * Trace the end of an asynchronous event. + * This should have a corresponding ATRACE_ASYNC_BEGIN. + */ +#define ATRACE_ASYNC_END(name, cookie) atrace_async_end(ATRACE_TAG, name, cookie) +static inline void atrace_async_end(uint64_t tag, const char* name, + int32_t cookie) +{ + if (CC_UNLIKELY(atrace_is_tag_enabled(tag))) { + char buf[ATRACE_MESSAGE_LENGTH]; + size_t len; + + len = snprintf(buf, ATRACE_MESSAGE_LENGTH, "F|%d|%s|%d", getpid(), + name, cookie); + write(atrace_marker_fd, buf, len); + } +} + + +/** * Traces an integer counter value. name is used to identify the counter. * This can be used to track how a value changes over time. */ |
