V8 Project
jitdump.h
Go to the documentation of this file.
1
#ifndef JITDUMP_H
2
#define JITDUMP_H
3
4
#include <sys/time.h>
5
#include <
time.h
>
6
#include <stdint.h>
7
8
/* JiTD */
9
#define JITHEADER_MAGIC 0x4A695444
10
#define JITHEADER_MAGIC_SW 0x4454694A
11
12
#define PADDING_8ALIGNED(x) ((((x) + 7) & 7) ^ 7)
13
14
#define JITHEADER_VERSION 1
15
16
struct
jitheader
{
17
uint32_t
magic
;
/* characters "jItD" */
18
uint32_t
version
;
/* header version */
19
uint32_t
total_size
;
/* total size of header */
20
uint32_t
elf_mach
;
/* elf mach target */
21
uint32_t
pad1
;
/* reserved */
22
uint32_t
pid
;
/* JIT process id */
23
uint64_t
timestamp
;
/* timestamp */
24
};
25
26
enum
jit_record_type
{
27
JIT_CODE_LOAD
= 0,
28
JIT_CODE_MOVE
= 1,
29
JIT_CODE_DEBUG_INFO
= 2,
30
JIT_CODE_CLOSE
= 3,
31
JIT_CODE_MAX
32
};
33
34
/* record prefix (mandatory in each record) */
35
struct
jr_prefix
{
36
uint32_t
id
;
37
uint32_t
total_size
;
38
uint64_t
timestamp
;
39
};
40
41
struct
jr_code_load
{
42
struct
jr_prefix
p
;
43
44
uint32_t
pid
;
45
uint32_t
tid
;
46
uint64_t
vma
;
47
uint64_t
code_addr
;
48
uint64_t
code_size
;
49
uint64_t
code_index
;
50
};
51
52
struct
jr_code_close
{
53
struct
jr_prefix
p
;
54
};
55
56
struct
jr_code_move
{
57
struct
jr_prefix
p
;
58
59
uint32_t
pid
;
60
uint32_t
tid
;
61
uint64_t
vma
;
62
uint64_t
old_code_addr
;
63
uint64_t
new_code_addr
;
64
uint64_t
code_size
;
65
uint64_t
code_index
;
66
};
67
68
struct
jr_code_debug_info
{
69
struct
jr_prefix
p
;
70
71
uint64_t
code_addr
;
72
uint64_t
nr_entry
;
73
};
74
75
union
jr_entry
{
76
struct
jr_code_debug_info
info
;
77
struct
jr_code_close
close
;
78
struct
jr_code_load
load
;
79
struct
jr_code_move
move
;
80
struct
jr_prefix
prefix
;
81
};
82
83
#endif
/* !JITDUMP_H */
uint32_t
jit_record_type
jit_record_type
Definition:
jitdump.h:26
JIT_CODE_CLOSE
@ JIT_CODE_CLOSE
Definition:
jitdump.h:30
JIT_CODE_LOAD
@ JIT_CODE_LOAD
Definition:
jitdump.h:27
JIT_CODE_MAX
@ JIT_CODE_MAX
Definition:
jitdump.h:31
JIT_CODE_MOVE
@ JIT_CODE_MOVE
Definition:
jitdump.h:28
JIT_CODE_DEBUG_INFO
@ JIT_CODE_DEBUG_INFO
Definition:
jitdump.h:29
jitheader
Definition:
jitdump.h:16
jitheader::timestamp
uint64_t timestamp
Definition:
jitdump.h:23
jitheader::magic
uint32_t magic
Definition:
jitdump.h:17
jitheader::pid
uint32_t pid
Definition:
jitdump.h:22
jitheader::total_size
uint32_t total_size
Definition:
jitdump.h:19
jitheader::version
uint32_t version
Definition:
jitdump.h:18
jitheader::pad1
uint32_t pad1
Definition:
jitdump.h:21
jitheader::elf_mach
uint32_t elf_mach
Definition:
jitdump.h:20
jr_code_close
Definition:
jitdump.h:52
jr_code_close::p
struct jr_prefix p
Definition:
jitdump.h:53
jr_code_debug_info
Definition:
jitdump.h:68
jr_code_debug_info::nr_entry
uint64_t nr_entry
Definition:
jitdump.h:72
jr_code_debug_info::code_addr
uint64_t code_addr
Definition:
jitdump.h:71
jr_code_debug_info::p
struct jr_prefix p
Definition:
jitdump.h:69
jr_code_load
Definition:
jitdump.h:41
jr_code_load::code_addr
uint64_t code_addr
Definition:
jitdump.h:47
jr_code_load::code_index
uint64_t code_index
Definition:
jitdump.h:49
jr_code_load::p
struct jr_prefix p
Definition:
jitdump.h:42
jr_code_load::tid
uint32_t tid
Definition:
jitdump.h:45
jr_code_load::pid
uint32_t pid
Definition:
jitdump.h:44
jr_code_load::vma
uint64_t vma
Definition:
jitdump.h:46
jr_code_load::code_size
uint64_t code_size
Definition:
jitdump.h:48
jr_code_move
Definition:
jitdump.h:56
jr_code_move::old_code_addr
uint64_t old_code_addr
Definition:
jitdump.h:62
jr_code_move::vma
uint64_t vma
Definition:
jitdump.h:61
jr_code_move::p
struct jr_prefix p
Definition:
jitdump.h:57
jr_code_move::new_code_addr
uint64_t new_code_addr
Definition:
jitdump.h:63
jr_code_move::code_size
uint64_t code_size
Definition:
jitdump.h:64
jr_code_move::pid
uint32_t pid
Definition:
jitdump.h:59
jr_code_move::code_index
uint64_t code_index
Definition:
jitdump.h:65
jr_code_move::tid
uint32_t tid
Definition:
jitdump.h:60
jr_prefix
Definition:
jitdump.h:35
jr_prefix::total_size
uint32_t total_size
Definition:
jitdump.h:37
jr_prefix::timestamp
uint64_t timestamp
Definition:
jitdump.h:38
jr_prefix::id
uint32_t id
Definition:
jitdump.h:36
time.h
jr_entry
Definition:
jitdump.h:75
jr_entry::move
struct jr_code_move move
Definition:
jitdump.h:79
jr_entry::info
struct jr_code_debug_info info
Definition:
jitdump.h:76
jr_entry::prefix
struct jr_prefix prefix
Definition:
jitdump.h:80
jr_entry::load
struct jr_code_load load
Definition:
jitdump.h:78
jr_entry::close
struct jr_code_close close
Definition:
jitdump.h:77
mnt
V8SourceCode
src
third_party
kernel
tools
perf
util
jitdump.h
Generated on Tue Jul 1 2025 02:36:48 for V8 Project by
1.9.1