On 01/11/2012 11:35 PM, Lluís Vilanova wrote:
This would otherwise break event numbering when actually using the "disable"
property.


IIUC, event numbering does include disabled events too, are you proposing not to include disabled events in event numbering ? That will affect interpreting event numbers while reading trace logs also.

- Harsh


Signed-off-by: Lluís Vilanova<vilan...@ac.upc.edu>
---
  scripts/tracetool.py |   21 +++++++++------------
  1 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/scripts/tracetool.py b/scripts/tracetool.py
index 7a877dc..b7401a3 100755
--- a/scripts/tracetool.py
+++ b/scripts/tracetool.py
@@ -128,7 +128,7 @@ def simple_h(events):
      'args': event.args
  }
      print
-    print '#define NR_TRACE_EVENTS %d' % (event.num + 1)
+    print '#define NR_TRACE_EVENTS %d' % len(events)
      print 'extern TraceEvent trace_list[NR_TRACE_EVENTS];'

      return
@@ -154,7 +154,7 @@ def simple_c(events):
          print
      print '};'
      print
-    for event in events:
+    for num, event in enumerate(events):
          argc = event.argc
          print '''void trace_%(name)s(%(args)s)
  {
@@ -169,12 +169,12 @@ def simple_c(events):
  ''' % {
      'name': event.name,
      'args': event.args,
-    'event_id': event.num,
+    'event_id': num,
  }
          print '''
      tbuf_idx = trace_alloc_record(%(event_id)s, %(sizestr)s);
      rec_off = (tbuf_idx + ST_V2_REC_HDR_LEN) %% TRACE_BUF_LEN; /* seek record 
header */
-''' % {'event_id': event.num, 'sizestr': event.sizestr,}
+''' % {'event_id': num, 'sizestr': event.sizestr,}

          if argc>  0:
              str = event.arglist
@@ -220,7 +220,7 @@ def stderr_h(events):
  #include "trace/stderr.h"

  extern TraceEvent trace_list[];'''
-    for event in events:
+    for num, event in enumerate(events):
          argnames = event.argnames
          if event.argc>  0:
              argnames = ', ' + event.argnames
@@ -235,12 +235,12 @@ static inline void trace_%(name)s(%(args)s)
  }''' % {
      'name': event.name,
      'args': event.args,
-    'event_num': event.num,
+    'event_num': num,
      'fmt': event.fmt.rstrip('\n'),
      'argnames': argnames
  }
      print
-    print '#define NR_TRACE_EVENTS %d' % (event.num + 1)
+    print '#define NR_TRACE_EVENTS %d' % len(events)

  def stderr_c(events):
      print '''#include "trace.h"
@@ -475,8 +475,7 @@ import re
  cre = re.compile("(?P<name>[^(\s]+)\((?P<args>[^)]*)\)\s*(?P<fmt>\".*\")?")

  class Event(object):
-    def __init__(self, num, line):
-        self.num = num
+    def __init__(self, line):
          m = cre.match(line)
          assert m is not None
          groups = m.groupdict('')
@@ -491,14 +490,12 @@ class Event(object):
  # Generator that yields Event objects given a trace-events file object
  def read_events(fobj):
      res = []
-    event_num = 0
      for line in fobj:
          if not line.strip():
              continue
          if line.lstrip().startswith('#'):
            continue
-       res.append(Event(event_num, line))
-       event_num += 1
+       res.append(Event(line))
      return res

  backend = ""




Reply via email to