jitdump.h

Go to the documentation of this file.
00001 
00015 #include <sys/time.h>
00016 #include <time.h>
00017 #include <stdint.h>
00018 
00019 #include "op_types.h"
00020 
00021 #ifndef JITDUMP_H
00022 #define JITDUMP_H
00023 
00027 #define JITHEADER_MAGIC 0x4F74496A
00028 
00032 #define PADDING_8ALIGNED(x) ((((x) + 7) & 7) ^ 7)
00033 
00037 #define JITHEADER_VERSION 1
00038 
00039 struct jitheader {
00040     /* characters "jItO" */
00041     u32 magic;
00042     /* version of the dump */
00043     u32 version;
00044     u32 totalsize;
00045     u32 bfd_arch;
00046     u32 bfd_mach;
00047     u64 timestamp;
00048     char bfd_target[0];
00049 };
00050 
00051 enum jit_record_type {
00052     JIT_CODE_LOAD=0,
00053     JIT_CODE_UNLOAD=1,
00054     JIT_CODE_CLOSE=2,
00055     JIT_CODE_DEBUG_INFO=3
00056 };
00057 
00058 /* each record starts always with a id and a total_size */
00059 struct jr_prefix {
00060     u32 id;
00061     u32 total_size;
00062 };
00063 
00064 /* record0 (id=0) logs a jitted code */
00065 struct jr_code_load {
00066     u32 id;
00067     u32 total_size;
00068     u64 timestamp;
00069     u64 vma;
00070     u64 code_addr;
00071     u32 code_size;
00072     u32 align;
00073 };
00074 
00075 /* record1 (id=1) logs a code unload */
00076 struct jr_code_unload {
00077     u32 id;
00078     u32 total_size;
00079     u64 timestamp;
00080     u64 vma;
00081 };
00082 
00083 /* record2 (id=2) logs end of JVM livetime */
00084 struct jr_code_close {
00085     u32 id;
00086     u32 total_size;
00087     u64 timestamp;
00088 };
00089 
00090 /* record3 (id=3) logs debug line information. */
00091 struct jr_code_debug_info {
00092     u32 id;
00093     u32 total_size;
00094     u64 timestamp;
00095     u64 code_addr;
00096     u32 nr_entry;
00097     u32 align;
00098 };
00099 
00100 #endif /* !JITDUMP_H */
00101 

Generated on 8 Nov 2012 for Oprofile by  doxygen 1.6.1