events.h 5.5 KB
Newer Older
Antoine Kaufmann's avatar
Antoine Kaufmann committed
1
2
#pragma once

3
class event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
4
5
6
  public:
    uint64_t ts;

7
    event(uint64_t ts_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
8
9
10
11
        : ts(ts_)
    {
    }

12
13
    virtual ~event() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
14
15
16
    virtual void dump(std::ostream &out) = 0;
};

17
class EHostCall : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
18
19
20
21
  public:
    const std::string &fun;

    EHostCall(uint64_t ts_, const std::string &fun_)
22
        : event(ts_), fun(fun_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
23
24
25
    {
    }

26
27
    virtual ~EHostCall() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
28
29
30
31
32
33
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.CALL " << fun << std::endl;
    }
};

34
class EHostMsiX : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
35
36
37
38
  public:
    uint16_t vec;

    EHostMsiX(uint64_t ts_, uint16_t vec_)
39
        : event(ts_), vec(vec_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
40
41
42
    {
    }

43
44
    virtual ~EHostMsiX() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
45
46
47
48
49
50
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.MSIX " << vec << std::endl;
    }
};

51
class EHostDmaR : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
52
53
54
55
56
57
  public:
    uint64_t id;
    uint64_t addr;
    uint64_t size;

    EHostDmaR(uint64_t ts_, uint64_t id_, uint64_t addr_, uint64_t size_)
58
        : event(ts_), id(id_), addr(addr_), size(size_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
59
60
61
    {
    }

62
63
    virtual ~EHostDmaR() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
64
65
66
67
68
69
70
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.DMAR id=" << id << " addr=" << addr << " size=" <<
            size << std::endl;
    }
};

71
class EHostDmaW : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
72
73
74
75
76
77
  public:
    uint64_t id;
    uint64_t addr;
    uint64_t size;

    EHostDmaW(uint64_t ts_, uint64_t id_, uint64_t addr_, uint64_t size_)
78
        : event(ts_), id(id_), addr(addr_), size(size_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
79
80
81
    {
    }

82
83
    virtual ~EHostDmaW() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
84
85
86
87
88
89
90
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.DMAW id=" << id << " addr=" << addr << " size=" <<
            size << std::endl;
    }
};

91
class EHostDmaC : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
92
93
94
95
  public:
    uint64_t id;

    EHostDmaC(uint64_t ts_, uint64_t id_)
96
97
        : event(ts_), id(id_)
    {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
98
99
    }

100
101
    virtual ~EHostDmaC() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
102
103
104
105
106
107
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.DMAC id=" << id << std::endl;
    }
};

108
class EHostMmioR : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
109
110
111
112
113
114
  public:
    uint64_t id;
    uint64_t addr;
    uint64_t size;

    EHostMmioR(uint64_t ts_, uint64_t id_, uint64_t addr_, uint64_t size_)
115
        : event(ts_), id(id_), addr(addr_), size(size_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
116
117
118
    {
    }

119
120
    virtual ~EHostMmioR() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
121
122
123
124
125
126
127
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.MMIOR id=" << id << " addr=" << addr << " size=" <<
            size << std::endl;
    }
};

128
class EHostMmioW : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
129
130
131
132
133
134
  public:
    uint64_t id;
    uint64_t addr;
    uint64_t size;

    EHostMmioW(uint64_t ts_, uint64_t id_, uint64_t addr_, uint64_t size_)
135
        : event(ts_), id(id_), addr(addr_), size(size_)
Antoine Kaufmann's avatar
Antoine Kaufmann committed
136
137
138
    {
    }

139
140
    virtual ~EHostMmioW() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
141
142
143
144
145
146
147
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.MMIOW id=" << id << " addr=" << addr << " size=" <<
            size << std::endl;
    }
};

148
class EHostMmioC : public event {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
149
150
151
152
  public:
    uint64_t id;

    EHostMmioC(uint64_t ts_, uint64_t id_)
153
154
        : event(ts_), id(id_)
    {
Antoine Kaufmann's avatar
Antoine Kaufmann committed
155
156
    }

157
158
    virtual ~EHostMmioC() { }

Antoine Kaufmann's avatar
Antoine Kaufmann committed
159
160
161
162
163
    virtual void dump(std::ostream &out)
    {
        out << ts << ": H.MMIOC id=" << id << std::endl;
    }
};
164
165
166
167
168
169
170
171
172
173

class e_nic_msix : public event {
  public:
    uint16_t vec;

    e_nic_msix(uint64_t ts_, uint16_t vec_)
        : event(ts_), vec(vec_)
    {
    }

174
175
    virtual ~e_nic_msix() { }

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.MSIX " << vec << std::endl;
    }
};

class e_nic_dma_i : public event {
  public:
    uint64_t id;
    uint64_t addr;
    uint64_t size;

    e_nic_dma_i(uint64_t ts_, uint64_t id_, uint64_t addr_, uint64_t size_)
        : event(ts_), id(id_), addr(addr_), size(size_)
    {
    }

193
194
    virtual ~e_nic_dma_i() { }

195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.DMAI id=" << id << " addr=" << addr << " size=" <<
            size << std::endl;
    }
};

class e_nic_dma_c : public event {
  public:
    uint64_t id;

    e_nic_dma_c(uint64_t ts_, uint64_t id_)
        : event(ts_), id(id_)    {
    }

210
211
    virtual ~e_nic_dma_c() { }

212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.DMAC id=" << id << std::endl;
    }
};

class e_nic_mmio_r : public event {
  public:
    uint64_t addr;
    uint64_t size;
    uint64_t val;

    e_nic_mmio_r(uint64_t ts_, uint64_t addr_, uint64_t size_, uint64_t val_)
        : event(ts_), addr(addr_), size(size_), val(val_)
    {
    }

229
230
    virtual ~e_nic_mmio_r() { }

231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.MMIOR addr=" << addr << " size=" << size << " val=" <<
            val << std::endl;
    }
};

class e_nic_mmio_w : public event {
  public:
    uint64_t addr;
    uint64_t size;
    uint64_t val;

    e_nic_mmio_w(uint64_t ts_, uint64_t addr_, uint64_t size_, uint64_t val_)
        : event(ts_), addr(addr_), size(size_), val(val_)
    {
    }

249
250
    virtual ~e_nic_mmio_w() { }

251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.MMIOW addr=" << addr << " size=" << size << " val=" <<
            val << std::endl;
    }
};

class e_nic_tx : public event {
  public:
    uint16_t len;

    e_nic_tx(uint64_t ts_, uint16_t len_)
        : event(ts_), len(len_)
    {
    }

267
268
    virtual ~e_nic_tx() { }

269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.TX " << len << std::endl;
    }
};

class e_nic_rx : public event {
  public:
    uint16_t len;

    e_nic_rx(uint64_t ts_, uint16_t len_)
        : event(ts_), len(len_)
    {
    }

284
285
    virtual ~e_nic_rx() { }

286
287
288
289
290
    virtual void dump(std::ostream &out)
    {
        out << ts << ": N.RX " << len << std::endl;
    }
};