aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--logformat.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/logformat.h b/logformat.h
new file mode 100644
index 0000000..3a74bf7
--- /dev/null
+++ b/logformat.h
@@ -0,0 +1,112 @@
1#ifndef LOGFORMAT_H
2#define LOGFORMAT_H
3
4#include <linux/types.h>
5
6#include "litmus.h"
7
8typedef __u8 u8;
9typedef __u32 u32;
10typedef __u16 u16;
11
12typedef enum {
13 ST_INVOCATION = 0,
14 ST_ARRIVAL = 1,
15 ST_DEPARTURE = 2,
16 ST_PREEMPTION = 3,
17 ST_SCHEDULED = 4,
18 ST_JOB_RELEASE = 5,
19 ST_JOB_COMPLETION = 6,
20 ST_CAPACITY_RELEASE = 7,
21 ST_CAPACITY_ALLOCATION = 8,
22 ST_LAST_TYPE = 8
23} trace_type_t;
24
25typedef struct {
26 trace_type_t trace:8;
27 unsigned long long timestamp;
28} trace_header_t;
29
30
31typedef struct {
32 unsigned int is_rt:1;
33 unsigned int is_server:1;
34 task_class_t cls:4;
35 unsigned int budget:24;
36 u32 deadline;
37
38 pid_t pid;
39} task_info_t;
40
41typedef struct {
42 trace_header_t header;
43 unsigned long flags;
44} invocation_record_t;
45
46typedef struct {
47 trace_header_t header;
48 task_info_t task;
49} arrival_record_t;
50
51typedef struct {
52 trace_header_t header;
53 task_info_t task;
54} departure_record_t;
55
56typedef struct {
57 trace_header_t header;
58 task_info_t task;
59 task_info_t by;
60} preemption_record_t;
61
62typedef struct {
63 trace_header_t header;
64 task_info_t task;
65} scheduled_record_t;
66
67typedef struct {
68 trace_header_t header;
69 task_info_t task;
70 u16 period;
71 u16 wcet;
72} release_record_t;
73
74typedef struct {
75 trace_header_t header;
76 task_info_t task;
77 u16 period;
78 u16 wcet;
79 int tardiness;
80} completion_record_t;
81
82typedef struct {
83 trace_header_t header;
84 task_info_t task;
85} cap_release_record_t;
86
87typedef struct {
88 trace_header_t header;
89 task_info_t task;
90 u16 budget;
91 u32 deadline;
92 pid_t donor;
93} cap_allocation_record_t;
94
95
96typedef union {
97 trace_header_t header;
98 invocation_record_t invocation;
99 arrival_record_t arrival;
100 preemption_record_t preemption;
101 scheduled_record_t scheduled;
102
103 release_record_t release;
104 completion_record_t completion;
105
106 cap_release_record_t cap_release;
107 cap_allocation_record_t cap_alloc;
108} trace_record_t;
109
110
111
112#endif