decode_packet_trace.py (10132:894ec19274e9) decode_packet_trace.py (10269:82773ace39fa)
1#!/usr/bin/env python
2
3# Copyright (c) 2013-2014 ARM Limited
4# All rights reserved
5#
6# The license below extends only to copyright in the software and shall
7# not be construed as granting a license to any other intellectual
8# property including but not limited to intellectual property relating

--- 34 unchanged lines hidden (view full) ---

43# be done manually using:
44# protoc --python_out=. --proto_path=src/proto src/proto/packet.proto
45#
46# The ASCII trace format uses one line per request on the format cmd,
47# addr, size, tick,flags. For example:
48# r,128,64,4000,0
49# w,232123,64,500000,0
50
1#!/usr/bin/env python
2
3# Copyright (c) 2013-2014 ARM Limited
4# All rights reserved
5#
6# The license below extends only to copyright in the software and shall
7# not be construed as granting a license to any other intellectual
8# property including but not limited to intellectual property relating

--- 34 unchanged lines hidden (view full) ---

43# be done manually using:
44# protoc --python_out=. --proto_path=src/proto src/proto/packet.proto
45#
46# The ASCII trace format uses one line per request on the format cmd,
47# addr, size, tick,flags. For example:
48# r,128,64,4000,0
49# w,232123,64,500000,0
50
51import gzip
52import protolib
53import sys
54
55# Import the packet proto definitions. If they are not found, attempt
56# to generate them automatically. This assumes that the script is
57# executed from the gem5 root.
58try:
59 import packet_pb2

--- 16 unchanged lines hidden (view full) ---

76 print "Failed to import packet proto definitions"
77 exit(-1)
78
79def main():
80 if len(sys.argv) != 3:
81 print "Usage: ", sys.argv[0], " <protobuf input> <ASCII output>"
82 exit(-1)
83
51import protolib
52import sys
53
54# Import the packet proto definitions. If they are not found, attempt
55# to generate them automatically. This assumes that the script is
56# executed from the gem5 root.
57try:
58 import packet_pb2

--- 16 unchanged lines hidden (view full) ---

75 print "Failed to import packet proto definitions"
76 exit(-1)
77
78def main():
79 if len(sys.argv) != 3:
80 print "Usage: ", sys.argv[0], " <protobuf input> <ASCII output>"
81 exit(-1)
82
84 try:
85 # First see if this file is gzipped
86 try:
87 # Opening the file works even if it is not a gzip file
88 proto_in = gzip.open(sys.argv[1], 'rb')
83 # Open the file in read mode
84 proto_in = protolib.openFileRd(sys.argv[1])
89
85
90 # Force a check of the magic number by seeking in the
91 # file. If we do not do it here the error will occur when
92 # reading the first message.
93 proto_in.seek(1)
94 proto_in.seek(0)
95 except IOError:
96 proto_in = open(sys.argv[1], 'rb')
97 except IOError:
98 print "Failed to open ", sys.argv[1], " for reading"
99 exit(-1)
100
101 try:
102 ascii_out = open(sys.argv[2], 'w')
103 except IOError:
104 print "Failed to open ", sys.argv[2], " for writing"
105 exit(-1)
106
107 # Read the magic number in 4-byte Little Endian
108 magic_number = proto_in.read(4)

--- 41 unchanged lines hidden ---
86 try:
87 ascii_out = open(sys.argv[2], 'w')
88 except IOError:
89 print "Failed to open ", sys.argv[2], " for writing"
90 exit(-1)
91
92 # Read the magic number in 4-byte Little Endian
93 magic_number = proto_in.read(4)

--- 41 unchanged lines hidden ---