diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2012-10-31 16:01:11 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-12-14 10:18:59 -0600 |
commit | da3888270ff596441bf78535c26dee0a7d923145 (patch) | |
tree | 019b88ce38e87b8346e0ef659f058556e26dec42 /src/usr/trace/tracebuffer.H | |
parent | 6d7290eca2b0e753d1b954a56e2c82284dd23eb9 (diff) | |
download | talos-hostboot-da3888270ff596441bf78535c26dee0a7d923145.tar.gz talos-hostboot-da3888270ff596441bf78535c26dee0a7d923145.zip |
Lockless trace implementation
RTC: 35396
Change-Id: I96ea0d95606f04abb4dc2b0470345ca475b53912
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2520
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/trace/tracebuffer.H')
-rw-r--r-- | src/usr/trace/tracebuffer.H | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/usr/trace/tracebuffer.H b/src/usr/trace/tracebuffer.H deleted file mode 100644 index 90cc80f75..000000000 --- a/src/usr/trace/tracebuffer.H +++ /dev/null @@ -1,73 +0,0 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/usr/trace/tracebuffer.H $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 2011 -// -// p1 -// -// Object Code Only (OCO) source materials -// Licensed Internal Code Source Materials -// IBM HostBoot Licensed Internal Code -// -// The source code for this program is not published or other- -// wise divested of its trade secrets, irrespective of what has -// been deposited with the U.S. Copyright Office. -// -// Origin: 30 -// -// IBM_PROLOG_END -#ifndef __TRACE_TRACEBUFFER_H -#define __TRACE_TRACEBUFFER_H - -#include <stdint.h> -#include <stdlib.h> -#include <new> -#include <limits.h> -#include <sys/task.h> - -struct traceEntry -{ - uint64_t component; - tid_t tid; - uint16_t length; - uint32_t hash; - uint64_t timestamp; - uint32_t line; - uint64_t values[0]; -}; - - -class TracePage -{ - public: - TracePage() : next(NULL), size(0) {}; - - TracePage* setNext(TracePage*); - TracePage* getNext() { return next; }; - traceEntry* claimEntry(size_t size); - - private: - TracePage* volatile next; - uint64_t size; -}; - -class TraceBuffer -{ - public: - TraceBuffer() - { - first = last = new (malloc(PAGE_SIZE)) TracePage(); - } - - traceEntry* claimEntry(size_t size); - - private: - TracePage* first; - TracePage* volatile last; -}; - -#endif |