summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/gprof/gmon_out.h
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1996-01-08 11:10:27 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1996-01-08 11:10:27 +0000
commit8b46c09925a80623c289e346c12921bc09fd1678 (patch)
tree01507d0da339cc7e5e6f5d16dfa625f94910b091 /gnu/usr.bin/binutils/gprof/gmon_out.h
parent5d56227f9458a53138642c1b4488b4a30f85f334 (diff)
Initial GNU binutils 2.6 import
Diffstat (limited to 'gnu/usr.bin/binutils/gprof/gmon_out.h')
-rw-r--r--gnu/usr.bin/binutils/gprof/gmon_out.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/usr.bin/binutils/gprof/gmon_out.h b/gnu/usr.bin/binutils/gprof/gmon_out.h
new file mode 100644
index 00000000000..2144fb5954b
--- /dev/null
+++ b/gnu/usr.bin/binutils/gprof/gmon_out.h
@@ -0,0 +1,51 @@
+/*
+ * This file specifies the format of gmon.out files. It should have
+ * as few external dependencies as possible as it is going to be
+ * included in many different programs. That is, minimize the
+ * number of #include's.
+ *
+ * A gmon.out file consists of a header (defined by gmon_hdr) followed
+ * by a sequence of records. Each record starts with a one-byte tag
+ * identifying the type of records, followed by records specific data.
+ */
+#ifndef gmon_out_h
+#define gmon_out_h
+
+#define GMON_MAGIC "gmon" /* magic cookie */
+#define GMON_VERSION 1 /* version number */
+
+/*
+ * Raw header as it appears on file (without padding):
+ */
+struct gmon_hdr
+ {
+ char cookie[4];
+ char version[4];
+ char spare[3 * 4];
+ };
+
+/* types of records in this file: */
+typedef enum
+ {
+ GMON_TAG_TIME_HIST = 0, GMON_TAG_CG_ARC = 1, GMON_TAG_BB_COUNT = 2
+ }
+GMON_Record_Tag;
+
+struct gmon_hist_hdr
+ {
+ char low_pc[sizeof (char*)]; /* base pc address of sample buffer */
+ char high_pc[sizeof (char*)]; /* max pc address of sampled buffer */
+ char hist_size[4]; /* size of sample buffer */
+ char prof_rate[4]; /* profiling clock rate */
+ char dimen[15]; /* phys. dim., usually "seconds" */
+ char dimen_abbrev; /* usually 's' for "seconds" */
+ };
+
+struct gmon_cg_arc_record
+ {
+ char from_pc[sizeof (char*)]; /* address within caller's body */
+ char self_pc[sizeof (char*)]; /* address within callee's body */
+ char count[4]; /* number of arc traversals */
+ };
+
+#endif /* gmon_out_h */